{"id":25235358,"url":"https://github.com/rafaeldelboni/nota","last_synced_at":"2025-10-26T10:31:52.780Z","repository":{"id":40259883,"uuid":"411871452","full_name":"rafaeldelboni/nota","owner":"rafaeldelboni","description":"Static Markdown Blog/Site using Fulcro \u0026 Pathom with no backend","archived":false,"fork":false,"pushed_at":"2024-12-25T11:38:29.000Z","size":11764,"stargazers_count":42,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-06T11:57:50.672Z","etag":null,"topics":["babashka","blog","clojure","clojurescript","fulcro","markdown","pathom"],"latest_commit_sha":null,"homepage":"https://rafael.delboni.cc/nota","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rafaeldelboni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-30T00:34:03.000Z","updated_at":"2024-12-25T11:35:08.000Z","dependencies_parsed_at":"2023-02-10T18:45:52.288Z","dependency_job_id":null,"html_url":"https://github.com/rafaeldelboni/nota","commit_stats":null,"previous_names":[],"tags_count":7,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaeldelboni%2Fnota","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaeldelboni%2Fnota/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaeldelboni%2Fnota/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaeldelboni%2Fnota/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rafaeldelboni","download_url":"https://codeload.github.com/rafaeldelboni/nota/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238310525,"owners_count":19450880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babashka","blog","clojure","clojurescript","fulcro","markdown","pathom"],"created_at":"2025-02-11T14:33:12.050Z","updated_at":"2025-10-26T10:31:47.476Z","avatar_url":"https://github.com/rafaeldelboni.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nota\n\u003e nota : mark, token, note, sign.  \n\nStatic Markdown Blog/Site using Fulcro \u0026amp; Pathom with no backend\n\n# Prerequisites\nThings you need installed to use this repository\n\n- [nodejs](https://nodejs.dev/download)\n- [clojure](https://clojure.org/guides/getting_started)\n- [babashka](https://github.com/babashka/babashka#installation)\n\n# Developers\nCommands and alias for tooling while developing nota.\n\n## Install dependencies\n```bash\nnpm install\n```\n\n## Set configurations\nSet the [`resources/config.edn`](https://github.com/rafaeldelboni/nota/blob/main/resources/config.edn) with your keys or the corresponding enviroment variables.\nThe config is generated using shadow-cljs hook, macros and [juxt/aero](https://github.com/juxt/aero) under the hood, check it's documentation for more information on how to use.  \n\n_[Aero's #profile](https://github.com/juxt/aero#profile)_ reader conditionals available:\n - `:dev` for when running locally dev builds\n - `:release` for compiled final builds.\n\n## Where is the `index.html`?\nThe index page is being generated by a custom [shadow-cljs hook](https://github.com/rafaeldelboni/nota/blob/main/src/nota/hooks/index.clj)\nall of this to be possible to use [Fingerprint-Hash](https://shadow-cljs.github.io/docs/UsersGuide.html#NameHashing) on the js generated.\n\n## Commands\n\n### Local build\nStart shadow-cljs watching and serving main in [`localhost:8000`](http://localhost:8000)\n```bash\nnpm run watch\n```\n\n### Tests\nStart shadow-cljs watching and serving tests in [`localhost:8022`](http://localhost:8022)\n```bash\nnpm run watch:tests\n```\n\nRun **Karma** tests targeted for running CI tests with *Headless Chrome Driver*\n```bash\nnpm run ci-tests\n```\n\nRun **Babashka** script tests\n```bash\nbb tests\n```\n\n### Deploy\nBuild the release package to production deploy\n```bash\nnpm run release\n```\n\n# CLI Commands\nFor 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`)\n\n## Posts\nCommands to manage posts markdown files and it's entry in the \"database\".\n\n### New Post\n```bash\nbb new:post \"Hello World\" -d \"Such hello, much world\" -t \"first markdown\"\n```\nThe following prompt will be shown:\n```bash\nNew:\n{:post/name \"Hello World\",\n :post/description \"Such hello, much world\",\n :post/timestamp 1635110961351,\n :post/path \"posts/hello-world.md\",\n :post/tags #{\"markdown\" \"first\"},\n :slug/id \"hello-world\"}\n\nCreate? (Y/n):\n```\nThis will **create** the file `resources/public/posts/hello-world.md` and add an entry in the database `src/data.edn`.\n\n### Delete Post\n```bash\nbb del:post hello-world\n```\nThe following prompt will be shown:\n```bash\nDelete:\n{:post/name \"Hello World\",\n :post/description \"Such hello, much world\",\n :post/timestamp 1635101110744,\n :post/path \"posts/hello-world.md\",\n :post/tags #{\"markdown\" \"first\"}}\n\nAre you sure? (y/N):\n```\nThis will **delete** the file `resources/public/posts/hello-world.md` and remove the entry in the database `src/data.edn`.\n\n## Pages\nCommands to manage pages markdown files and it's entry in the \"database\".\n\n### New Page\n```bash\nbb new:page \"About me\" -s about\n```\nThe following prompt will be shown:\n```bash\nNew:\n{:page/name \"About me\", :page/path \"pages/about.md\", :slug/id \"about\"}\n\nCreate? (Y/n):\n```\nThis will **create** the file `resources/public/pages/about.md` and add an entry in the database `src/data.edn`.\n\nSince `-s` (slug) is optional this command could be\n```bash\nbb new:page \"About me\"\n# =\u003e\nNew:\n{:page/name \"About me\",\n :page/path \"pages/about-me.md\",\n :slug/id \"about-me\"}\n\nCreate? (Y/n):\n```\nOr even\n```bash\nbb new:page About\n# =\u003e\nNew:\n{:page/name \"About\", :page/path \"pages/about.md\", :slug/id \"about\"}\n\nCreate? (Y/n):\n```\n\u003e 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.\n\n### Delete Page\n```bash\nbb del:page about\n```\nThe following prompt will be shown:\n```bash\nDelete:\n{:page/name \"About\", :page/path \"pages/about.md\"}\n\nAre you sure? (y/N):\n```\nThis will **delete** the file `resources/public/posts/hello-world.md` and remove the entry in the database `src/data.edn`.\n\n## Tags\nTags aren't required to nota work, but you can override it's default behaviour (capitalize tag) to customize the name that will be shown.\n\n### New Tags\n```bash\nbb new:tag clojure \"Clojure Stuff\"\n```\nThe following prompt will be shown:\n```bash\nNew:\n{:tag/name \"Clojure Stuff\", :slug/id \"clojure\"}\n\nCreate? (Y/n):\n```\n\n### Delete Tags\n```bash\nbb del:tag clojure\n```\n```bash\nDelete:\n{:tag/name \"Clojure Stuff\"}\n\nAre you sure? (y/N):\n```\n# Projects using Nota\n  - https://rafael.delboni.cc/\n\n# Acknowledgment\n  - [fulcro](https://github.com/fulcrologic/fulcro): A library for development of single-page full-stack web applications in clj/cljs\n  - [pathom](https://github.com/wilkerlucio/pathom): Pathom is a Clojure(script) engine for processing EQL requests\n  - [shadow-cljs](https://github.com/thheller/shadow-cljs): ClojureScript compilation made easy\n  - [babashka](https://github.com/babashka/babashka): Native, fast starting Clojure interpreter for scripting\n  - [flipps](https://github.com/flipps): CSS and Aesthetics\n  - [font-awesome](https://fontawesome.com/license): Sun and Moon SVGs\n\n# License\nThis is free and unencumbered software released into the public domain.  \nFor more information, please refer to \u003chttp://unlicense.org\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaeldelboni%2Fnota","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafaeldelboni%2Fnota","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaeldelboni%2Fnota/lists"}