Compare commits

..

No commits in common. "dc591b29bb30576e20d4ef1cccdc5981f9b73136" and "95fd30239ee8324a0fb23d70cd6ccd2c4e081ad1" have entirely different histories.

3 changed files with 5 additions and 24 deletions

2
bob
View File

@ -79,10 +79,10 @@ update_index()
publish()
{
post=$(awk -f ${BOB_LIB}/markdown.awk ./drafts/$1.md)
template="${BOB_LIB}/template/post.html"
escaped_post=$(echo "$post" | sed 's/&/\\&/g')
# awk -v content="$post" '{gsub(/{{article}}/, content); print}' "$template" > "./posts/$1.html"
awk -v content="$escaped_post" '{gsub(/\{\{article\}\}/, content); print}' "$template" > "./posts/$1.html"
mv ./drafts/$1.md ./drafts/published/$1.md

View File

@ -29,7 +29,7 @@ function last() {
return stack[stack_pointer]
}
function replaceInline(line, result, start, end) {
function replaceEmAndStrong(line, result, start, end) {
# Replace occurrences of **...** with <strong>...</strong>
while (match(line, /\*\*([^*]+)\*\*/)) {
start = RSTART
@ -45,20 +45,6 @@ function replaceInline(line, result, start, end) {
# Build the result: before match, <em>, content, </em>, after match
line = substr(line, 1, start-1) "<em>" substr(line, start+1, RLENGTH-2) "</em>" substr(line, end+1)
}
while (match(line, /\[([^\]]+)\]\([^\)]+\)/)) {
start = RSTART
end = RSTART + RLENGTH - 1
matched = substr($0, RSTART, RLENGTH)
if (match(matched, /\[([^\]]+)\]/)) {
matched_link = substr(matched, RSTART+1, RLENGTH-2)
}
if (match(matched, /\([^\)]+\)/)) {
matched_url = substr(matched, RSTART+1, RLENGTH-2)
}
# Build the result: before match, <a href="url">, content, </a>, after match
line = substr(line, 1, start-1) "<a href=\"" matched_url "\">" matched_link "</a>" substr(line, end+1)
}
return line
}
@ -138,7 +124,7 @@ function closeOne() {
env = last()
if (env == "none") {
# If no block, print a paragraph
print "<p>" replaceInline($0) "</p>"
print "<p>" replaceEmAndStrong($0) "</p>"
} else if (env == "blockquote") {
print $0
}
@ -161,4 +147,4 @@ END {
print "</" env ">"
env = last()
}
}
}

View File

@ -104,11 +104,6 @@ declare -a tests=(
$'First paragraph\n\n code1\n code2\n\nSecond paragraph'
"<p>First paragraph</p><pre><code>code1code2</code></pre><p>Second paragraph</p>"
"Link 1"
"This is a [link](https://www.google.com) to google"
"<p>This is a <a href=\"https://www.google.com\">link</a> to google</p>"
# You can add more test cases following the same format...
)
@ -159,4 +154,4 @@ for ((i = 0; i < num_tests; i++)); do
STATUS=$((STATUS+STATUS_i))
done
exit $STATUS
exit $STATUS