blackhole://nilFM

eureka

eureka is a simple static site generator based on Devine Lu Linvega's generator for 100r.co. It renders this site.

eureka simply reads .htm files in inc/ and applies a template around them, giving them a <header>, <nav>, and <footer>. The <nav> content is also located in inc/meta.nav.htm, and, contrary to 100r.co's engine, special rules are applied when templating around it to render the landing page (index.html).

The markup language looks like this:

// link to page
{page name}

// transclude page
{/page name}

// shorthand for arbitary link
{*destination url|text}

// shorthand for an image you can click to see the full sized version
{:anchor-id|image url|alt text}

// shorthand for an image with arbitrary link destination
{?anchor-id|destination url|image url|alt text}

// shorthand for an audio player
{_/path/to/media}

//shorthand for a video player
{]id|/path/to/video|/path/to/thumbnail|fallback text for download link (if HTML5 video is not supported)}

// shorthand for paragraphs, can embed other markup inside it
{&paragraph text {with a link} {@and some bold text}}

// shorthand for ordered lists, can embed other markup inside it
{#
  {-item one}
  {-item two}
  {-item three}
}

// shorthand for unordered lists, can embed other markup inside it
{,
  {-item one}
  {-item two}
  {-item three}
}

// shorthand for bold
{@bold text}

// shorthand for italic
{\italic text}

// shorthand for code
{`short code}

// shorthand for pre
{$longer code}

// shorthand for quote
{'short quote}

// shorthand for blockquote
{>longer quote}

// shorthand for strikethrough
{~crossed-out text}

// shorthand for level 3 heading (levels one and two are taken care of by the site title and the page title)
{!heading text}

// shorthand for level 4 heading
{.heading text}

//shorthand for tables
{[column 1 header|column 2 header|column 3 header}
{|simple data|{@bold data}|{*https://nilfm.cc|link data}}
{|more|and more|and more data!}
{;}

// shorthand for publish date (eg, for blog posts; renders as <time class='publish-date'>)
{+2022-02-22}

// shorthand for explicit monospace, sans, and serif font respecively:
{=some mono text}
{(some sans serif text}
{)some serif text}

// shorthand for a pictured directory/list item
{%page name|picture}

// shorthand for a shop listing
{^payment-link|description|img1|alttext1|...|imgn|alttextn}

eureka defines the following constants as C macros in the config.h to allow easy customization:

In addition, there is a thumbnailer that uses ImageMagick to create low-bandwidth thumbnails at 500px wide and 16 colors, and store them in a subdirectory alongside the full size images. eureka has a function to automatically replace the inline images within pages with the thumbnails, but leave the links they point to untouched. This reduced the page size of images, one of the heaviest pages on this site at the time of writing, from about 13MB to just under 1MB.

eureka and its helpers tw.sh and underbbs.sh expect the twtxt file to be in descending order (latest first), although this may change in the future. In the future honknet and other syndication will be handled by underbbs's CLI.'