All Projects → rafaeldelboni → nota

rafaeldelboni / nota

Licence: Unlicense license
Static Markdown Blog/Site using Fulcro & Pathom with no backend

Programming Languages

clojure
4091 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to nota

graph-demo
A simple demo using pathom, fulcro and crux
Stars: ✭ 48 (+37.14%)
Mutual labels:  fulcro, pathom
jirazzz
A jira rest client for the command line, written in clojure as a babashka script.
Stars: ✭ 26 (-25.71%)
Mutual labels:  babashka
babashka-sql-pods
Babashka pods for SQL databases
Stars: ✭ 64 (+82.86%)
Mutual labels:  babashka
corona cases
🦠 Coronavirus Information on Telegram Chatbot
Stars: ✭ 19 (-45.71%)
Mutual labels:  babashka
holy-lambda
The extraordinary simple, performant, and extensible custom AWS Lambda runtime for Clojure.
Stars: ✭ 318 (+808.57%)
Mutual labels:  babashka
fulcro-sql
Web server SQL components, and support for running Om Next/Fulcro graph queries against an SQL database.
Stars: ✭ 18 (-48.57%)
Mutual labels:  fulcro
fulcro-exercises
A follow-up to the Minimalist Fulcro Tutorial to get hands dirty with Fulcro and learn and experience the theory in practice, through a series of gradually more challenging exercises.
Stars: ✭ 25 (-28.57%)
Mutual labels:  fulcro
pyramid
A library for storing and querying graph data in a Clojure map
Stars: ✭ 146 (+317.14%)
Mutual labels:  pathom
Babashka
Native, fast starting Clojure interpreter for scripting
Stars: ✭ 2,462 (+6934.29%)
Mutual labels:  babashka
process
Shell out in Clojure with simplicity and ease
Stars: ✭ 116 (+231.43%)
Mutual labels:  babashka
bb-clis
Babashka CLIs
Stars: ✭ 46 (+31.43%)
Mutual labels:  babashka
scoop-clojure
Install Clojure on Windows with Scoop
Stars: ✭ 73 (+108.57%)
Mutual labels:  babashka
nbb
Scripting in Clojure on Node.js using SCI.
Stars: ✭ 461 (+1217.14%)
Mutual labels:  babashka
spartan.spec
A spartan version of clojure.spec compatible with babashka
Stars: ✭ 29 (-17.14%)
Mutual labels:  babashka
ffclj
Clojure ffmpeg wrapper
Stars: ✭ 42 (+20%)
Mutual labels:  babashka

Nota

nota : mark, token, note, sign.

Static Markdown Blog/Site using Fulcro & Pathom with no backend

Prerequisites

Things you need installed to use this repository

Developers

Commands and alias for tooling while developing nota.

Install dependencies

npm install

Set configurations

Set the resources/config.edn with your keys or the corresponding enviroment variables. The config is generated using shadow-cljs hook, macros and juxt/aero under the hood, check it's documentation for more information on how to use.

Aero's #profile reader conditionals available:

  • :dev for when running locally dev builds
  • :release for compiled final builds.

Where is the index.html?

The index page is being generated by a custom shadow-cljs hook all of this to be possible to use Fingerprint-Hash on the js generated.

Commands

Local build

Start shadow-cljs watching and serving main in localhost:8000

npm run watch

Tests

Start shadow-cljs watching and serving tests in localhost:8022

npm run watch:tests

Run Karma tests targeted for running CI tests with Headless Chrome Driver

npm run ci-tests

Run Babashka script tests

bb tests

Deploy

Build the release package to production deploy

npm run release

CLI Commands

For more information on optional arguments or how to use the commands you can always add an -h at the end of the command. (Eg. bb del:post -h)

Posts

Commands to manage posts markdown files and it's entry in the "database".

New Post

bb new:post "Hello World" -d "Such hello, much world" -t "first markdown"

The following prompt will be shown:

New:
{:post/name "Hello World",
 :post/description "Such hello, much world",
 :post/timestamp 1635110961351,
 :post/path "posts/hello-world.md",
 :post/tags #{"markdown" "first"},
 :slug/id "hello-world"}

Create? (Y/n):

This will create the file resources/public/posts/hello-world.md and add an entry in the database src/data.edn.

Delete Post

bb del:post hello-world

The following prompt will be shown:

Delete:
{:post/name "Hello World",
 :post/description "Such hello, much world",
 :post/timestamp 1635101110744,
 :post/path "posts/hello-world.md",
 :post/tags #{"markdown" "first"}}

Are you sure? (y/N):

This will delete the file resources/public/posts/hello-world.md and remove the entry in the database src/data.edn.

Pages

Commands to manage pages markdown files and it's entry in the "database".

New Page

bb new:page "About me" -s about

The following prompt will be shown:

New:
{:page/name "About me", :page/path "pages/about.md", :slug/id "about"}

Create? (Y/n):

This will create the file resources/public/pages/about.md and add an entry in the database src/data.edn.

Since -s (slug) is optional this command could be

bb new:page "About me"
# =>
New:
{:page/name "About me",
 :page/path "pages/about-me.md",
 :slug/id "about-me"}

Create? (Y/n):

Or even

bb new:page About
# =>
New:
{:page/name "About", :page/path "pages/about.md", :slug/id "about"}

Create? (Y/n):

Is possible to create "hidden" pages adding --hide to the command, this will filter the page from pages list resolver, but anyone will stil be able to access it via url/slug.

Delete Page

bb del:page about

The following prompt will be shown:

Delete:
{:page/name "About", :page/path "pages/about.md"}

Are you sure? (y/N):

This will delete the file resources/public/posts/hello-world.md and remove the entry in the database src/data.edn.

Tags

Tags aren't required to nota work, but you can override it's default behaviour (capitalize tag) to customize the name that will be shown.

New Tags

bb new:tag clojure "Clojure Stuff"

The following prompt will be shown:

New:
{:tag/name "Clojure Stuff", :slug/id "clojure"}

Create? (Y/n):

Delete Tags

bb del:tag clojure
Delete:
{:tag/name "Clojure Stuff"}

Are you sure? (y/N):

Projects using Nota

Acknowledgment

  • fulcro: A library for development of single-page full-stack web applications in clj/cljs
  • pathom: Pathom is a Clojure(script) engine for processing EQL requests
  • shadow-cljs: ClojureScript compilation made easy
  • babashka: Native, fast starting Clojure interpreter for scripting
  • flipps: CSS and Aesthetics
  • font-awesome: Sun and Moon SVGs

License

This is free and unencumbered software released into the public domain.
For more information, please refer to http://unlicense.org

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].