rorono
7/14/2017 - 6:26 AM

:hankey: markdownパーサ

:hankey: markdownパーサ

start = doc
doc = block:block + {
	return `<body>${block.join("")}</body>`;
}
block = headline
			 / paragraph

headline = prefix:("#" / "##" / "###" / "####" / "#####" / "######") textline:TEXT_LINE EOS {
	return `<h${prefix.length}>${textline}</h${prefix.length}>`
}
paragraph = textline:TEXT_LINE+ {
	return `<p>${textline.join("<br />")}</p>`
}

TEXT_LINE = ch:[^\n]+ EOS { return ch.join(""); }
BLANK_LINE = [\n]


EOS
  = EOL
  / EOF
EOL
  = "\n"
EOF
  = !.