概要
- 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
- 編集リクエスト歓迎
