SunokoDoc
上記文書は以下のように作成されています。
<SunokoDoc>
●SunokoDocとは
私 sunoko が勝手に作成した [[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]]
互換の「テキスト→ HTML」変換ツールです。
Wiki で作成する文書を、生テキストでもより自然に読めることを目的にして
います。
[[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]] の文法に以
下の処理を追加してあります。
・行頭インデントが可能
・見出し文字拡張「●」「■」使用可能
・箇条書きは各種Wikiの文法を取り入れている
・・箇条書き「・」「*」「-」
・・番号付「#」「+」
●使い方
Wiki文書を
<<<
<SunokoDoc>
テキスト
:
</SunokoDoc>
>>>
で囲うことでSunokoDocにて変換します。それ以外は
[[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]]として扱います。
</SunokoDoc>
もしも、HikiDocで作成すると以下となります。
!SunokoDocとは
私 sunoko が勝手に作成した [[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]]
互換の「テキスト→ HTML」変換ツールです。
Wiki で作成する文書を、生テキストでもより自然に読めることを目的にして
います。
[[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]] の文法に以
下の処理を追加してあります。
*行頭インデントが可能
*見出し文字拡張「●」「■」使用可能
*箇条書きは各種Wikiの文法を取り入れている
**箇条書き「・」「*」「-」
**番号付「#」「+」
!使い方
Wiki文書を
<SunokoDoc>
テキスト
:
</SunokoDoc>
で囲うことでSunokoDocにて変換します。それ以外は
[[HikiDoc|http://projects.netlab.jp/hikidoc/?FrontPage.ja]]として扱います。
より自然な感じで生テキストを読めることがわかるかと思います。
注意事項
行頭インデントを許している関係上、Wiki の特徴である、 行頭スペース は <pre> するということは出来ません。 よって、<pre>したい場合には、明示的に <<< 〜 >>> で挟んでください。
箇条書きは、複数行にわたっていてもそれなりに解釈します。例えば以下のよ うな箇条書きテキストを書くと、
・箇条書き例です。 ・こんな感じに箇条書きを複数行にすることが出来ます。これにより、テキス ト整形処理機能が充実しているエディタを用いて、通常のメールのような文 章を作成することが出来ます。 ・箇条書き例です。
- 箇条書き例です。
- こんな感じに箇条書きを複数行にすることが出来ます。これにより、テキスト整形処理機能が充実しているエディタを用いて、通常のメールのような文章を作成することが出来ます。
- 箇条書き例です。
箇条書きの終了は、空行にて判断しています。よって、箇条書きの最後には必ず空 行をいれるようにしてください。
ソース
ここのHikiで使用しているソースは以下です。style/sunokodoc を作成して使用しています。
# Copyright (c) 2007, sunoko <sunoko@avis.ne.jp>
# All rights reserved.
# 2007/03/11 罫線「----」に未対応だったので対応する。
# 行頭から「^----」の場合のみ罫線とする。
require 'style/default/hikidoc'
class SunokoDoc < HikiDoc
def to_hiki
r = self
r = r.gsub(/(^[ \t]*<<<[^\n]*\n)(.*?)(^[ \t]*>>>[^\n]*\n)/m) { "<<<\n" + pre_f($2) + ">>>\n" }
r = r.gsub(/(^----$)/m) { pre_f($1) }
r = r.gsub(/(^[ \t]+)|([ \t]+$)/, "")
r = r.gsub(/^([●■\.]+)/){$1.gsub(/[●■\.]/,"!")}
r = r.gsub(/(^[ \t]*[\*\+\-\#・])(.*?)(\n\n)/m) { li($1+$2)+"\n" }
r = r.gsub(/(^<<<[^\n]*\n)(.*?)(^>>>[^\n]*\n)/m) { "<<<\n" + pre($2) + ">>>\n"}
r = r.gsub(/(^#----$)/m) { pre($1) }
end
def to_wiki
r = self
r = r.gsub(/(^<SunokoDoc>[^\n]*\n)(.*?)(^<\/SunokoDoc>[^\n]*\n)/m) { "//<SunokoDoc>\n" + $2.to_hiki + "//</SunokoDoc>\n" }
end
def to_html
r = self
r = r.to_wiki
r = HikiDoc.new(r).to_html
end
private
def n1(text)
r = text.gsub(/\n+/m,"\n")
end
def pre_f(text)
r = text.gsub(/^/,"#")
end
def pre(text)
r = text.gsub(/^#/,"")
end
def li(text)
r = text.gsub(/^[ \t]*[\*\-\#\+・]+/m,'_,_\&')
ar = r.split(/_,_/)
ar.delete_at(0)
r = ""
ar.each do |tmp|
r = r + tmp.gsub(/(\n[ \t]*)/,"") + "\n"
end
r = r.gsub(/(^[・]+)/){$1.gsub(/・/,"*")}
r = r.gsub(/(^[\-]+)/){$1.gsub(/\-/,"*")}
r = r.gsub(/(^[\+]+)/){$1.gsub(/\+/,"#")}
return r
end
end
Keyword(s):[Hiki] [SunokoDoc]
References:[SunokoDocをHikiのstyleに設定する方法] [FrontPage] [TextFormattingRules]