OldType.デザインメモ RSSPLAIN

Related pages: OldType
1154454444544435444442424442555555254444420205445255445525255444222525555554455252554555555254202222222225444544454422
1

OldTypeの最新の仕様をまとめるページ。

1

使ってみながら仕様を決めているので、まだまだ仕様は変わっていく予定。

5

 

4

キャッチコピー

4
Designed for OldType (OldTypeのためのWikiシステム)
5

 

4

コンセプト

4

UNIXプログラム + ファイル = CMS

4
UNIXのミニマリズムをCMSに応用したもの
4
行指向の処理
5

 

4

目標

4
少量の編集はWebブラウザから快適に行なえる。
4
大量の編集はEmacsから快適に行なえる。
3
簡単なプラグインの開発が簡単に行なえる。
5

 

4

特徴

4
Subversionでコンテンツ管理する
4
Subversionに直接つないでコンテンツ更新できる
4
RDBMSは使用しない
4
コンテンツの加工はUNIX的なバッチ処理が基本
2
コンテンツの出入口は色々( Webブラウザ、メールなど )
4
コンテンツの加工処理は行指向中心
2
アクセスの階層管理はネーミングルールのみで行う
4

 

4

アーキテクチャ

4
以下の3つのコンテンツ更新方法がある。
2
  SVN ----[work]----- Kahua  <=> Browser
5
   |                   Web経由でコンテンツを編集する
5
   |
5
   |------[work]----- batch processes  <=  Plagger,mail,syslogなど
5
   |                   バッチが自動でコンテンツを改変する
5
   |
5
   |------[work]----- Emacs,vi,OpenOffice
2
                       ユーザーが直接コンテンツを編集し、commitする。
5

 

4

基本機能

4
コンテンツをWebから編集 + Subversionへの反映
4
ユーザー認証(Webのみ)
4
バックエンドでバッチ加工したデータのSubversionへの反映
4
バックエンド処理の定時バッチ実行
2
  ユーザーが作ったプログラムも処理手順に組みこめる(プラグイン)
0
Web、Subversion直接加工、バッチの三つの更新コンフリクトを調停
2
画像データやYouTube動画の埋め込みをサポート
0
RSSによる更新情報の配信
5

 

4

Subversionのディレクトリ構造

4
ディレクトリネーミングルール
5
  edit                      コンテンツのソースデータ(Officeドキュメントなどもここに置く)
2
   エントリ(記事)の名前.ot  UserName.2007_05_05.ot や KeyWord.otなど
5
  img                       画像データ
5

 

4
コンテンツファイルのネーミングルール(Wikiネーム)
4
ディレクトリに '_'が入れば、以降のツリーは全て非公開
5
  public       ... 公開
5
  _private     ... 非公開(Web画面からは見えない)
2
  !private     ... 自動生成コンテンツ(手動変更不可)
5

 

2

ファイル種別 ${name} はWikiコンテンツ表示名

5
   edit/${name}.ot       ソースファイル
5

 

4

文書フォーマット

4
Wiliki記法
4
組み込みルール
2
   [[Wiki名]]                          内部リンク(InterWikiネームも使用可能)
2
   [[URL|表示名]]                      外部リンク(相対URLも使用可能)
2
   ##(img URL width: 幅 height: 高さ)  画像(URLにより、内部外部自動判別) '幅' '高さ' は省略可能。
5

 

2
プラグインで実現されるルール
5
   ##(youtube contentsID)         Youtubeの埋め込み
5
   ##(amazon  ASIN)               Amazonアフェリエイトの埋め込み
5
   ##(toc     /正規表現/)         正規表現にマッチする目次の展開。(順番はアルファベット順)
5
   ##(blog    /正規表現/ limit)   ブログページの展開。              limitは制限アイテム数(省略可能)
5
   ##(search)                     検索窓の埋め込み
5

 

4
応用
4
  ブログページ
5
   Userのブログ
5
   ##(search)
2
   ##(recent /User名[.].+/)
5
   ----
2
   ##(blog   /User名[.].+/ 10)
5
   ----
5

 

4
行頭記号
5
   * ** ***                 見出し
5
   - -- ---                 箇条書き(数字なし)
5
   # ## ###                 箇条書き(数字あり)
5
   半角空白文字             行末までを整形済としてそのまま表示する
5
   ----                     4つ以上の'-'で水平線となる
5
   !                        行末までをverbatimテキストとする(そのままの文字列を表示=ソースコードの表示などで使う)
2
   ?                        コメント行
5

 

4

バッチ実行

2

シェルスクリプトにより実現する。

0
主に下記の処理手順で構成する
2
svn update
2
コンフリクトなどを調停する
2
!RecentPages.otや !AllPages等の自動生成コンテンツを作る
2
(例)Wikiの『最近の更新』ページの作成
2
      *.ot     => [ot_RecentChanges]      => !RecentPages.ot
2
      * ot_RecentChangesは複数のotファイルから最近の更新ページを生成するプログラム
2
ユーザのプラグインバッチを全て実行
2
*.ot から *.sexp への変換を行う(日付を見て更新の必要なものだけ選択する)
2
svn commit
5

 

4

基本用途

4
Wiki/blog/RSSリーダーを統合したCMS
4
携帯からの絵日記投稿サイトとして(メール、Webの両方からの投稿)
5

 

4

応用

4
グループウェアとして
4
BTSとして
5

 

4

その他容易に実現できそうな機能

4
Office系アプリからのコンテンツ変換
2
表の編集はOpenOffice Calcのみをサポートしても良いかも。
2
Plaggerによる外部コンテンツの定期取りこみ