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 line -> exp EOL exp -> heading | text | link | image | rule | mono | LITERAL heading -> h1 | h2 | h3 h1 -> HEADING LITERAL h2 -> SUBHEADING LITERAL h3 -> SUBSUBHEADING LITERAL text -> TEXT LITERAL mono -> MONOTOGGLE link -> page_link | ext_link page_link -> PAGELINK alt ext_link -> EXTLINK url alt image -> IMAGE url width alt -> LITERAL url -> TOK width -> TOK rule -> RULE HEADING -> "#" SUBHEADING -> "##" SUBSUBHEADING -> "###" TEXT -> "=>t" PAGELINK -> "=>p" EXTLINK -> "=>l" IMAGE -> "=>i" RULE -> "---" MONOTOGGLE -> [triple backtick] LITERAL -> LITERAL TOK | TOK | EMPTY EOL -> "\n" EMPTY -> "" TOK -> [token]
about

<><><>

BY-NC-SA 4.0