おまえらの再構築設定は間違っている、とは言いません。再構築の時間を短くするための基本的な設定を紹介します。
[Movable Type]カテゴリ[87]
Movable Typeには環境変数という設定があります。環境変数になれてMTへの理解を深めましょう。この記事はMovable Type Advent Calendar 2013の12日目です。
Movable Typeのアップグレード時に「新規ユーザ向けウェブサイト」というものが作られるケースに巡り合いました。
日付け順のエントリ一覧で、年別や月別など、日付けごとの見出しをつける方法を紹介します。
Movable Type5にも対応したAction Streamsプラグイン2.3がリリースされました。
MT5対応の他にバグ修正と機能追加も行われています。
投稿日時順のブログ記事から最新更新日時を取得する方法を二つ紹介します。
MTタグで日時を比較するには比較が可能な条件を満たす必要があります。
その条件を満たすのにはMTDateタグとtsモディファイアが便利です。
MTタグで文字列の比較ができる事を、MTLoopタグによるソートやMTIfタグによる個別の比較で証明してみました。
Atom/RSSフィードにウェブページを追加する簡単な方法です。
とはいえ、ソースをコピペされるだけなら他の方法と労力は変わりませんが。
MTPagesタグ中ではMTPage*タグだけでなく、MTEntry*タグも動作します。
MTEntriesタグはclass_typeというモディファイアが存在します。
これを使うとMTEntriesタグでウェブページが出力できます。
Feeds.App LiteからFeedExへ乗り換えました。
だってrun-periodic-tasks経由で再構築する際にFeeds.App Liteが妙なメッセージを出すから。
run-periodic-tasksのエラーで困った時、vオプションを使用するとエラー箇所をテンプレートまで絞る事ができます。
再構築時間の短縮は全MTユーザの永遠の課題だと思います。
その対策として、テンプレートモジュールを利用して変数をキャッシュする方法を思いついたので紹介します。
Movable Typeの設定は管理画面を使う以外にmt-config.cgiへ記述する事でも設定できます。
その中でもパスを指定するものは絶対パスでも相対パスでも設定できるようです、たぶん……。
MovableTypeの条件分岐タグ、MTIf、MTIfNonEmpty、MTIfNonZero、MTUnlessによる値の真偽判定を一覧表にまとめて見ました。
その結果、MTIfNonZeroタグに関するある事実が判明しました。
ページやテンプレートの出力を確認する際のプレビュー状態を判断できないか、と試してみたらpreview_templateという変数を発見しました。
MTタグで使えるグローバル・モディファイアを好きな場所で好きなだけ使う為にはMTIfタグを利用します。(現在はMTForタグを使っています)
システムテンプレートが見つからなくなる現象にMovable Type4.32で時々見舞われた。
この現象はテンプレートセットの初期化失敗とは違い、テンプレート自体は存在しているものの一覧画面では表示できなくなる。
とりえあずの対処法は見つけました。
MT4.261&MT4.32でMTIncludeBlockタグが正常動作しない不具合を発見しましたのでその詳細と対処法を紹介します。
MT4.15からCaseSearchやRegexSearchなどの検索オプションが使えなくなりました。
しかしその検索オプションがMT4.2でも使える方法を見つけました。
勝利の鍵はMT::App::Search::Legacyです。
突然、Movable Typeが「Not an ARRAY reference at lib/MT/Builder.pm line 469.」というエラーを吐き出すようになった。とりあえず原因となる記述を見つけたのでそこを修正してエラーを回避しました。
条件を満たす間だけ処理の繰り返しを行うブロックタグMTForを使い始めました。
すると、MovableType.jpで説明されていないいくつかの事に気づいたので、モディファイアごとに説明します。
グローバル・モディファイアnofollowfyを使うとアンカータグのrel属性にnofollowを追加する事ができます。
さくらのレンタルサーバで運用するMovable TypeのデータベースにMySQL5を使っていた、つもりだったが実はMySQL4だった。
だから、MySQL4からMySQL5へ移行しました。
「一つのテンプレートから同名の、グローバルテンプレートとブログのテンプレートを読み込んだ場合、後に読み込んだ方の内容が先に読み込んだ方の内容と同一になる」という不具合を見つけましたので紹介します。
ちょっとした手違いでブログを複製してしまった。
けれど、Movable Typeを「ブログを複製する前の状態」に戻す事は想像した以上に簡単だった。
そこで、その方法を「データベースからブログの痕跡を削除する方法」を中心に紹介します。
MTIncludeタグのglobalモディファイアを使う事でグローバルテンプレートを確実に読み込む事ができます。
恥ずかしい話ですが、MTCommentURLタグとMTCommenterURLタグの機能を勘違いしている事に気づきました。MTCommentURLはコメント時のURLを、MTCommenterURLはコメント投稿者のURLを呼び出すタグです。
Movable Typeでデバッグモードを使用すると管理画面の最下部に「警告とメッセージ」が表示されるのですが、それがシステムテンプレートの最下部にも表示される事を取り扱います。と、序でにデバッグモードの使い方も紹介します。
Movable Typeの変数を初期化する方法を紹介します。この記事で言う変数の初期化とは、値に0を入れる事ではなく、変数の値をNullにする事です。
MTSetVarsタグ内では「変数名=値」という形で宣言を行いますが、もしも「x=y=z」と書いた場合はどうなるのでしょうか。実験してみました。
MTSetVarsタグ内の書式で、空白を挿入してもエラーにならない場合を見つけたので紹介します。
Movable Type4.26にてrun-periodic-taskファイルがエラーメッセージを吐き出すようになりました。エラーの根本的な原因はわかりませんが、Perlの警告スイッチをオフにする事で「エラーメッセージは」消す事ができました。
以前の記事でHTMLタグの要素名を大文字化する方法を紹介しましたが、それらはどれも不完全なものでした。しかし今度のは違います。regex_replaceモディファイアを使うだけでタグの要素名を大文字化する事が可能なのです。
Movable TypeでHTML4仕様のサイトを構築するためには障害があります。それはフォーマット「改行を変換する」で出力されるHTMLタグが小文字である事です。
それを改善する、HTMLタグを大文字にする方法を見つけました。
MT4.2から検索機能の仕様変更でキーワードを入力しなかった検索ではMTNoSearchタグが使えなくなり、エラーページが表示されるようになりました。
しかしMT4.25で仕様変更があり、MTNoSearchタグは再び使えるように、エラーページも表示されなくなりました。
Googleウェブマスターツールのサイトマップに登録してあったRSSフィードのレポート形式が、どういうわけかMRSSフィードとなっていました。それに加えてエラーの表示も。
原因はcategory要素のdomain属性に入れた内容が不適切だった事のようです。
前の記事の最後で「自動保存されたデータの場所がわからない」と言いましたが、その場所がわかりました。情報元は『TRASH-NEWS』さんの記事です。
Movable Type4には編集中のブログ記事・ウェブページ・テンプレートを自動保存する機能があります。その機能は環境変数AutoSaveFrequencyを使って無効化する事ができます。
Ogawaさんの『今さらですがMTOS 4.23に乗り換えました』という記事で、環境変数EntriesPerRebuildの仕様が変更されていた事を知りました。そのおかげでEntriesPerRebuildの値を見直し再構築の時間を短縮する事ができました。
MTで複数記事の公開日時が一致した場合に前後記事へのリンクが同一になるという不具合を発見しました。
自己流のMovable Typeアップグレード方法です。もっと楽な方法や安全な方法はいくらでもあると思いますが、私はずっとこの方法です。
MT4の予約変数entry_archiveとpage_archiveを使ってブログ記事とウェブページを判別しようと思いましたが、失敗しました。原因は予約変数entry_archiveのバグです。しかし、代わりに使える予約変数も見つけました。
まとめて変数を設定できるMTSetVarsタグ。そのMTSetVarsタグの中でMTIfタグとMTIgnoreタグが使える事を発見しました。
Movable Type4にはアーカイブテンプレートに隠し変数ともいうべき予約変数が存在します。その予約変数がユーザーの手で上書きできる事を発見しました。
ウェブページとフォルダを階層表示できるようにデフォルトテンプレートのウィジェット「ページ一覧」を改造します。ウェブページを含まない空フォルダを非表示にする方法もあわせてどうぞ。
ダミーデータ・テストデータを生成するプラグインMTBooterの導入方法・大まかな使い方・エラーの対処方法です。
Movable Typeは記事概要を入力しない場合、記事本文の先頭から抜き出されたものが代わりに割り当てられます。その概要が投稿者によって入力されたのか、システムによって記事本文から割り当てられたのか判断する方法を見つけました。
エントリー概要に(X)HTMLタグを使うと、トラックバックを送信した場合に(X)HTMLを使った文字数だけ損をします。Movable Typeのトラックバック仕様では記事概要に文字数の制限があるからです。
MT4.2のMTTagsタグではウェブページに付けたタグがリストアップされません。これはSix Apartにも確認されたバグです。一応対処法もありますが、個人的に好きではない方法です。
mixiが始めた認証サービスmixi OpenIDを始めた。Six Apartはそれに対応したプラグインmixiCommentを公開。これでMovable TypeでもmixiのIDを使ったコメント投稿が可能になった。ただしmixiCommentの動作には注意が一つ。
Movable Typeのコメント投稿で能力を発揮するmt.js。その、MT4.2のmt.jsにMT4.2以下のテンプレートでも動く準備(下位互換)がしてある事を発見した。
三点リーダーが三連ピリオドに変換される場合の対策としてエンティティを選択する方法があるが、他の対策案と違い、エンティティの選択には注意が必要である。それは一部のテンプレートタグにencode_htmlモディファイアを使っているかどうかに関係する。
いつからなのか、MT4でエントリー等に入力した三点リーダー(…)など幾つかの記号が違うものに変換されていた。どうやらMT4の「Word特有の文字を置き換える(Smart Replace)」設定が原因のようだ。
MT4.1で「正規表現(RegexSearch)」にチェックを入れて検索した場合、検索結果に全てのエントリがヒットした。 検索語(search)に何を入力しても、全てのエントリがヒットした。 mt-config.cgiにMaxResultsを記述した場合はその数までヒットし、MaxResultsを記述しなかった場合は100件ヒットした。 フィードバックを送った結果、バグという事が認められました。...
インデックステンプレート一覧では左端のチェックを入れたものだけ選んで再構築する事ができる、はずだが実際、MT4.1では再構築できないものがある。どうやら再構築オプションが原因のようだ。...
最近、いくつか個別記事のURLが変わってしまった。原因は個別記事のURLに使用していたカテゴリー構成を弄ったからだ。なので今後の事を考えて個別記事のURLを現在のカテゴリ基準から日付け基準に変えた。...
以前から不満のあったMTの自動改行を改良します。 今回はpreタグ内に空行を一行含んでいても改行等(<br />, <p>, </p>)が挿入されないようにします。 この改良については小粋空間さんの記事「エントリーにpタグとbrタグが入る仕組み」を参考にしました。 その1:コード解析 その2:blockquoteにbrタグを挿入 その3:textareaにbrタ...
MTのデフォルトテンプレートでアーカイブページへのリンクは <a href="<$MTBlogURL$>archives.html">アーカイブページ</a> となっています。 しかしこのままだと、例えば出力するアーカイブの拡張子を「php」に変更した場合、まずアーカイブページのテンプレートをarchives.phpに、アーカイブページへのリンクURLのarch...
MovableTypeにはMTIgnoreというタグがあります。 このタグは公式タグリファレンスに指定した範囲について、処理を行わない条件タグとある通り、MTIgnoreで囲まれたMTタグの処理をスルーするのですが、それだけではありません。...
以前のエントリーの補足です。 以前書いた方法で修正箇所が見つからない場合があるようです。その場合の修正方法です。 重複する説明をしないようにしていますので、先のエントリーが未見の方はまずそちらをご覧下さい。...
MTのカレンダーは通常、日別アーカイブへリンクされます。 日付けアーカイブが無く、エントリー・エントリー(個別アーカイブ)だけの場合でもちゃんとリンクされます。 例えばこのカレンダーを見て下さい。 いたって普通です。しかし、実はこの月の3日、4日、12日は日に複数のエントリーが存在しますが、カレンダーからのリンクは一つのエントリーにしかされていません。これでは困りますので日に複数のエントリーがある...
Movale Typeには便利なプラグインが多数あります。 ただ、プラグインにはプログラムソースだけのものがあります。 そういうプラグインは作者のURLやヘルプがわからず、バージョンアップの時、使い方を忘れた時、エラーが起こった時にどうしようもなくなってしまいます。 例えば、MTにデフォルトで同梱されているTemplate Backup and Refreshはプラグインページを見ても右側の項目が...
MTのデフォルトテンプレートを弄っていたら<$MTEntryTrackbackData$>というタグを見つけました。 どういう意味があるのかマニュアルで調べてみました。 <$MTEntryTrackbackData$>の説明 エントリーに対してのトラックバック用データのRDFを出力します。Bookmarkletが利用します。この出力は、ウェブ・ブラウザーで見えないようになっ...
Movable Type 3.x デフォルト・テンプレートのAtomフィードで不具合が見つかったらしい。 Six Apart :: Movable Type 3.x デフォルト・テンプレートのAtomフィードの不具合について drry+@-> :: Movable Type のデフォルト Atom フィードテンプレートを駄目出し ...
この内容はトラックバックの場合にも応用できます。 標準のテンプレートだとコメントの受信を許可しているときは パーマリンク | コメント (0) | トラックバック (0) と表示され、許可していない時は パーマリンク | トラックバック (0) とリンクが無くなります。 この場合、はじめからコメントを許可しておらずコメントを一つも受信して無い場合は問題ありませんが、既にコメントを受信している場合は...
MT3.3にはテンプレートを初期化できるプラグイン「Template Backup and Refresh」があります。 このプラグインのおかげで、現在のテンプレートを消さずに初期化出来ます。 ただ、この初期テンプレートはどこにあるのかと探しました。 3.2以前はSixApartにあります。プラグインで初期化は出来ますけど、出来れば根元を抑えておきたいなと思ってMTの中を漁った。...
こちらで知ったのですが Ogawa::Memoranda :: MT 3.2でHTML::Templateのファイルキャッシュを有効にする MovableTypeが利用しているHTML::Templateにはキャッシュ機能があるそうです。 標準ではキャッシュ機能が有効になっていないので、利用したい人は有効にしましょう。 方法は簡単です。...
MovableTypeのコメント認証に利用される一つのTypeKey。 コメントテストしようと思ったらサイン・インに失敗した。 TypeKeyのエラーメッセージ あなたがコメントしようとしたウェブサイトには TypeKey サイン・インができません。ウェブサイトのオーナーに確認してみてください ...
6月の頭くらいにMovableTypeのバージョン3.3β版がリリース。 何も考えずに即アップデートで何事もなく完了。...
Movable Typeのカテゴリを並べ替える方法と、カテゴリの出力名をコントロールする方法を『日本語カテゴリー名の並びと出力フォーマット, in Templates, on Movable Type 4989』(サイトは閉鎖されたようです)で発見しました。
(この記事はMovable Typeがバージョン3だった頃に書きました)
ブログクライアントソフト『BlogWrite』を試して見ました。
ブログクライアントソフト『ecto for windows』を試して見ました。(『ecto for windows』は開発が停止されましたが、ダウンロードは出来ます。また、新たに『Linear』というWindows専用のソフトが開発されています)
Movable Typeを3.171から3.2にアップグレードしました。
Movable Typeで指定日投稿を行うには「cron」の設定が必要です。その途中に自分が躓いた事を備忘します。
Movable Typeが500エラーを連発する原因がわかりました。弄りすぎて壊れたわけでは無かったです。
Movalbe Typeを毎日弄って弄って弄っていたら、500エラーを連発するようになってしまいました。
Movable Typeで再構築してもファイルの更新が反映されない場合の対処法です。ブラウザのキャッシュを破棄してもダメな場合は古いファイルを削除して再構築してみましょう。
Movable Typeではcronを使った指定日投稿が出来ます。この記事はその指定日投稿のテストのみのために投稿しました。
Movable Typeを3.17にアップグレードしました。
Movable Type3.17が近日登場するらしいです。
Movable Typeで、ログインせずに投稿できたので解説しました。
Movable Typeで、ログインせずに投稿できるか実験しました。
MTのヘルプが真っ白で表示されない場合の対処法です。
Movable Typeにはトラックバック・コメントを受けた際に通知する機能があります。はじめは動作しませんでしたが公式トラブルシューティングに従った作業の末、動作するようになりました。
Movable Typeの導入でつまづいたのはMySQLのユーザ名とデータベース名を作ってなかったからでした。