Stog is a static web site compiler. It is able to handle blog posts as well as regular pages or any XML document in general.

The main features are:

Since release 0.12.0, Stog can be used to compile a single file to admittedly publish HTML files where PDF was used (think about math articles, for example).

Since release 0.13.0, a preview server can be used, watching for changes and updating the page in your browser when you save source files.

Examples of web sites generated by Stog:

Get the code

Stog is developped on Framagit. See the Installation page for details about downloading and installing.

License

Stog is released under GPL v3.

Files in the doc/.stog/templates/ and share directories are released in the public domain; feel free to use them for your own site.

Latest news
March 13, 2024

Release 1.0.0 of stog is available from the Installation page.

[...]
December 2, 2021

Release 0.20.0 of stog is available from the Installation page.

[...]
May 17, 2021

Release 0.19.0 of stog is available from the Installation page.

[...]
July 6, 2018

Release 0.18.0 of stog is available from the Installation page.

[...]

For information you can see the source code of the page.

<page
  main_="true"
  title="Stog"
  stog:site-description="Static blog and web site generator"
  stog:site-email="zoggy 'AT' bat8 'DOT' org"
  stog:site-url="https://www.good-eris.net/stog"
  stog:rss-length="10"
  navbar-home="active"
  stog:archived-docs="post"
  with-contents="true"
>
<stog:use>nocounter</stog:use>
<stog:sectionning>section,subsection</stog:sectionning>
<stog:hxml foo=""><hcode lang="xml" defer_="1"><contents/></hcode></stog:hxml>
<stog:ixml foo=""><icode lang="xml" defer_="1"><contents/></icode></stog:ixml>
<stog:ml foo=""><icode lang="ocaml" defer_="1"><contents/></icode></stog:ml>
<stog:nbsp>&#160;</stog:nbsp>
<stog:doccode foo="">
<p class="doccode alert alert-info">
For information you can see the <a href="#pagesource"> source code of the page</a>.
</p>
<div id="pagesource">
  <hcode lang="xml" defer_="1"><include file="&lt;stog-dir/&gt;/&lt;doc-src/&gt;" raw="true"/></hcode>
</div>
</stog:doccode>
<stog:command prompt="#"><pre><prompt/> <contents/></pre></stog:command>

<stog:also-base-rules>
<p class="alert alert-warning">This function also applies the
<doc href="funs#base">base rules</doc>.</p>
</stog:also-base-rules>

<stog:rule foo=""><ixml defer_="1">&lt;<contents/>&gt;</ixml></stog:rule>

<stog:rule-options foo=""><dl class="rule-options"><contents/></dl></stog:rule-options>
<stog:rule-option name="" default="">
<dt class="rule-option"><name/><if default=""><dummy_/><span> [="<default/>"]</span></if></dt>
<dl><contents/></dl>
</stog:rule-option>

<contents>
<p>Stog is a static web site compiler. It is able to
handle blog posts as well as regular pages or any XML document in general.
</p>
<p>
The main features are:
</p>
<ul>
<li>generate static XML/HTML documents: easy to deploy, fewer security problems,</li>
<li>handling of blog posts, with dates, topics, keywords and associated RSS feeds,</li>
<li>no new syntax,</li>
<li>based on a XML rewrite engine allowing the applicatioh of substitutions
  (rewrite rules) on some tags. Some substitutions are pre-defined, and others can be
defined in your documents or added by plugins. Content can then be written
with semantic tags,</li>
<li>support <doc href="running#multilang">multi-language</doc> sites,</li>
<li>a lot of predefined <doc href="funs">functions</doc> can be used to handle
  sectioning, table of contents, verified cross-references, ...,
</li>
<li>OCaml code can be interpreted at compilation time and the result
  included in the generated documents, which is nice to write tutorials on
  OCaml libraries, like <ext-a href="https://zoggy.github.io/ocf/doc.html">here</ext-a>,
</li>
<li>some <doc href="plugins">plugins</doc> ease the inclusion of
  <ext-a href="http://www.graphviz.org">graphviz</ext-a> graphs,
  and pictures generated by <ext-a href="http://asymptote.sourceforge.net/">Aysmptote</ext-a>
  or <doc href="latex-in-stog">LaTeX</doc>,
</li>
<li>a <doc href="markdown">markdown</doc> plugin converts markdown sources,
</li>
<li>developed in <ext-a href="http://ocaml.org/">OCaml</ext-a>
and can be extended with OCaml <doc href="writing_plugins">plugins</doc>,
but <strong>there is no need to know about OCaml to use Stog</strong>.</li>
</ul>
<p>
Since <doc href="release-0.12.0">release 0.12.0</doc>, Stog can be used
to compile a single file to admittedly publish HTML files where PDF was used
(think about <ext-a href="http://zoggy.github.io/vlmc-suffix-trie/articles/uncommon-suffix-tries.html">math articles</ext-a>, for example).
</p>
<p>
Since <doc href="release-0.13.0">release 0.13.0</doc>,
a <doc href="server">preview server</doc> can be used,
watching for changes and updating the page in your browser when you save source
files.
</p>
<p>
Examples of web sites generated by Stog:
</p>
<ul>
<li>the Stog site (you're on it!),</li>
<li><ext-a href="https://www.good-eris.net/formation-ocaml/">Introduction to OCaml</ext-a> (in french),</li>
<li><ext-a href="http://gallium.inria.fr/~scherer/gagallium/">Gagallium</ext-a>,</li>
<li><ext-a href="https://zoggy.github.io/vlmc-suffix-trie/">Vlmc-suffix-tries</ext-a>,</li>
<li>Various software websites with documentations:
 <ext-a href="https://zoggy.frama.io/chamo/">Chamo</ext-a>,
 <ext-a href="https://zoggy.github.io/genet/">Genet</ext-a>,
 <ext-a href="https://www.good-eris.net/ocaml-rdf/">OCaml-RDF</ext-a>,
 <ext-a href="https://zoggy.frama.io/erssical/">Erssical</ext-a>,
 <ext-a href="https://zoggy.github.io/ocf/">Ocf</ext-a>,
 <ext-a href="https://www.good-eris.net/xtmpl/">Xtmpl</ext-a>,
 <ext-a href="http://zoggy.frama.io/higlo/">Higlo</ext-a>,
 <ext-a href="http://oclaunch.eu.org/">OcLaunch</ext-a>,
</li>
<li><ext-a href="http://www.snesup-bourgogne.org">The SNESUP Bourgogne website</ext-a> (in french),</li>
<li><ext-a href="https://www.oranadoz.net/">Oranadoz</ext-a> (in french),</li>
<li><ext-a href="https://zoggy.good-eris.net/">Maxence Guesdon's website</ext-a>,</li>
<li><ext-a href="https://detain-et-bruant.fr/">Détain-et-Bruant's website</ext-a>.</li>
</ul>
<section title="Get the code">
<p>
Stog is developped on <ext-a href="https://framagit.org/zoggy/stog">Framagit</ext-a>.
See the <page href="/install"/> page for details about downloading and installing.
</p>
</section>
<section title="License">
<p>
Stog is released under <ext-a href="http://www.gnu.org/copyleft/gpl.html">GPL v3</ext-a>.
</p>
<p>
Files in the <icode>doc/.stog/templates/</icode> and <icode>share</icode>
directories are released in the public domain; feel free to use
them for your own site.
</p>
</section>

<section title="Latest news">
<documents type="post" max="4"/>
</section>
</contents>
</page>