軽量マークアップ言語の歴史をゆるく調べた #sphinxjp

はじめに

reSTの成り立ちが気になったので、Sphinx+翻訳 Hack-a-thon 2015.07 - connpassを利用して調べてみた。

reST以外にも軽量マークアップ言語MarkdownとWikiもいくつかピックアップ。

  • reStructuredText
    • structuredText(reSTの系譜を辿って見つけた)
    • setext(reSTの系譜を辿って見つけた)
  • Markdown
    • CommonMark(Markdownの現状を辿って見つけた)
  • Wiki
    • YukiWiki(代表的っぽい、かつデッドリンクじゃなかった和製Wiki)
    • MediaWiki(Wikipediaで使われている)
  • はてな記法(国産)

このあたり。

調べた人

MarkdownとreStructuredTextとWikiの一利用者。

なので、込み入った話(時代背景とかその当時のMLとか)は全然知らない。

まとめ

年表

それぞれができた年。

出来事(md, rst, wiki) それ以外の出来事 html的な出来事
1991 html1.0
1992 Aug? setextリリース
1993
1994 W3C発足
1995 Mar Wikiリリース Javadocリリース
html2.0
1996 xml草案
1997 Oct Doxygenリリース
html3.1
1998 html4.01, xml1.0
1999 Jul STXリリース?(Zope 1.10.3)
2000 Jul YukiWikiリリース
2001 Jun reSTリリース
Dec RDocリリース
2002 Apl reSTがDocutilsに統合
Sep AsciiDocリリース
2003 Jan はてな記法リリース?
Dec MediaWikiリリース
2004 Aug Markdownリリース
2005
2006 Pandocリリース
2007
2008 Jan html5初期草案
Mar Sphinxリリース
2009
2010
2011 html5最終草案
2012
2013
2014 Aug CommonMarkリリース
Oct html5勧告
2015
2016 html5.1勧告予定

※ 「それ以外の出来事」はこの辺のサイトから参照しました。Comparison of documentation generators

考察

  • setextはhtml誕生から見てもかなり早い時期にできている
  • 一方Markdownは今回調べた中では一番後発だったのが(個人的には)意外だった
  • 1999年~2004年、軽量マークアップ言語が数多く生まれている
    • この時期何かあったんだろうか?ドキュメント革命?
  • 2004年以降はWikiやMarkdownのクローンや再実装がおそらく盛んであるはず
    • PHP Markdown Extra/GitHub Flavored MarkdownとかxxxWikiとか
    • 拡張ライブラリの歴史を調べると、2004年以降も埋まりそう

地味に苦労した点、、

  • 昔の言語の情報を取得するのはかなり難しい(デッドリンクとか)
    • CHANGELOGが途中で途切れてるのが何故かわからなかったり
      • プロジェクト一新したから?
      • それともこのバージョンがInitial Releaseなの?
    • Wikipedia情報が唯一の情報源だったり
  • グーグル力が低くて検索ワードが思いつかん…それぞれの記法の使い方がヒットする

以下、それぞれ調べたこと。

reST

setext(structure-enhanced text)

基本情報 詳細
Developed Ian Feldman or Tony Sanders
Initial Release 1992/08/16~?
Official setext Documents Mirror、跡地しかない?
  • reSTのご先祖様
  • Ian Feldmanのメール(1992/08/16)

Enclosed is an advance sheet that will remain in effect until the first public release of the setext format package (originally planned for around March 1st, 1992, now delayed).

via: setext_concepts_Aug92.etx.txt

StructuredText

基本情報 詳細
Developed Zope(Jim Fulton)?
Initial Release 1999/07/19(Zope 1.10.3)
Official Zopeに含まれている
  • reSTのご先祖様
  • 現在確認できた最古のソースは1.10.3 1999/07/19(Zope.org - Zope)
    • その中のCHANGES.txtに1.9 alpha 1の記述ありだが日付までは書いてない…
Zope 1.9 alpha 1

      This was the inital Zope test release.StructuredText.py

reStructuredText

基本情報 詳細
Developed David Goodger
Initial Release 2001/06/02(reST 0.1)
Official reStructuredText

プロジェクトの推移

  • Docutilsパッケージに含まれている軽量マークアップ言語
    • reST 0.1-0.4までは単独プロジェクトだった(2001/06/02-2002/04/18)
    • 統合されたのはDocutilsのv0.1から(2002/04/02)

以下はreST 0.4のChangelog。

Release 0.4 (2002-04-18)
========================

This is the final release of reStructuredText as an independent
package.  Development is being transferred to the Docutils_ project
immediately.
  • 元々単独プロジェクトだったものがDocutilsのv0.1でDocstringと統合されている(2002/04/20)

merged from the now inactive reStructuredText and Docstring Processing System projects

Date: 2002-04-21

