[5] [DFN[SWML]] は、 [[SuikaWiki]] で使われている[[マーク付け言語]]です。
[[テキスト]]ベースのいわゆる[[Wiki構文]]と、
[[DOM]] 表現が定義されています。

* 仕様書

[REFS[
- [4] [CITE@en[SuikaWiki Markup Language (SWML)]] ([TIME[2016-03-01 21:51:13 +09:00]]) <https://suikawiki.github.io/spec-swml/spec/>
-- [1] 旧 [CITE@en[SuikaWiki Markup Language (SWML)]] <http://suika.fam.cx/www/markup/suikawiki/spec/swml-work>
]REFS]

* 文脈

[6] 
[[SuikaWiki]] で使われている他、 [[SuikaWiki]] とは関係のないいくつかの
[[Webアプリケーション]]でも採用されています。

* ご案内

[7] このウィキでの記事の書き方は、 [[HelpPage]] をご覧ください。

[8] このウィキの新機能の追加、変更は、 [[Wiki//News]] をご覧ください。

* MIME型

[15] 
[DFN[[RUBYB[SWML MIME型][SWML MIME type]]]]は、

- [16] [DFN[[CODE[text/x-suikawiki]]]]
- [17] [DFN[[CODE[text/x.suikawiki.image]]]]

です。 [SRC[>>4]]

[18] 
ただし、 
[CODE[text/x.suikawiki.image]]
を新規に用いては[MUST[なりません]]。
[SRC[>>4]]


* 歴史

[9] [[SWML]] は [[SuikaWiki]] の[[マーク付け言語]]で、その起源は [[SuikaWiki1]]
に遡ります。 [[SuikaWiki1]] は[TIME[平成14(2002)年][2002]]頃に [[YukiWiki1]] をほぼそのまま動かしたものでしたから、
当時の[[マーク付け言語]] ([[Wiki構文]]) は [[YukiWiki1]] の構文そのものでした。
[SEE[ [[YukiWiki1]], [[SuikaWiki1]] ]]

[10] 
[TIME[平成14(2002)年6月][2002-06]]以後開発が進められた [[SuikaWiki2]]
は、 [[YukiWiki2]] から派生した [[WalWiki]] から多くのコードを取り込みました。
[[マーク付け言語]]は [[YukiWiki2]] と [[WalWiki]] 
に合わせた変更が加えられましたが、そのすべてを受け入れたわけではありませんでした。
そのかわりというわけではありませんが、独自の機能の追加が始まりました。
[SEE[ [[SuikaWiki2]] ]]

[11] 
平成14年か遅くても平成15年には、独自の進化を始めた[[マーク付け言語]]を
[[SuikaWiki/0.9]] と呼ぶようになりました。
[[SuikaWiki]] への機能追加に伴い[[マーク付け言語]]の記述能力も高まっていきました。
[SEE[ [[SuikaWiki/0.9]]

[3] 
[[画像]]埋め込み機能を追加した派生言語である
[DFN[SuikaWikiImage/0.9]]
も作られました。

[12] 
平成16年には [[SuikaWiki3]] の開発が始まりました。 [[SuikaWiki3]]
で新たに追加された機能を含む[[マーク付け言語]]は [[SuikaWiki/0.10]]
と呼ばれました。
[SEE[ [[SuikaWiki/0.10]] ]]

;;
[2] 
なお、
[[設定ファイル]]の記述形式として
[[SuikaWiki2]], [[SuikaWiki3]] 時代に
[[SuikaWikiConst/0.9]],
[[SuikaWikiConfig/0.9]],
[[SuikaWikiConfig/1.0]],
[[SuikaWikiConfig/1.1]],
[[SuikaWikiConfig/2.0]]
が使われましたが、これらは [[SWML]] と互換性のない別の言語です。

[13] 
平成20年前後、
記事を長期にわたって編集し続けるウィキの仕組みと、版で機能を凍結する言語の
[[versioning]]
の相性の悪さが問題となり、従来の
[[SuikaWiki/0.9]],
[[SuikaWikiImage/0.9]],
[[SuikaWiki/0.10]]
を単一の言語に統合して[[後方互換性]]を保ちながら新機能の追加を続ける方針に転換しました。
また、構文解析の方法とそれによって生成される [[DOM]] の構造を明文化すると共に、
それに準拠した[[テスト]]データを整備することで、
将来にわたって文書の意味を安定的に解釈できるようにしました。
この言語と仕様書の名称を [[SWML]] としました。

[14] 
その後も [[SuikaWiki]] で必要な機能を中心に、他の[[応用]]の要件も勘案しつつ、
随時機能追加を行いながら現在に至っています。

* メモ