weblorg

Homepage: https://emacs.love/weblorg

Author: Lincoln Clarete

Updated:

Summary

Static Site Generator for org-mode

Commentary

Generate static websites off of Org Mode sources.

The API is modeled as a simplified version of a generic HTTP
framework.  Simplified in the meaning that it doesn't give access
to the request and response objects, but allow interacting with the
input throughout a few different points of a defined pipeline.

Aiming to find balance between flexibility and simplicity, the
general principle of this software is to be designed as a set of
modular components with default configuration that is ready to go
for valuable use cases.

1. Use-case: transform a list of Org-Mode files in HTML:

   (weblorg-route
    :input-pattern "*.org"
    :template "post.html"
    :url "/{{ slug }}.html")
   (weblorg-export)

2. Use-case: Link documents from different routes

   a. publish.el looks like this:

      (weblorg-route
       :name "docs"
       :input-pattern "*.org"
       :input-exclude "index.org$"
       :template "post.html"
       :url "/{{ slug }}.html")
      (weblorg-route
       :name "index"
       :input-pattern "index.org"
       :template "index.html"
       :url "/index.html")
      (weblorg-export)

   b. a-post.org looks something like this:

      #+TITLE: A Post
      #+DATE: <2020-08-30>
      * Intro
        If you liked this, make sure you also check out
        [[url_for:docs,slug=another-post][Another Post]].

   c. post.html could looks something like this

      

{{ post.title }}

{{ post.html|safe }}
Home Behind the scenes, there's a global variable `weblorg--sites' that contains a hash-table with all the weblorg-sites, indexed by the `:base-url' parameter. A default weblorg site instance is created if `weblorg-route' doesn't receive an explicit `:site' parameter.

Dependencies