The reStructuredText project has moved! It is now part of the Docutils project; you should be redirected to the new location momentarily. Click here to go to the Docutils project home page immediately. You may also visit the inactive reStructuredText home page.

Date: 2002-04-21

The Docstring Processing System project has moved and been renamed! It is now called “Docutils”; you should be redirected to the new location momentarily. Click here to go to the Docutils project home page immediately. You may also visit the inactive Docstring Processing System home page.

Here are local copies of some setext documents, made available to document the prehistory of the Docutils project (and especially the reStructuredText markup). The source for the original setext (structure-enhanced text) documents was http://www.bsdi.com/setext/, but it seems to have disappeared from the Web. The files in the “setext mirror” are all the files relating to setext that I have (including a tarball of the lot). I have not been able to locate the originators of setext, Ian Feldman or Tony Sanders. If you know how to contact them, or if you know of an official repository for the setext documents, please inform me. David Goodger, 2002-03-25

Markdown

Markdown

基本情報 詳細
Developed John Gruber
Initial Release 2004/08/28(1.0 Markdown.plより)
Official Daring Fireball: Markdown

更新終了後について

  • John Gruberはこれ以上の新機能追加や仕様の標準化には消極的で、利用者によって多くの拡張Markdownが作られた。
    • PHP Markdown ExtraやGitHub Flavored Markdownなど
  • Jeff AtwoodとJohn MacFarlaneが先頭になってMarkdown標準化のプロジェクトが推し進められた
  • なんやかんやあって CommonMarkが発足した
    • このあたりのいきさつはWEB+DB PRESS Vol.83に書いてあるので割愛

CommonMark

基本情報 詳細
Developed Jeff Atwood, John MacFarlane他多数
Initial Release 2014/08/14(jgm/CommonMark@650ad87)
Official CommonMark
  • 上記のようないきさつの末、発足
  • 発足後も結構もめたらしい
    • 当初はstandard markdownと名前をつけていたがJohn Gruberに勝手にMarkdownの名前使うなと言われて改名したり
  • Markdownを使ったプロダクトやサービスを使っている企業の人が参加している

John MacFarlane(Pandoc作者、カリフォルニア大学バークレー校)

David Greenspan(EtherPad作者、Meteor)

Vicent Mart(i Sundown、Redcarpet作者、GitHub)

Neil Williams(Snudown(reddit 拡張が入ったSundown)作者、Reddit)

Benjamin Dumke-von der Ehe(pagedown 作者、Stack Overflow)

Jeff Atwood(Civilized Discourse Construction Kit)

via: WEB+DB PRESS Vol.83より抜粋

  • John Gruberは参加していない(許可は取っている)
  • 今後、標準となるか

Wiki

Wiki

基本情報 詳細
Developed Ward Cunningham
Initial Release 1995/03/25 or 1995/05/01
Official Front Page - http://c2.com/cgi/wiki
  • Wikiの親玉
  • すべてのWikiシステムはこれが親と言えそう
  • 作成者はWard Cunningham…ウォードカニンガム…あ!名前聞いたことあるわ!この人が作ったのか

YukiWiki

基本情報 詳細
Developed 結城浩
Initial Release 2000/07/15(readme.txtより)
Official YukiWiki
  • いわゆるWikiクローンのひとつ。結城先生作。2000年に作成されている

Cunningham & CunninghamのWikiWikiWebの仕様を参考にして作られ、 多くの人からのフィードバックを受けてゆっくり成長しています。

  • PukiWikiもYukiWikiクローン

YukiWiki を PHP に移植する形で開発された wiki クローン。

MediaWiki

基本情報 詳細
Developed Magnus Manskeら
Initial Release 2003/12/08(1.1)
Official MediaWiki
  • Wikipediaのために作られWikipediaで使用されている
    • 2015年現在一番記事数が多いWikiシステムだとか
  • 1.1よりも前にPhase3というバージョンが2003/04/14にリリースされている
    • Wikipedia(英語版)の設立は2001/01/15
    • この空白の期間はどうしていたんだろう?

その他

はてな記法

基本情報 詳細
Developed はてな(近藤淳也?)
Initial Release 2003/01?
Official はてなダイアリー - 写真・画像・動画付き日記を無料で
  • はてなのサービス内で使用できる記法

「はてな記法」とは、はてなダイアリーを書く上で便利な機能を、かんたんな記述で実現することができる記述法のことです。

はてな記法を使うと、HTMLの知識がなくても、見出しやリストといった、ブログを書く上で便利な表現を簡単に行うことができます。

via: はてな記法ってなに? - はてなダイアリーのヘルプ

ギリギリMarkdownよりはやいのかな?

終わりに

この文章はMarkdownで書かれています。

おまけ: 参考サイト

Markdown系

reST系

Wiki系

その他