diff options
Diffstat (limited to '')
-rwxr-xr-x | tools/convert-from-octopress.awk | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/convert-from-octopress.awk b/tools/convert-from-octopress.awk new file mode 100755 index 00000000..20556044 --- /dev/null +++ b/tools/convert-from-octopress.awk @@ -0,0 +1,36 @@ +#!/usr/bin/env gawk -f +/---/ { meta_delim_count++ } +{ + if (meta_delim_count >= 2) { + # remove additional metadata (title, url, link text) other than the + # language from a Octopress fenced (backtick) code block + if (match($0, /\s*```\s*[[:alnum:]_-]+/, matchobj)) { + print matchobj[0] + next + } + + # convert Octopress {% %} plugin blocks to verbatim (in fenced code + # blocks); this can't really handle multiline plugins (e.g., + # blockquote), but sacrifices need to be made anyway + if (match($0, /\s*{%.+%}\s*/)) { + print "```" + print + print "```" + next + } + + # correct internal links + $0 = gensub(/\/blog\/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/([a-zA-Z0-9%_-]+)\//, \ + "/blog/\\1-\\2-\\3-\\4.html", "g") + print + } else if ($1 == "layout:" || $1 == "comments:" || $1 == "categories:") { + next + } else if ($1 == "date:") { + print + printf "date-display: " + # requires date from coreutils; BSD date doesn't work + system("date -d "$2" +'%B %_d, %Y'") + } else { + print + } +} |