patched https://github.com/niklasfasching/go-org for orgwiki
Hugo defaults to serving files with pretty urls [1] - this means `/posts/foo.org` is served at `/posts/foo/`. This works because servers default to serving index.html when a directory is specified and hugo renders the post to `/posts/foo/index.html` instead of `/posts/foo.html`. To make relative links work we need to (1) remove the fake `foo/` subdirectory from unrooted links and (2) replace any `.org` suffix with `/`. [1] https://gohugo.io/content-management/urls/#pretty-urls |
||
---|---|---|
.github/workflows | ||
blorg | ||
etc | ||
org | ||
.gitignore | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.org |
go-org
An Org mode parser and static site generator in go. Take a look at github pages
- for org to html conversion examples
- for a static site generated by blorg
- to try it out live in your browser
Please note
- the goal for the html export is to produce sensible html output, not to exactly reproduce the output of
org-html-export
. - the goal for the parser is to support a reasonable subset of Org mode. Org mode is huge and I like to follow the 80/20 rule.
usage
command line
$ go-org
USAGE: org COMMAND [ARGS]
- org render FILE OUTPUT_FORMAT
OUTPUT_FORMAT: org, html, html-chroma
- org blorg init
- org blorg build
- org blorg serve
as a library
see main.go and hugo org/convert.go
development
make setup install
- change things
make preview
(regenerates fixtures & shows output in a browser)
in general, have a look at the Makefile - it's short enough.
resources
-
test files
- https://orgmode.org/manual/
- https://orgmode.org/worg/dev/org-syntax.html
-
https://code.orgmode.org/bzg/org-mode/src/master/lisp/org.el
- https://code.orgmode.org/bzg/org-mode/src/master/lisp/org-element.el
- mostly those & ox-html.el, but yeah, all of https://code.orgmode.org/bzg/org-mode/src/master/lisp/
- existing Org mode implementations: org, org-ruby, goorgeous, pandoc