lark

lark is a light markup language I developed and implemented in golang. lark grew out of some DSLs I wrote for the article-based "HTML journal" format, and was designed to bridge the gap between Markdown and gemtext, hopefully being:

  1. Human readable
  2. Easy to implement
  3. Compatible with HTML journals

If you want

then lark might just be for you!

I'm currently redesigning lark to use more semantic HTML tags in its encoding and to be a generally cleaner design. I didn't use it much in anger when I first wrote it, so this time round with the HD-DN redesign I'm going to be using it much more. The biggest design change is to do with h1 tags.

lark is in the public domain and I don't exert any rights on it. The codebase is on Github for now.

Vim syntax highlighting

" syntax/lark.vim
" Match lark components
syntax match larkSectionDivider /^---.\+$/
syntax match larkArticleDivider /^\*\*\*.\+$/

syntax match larkHeader /^=.\+$/
syntax match larkSubHeader /^-[^--].\+$/
syntax match larkSubSubHeader /^_.\+$/
syntax match larkDate /^+.\+$/
syntax match larkAuthor /^\~.\+$/

syntax match larkLink /^@.\+$/
syntax match larkImage /^!.\+$/

syntax match larkBlockquote /^>.\+$/

syntax match larkUnorderedList /^\*[^\*\*].\+$/
syntax match larkOrderedList /^:.\+$/

syntax match larkPreBlock /^'.\+$/
syntax match larkCodeBlock /^`.\+$/

" Highlighting rules
hi def link larkSectionDivider Ignore
hi def link larkArticleDivider Ignore

hi def link larkHeader PreProc
hi def link larkSubHeader larkHeader
hi def link larkSubSubHeader larkHeader
hi def link larkDate larkHeader
hi def link larkAuthor larkHeader

hi def link larkLink Underlined
hi def link larkImage Underlined

hi def link larkBlockquote Comment

hi def link larkUnorderedList Identifier
hi def link larkOrderedList larkUnorderedList

hi def link larkPreBlock Statement
hi def link larkCodeBlock larkPreBlock