https://github.com/teesloane/firn
Org Mode Static Site Generator
https://github.com/teesloane/firn
emacs org-mode rust static-site-generator
Last synced: 18 days ago
JSON representation
Org Mode Static Site Generator
- Host: GitHub
- URL: https://github.com/teesloane/firn
- Owner: teesloane
- License: epl-1.0
- Created: 2020-03-01T22:20:51.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-02T12:46:07.000Z (over 2 years ago)
- Last Synced: 2024-05-02T01:52:52.730Z (12 months ago)
- Topics: emacs, org-mode, rust, static-site-generator
- Language: Rust
- Homepage:
- Size: 49.8 MB
- Stars: 323
- Watchers: 8
- Forks: 24
- Open Issues: 5
-
Metadata Files:
- Readme: README.org
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
#+html:
Firn
#+html:A Static Site Generator for Org Mode
#+html:* What's Firn?
Firn generates a static site from org-mode files. It is a bit different from other static site generators, in that it intends to be a drop in solution for creating sites from already existing folders of org-files. Further, because org-mode has great capacity for collecting and displaying different kinds of data (links, logbooks, drawers, task keywords, tags, etc) we can make this data available when org-content is parsed into a data structure.Currently, running the firn binary on a directory of org files performs the following:
- Reads all .org files in the directory recursively.
- Parses org-files into data structures with the lovely [[https://github.com/PoiScript/orgize][Orgize]].
- Collects all file links, tags and logbooks across all files.
- Passes files through a template system called [[https://github.com/Keats/tera][Tera]], and renders to HTML.* How do I use it?
- Download the latest binary from the Github Releases page.
- Add the binary to your path, or use the =-d= flag to pass a directory to Firn#+begin_src
# navigate to a directory that has some org-files in it, then
# scaffold out a site:
firn new# go explore what was generated:
ls -la _firn# start a server and go looking for your files:
# if you have an org file called 'foo.org' it will become 'foo.html' etc.
firn serve# ready to build the output?
firn build
#+end_srcRead the full usage documentation [[https://theiceshelf.com/firn.html][here]].
* Development & Contributing
- Rust version =1.58.0=
- see =Makefile= commands.
- You'll need a folder of Org files to test on.A small roadmap can be found [[https://theiceshelf.com/firn.html#Roadmap][here.]]
* Limitations
** Development ServerThe development server is quite naive. There is no caching or diffing in the replacement of changed assets in the /static or /data folder.
** Footnotes
Due to how the parser parses footnotes, they must look like so:
#+begin_src
[fn:1]#+end_src
*Not* like this:
#+begin_src
[fn:1]
#+end_src