Automatically skip metadata headers
This commit is contained in:
parent
1cc0b977f1
commit
8624cc6871
2 changed files with 36 additions and 5 deletions
26
markdown.awk
26
markdown.awk
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
body = ""
|
body = ""
|
||||||
in_code = 0
|
first_paragraph = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function parse_header(str, hnum, content) {
|
function parse_header(str, hnum, content) {
|
||||||
|
@ -418,6 +418,17 @@ function parse_code(str, i, lines, result) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function is_metadata(str, i, lines, line) {
|
||||||
|
split(str, lines, "\n");
|
||||||
|
for (i=1; i<=length(lines); i++) {
|
||||||
|
line = lines[i];
|
||||||
|
|
||||||
|
if (! match(line, /^[^ ]+: .+$/))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
function parse_block(str) {
|
function parse_block(str) {
|
||||||
if (str == "")
|
if (str == "")
|
||||||
return "";
|
return "";
|
||||||
|
@ -498,8 +509,11 @@ function line_continues(body, line) {
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body != "")
|
if (body != "") {
|
||||||
print parse_block(body);
|
if (!(first_paragraph && is_metadata(body)))
|
||||||
|
print parse_block(body);
|
||||||
|
first_paragraph = 0;
|
||||||
|
}
|
||||||
|
|
||||||
body = $0;
|
body = $0;
|
||||||
|
|
||||||
|
@ -507,6 +521,8 @@ function line_continues(body, line) {
|
||||||
}
|
}
|
||||||
|
|
||||||
END {
|
END {
|
||||||
if (body != "")
|
if (body != "") {
|
||||||
print parse_block(body);
|
if (!(first_paragraph && is_metadata(body)))
|
||||||
|
print parse_block(body);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
15
test.sh
15
test.sh
|
@ -471,5 +471,20 @@ _ _ _
|
||||||
<hr />
|
<hr />
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
check <<-"EOF"
|
||||||
|
this: 1
|
||||||
|
is: 2
|
||||||
|
metadata: 3
|
||||||
|
---
|
||||||
|
EOF
|
||||||
|
|
||||||
|
check <<-"EOF"
|
||||||
|
this: 1
|
||||||
|
is: 2
|
||||||
|
not metadata: 3
|
||||||
|
---
|
||||||
|
<p>this: 1 is: 2 not metadata: 3</p>
|
||||||
|
EOF
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "All tests passed"
|
echo "All tests passed"
|
||||||
|
|
Loading…
Reference in a new issue