@@ -4,7 +4,7 @@ line = _{ expr | newline }
44expr = _{
55 comment
66 | html
7- | meta_info
7+ | front_matter
88 | block
99 | inline
1010 | td_tag
@@ -21,8 +21,8 @@ CJK = {
2121
2222/// Block elements, e.g.: paragraphs, lists, code blocks, etc.
2323block = ${
24- meta_tags
25- | hr
24+ hr
25+ | meta_tags
2626 | list
2727 | codeblock
2828 | block_item
@@ -83,18 +83,20 @@ list_prefix = @{
8383/// author: Jason Lee
8484/// tags: Rust, JavaScript
8585/// ------------------
86- meta_info = ${ meta_wrap ~ newline ~ meta_pair* ~ meta_wrap ~ newline* }
87- meta_wrap = @{ "-"{3, } }
88- meta_pair = ${ meta_key ~ string ~ newline }
89- meta_key = @{ (!(":" | newline) ~ identifier)* ~ ":" ~ " "* }
86+ front_matter = ${ front_matter_tag ~ newline ~ (meta_tags | meta_pair) * ~ front_matter_tag ~ newline* }
87+ front_matter_tag = @{ "-"{3, } }
88+ meta_pair = ${ meta_key ~ string ~ newline }
89+ meta_key = @{ (!(":" | newline) ~ identifier)* ~ ":" ~ " "* }
9090
9191/// Ignore tags in Markdown, e.g.: "tags: 美国, 中国"
9292meta_tags = @{ meta_key ~ meta_tags_val+ ~ meta_tags_item ~ newline }
9393meta_tags_val = @{ meta_tags_item ~ meta_tags_divider }
9494meta_tags_item = { (!(newline | ",") ~ (CJK | " " | ASCII_ALPHANUMERIC))* }
9595meta_tags_divider = { " "* ~ "," ~ " "* }
96- image_prefix = @{ "!" }
97- img = ${ image_prefix ~ (wikilinks | link) }
96+
97+ /// Matches image link, e.g.: `` or `![[ImageName]]`
98+ image_prefix = @{ "!" }
99+ img = ${ image_prefix ~ (wikilinks | link) }
98100
99101/// Matches link, e.g.: `[Hello](/hello)` or `[Hello]`
100102link = ${ link_string_wrap ~ href? }
@@ -123,4 +125,4 @@ close_comment = @{ "-->" }
123125paren = { open_paren ~ inner_paren ~ paren* ~ inner_paren* ~ close_paren | open_paren ~ close_paren }
124126inner_paren = { (!(newline | open_paren | close_paren) ~ ANY)+ }
125127open_paren = { "(" }
126- close_paren = { ")" }
128+ close_paren = { ")" }
0 commit comments