Add support for underlined headers
This commit is contained in:
parent
e15d8a56ef
commit
eacefbbbe8
2 changed files with 31 additions and 6 deletions
18
markdown.awk
18
markdown.awk
|
@ -3,13 +3,24 @@ BEGIN {
|
||||||
in_code = 0
|
in_code = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function parse_header(str) {
|
function parse_header(str, hnum, content) {
|
||||||
|
if (substr(str, 1, 1) == "#") {
|
||||||
match(str, /#+/);
|
match(str, /#+/);
|
||||||
hnum = RLENGTH;
|
hnum = RLENGTH;
|
||||||
|
|
||||||
content = parse_line(substr(str, hnum + 1, length(str) - hnum ));
|
content = parse_line(substr(str, hnum + 1, length(str) - hnum ));
|
||||||
return "<h" hnum ">" content "</h" hnum ">";
|
return "<h" hnum ">" content "</h" hnum ">";
|
||||||
}
|
}
|
||||||
|
if (match(body, /^[^\n]+\n=+$/)) {
|
||||||
|
gsub(/\n=+$/, "", str);
|
||||||
|
return "<h1>" parse_line(str) "</h1>"
|
||||||
|
}
|
||||||
|
if (match(body, /^[^\n]+\n-+$/)) {
|
||||||
|
gsub(/\n-+$/, "", str);
|
||||||
|
return "<h2>" parse_line(str) "</h2>"
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
function read_line(str, pos, res, i) {
|
function read_line(str, pos, res, i) {
|
||||||
res = "";
|
res = "";
|
||||||
|
@ -254,7 +265,7 @@ function parse_block(str) {
|
||||||
if (match(str, /^```\n.*```$/) || match(str, /^ /)) {
|
if (match(str, /^```\n.*```$/) || match(str, /^ /)) {
|
||||||
return parse_code(str);
|
return parse_code(str);
|
||||||
}
|
}
|
||||||
if (substr(str, 1, 1) == "#") {
|
if (substr(str, 1, 1) == "#" || match(body, /^[^\n]+\n[-=]+$/)) {
|
||||||
return parse_header(str);
|
return parse_header(str);
|
||||||
}
|
}
|
||||||
else if (substr(str, 1, 1) == ">") {
|
else if (substr(str, 1, 1) == ">") {
|
||||||
|
@ -278,6 +289,9 @@ function line_continues(body, line) {
|
||||||
if (match(body, /^#* /))
|
if (match(body, /^#* /))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (match(body, /^[^\n]+\n[-=]+$/))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (line != "")
|
if (line != "")
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
11
test.sh
11
test.sh
|
@ -86,6 +86,17 @@ check <<-EOF
|
||||||
<h3> Header3</h3>
|
<h3> Header3</h3>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
check <<-EOF
|
||||||
|
underlined header 1
|
||||||
|
===================
|
||||||
|
|
||||||
|
underlined header 2
|
||||||
|
-------------------
|
||||||
|
---
|
||||||
|
<h1>underlined header 1</h1>
|
||||||
|
<h2>underlined header 2</h2>
|
||||||
|
EOF
|
||||||
|
|
||||||
check <<-EOF
|
check <<-EOF
|
||||||
**bold**
|
**bold**
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in a new issue