概要
- WESEEK, Inc. で、PukiWiki Plus! から crowi-plus に移行する際に使ったワンライナー
- みんなでせこせこ「3pages/day」とかのノルマを設けて1週間ほどかけて移行
- Pukiwiki 記法の文書を Markdown に変換する
- Sonots' PukiWiki Plugin の lsx の記法(
#lsx
)は crowi-plugin-lsx の記法に置換
コード
PukiWiki の文書は予め pukiwiki.txt
として保存
cat pukiwiki.txt | sed -e 's/ \[#[0-9a-z]\+\]$//g' -e 's/^\*\*\*/###/g' -e 's/^\*\*/##/g' -e 's/^\*/#/g' -e 's/^---/ -/g' -e 's/^--/ -/g' -e 's/^\(\s*\)-\([^ ]\)/\1- \2/g' -e 's/&br;/<br>/g' -e 's/^#pre{*/```/g' -e 's/^}}*/```/g' -e 's/%%/~~/g' -e "s/^\#lsx/`echo -ne '\u0024'`lsx()/g" | less
コード詳細
- 末尾のハッシュを削る
-e 's/ \[#[0-9a-z]\+\]$//g'
- 見出しを # に変更
-e 's/^\*\*\*/###/g' -e 's/^\*\*/##/g' -e 's/^\*/#/g'
- リストの
--/---
を\t\t-/\t-
に変換する-e 's/^---/ -/g' -e 's/^--/ -/g'
-
-
の後が空白じゃない場合はスペースを一つ入れる-e 's/^\(\s*\)-\([^ ]\)/\1- \2/g'
-
&br;
を<br>
へ変換する-e 's/&br;/<br>/g'
-
#pre{{
を```
に変換する-e 's/^#pre{*/```/g'
-
}}
を```
に変換する-e 's/^}}*/```/g'
-
- `#pre{{` の閉じタグ以外(`#table_edit2`など)でも使われているが、とりあえず一律変換
- 打ち消し線 は、
%%
を~~
に変換する -e 's/%%/~~/g'
-
#lsx
を$lsx()
に変換する-e "s/^\#lsx/`echo -ne '\u0024'`lsx()/g"
Lisence
- Public Domain
- 編集リクエスト歓迎