b-shock. Fortress

Mastodon 2.1、及びカスタムテーマの更新

Mastodon 2.1.0が 今朝リリースされたので、早速導入した。新機能等に関してはリンク先を見て頂くとして。

Mastodon自体の更新の手順はいつも通りで問題ないので割愛。1点除いて、特にひっかかった点も なかった。
その1点とは、2.0の新機能だったカスタムテーマだ。2.0のカスタムテーマは2.1と互換性がない ケースがある。
カスタムテーマのエラーを放置すると、更新の手順の最後に行われる rake assets:precompile を終了させることができず、Mastodon自体の更新も完了しない。

エラーが出ている場合に、手っ取り早くMastodonの更新だけを行いたい場合

以下のいずれかの手順を行った後に、通常通り rake assets:precompile を実行。

カスタムテーマを無効にする

config/themes.ymlにカスタムテーマを登録しているはずと思うが、追記分をコメントアウトし、 defaultテーマ(設定画面上では、サイトテーマ「Mastodon」に該当)だけを残す。

variables.scssに$cjk-langsを追記

defaultテーマの配色だけを変更したテーマの場合、テーマのファイル構成は踏襲している だろうから、defaultテーマ同様にvariables.scssが存在するはずと思う。

variables.scssに$cjk-langsが存在しない場合は、 rake assets:precompile 時に以下の エラーが発生する為、

最終行にでも $cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; と追記する必要がある。 2.0のvariables.scssからコピーしている場合、この記述がないはず。

簡単なカスタムテーマを作成する手順

話のついでなので、おれがやってる手順のまとめ。

config/theme.yml に追記

defaultはもとからあるテーマ。その下にdefaultテーマをまねて追記。
以下、 bshock がテーマの名前であるとして。

ルートのscssファイルを作成

1
2
cd app/javascript/styles
cp applications.scss bshock.scss

Mastodon 2.1では、bshock.scssは以下の様な内容。

defaultテーマから、2行目だけを書き換えている。もともと2行目には mastodon/variables と書かれていたが、 bshock/variables と書き換えた。
配色以外の要素はデフォルトのままで良いなら、variables.scss以外のファイルはオリジナル のファイルをそのまま参照すれば良いと思う。(もっとも、本来この手順が適切とは思うのだけど、 今回2.1への更新では裏目に出てしまった)

variables.scssを修正

variables.scssをdefaultテーマからコピー。

1
2
mkdir bshock
vi bshock/variables.scss

bshock/variables.scssは、以下の様な内容。

上記は実際には、defaultテーマから // Values from the classic Mastodon UI (9行目) 以下にある4つの変数だけを書き換えたもの。

$classicから始まる4つの変数は、カスタムテーマが実装された2.0よりずっと前から あったものみたい。
$classic-base-color などでググれば、1.6以前の記事でも参考にできる配色があると 思われるので、ありがたく拝借すればよいだろう。
配色のことは、デザインセンスのないおれに聞かないで頂きたいw

全て終わったら、エラーがないことを神に祈りつつ、いつもの rake assets:precompile を実行し 再起動。(もっと速い手順がありそうとも思うが、念の為おれはこの手順でやってる) うまくいけば、各ユーザーはデフォルトのMastodonテーマと別に、bshockテーマも選べる様に なるはず。
うまくいかなかったら…確か、PostgreSQLのsettingsテーブルを開いて、theme値をごちゃごちゃ やる必要があったはず。そうはならない様、各位の健闘を祈るw

次回予告

先日、自宅鯖にMastodonインスタンスを引っ越した。
この時メモした作業手順を踏まえ、FreeBSDでの構築手順を書く予定。
FreeBSDでMastodonなんて地雷じゃね?などと言う人もいるだろうが、地雷ばかりじゃない。 ZFSイイ!以上。