jemdoc-rs 0.8.0

A Rust rewrite of jemdoc, a light text-based markup language for creating static websites.
# jemdoc: menu{MENU}{directives.html}, nodate
# jemdoc: showsource
= Header Directives and Configuration

== Header Directives

Directives are placed at the top of a +.jemdoc+ file as special comments.  They control page-level settings.

~~~
{}{jemdoc}
# jemdoc: menu{MENU}{thispage.html}
# jemdoc: addcss{custom.css}
# jemdoc: title{Custom Window Title}
~~~

=== Available Directives

~~~
{}{table}{directives-table}
Directive                               | Description                                               ||
+menu\{FILE\}\{current.html\}\{prefix\}+   | Add a navigation menu (prefix is optional)            ||
+addcss\{file.css\}+                    | Include an additional CSS file                            ||
+addjs\{file\}+                         | Include an additional JavaScript file                     ||
+analytics\{G-XXXXXXXXXX\}+             | Add Google Analytics 4 tracking                           ||
+title\{Window Title\}+                 | Override the browser window title                         ||
+nodefaultcss+                          | Don't include the default CSS                             ||
+nofooter+                              | Hide the page footer                                      ||
+nodate+                                | Hide the "last updated" date                              ||
+notime+                                | Show date only (no time) in the footer                    ||
+noeqs+                                 | Disable equation processing and MathJax loading           ||
+fwtitle+                               | Use full-width title (spans above the menu)               ||
+showsource+                            | Add a link to the +.jemdoc+ source in the footer
~~~

Multiple directives can go on a single line, separated by commas:

~~~
{}{jemdoc}
# jemdoc: menu{MENU}{page.html}, analytics{G-XXXXXXXXXX}, showsource
~~~

== Menu Files

A +MENU+ file defines the navigation sidebar.  Non-indented lines are category headers; indented lines with +\[link\]+ are menu items.  See the +MENU+ file used by this example site.

- The /current page/ is automatically highlighted based on the second argument of the +menu+ directive.
- Prefix a link with +\\+ to open it in a new tab (useful for external links).
- Menu items open in the /same tab/ by default (unlike text links, which open in a new tab).

=== Subfolder Pages

For pages in subdirectories, use the third +prefix+ argument:

~~~
{}{jemdoc}
# jemdoc: menu{MENU}{}{../}
~~~

This prepends +..\/+ to each menu link, so they resolve correctly from the subfolder.

== Configuration Files

jemdoc-rs uses a default HTML template that can be partially or fully overridden.  Run +jemdoc-rs \-\-show\-config+ to see all configurable sections.

=== Example Configuration

~~~
{mysite.conf}{commented}
# Override the body start to add a favicon
[bodystart]
</head>
<link rel="icon" href="img/icon.png" type="image/x-icon" />
<body>

# Override the default CSS path
[defaultcss]
<link rel="stylesheet" href="/css/jemdoc.css" type="text/css" />
~~~

Apply with +-c+:

~~~
{}{sh}
jemdoc-rs -c mysite.conf *.jemdoc
~~~

Multiple +-c+ flags can be used; later files take precedence.

== This Page

This page uses +showsource+---check the footer for a link to its +.jemdoc+ source.