Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Movable Type 
as a 
Playground 
Taku AMANO 
MTDDC Meetup TOKYO 2014
Movable Type as a 
Playground
Movable Type as a 
Framework
Movable Type as a 
一定のルールに従って自由に 
遊べる場所
Movable Type as a 
ルール
Movable Type as a 
場所
ルールがあり 
場所があるので 
情報や成果を共有できる
Movable Type のルールについて 
振り返りつつ 
活用できる可能性を考える
今からでも間に合う
http://www.movabletype.jp/blog/mt-pludemy-award-2014.html
はじまります
MTML
<mt:Entries> 
<$mt:EntryDate format="%x"$> 
<a href="<$mt:EntryPermalink$>"> 
<$mt:EntryTitle$> 
</a> 
</mt:Entries>
コンテンツを書き出すツールであり 
コミュニティの共通言語
<mt:Entries> 
<$mt:EntryDate format="%x"$> 
<a href="<$mt:EntryPermalink$>"> 
<$mt:EntryTitle$> 
</a> 
</mt:Entries>
余談
裏側で難しいことを 
やっていたとしても 
MTタグになっていれば 
誰でも使える
新しいMTタグを覚えるだけで 
今までと同じように書いて 
新しいことができる
これを利用している 
代表的な 
プラグイン
DynamicMTML
https://github.com/PowerCMS/DynamicMTML
•指定したタグの中身を動的に 
•それ以外を静的に
<mt:DynamicMTML> 
<mt:Entries> 
<$mt:EntryDate format="%x"$> 
<a href="<$mt:EntryPermalink$>"> 
<$mt:EntryTitle$> 
</a> 
<...
<mt:DynamicMTML> 
<mt:Entries> 
<$mt:EntryDate format="%x"$> 
<a href="<$mt:EntryPermalink$>"> 
<$mt:EntryTitle$> 
</a> 
<...
<mt:DynamicMTML> 
<mt:Entries> 
<$mt:EntryDate format="%x"$> 
<a href="<$mt:EntryPermalink$>"> 
<$mt:EntryTitle$> 
</a> 
<...
もう一つの例 
(プラグイン)
FastestPreview
ユーザーが 
カスタマイズしたテンプレート 
でもそのまま使える
MTMLがあるから 
実現できた
<div> 
<mt:EntryTitle /> 
</div>
普通の書き出しのとき
<div> 
タイトル 
</div>
プレビュー用の出力のとき
<div> 
<span data-field=“title”> 
タイトル 
</span> 
</div>
同じ mt:EntryTitle タグから 
公開用のときと 
プレビュー用のときで 
異なる結果を出力している
MTでは既存のタグの 
動作を変更できる
<div> 
<mt:IfPreview></mt:IfPreview> 
<mt:EntryTitle /> 
<mt:IfPreview></mt:IfPreview> 
</div>
<div> 
<mt:IfPreview></mt:IfPreview> 
<mt:EntryTitle /> 
<mt:IfPreview></mt:IfPreview> 
</div>
テンプレートには 
変更を加えることなく 
機能を追加できる
コミュニティの共通言語
Static Publishing 
Dynamic Publishing
優れているところ
•安定した書き出し機能 
•プログラマのいない「Web制作会社」でも 
•共用のレンタルサーバーでも 
•簡単に任意のURLにマッピングできる
いまいちなところ
•拡張するのがかなり面倒くさい 
•カスタムフィールドアーカイブとか 
•拡張できなくはないが 
•プログラムをたくさん書かなければいけない
なんとかできないか
アーカイブマッピング
• 日別・週別・月別・年別 
• ユーザー別 
• カテゴリ別
「公開されるパス」 
が同じ記事のまとまり
年別 
ユーザー別 
カテゴリ別
<mt:EntryDate format=“%Y” /> 
ユーザー別 
カテゴリ別
<mt:EntryDate format=“%Y” /> 
<mt:EntryAuthor /> 
カテゴリ別
<mt:EntryDate format=“%Y” /> 
<mt:EntryAuthor /> 
<mt:EntryCategory />
「公開されるパス」 
が同じなら 
同じアーカイブファイル
MTでは「パス」欄に 
好きなだけMTタグを書ける
MappingBasedArchive
Theme
Since 5.0
•ブログの雛形を提供する機能 
• テンプレートとアーカイブマッピングの定義 
• カスタムフィールドの定義 
• 静的なファイルの配置 
•StyleCatcher 
• 管理画面のUIを変更する機能
他にも
•ブログの設定の変更 
•カテゴリの作成 
•ページの雛形の作成 
•など
多くの使われ方としては 
ブログの雛形を提供する機能
もっとできるんじゃないか
•テンプレートの開発をサポートする 
•運用開始後の編集もサポートする
「ファイルへのリンク」機能 
と 
組み合わせる
Theme 
と 
「ファイルへのリンク」
SyncedTheme
嬉しいこと
•テンプレートをまとめてリンク 
•1つずつリンクする必要がない 
•「テーマ」単位で管理できる 
•複数のブログのデザインを同時に更新
Data API
Since 6.0
デフォルトの 
Data API Ver. 1で 
できること
•認証 
•ユーザー情報の取得と更新 
•記事の作成と更新 
•アイテムのアップロード 
•など
Data API Ver. 1 の 
課題
•遅い 
•特に CGI 環境で 
•エンドポイントが少ない 
•Ver. 2 ではかなり増えるらしい
APIの価値
•プログラムから利用可能な認証機能 
•拡張可能なインターフェイス
Playground
MAUS
http://alfasado.net/apps/maus-ja.html
•プレビュー機能付きの Markdown エディタ 
•既存記事の管理 
•HTMLビュー機能 
•ファイルのアップロード 
•など 
http://alfasado.net/apps/maus-ja.html
MTSyncTheme.app
•テーマをローカルからMTへ同期 
•ローカルに保存したテーマからプレビュー 
•複数のファイルにまたがる変更にも対応 
•同じテーマのブログをまとめて再構築 
•など
MTSyncTheme.app 
の 
仕組み
• SyncedTheme で Data API のエンドポイントを追加 
• App でファイルの変更を監視 
• 変更があったらエンドポイントにリクエスト
まとめ
MTML 
Static/Dynamic Publishing 
Theme 
Data API
Movable Type as a 
Playground
ありがとうございました
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Movable Type as a Playground
Upcoming SlideShare
Loading in …5
×

