// SikiFormat ######################### // SikiFormatについて ====================== ここではSikiWikiで使用している構造化テキスト(SikiFormat)について説明します。 構造化テキスト/構造化テキストフォーマットには、XHTML、DocBook、TeXなどが、またRubyで良く使用されるフォーマットとしてもRDなどがありますが、SikiFormatも同様のものです。 SikiFormatはRD同様に簡単に素早く入力できるけれども、RDよりも少しだけ使いやすく見やすくなることを目標に設計されています。 // 構造化テキストについて ========================== 構造化テキスト((*構造化テキストのルールのことを構造化テキストフォーマットと呼ぶこともあります。ここでは、ルールも含めて構造化テキストと呼びます。*))とは、テキストのそれぞれの文字や単語、ブロックなどに「その部分はどのような意味を持つのか?」と言う情報を追加して、テキストをデータとしても扱いやすくしたものです。 例えば、簡単な記事に表題を付けたい場合がありますが、そのような場合でも、通常のテキストでは表題の部分を記事の内容と区別する方法はありません。 ////////////////////////////////{{ 構造化テキストについて 構造化テキストとは、 テキストのそれぞれの文字や単語、ブロックなど に「その部分はどのような意味を持つのか?」と 言う情報…… }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 表題の部分を他の内容と区別したい場合、取りあえず表題を記事の頭に置いて、その後に改行を1~2つ入れて表題を目立たせることが多いかと思います。 ////////////////////////////////{{ 構造化テキストについて 構造化テキストとは、テキストのそれぞれの 文字や単語、ブロックなどに「その部分は どのような意味を持つのか?」と言う情報…… }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ これで表題と内容の区別ができるようになりました。つまり、ただのテキストに、『表題』と『内容』という意味(構造)を与えるという仕組みができたわけです。この仕組みを利用して記述されたテキストが『構造化テキスト』です。 ただ、上記の例では単純な構造しか表現できません。そこで、もっと色々な意味を表すことができるよう、複雑な仕組みを定めることがあります。一般的に、そのような仕組み、及びその仕組みに従って書かれた文章を『構造化テキスト』と呼びます。 有名なところとしては、下記のような例があります。 - XHTML/HTML - LaTex - [[reStructuredText http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html]]((*[[軽量で強力な文書マークアップ http://www-06.ibm.com/jp/developerworks/xml/030411/j_x-matters24.html]]*)) -- 解説書やマニュアルなど、通常の文章を記述するのに適した構造化テキストです。 -- 非常に読みやすい構造化テキストです。(特に表題や表組み、脚注など) -- 記述や修正に手間のかかることが多いです。 -- HTMLなどへの変換ツール(Python)が存在します。 - [[RD http://www.ruby-lang.org/ja/man/?cmd=view;name=RD;em=rd]] -- reStructuredTextと同様、解説書やマニュアルなどを記述することを目的とした構造化テキストです。 -- 記述しやすい構造化テキストです。 -- 反面、reStructuredTextなどと比較すると読みにくくなっています。 -- HTMLなどへの変換ツール(Ruby)が存在します。 - [[plain2 http://www.asahi-net.or.jp/~vw4k-kbys/plain2/plain2_b.html]] -- 罫線文字などを使用して書いた図形を画像に変換してくれる構造化テキストです。 SikiFormatも、これら構造化テキストの仲間です。 // SikiFormatプログラム ======================== [[SikiWikiの一部として配布しています http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/sikiwiki/siki/core/lib/RAA/text/siki-format/]] // SikiFormatの特徴 ==================== SikiFormatは下記の特徴があります。 - プレーンテキストのみで作成可能 - RD以上の表現力(用語定義リスト除く) - reStructuredTextほど書くのに大変ではない。RDより少しだけ読みやすい。 - HTMLとバッティングしない ----------------------------------------- サンプルは、[[このページのソース http:./!!content]]を参照してください。 // 構造化テキスト詳細 ====================== SikiFormatの各要素について説明します。 // ブロック ----------- 文章は空行により複数のブロックに分割されます。 // 記載 ~~~~~~~~~ ///////////////////////////////////////{{ ブロック1 ブロック2 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ ブロック1 ブロック2 // 見出し ---------- まずは下記のサンプルを見て来ださい。{{//}}で始まる見出し行と、4つ以上の下線用文字で構成された部分は見出しになります。 下線用文字の種類により、見出しの大きさが決まります。 見出しにはその名前(をURIエンコードしたもの)でアンカーされます。また、見出しの前後の空白は無視されます。 下線用文字が{{####}}の見出しは特殊で、そのページのタイトルを付けるときに使用します。また、タイトルの先頭に[カテゴリ]と記載することで、ページのカテゴリを指定することができます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ // [SikiWiki] SikiFormat ######################### // 見出し1 *********** // 見出し2 =========== // 見出し3 ----------- // 見出し4 ~~~~~~~~~~~ // 見出し5 ^^^^^^^^^^^ // 見出し6 """"""""""" }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ // [SikiWiki] SikiFormat ######################### // 見出し1 *********** // 見出し2 =========== // 見出し3 ----------- // 見出し4 ~~~~~~~~~~~ // 見出し5 ^^^^^^^^^^^ // 見出し6 """"""""""" // 箇条書き -------- 番号あり・番号無しの箇条書きをすることができます。 インデントすることもできます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ - 番号なし11 - 番号なし12 -- インデント21 -- インデント22 ---- インデント41 行頭がスペースの場合は前の行の続きです。 __ インデント22続き 行頭が_の場合はインデントを戻します。 番号あり21 番号あり22 ----------------------------------------- 空行か、 、-、=のみの行で終了 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ - 番号なし11 - 番号なし12 -- インデント21 -- インデント22 ---- インデント41 行頭がスペースの場合は前の行の続きです。 __ インデント22続き/ 行頭が_の場合はインデントを戻します。 番号あり21 番号あり22 ----------------------------------------- 空行か、 、-、=のみの行で終了 // 改行 -------- 通常、改行やスペースは無視されますが、行末に{{/}}を置くことで強制的に改行させることができます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ このあとで改行/ 行頭。 文中の/では改行しません。 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ このあとで改行/ 行頭。 文中の/では改行しません。 // 強調 -------- {{**強調する部分**}}とすると、その部分が強調されます。左右の {{*}} の数により強調の度合いが異なります。 {{*}} が 4つ以上の場合、フォントサイズが大きくなります。 後の{{*}}の後にカラー値 (#RRBBGG) を指定することで、フォントの色を指定できます。/ 指定の方法は {{#(文字のカラー値)#(背景色のカラー値)}}です。カラー値を省略した場合は標準の色になります。#は省略できません。 色のみ変更する場合は、{{**色を変える部分*#RRGGBB#RRGGBB}}と指定してください。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ **強調する部分**。***もっと強調する部分***。 ****大きくする部分****。******もっと大きくする部分*****。 **色も変更**#FF0000#。**色のみ変更*#3399FF# **背景色も変更**#FFFF00#333333。**背景色のみ変更**##CCCCCC。 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ **強調する部分**。***もっと強調する部分***。 ****大きくする部分****。******もっと大きくする部分*****。 **色も変更**#FF0000#。**色のみ変更*#3399FF# **背景色も変更**#FFFF00#333333。**背景色のみ変更**##CCCCCC。 // 挿入・削除 -------- {{__挿入__}}とすると、挿入を表す下線が、{{==削除==}}とすると削除を表す打ち消し線が引かれます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ __挿入箇所__。挿入箇所です。/ ==削除箇所==。削除箇所です。 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ __挿入箇所__。挿入箇所です。/ ==削除箇所==。削除箇所です。 // 区切り線 -------- {{=================}}のみの行は区切り線になります。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ ここまで ================= ここから }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ ここまで ================= ここから // 脚注 -------- {{((*脚注の内容*))}}とすることで、本文中に脚注を挿入することができます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ ここは脚注です((*脚注は自動的に文末に記載されます。*))。/ ここも脚注です((*脚注には自動的に通し番号が付きます。*))。 }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ ここは脚注です((*脚注は自動的に文末に記載されます。*))。/ ここも脚注です((*脚注には自動的に通し番号が付きます。*))。 // そのまま表示する -------- {{{{}}そのまま表示{{}}}{{}}}で括るとそのまま表示されます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ {{[***この中はそのまま表示されます***]}}{{}}}{{}}}{{ }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ {{[***この中はそのまま表示されます***]}} // 整形ずみ -------- {{////}}のみの行と{{\\\\}}のみの行で挟まれた部分は整形ずみ領域として扱われ、改行、スペースなどをそのまま表示することができます。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ ここから /////////////// ここは整形ずみ領域です。 スペースも普通に表示されます。 /////////////// 入れ子もできます。 \\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\ ここまで。 ここの改行やスペースは整形されます。 行頭にスペースを入れてインデントすることもできます。 /////////////// こんな感じ \\\\\\\\\\\\\\\ }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ ここから /////////////// ここは整形ずみ領域です。 スペースも普通に表示されます。 /////////////// 入れ子もできます。 \\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\ ここまで。 ここの改行やスペースは整形されます。 行頭にスペースを入れてインデントすることもできます。 /////////////// こんな感じ \\\\\\\\\\\\\\\ // リンク -------- {{[[リンク先]]}}とすることで、様々なところにリンクすることが可能です。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ - [[Siki/SikiFormat]]サイト内のページへのリンク - [[Siki/SikiFormat#リンク]]アンカーへのリンクも張れます。 - [[SikiFormat Siki/SikiFormat]]最後のスペースまでは、そのリンクの名前になります。 - [[http://fiercewinds.net/siki/pub/Siki/SikiFormat]]普通のリンクも記載できます。 - [[SikiFormat http://fiercewinds.net/siki/pub/Siki/SikiFormat#リンク]]こちらも最後のスペースまでがリンクの名前になります。 ------------------------------ }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ - [[Siki/SikiFormat]]サイト内のページへのリンク - [[Siki/SikiFormat#リンク]]アンカーへのリンクも張れます。 - [[SikiFormat Siki/SikiFormat]]最後のスペースまでは、そのリンクの名前になります。 - [[http://fiercewinds.net/siki/pub/Siki/SikiFormat]]普通のリンクも記載できます。 - [[SikiFormat http://fiercewinds.net/siki/pub/Siki/SikiFormat#リンク]]こちらも最後のスペースまでがリンクの名前になります。 ------------------------------ // 表 -------- {{####}}のみの行で挟まれた部分は表として扱われます。/ 表の各要素はタブ文字か、あるいは{{||}}で区切られます。/ ExcelやOpenOffice(Calc)などで作成した表をコピー&ペーストするとタブ文字で区切られた表になりますので、これらのソフトを活用すると便利です。 最初の{{####}}の行の、#以降の文字はタイトルとして使用されます。 ヘッダセルは、セルの頭に#をつけることで指定します。/ また、最後の{{####}}の後ろに(行数),(列数)と指定することで一括指定できます。/ 「{{####1,2}}」だと1行2列のヘッダができます。 セルの結合も可能です。{{^}}のみのセルは上のセルと、{{_}}のみのセルは左のセルと結合します。 // 記載 ~~~~~~~~ ///////////////////////////////////////{{ #####タイトルです。 #Cell1||#Cell2||#Cell3||#Cell4 #Cell1 Cell2 Cell3 Cell4 Cell1 セルの結合 _ Cell4 Cell1 ^ ^ ^ ########################### #### Cell1||Cell2||Cell3||Cell4 Cell1 Cell2 Cell3 Cell4 Cell1 セルの結合 _ Cell4 Cell1 ^ ^ ^ ####1,1 ヘッダの行列がまとまっているときは一括指定できます }} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // 結果 ~~~~~~~~ #####タイトルです。 #Cell1||#Cell2||#Cell3||#Cell4 #Cell1 Cell2 Cell3 Cell4 Cell1 セルの結合 _ Cell4 Cell1 ^ ^ ^ ########################### #### Cell1||Cell2||Cell3||Cell4 Cell1 Cell2 Cell3 Cell4 Cell1 セルの結合 _ Cell4 Cell1 ^ ^ ^ ####1,1 ヘッダの行列がまとまっているときは一括指定できます