blogID の異なる環境で user.js を共通利用する方法を考えてみた

Movable Type で管理画面をカスタマイズするにあたって、いつもお世話になっている MTAppjQuery。
その設定ファイルである user.js について2つの興味深い記事を見かけました。

環境によってblogIDが違う場合にuser.jsを共通利用するためのblogIDの持たせ方検討 | bit part blog:
http://bit-part.net/blog/2015/02/blogid.html

テスト環境と本番環境でブログIDが異なるときのuser.js(MTAppjQuery)の安全な書き方 | riatw.me:
http://riatw.me/blog/mtappjquery_problem.html

普段は mersy さんが書かれている各テンプレートで読み込む共通モジュールに blogID をセットして、それを利用するようにしているのですが、本番環境のみ新しいブログが追加され、blogID がズレてしまうこともままあります。データベースにアクセスできれば、本番環境の最新データを反映すれば良いものの、場合によりけり・・・ですよね。

そこで、blogID が変化してもテンプレートの修正なしで user.js を共通利用する方法について、考えみることにしました。

SublimeText の ElasticTabstops パッケージでインデントを揃える

JavaScript をはじめ変数のインデントを揃える際に Sublime Alignment を利用していました。
とても便利なプラグインなのですが、あとから変数名を調整する度にショートカットを実行したり、手作業で修正するのを億劫に感じてしまうこともしばしば。。。

そんな折り、気になる話題を見かけました。

【翻訳】私がコーディングで垂直方向にそろえるインデントをとる理由 | POSTD:http://postd.cc/why-i-vertically-align-my-code-and-you-should-too/

ここで紹介されている Elastic Tabstops という手法がとても便利そうだったので、探してみたところ SublimeText 2/3 向けのパッケージを発見!

早速、使いはじめてみることにしました。

gulp-ruby-sass 1.0.0 から記述方法が変わるらしい

先日、gulp-ruby-sass 1.0.0-alpha にアップデートしたところ、Sass のコンパイルがエラーでコケるようになりました。

半年前に書いたgulp-ruby-sass 0.6 にアップデートしたらコケた話のように、オプションの指定方法が変わったのかな?と思いつつ公式リポジトリを確認したところ、タスク自体の書式が変わるようです。

sindresorhus/gulp-ruby-sass at rw/1.0:
https://github.com/sindresorhus/gulp-ruby-sass/tree/rw/1.0

今後 1.0 未満のバージョンはサポートされないようですので、覚えておくとよさそうです。

シンボリックリンクを JSON で管理する Alfred Workflow を作ってみた

以前書いた記事

node_modules をシンボリックリンクで管理する:
http://bunlog.d-s-b.jp/2014/06/09/managed-node_modules-directory/

のようにグローバルの node_modules をシンボリックリンクで参照する形で運用していたところ、いつの頃からか npm update でコケるようになりました。そこで、ローカルはホームディレクトリ直下において一括管理しつつ、さらに TypeScript の定義ファイルも共通利用しようと考えたものの、Gruntfile.js を調整するのが億劫に。。。 w

そんな折り、Alfred Workflow の処理を PHP で書けることを知り、興味本位で Workflow を自作してみることにしました。

gulp.spritesmith の対象ディレクトリを自動取得する

以前書いた記事

Grunt から gulp へ移行してみた:
http://bunlog.d-s-b.jp/2014/06/08/gulpjs-setting/

を読み返してみて、そういえば gulp.spritesmith の対象ディレクトリを自動取得できるようにしてたな・・・と思い出したので、記事にしてみます。

Movable Type の配列・ハッシュで誤解していたこと

これは Movable Type Advent Calendar 2014 の14日目の記事です。
今年も早いもので、あっという間に年末ですね。。。

さて、最近になって配列やハッシュを利用し、テンプレートタグだけで処理をする機会が増えました。

Movable Type 3 から使っているものの、今更ながらに気づいたことがいくつかありましたので、備忘録をかねて共有してみます。

npm-check-updates で package.json を更新する

ひそかに悩んでいた、パッケージのバージョン管理。
--save-dev オプションをつけてインストール後に微調整はしていたものの、最新版にアップデートできないことがままありました。

package.json の書き方が悪いのかも?と改めて調べていたところ、気になる話題を発見。

How do I update each dependency in package.json to the latest version? - Stack Overflow:
http://stackoverflow.com/questions/16073603/how-do-i-update-each-dependency-in-package-json-to-the-latest-version

早速、npm-check-updates を導入することにしました。

gulp-ruby-sass 0.6 にアップデートしたらコケた話

Sass 3.3 から利用できるようになったマップで変数を連想配列のように定義しておきたいと考え、少し前から導入していた gulp-ruby-sass。

昨日「最新版リリースしたよ」とのツイートを見かけていて、早速アップデートしたところ、@import で指定した .scss ファイルが読み込めず、タスクが途中でコケるようになりました orz...

配布元の issue によると、loadPath オプションに「process.cwd()」と書けば、現在のプロジェクトディレクトリを基準にできる様子。

@import behaviour in 0.6.0 #78:
https://github.com/sindresorhus/gulp-ruby-sass/issues/78

こちらを参考に調整してみました。

PageBute プラグインのアップデート時に PageNext を一括置換する

Movable Type で静的にページ分割というと PageBute プラグインを利用する方も多いのではないでしょうか?

静的ページ用ページ分割プラグイン:PageBute - Movable Type技術ブログ:
http://www.mtcms.jp/movabletype-blog/plugins/pagebute/200702011953.html

PageBute 3.5.7 で一部のタグ名が変更になっていたため、とあるサイトで過去バージョンから最新版にアップデートしたところ、再構築エラー。。。
対象となるテンプレートを個別に修正すればよいものの、面倒くさがりな BUN としては少しでもラクをしたいところ(。-_-。)

そこで、SQL で一括置換する方法を考えてみました。

Vagrant + Chef Solo で Movable Type が動く LAMP 環境を作ってみた レシピ編

Vagrant + Chef Solo で Movable Type が動く LAMP 環境を作ってみた 準備編で Vagrant の VM を Chef で管理できる状態になりましたので、レシピを調合するにあたって工夫した点をまとめてみます。

なお、完成した Cookbook を GitHub で公開しました。

chef cookbooks for CentOS:
https://github.com/dreamseeker/chef-cookbooks-centos

はじめて作ったこともあり「こんな感じでいいのか?」という疑問は残りつつ、BUN でも理解できるくらいのシンプルな構成になっていますので、ご参考程度ということで。