movable type as a playground
Post on 08-Jul-2015
530 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
•指定したタグの中身を動的に
•それ以外を静的に
<mt:DynamicMTML><mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a></mt:Entries><mt:DynamicMTML>
<mt:DynamicMTML><mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a></mt:Entries><mt:DynamicMTML>
<mt:DynamicMTML><mt:Entries> <$mt:EntryDate format="%x"$> <a href="<$mt:EntryPermalink$>"> <$mt:EntryTitle$> </a></mt:Entries><mt:DynamicMTML>
もう一つの例 (プラグイン)
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
•プレビュー機能付きの 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
ありがとうございました
top related