filament

filament is a lightweight markup dialect designed for seol and implemented by forester. it uses text files with a ".fil" extension by convention.

filament is born of a desire for a permanent format for my recorded information. it is designed in the spirit of permacomputing.

seol
forester
permacomputing

dialect

filament's markup dialect is designed to be: very simple and lightweight, easy to implement, easy to efficiently translate into other markup languages, and easy for humans to read and remember syntax.

the gemini protocol is a major inspiration for filament. some decisions were made to allow more direct translation into gemtext (links only on their own line, for example).

gemtext

headings

# heading ## sub heading ### sub sub heading

text

=>t arbitrary text

internal wiki page link

=>p page optional readable name

hyperlink

=>l http://url.com readable name =>l gemini://citation.gmi readable name

image

=>i assets/image.jpg width

horizontal rule

---

toggle unformatted monospace mode

[triple backticks]

context-free grammar

block -> line | block line | mono | block mono line -> exp EOL exp -> heading | text | link | image | rule heading -> h1 | h2 | h3 h1 -> HEADING LITERAL h2 -> SUBHEADING LITERAL h3 -> SUBSUBHEADING LITERAL text -> TEXT LITERAL link -> page_link | ext_link page_link -> PAGELINK TOK ext_link -> EXTLINK TOK LITERAL image -> IMAGE TOK TOK rule -> RULE mono -> MONOTOGGLE EOL monocontent MONOTOGGLE monocontent -> LITERAL EOL | monocontent LITERAL EOL HEADING -> "#" SUBHEADING -> "##" SUBSUBHEADING -> "###" TEXT -> "=>t" PAGELINK -> "=>p" EXTLINK -> "=>l" IMAGE -> "=>i" RULE -> "---" MONOTOGGLE -> [triple backtick] LITERAL -> LITERAL TOK | TOK | EMPTY EOL -> [newline] EMPTY -> "" TOK -> [token]
about

<><><>

BY-NC-SA 4.0