FrontPage  Index  Search  Changes  Login

SunokoDoc

SunokoDocとは

 私 sunoko が勝手に作成した HikiDoc 互換の「テキスト→ HTML」変換ツールです。 Wiki で作成する文書を、生テキストでもより自然に読めることを目的にして います。

HikiDoc の文法に以 下の処理を追加してあります。

  • 行頭インデントが可能
  • 見出し文字拡張「●」「■」使用可能
  • 箇条書きは各種Wikiの文法を取り入れている
    • 箇条書き「・」「*」「-」
    • 番号付「#」「+」

使い方

Wiki文書を

        <SunokoDoc>
        テキスト
        :
        </SunokoDoc>

で囲うことでSunokoDocにて変換します。それ以外は HikiDocとして扱います。

上記文書は以下のように作成されています。

<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
Last modified:2007/03/11 16:43:14
Keyword(s):[Hiki] [SunokoDoc]
References:[SunokoDocをHikiのstyleに設定する方法] [FrontPage] [TextFormattingRules]