Movable Type as a Playground

1,172 views

Published on

MTDDC Meetup TOKYO 2014 のセッションでの資料です。

MT を MT たらしめている機能とはなんでしょうか。答は利用シーンによって異なると思いますが、私は代表的な機能として以下のようなものがあると考えています。
* コンテンツを書き出すためのツールであり、またコミュニティの共通言語である MTML
* コンテンツとURLを結びつける枠組みである Static Publishing と Dynamic Publishing
* Webサイトに雛形である Theme
* ブラウザ以外の環境からのアクセスの土台である Data API
このセッションではこれらの機能それぞれにスポットライトをあてて振り返りながら、プラグインを使って(実用的に)どのように遊ぶことができるかという点について、一緒に考えていきます。

Published in: Technology
  • Be the first to comment

Movable Type as a Playground

  1. 1. Movable Type as a Playground Taku AMANO MTDDC Meetup TOKYO 2014
  2. 2. Movable Type as a Playground
  3. 3. Movable Type as a Framework
  4. 4. Movable Type as a 一定のルールに従って自由に 遊べる場所
  5. 5. Movable Type as a ルール
  6. 6. Movable Type as a 場所
  7. 7. ルールがあり 場所があるので 情報や成果を共有できる
  8. 8. Movable Type のルールについて 振り返りつつ 活用できる可能性を考える
  9. 9. 今からでも間に合う
  10. 10. http://www.movabletype.jp/blog/mt-pludemy-award-2014.html
  11. 11. はじまります
  12. 12. MTML
  13. 13. <mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a> </mt:Entries>
  14. 14. コンテンツを書き出すツールであり コミュニティの共通言語
  15. 15. <mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a> </mt:Entries>
  16. 16. 余談
  17. 17. 裏側で難しいことを やっていたとしても MTタグになっていれば 誰でも使える
  18. 18. 新しいMTタグを覚えるだけで 今までと同じように書いて 新しいことができる
  19. 19. これを利用している 代表的な プラグイン
  20. 20. DynamicMTML
  21. 21. https://github.com/PowerCMS/DynamicMTML
  22. 22. •指定したタグの中身を動的に •それ以外を静的に
  23. 23. <mt:DynamicMTML> <mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a> </mt:Entries> <mt:DynamicMTML>
  24. 24. <mt:DynamicMTML> <mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a> </mt:Entries> <mt:DynamicMTML>
  25. 25. <mt:DynamicMTML> <mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a> </mt:Entries> <mt:DynamicMTML>
  26. 26. もう一つの例 (プラグイン)
  27. 27. FastestPreview
  28. 28. ユーザーが カスタマイズしたテンプレート でもそのまま使える
  29. 29. MTMLがあるから 実現できた
  30. 30. <div> <mt:EntryTitle /> </div>
  31. 31. 普通の書き出しのとき
  32. 32. <div> タイトル </div>
  33. 33. プレビュー用の出力のとき
  34. 34. <div> <span data-field=“title”> タイトル </span> </div>
  35. 35. 同じ mt:EntryTitle タグから 公開用のときと プレビュー用のときで 異なる結果を出力している
  36. 36. MTでは既存のタグの 動作を変更できる
  37. 37. <div> <mt:IfPreview></mt:IfPreview> <mt:EntryTitle /> <mt:IfPreview></mt:IfPreview> </div>
  38. 38. <div> <mt:IfPreview></mt:IfPreview> <mt:EntryTitle /> <mt:IfPreview></mt:IfPreview> </div>
  39. 39. テンプレートには 変更を加えることなく 機能を追加できる
  40. 40. コミュニティの共通言語
  41. 41. Static Publishing Dynamic Publishing
  42. 42. 優れているところ
  43. 43. •安定した書き出し機能 •プログラマのいない「Web制作会社」でも •共用のレンタルサーバーでも •簡単に任意のURLにマッピングできる
  44. 44. いまいちなところ
  45. 45. •拡張するのがかなり面倒くさい •カスタムフィールドアーカイブとか •拡張できなくはないが •プログラムをたくさん書かなければいけない
  46. 46. なんとかできないか
  47. 47. アーカイブマッピング
  48. 48. • 日別・週別・月別・年別 • ユーザー別 • カテゴリ別
  49. 49. 「公開されるパス」 が同じ記事のまとまり
  50. 50. 年別 ユーザー別 カテゴリ別
  51. 51. <mt:EntryDate format=“%Y” /> ユーザー別 カテゴリ別
  52. 52. <mt:EntryDate format=“%Y” /> <mt:EntryAuthor /> カテゴリ別
  53. 53. <mt:EntryDate format=“%Y” /> <mt:EntryAuthor /> <mt:EntryCategory />
  54. 54. 「公開されるパス」 が同じなら 同じアーカイブファイル
  55. 55. MTでは「パス」欄に 好きなだけMTタグを書ける
  56. 56. MappingBasedArchive
  57. 57. Theme
  58. 58. Since 5.0
  59. 59. •ブログの雛形を提供する機能 • テンプレートとアーカイブマッピングの定義 • カスタムフィールドの定義 • 静的なファイルの配置 •StyleCatcher • 管理画面のUIを変更する機能
  60. 60. 他にも
  61. 61. •ブログの設定の変更 •カテゴリの作成 •ページの雛形の作成 •など
  62. 62. 多くの使われ方としては ブログの雛形を提供する機能
  63. 63. もっとできるんじゃないか
  64. 64. •テンプレートの開発をサポートする •運用開始後の編集もサポートする
  65. 65. 「ファイルへのリンク」機能 と 組み合わせる
  66. 66. Theme と 「ファイルへのリンク」
  67. 67. SyncedTheme
  68. 68. 嬉しいこと
  69. 69. •テンプレートをまとめてリンク •1つずつリンクする必要がない •「テーマ」単位で管理できる •複数のブログのデザインを同時に更新
  70. 70. Data API
  71. 71. Since 6.0
  72. 72. デフォルトの Data API Ver. 1で できること
  73. 73. •認証 •ユーザー情報の取得と更新 •記事の作成と更新 •アイテムのアップロード •など
  74. 74. Data API Ver. 1 の 課題
  75. 75. •遅い •特に CGI 環境で •エンドポイントが少ない •Ver. 2 ではかなり増えるらしい
  76. 76. APIの価値
  77. 77. •プログラムから利用可能な認証機能 •拡張可能なインターフェイス
  78. 78. Playground
  79. 79. MAUS
  80. 80. http://alfasado.net/apps/maus-ja.html
  81. 81. •プレビュー機能付きの Markdown エディタ •既存記事の管理 •HTMLビュー機能 •ファイルのアップロード •など http://alfasado.net/apps/maus-ja.html
  82. 82. MTSyncTheme.app
  83. 83. •テーマをローカルからMTへ同期 •ローカルに保存したテーマからプレビュー •複数のファイルにまたがる変更にも対応 •同じテーマのブログをまとめて再構築 •など
  84. 84. MTSyncTheme.app の 仕組み
  85. 85. • SyncedTheme で Data API のエンドポイントを追加 • App でファイルの変更を監視 • 変更があったらエンドポイントにリクエスト
  86. 86. まとめ
  87. 87. MTML Static/Dynamic Publishing Theme Data API
  88. 88. Movable Type as a Playground
  89. 89. ありがとうございました

×