静的ファイル出力は永遠に不滅です。これからのMovable Typeの付き合い方
この記事は Movable Type Advent Calendar 2024 の5日目の記事です。
毎年も結婚記念日投稿を2018年〜はじめて6年目です。(参加して連続8年目になります。気づけばあと少しで10年!)
我が巨人軍は,永久に不滅です。
みたいなタイトルをつけてみました。
今年のAdvent Calendarは、Movable Type や MTコミュニティとの関わり方について考えてみた内容にしてみました。
今年は、8年勤めたHAMWORKSを退職した年で、10月〜新しい職場に転職した形になります。
その入社エントリーを書きたいと思って二ヶ月くらいが経過したのですが、なかなか書けず師走になりました。
今はCMSとは関係がない事業会社にはいったこともあり、15年近く Movable Type を仕事として使ってた部分から離れてしまいました。
10月11月は新しい会社の事業についてインプットに追われる日々だったこともあり、MTDDCにも参加出来ずでした。
(主に子ども発表会と日程が被ってて。。あとから変更になったみたいでいけたな?って思いましたけどw)
来年はMTDDCに参加したい(11月付近はほんとに子どもの行事と被るおそれがあるが。。)と思っています。
仕事の延長して Movable Type を 触ってきたこともあり、多くのことを学んだような気がします。
今の立場では、CMSとの関わりは薄くなったと感じています。(まだ二ヶ月くらいですけど)
この状態がいいのか悪いのかはわかりませんが、今後は違った形でMovable Type やコミュニティに関わっていきたいと思って、Movable Type Advent Calendar 2024に参加しました。
直近の出来事
Movable Type 7 が 11月1日でEOLになりました。
Movable Type 7には、リリースされてから様々なサイトを作ったこともあり思い入れが多いバージョンでした。
賛否はあるもののコンテンツタイプは自分にとってCMSとしての設計の幅が広がったと感じました。
今まではブログベースで設計で脳内が動いてましたが、コンテンツベースの設計は幅広く難しいこともしばしばありました。
ブログベースからコンテンツベースになったことで事業や顧客の要件に合わせやすくなったのではないでしょうか。
Movable Type 8でも継続的にコンテンツタイプの機能含めてプラグインや機能改善が行われていくでしょう。
色々なCMSがあり要件に応じてCMSを選びますが、自分はこれからもMovable Typeで出来ることであれば選びたいと思っています。
自分の開発環境
開発環境で利用している CentOS 7 から Rocky Linux への移行を行いました。
自分が担当していたプロジェクトのWebサイトも無事に Movable Type 8に移行することができて良かったです。
7から8に変えたのは、去年6月なので実質運用期間は1年でした。
Movable Type 6から7に変えるときに全体的に見直しをかけて、MTAppjQueryに置き換えしたりして大変でしたが7から8はスムーズにアップデートすることができたのが良かったことです。
Movable Type 8でも動作はできるようになっているはずです。
今後は、Perlのバージョンアップや、周辺機能がアップデートを主にしてメンテナンスしていきたいと思っています。
今年のMTDDCの内容で一番気になったもの
今年は参加できませんが、スライドとかの内容で気になったのは、天野さんの TypeScript100%で作るMovable Typeプラグイン でした。
自分もプラグインを作ってみたい〜という気持ちで Perlをやってみて挫折を何回も繰り返してたので、TypeScriptで作るという考えはすごく興味津々な内容でした。(やっぱりすごいですね)
自分も試しに作ってみようかとおもい、紹介されている内容をちょっと素振りすることにしました。
やるにあたって、コピペしようと思ったら、ドキュメントのほうが誤りがあったのでPRを出しておきました。
即座にマージしていただいて感謝です。
cli経由で管理画面のプラグイン・MTタグ・コールバック用のプラグインの雛形を提供されるようです。
スライドにある通りTypeScriptベースで構築出来る点が導入の敷居がフロントエンドでも入りやすい構成だと感じました。
→ npm create @usualoma/mt-plugin-builder MTSampleTag
> movabletype-plugin-typescript@1.0.0 npx
> create-mt-plugin-builder MTSampleTag
✔ Project name: … MTSampleTag
? Select a template: › - Use arrow-keys. Return to submit.
❯ Admin Interface - Insert JavaScript and CSS to admin interface
MT Tag - Implement MT Tag by webhook
Callback - Implement callback by webhook
とくにここが面白いと感じた部分でした。
プラグインを書くと、まずはymlの記法で定義する必要がある部分を defineConfigで呼び出すように記述している点が面白いと思いました。
import { defineConfig } from "@usualoma/mt-plugin-builder";
const baseURL = process.env.WEBHOOK_BASE_URL?.replace(/\/+$/, "");
export default defineConfig({
tags: {
function: {
BlogCard: `${baseURL}/blog-card`,
},
block: {
Minify: `${baseURL}/minify`,
},
modifier: {
gfm: `${baseURL}/github-flavored-markdown`,
},
},
});
例)サンプルのコードの mt-plugin-webhook-tag で npm run build
を実行すると zip
ファイルが生成されます。
解凍すると pluginディレクトリの中に書いたコードが格納されます。このファイルを pluginsに配置することで利用することが可能になります。
自分が作ってみたいなーというプラグインが出たら(とくに外部連携機能)、活用していきたいと思ったスライドとリポジトリでした。
バックエンドもNest.jsやHonoといった部分で、TypeScriptやTSXで書く文化が一般的になってることからPerl(出来たほうが良いですけど)が書けなくても自分が普段使ってる言語ベースでかけるようになるのは魅力的だと感じました。
まとめ
今年もMovable Type Advent Calendar 2024に参加出来て良かったです。
毎年なにか作るといったこと(自分の勝手な目標)は今年は出来ませんでしたが、これからのコミュニティとの関わり方やMovable Typeとどう付き合っていくか考えた内容でまとめてみました。
Movable Type の活用できることはたくさんあります。
情報が古かったりする部分はありますが、これから導入してみたい人や触ってみたい人は、まずはコミュニティに参加してみるのも良いのかな思っています。
コミュニティ(巷の情報からは見えない活用方法など)からたくさん学べることがあったので、おすすめします!
来年もMTDDCあったら参加リベンジしたいと思っています。(来年は40歳だ。。)
静的ファイル出力は永遠に不滅です。 by redamoon
Discussion