转换 Vimwiki 为 Markdown
sed -f ex -i *.md
README
相对 Wiki 语法,和 Wiki 对应工具支持情况,我更加喜欢 Markdown 了。
本地配合使用 Vimwiki 来编辑查看,发布使用 nico 来转换,而且有 Github 的原生支持,
使用 Markdown 是不二之选。
为了减少转换工作量,我简要写了这个脚本,可以初步将 vimwiki 语法的项目,
自动转换成 markdown 语法。
转换的内容包括:
- header
- codes
- wikiword.
- links
- images
- comments
- %toc
- %title
- %nohtml
Usage
假设上面的脚本保存结构如下:
/
|- convert.sh
|- ex
|- vimwiki/
|- index.wiki
`- vim.wiki
在 convert.sh 同级目录执行:
$ ./convert.sh vimwiki/*.wiki
然后自动或手动调整之后,删除 .wiki 文件即可。
Codes
convert.sh
1#!/usr/bin/env bash
2
3for x
4do
5 filename=$(echo $x|sed -e "s/\.wiki$/.md/")
6 sed -f ex $x > $filename
7done
ex
s/# \(.*\)$/* \1/g
s/^= \(.*\) =$/# \1/g
s/^== \(.*\) ==$/## \1/g
s/^=== \(.*\) ===$/### \1/g
s/^==== \(.*\) ====$/#### \1/g
s/^===== \(.*\) =====$/##### \1/g
s/^====== \(.*\) ======$/###### \1/g
s/{{{class="brush: *\([^"]*\)"/\`\`\`\1/g
s/{{{class="\([^"]*\)"/\`\`\`\1/g
s/{{{/\`\`\`/g
s/}}}/\`\`\`/g
s/\[\([^] ]\{1,\}\)\]\([^](]\)/\2/g
s/\[\([^] ]\{1,\}\)\]$//g
s/\[\[\(\([^|]\{1,\}\)\|\)\([^]]\{1,\}\)\]\]/[\3](\2.md)/g
s/\[\[\([^]]\{1,\}\)\]\]/[\1](\1.md)/g
s/\[\(https\{0,1\}:\/\/[^ ]*\) \([^]]*\)\]/[\2](\1)/g
s/%% \(.*\)//g
/%toc.*/d
s/%title \(.*\)/# \1/g
s/%nohtml/- status: draft/g
Tags: Vimwiki, Markdown
Published on 2014-03-31