2013-10-11

MTMLのバージョン管理

MTMLをローカルで編集して、MTに当てる作業を出来るだけ自動化する方法を考える。
アップする先が開発環境以外もある場合があるだろうから、それらにも対応出来る仕組みを検討。
管理画面から直接編集する場合もあるからそれにも対応出来るようにする。

ローカルと開発サーバーで同期させる

MTMLを結びつける方法

  • ファイルリンク
  • テーマ

theme と filelink

theme のメリット

  • テンプレートの追加/削除を気にせず反映させられる

theme のデメリット

  • 再適用をする際にテンプレートIDが変わる

theme ?

  • templateにつけられたカスタムフィールドがある場合、その内容はどうなるか?

filelink のメリット

  • 管理画面での編集内容も反映される

filelink のデメリット

  • 各テンプレートでfilelinkを設定しないと使えない。
  • テンプレートが追加/削除された場合に対応しにくい。

filelink ?

  • identifierって重複するとエラーになる?

テーマを再適用するとtemplateのIDが変わってしまう。
templateのIDがかわってしまうので、idが変わるのがまずい場合は再適用を出来ないようにした方がよさそう?
→ 同じ名前?のテーマを当て直すときに、idが変わらないようにプラグインを作成できるか?

ファイルリンクをした場合、管理画面から変更があっても、ファイルリンクされているファイルの内容も書き換えられる。

ファイルへのリンク : Movable Type 5 ドキュメント
http://www.movabletype.jp/documentation/mt5/design/templates/linktofile.html

どれが変更されたかはタイムスタンプくらいしか知る術がなさそう。
また、そこから自動、もしくはまとめてダウンロードするとなるとFTP的な物でやるしかない?
ローカルに落として、ローカルのファイルに上書きするということになるか?

最初はMT側でテンプレートを作成、ファイルリンクをセットする?

  • ファイルリンクだけ設定して、ファイルがない場合にファイルが作成されるか?

開発サーバーとそれ以外の環境で同期させる

  • それぞれの環境でもファイルリンクを有効にしておく?
  • テンプレートが追加になる場合は手作業

管理画面でテーマとしてthemeフォルダにエクスポートしておく。各テンプレートにファイルリンクをセットする。セットする先はtheme内のファイルにすれば内容が常に同期される。
themeの内容を外部から編集して差し替えても管理画面に反映される

Themeをローカルに落としてGit管理する。

ローカルからリモートにPushした際に、Webhookでthemesの内容を差し替えられれば、管理画面でリロード、再構築とするだけで修正は反映させることが可能になりそう。

  • MTは1つしかないため、いくつかの機能を複数人で開発してる際にbranchという発想が出来ない

ローカルでbranchとかtagでなにかやるしかないか??

開発サーバーに当てた修正でOKの物を本番なり検証環境へ当てる方法が難しい。
どのように切り出すか?

管理画面でテンプレートを追加した場合は、テーマのエクスポートでよさそう

ローカルでテンプレートを追加した場合はconfig.yamlにも追記が必要だと思われる。pushして再適用?というながれになるか?
再適用したらtemplate idが変わってしまうが。

テーマとして書き出す際に、identifierを指定出来ないと、ファイル名がわかりにくくなるので、identifierの編集も必要そう。
MTAppjQueryの拡張プラグインかなにかでidentifier周りも出来るようにした方がいいか?

課題

  • いくつかの開発項目が同じ開発環境で動いているときに、確認が取れた物だけを抜き出す方法があるか?
  • 検証/本番など開発環境とは別環境がある場合、そちらで更新されていた内容を反映させる(更新時に知る)方法は?
  • いくつかのWebsite / Blog にまたがって修正を反映させる場合、システム一括でthemeを書き出せるか?
  • identifierを指定しておかないとthemeのファイル名がわかりにくい。template名をidentifierに使うことはできないか?
  • ローカルからPushしたものを開発環境で受け取るのはwebhookかPull/Pushか?
    • webhook:管理画面からの変更を拾いにくい
    • pull/push:Gitをインストールできるか?

プラグイン関係

ファイルリンク

identifier