Section = SectionHeader ws! Paragraph*
SectionHeader = "==" SectionHeaderBody "=="
SectionHeaderBody = "=" SectionHeaderBody "="
- > ws! alphanum++ ws!
+ > ws! text ws!
sp = " "**
blank = sp! "\n" sp! "\n" ws!
Paragraph = { Blockquote:: "\"\" " text }
> HR:: { "---" "-"* }
- > P:: { text }
+ > { OL:: (text &~ (text! ws! {oli}+)) ws! {oli}+ }
+ > P:: { text }
onums = nums (". "|") ")!
any = ~[]*
Item*/ws =
blockquote
// > ^"#" ws! { ~[]* }
- > { UL:: uli+/ws }
- | { OL:: oli+/ws }
> Verbatim
> InlineGrammar
> link
> structured
> styled
> (Chars:: alphanum++)
- > "\"" text "\""
+ > Quotes:: "\"" text "\""
> (Symbol:: sym++)
> { Block:: text }
block = { text }
-link = text:({ text }|word) "->" href:(url|email)
+link = text:({ text }|word) "->" ws! href:href
+href = url | email | {href}
structured = command & "\\" ([a-zA-Z0-9]++)! block?
> glyph
command = "\\" [a-z]++
+
// URLs //////////////////////////////////////////////////////////////////////////////
// interesting opportunity to show off boolean grammars here: define other
host:host
port:(":" nums)?
path:("/" urlpath)?
- -> ~urlv
+ ref:("#" urlpath)?
+ -> ~(urlv|[\#])
url_login = Login:: username:username password:(":" password) "@"
method = [+\-.a-z0-9]+
domain = (part +/ ".") -> ~"."