BlogTop > plugins Archive

plugins Archive

all of 3

すべてのページ

今月のいらんことしい(2015年6月)

今月(2015年6月)、サイトのカスタマイズした点をまとめたエントリです。

  • AccessRankingGA プラグインを、Google OAuth 2.0に対応できるように修正した
  • AccessRankingGA テンプレートタグの出力するページ(.json ファイル)の再構築方法を変更した
  • カテゴリー mt4 をサイドバーで表示しない
  • カテゴリー mt6 を新設
  • Trackback のCGI へポストに関する.htaccessの設定みなおし
  • 利用していないプラグインを plaginsディレクトリから削除

OAuth 対応は、以下に詳細ページを用意しました

特定カテゴリーのリストからの除外は、運用のしやすさから、カテゴリラベルでフィルターをかけるのが一般ですが、カテゴリーIDで指定すれば、あとからのラベル変更でも一意なものとして機能します。

mt4カテゴリーは、バージョン4は製品ライフサイクル終了からだいぶたっているので、カテゴリーリストから除外するとしました。

以下はカテゴリーID 1をリストから除外する例

<MTTopLevelCategories>
<mt:Unless tag="CategoryID" eq="1">
...
</mt:Unless>
</MTTopLevelCategories>

mt6のカテゴリーを追加しました。今のところ、タグにmt6を付けてあるものにカテゴリーを与えましたが、徐々に設定していく予定。

先日、以下の記事にて再構築ツールを紹介しましたが、

これにより、対象のファイルを MovableTypeのrun-periodic-task スクリプトから切り離してcron 実行できるようになりました。

AccessRankingGA(のテンプレートタグが生成するファイル) は www-rebuilder経由の再構築にするので、テンプレートの再構築オプションでは「手動」にしておきました。

具体的にプラグイン名は挙げませんが、不要となったプラグイン(長い間使ってなくかつ無効としていたもの・コア機能として統合されているものなど)を削除しました。

今月のカスタマイズは以上です。以下に過去のカスタマイズ記録リストがあります

MT:Plugin:RegexList:リスト作成に便利なRegular Expression拡張プラグイン

Movable Typeのテンプレートの置換を拡張したRegexListプラグインについてです

RegexList はRick Bychowsk (Hiranyaloka)氏(http://hiranyaloka.com)によりリリースされたプラグインです。

この記事のタイトルでは、「リスト作成」とかつけてしまいましたが、正確には Regex でマッチ(サーチ?)したものを配列にpushしてくれるといった動作のプラグインのようです。

ダウンロード

Downloads のところより入手可能です。

ファイル展開後のRegexListをpluginsディレクトリに収めます。

動作確認

使ってみないことにはご紹介というわけにもいかないので、とりあえずインデックステンプレートでカスタムテンプレートを組んで動作を確認してみました。

当方がが試したのは、MTOS-5.14-ja 上で、特に外部の依存モジュールはないようなので、ローカルで設置したMTOSのみで確認を行いました。

基本的な書式は、regex_replace のように、regex_list="","","" 3つ目の値に区切りとなる文字列のマッチパターンを書きます。

グローバルフィルターなので、任意のテンプレートタグに付与して使うことが出来ます。

プラグインの詳細は、README.markdown に記載されています。これを参考にサンプルを作りました。

1. カンマ区切りな文字列からリストを生成する

<mt:Setvar name="test1" value="apple,bannana,melon,kiwifruit">
<$mt:Var name="test1" regex_list="/(.+)/","$1","/([^,]+)/" setvar="thelist1"$>
<$mt:var name="thelist1"$>

<ul>
<mt:Loop name="thelist1">
<li><mt:Var name="__value__"></li>
</mt:Loop>

2. \u \l \U \L プレフィックスをつかった置換

\u \l がそれぞれ upper-case と lower-case。

大文字のほうの\U \Lですが、小文字のほうとの違いは、キャプチャされている文字全部に(\Eがつけられる前まで)その影響がおよびます。

以上を踏まえて、文字列を先頭1文字を大文字、以降を小文字に整形して出力するものが以下のテンプレートです。

<mt:Setvar name="test2" value="aPple,baNNnana,Melon,kiWiFruit">
<$mt:Var name="test2" regex_list="/(.)(.+)/","\u$1\L$2\E","/([^,]+)/" setvar="thelist2"$>
<ul>
<mt:Loop name="thelist2">
<li><mt:Var name="__value__"></li>
</mt:Loop>
</ul>

3. キー、ハッシュ風の記法からページ内リンクリストを生成

「フラグメント」: 「タイトル」, 「フラグメント」: 「タイトル」
といったルールのテキストを変数にセットしておいて、これを元にして、ページ内リンクを生成するというテンプレートです。

<mt:SetVars>
internal=t2:Title2, t3:Title3, t4:Title4, t5:Title5
</mt:SetVars>

<$mt:Var name="internal" regex_list="/(?:[\s]+)?(.+):[\s+]?(.+)/","<a href="#$1">$2</a>","/([^,]+)/" setvar="thelist3"$>

<ul>
<mt:Loop name="thelist3">
<li><mt:Var name="__value__"></li>
</mt:Loop>
</ul>

まとめ

もう少し複雑な例とか思いついたのですが、当方のスキルがいっぱいいっぱいなのでこの辺で。

RegexList をうまく活用すると標準のテンプレートタグのみでは複雑に組まなくてはならない場合を解決できることがあります。

なお、このプラグインはどの値を push したかをブログのログに記録するようになっています。ログはブログのツール>ログ からみられます。

MT:カスタムボタン:公開日の秒数を切り上げ0に設定してフォームに投げるボタン

久々のCustom Editor Button用追加ボタンです。投稿日のフォームへ秒数を00にして切り上げた状態のものをセットします。

最近公開時間の秒数を00にそろえるというのが自分のマイブームとなっています(何をやってるんだか)。ようするにきっちりと揃えたいというだけなのです。前は現在時刻をフォームにいれるボタンを使っていましたが、秒数だけ修正するのに面倒になってきたのでボタンを作ることにしました。

config.yamlファイル

name: PublishDateSetZeroSecondsButton
id: PublishDateSetZeroSecondsButton
key: PublishDateSetZeroSecondsButton
author_link: http://www.markdiary.com/
author_name: maRk
description: utility button for Custom Editor Button2 plugins
version: 0.1
#
# require Custom Editor Button 2 Plugin https://github.com/aklaswad/mt-plugin-custom-editor-button-2/
#
buttons:
    util_curtime2:
        title: Publish Date would set as zero seconds to Current Time
        image: images/now0.png
        code: |
            function ceb_util_curtime2 (text, args) {
                function zp(num) {
                    if(num < 10){num = '0' + num;}
                    return num;
                }
                var now = new Date();
                    if (zp(now.getMinutes()) < 59 ){
                        var date = '' + now.getFullYear() + '-' + zp(now.getMonth() + 1) + '-' + zp(now.getDate());
                        var time = zp(now.getHours()) + ':' + zp(now.getMinutes() + 1) + ':00';
                        document.entry_form.authored_on_date.value = date;
                        document.entry_form.authored_on_time.value = time;
                    } else if (zp(now.getHours()) != 23 && zp(now.getMinutes()) == 59) {
                        var time = zp(now.getHours()+1) + ':' +'00:00';
                        document.entry_form.authored_on_time.value = time;
                    } else { var time = zp(now.getHours()) + ':' + zp(now.getMinutes()) + ':00';
                      alert('wait few minutes');
                }
                return undefined;
            }

config.yamlは、PublishDateSetZeroSecondsButtonフォルダにいれてpluginsディレクトリへ。now0.pngは適当な画像を/mt-static/plugins/PublishDateSetZeroSecondsButton/images/.にいれるとします。

* Custom Editor Button 2プラグインが必要です

jQuery For MTプラグインをいれてみました

Movable Type 4 の管理画面に jQueryをつかえるようにするための、jQuery For MTプラグインを使ってみることにしました。

MTのアップデートの際にAltTemplateをアップするのを忘れてて動いてないなあ、とか実際にやってまして。プラグインならば、いつもアップデートのときに、旧MTディレクトリからごっそりコピーしてくるのでそういった凡ミスはほぼないってことです。

プラグインは以下からダウンロードできるようです。

以下、Movable Type 4系での話として進めていきたいと思います。

これまで、管理画面でjQueryを使うのに、AltTemplateを使っていました。これを、jQuery For MTに移行する手順は以下のとおりです。

  1. プラグインを入手する
  2. 展開してpluginsフォルダ以下はシステムのplugins以下に、mt-static/plugins以下の「jQueryForMT」をシステムのmt-static/plugins以下にそれぞれアップロードする(ダウンロードページの詳細のとおり)
  3. user.jsに、alt-tmplディレクトリ以下にある、AltTemplateファイル(.tmplのファイルなど)に記載されている、JavaScriptのコードを入れる
  4. 編集後、user.jsをアップする
  5. alt-tmplディレクトリ以下を削除する(他に使用する代替テンプレートがある場合は当該ファイルのみ削除しあとは残しておく)

それと一点だけ気づいた点ですが、jQueryのプラグインなどを利用したいときに、user.jsにプラグインのコードを貼るのもあれなので、動的に.jsファイルを呼び出すようにuser.jsに書くようにしました。AltTemplateでは、<script src='path/to/hogehoge.js'></script>みたいに直接HTMLで書けるわけで、こういったところはAltTemplateとの違いでしょうか。

もっともプラグインのplファイル弄ればなんとかなりそうですけれども(というか、そんなにコテコテにカスタマイズしてどうする、とかなんとか)。

追記:メモです。システムメニューでjQueryを使わないという都合ができた(個人の環境によるものです)ので、plファイルの出力関連のコードに以下のタグに包含するとしました。

  • <mt:unless name="system_overview_nav"></mt:unless>

TemplateShelfプラグインの「All Templates」の選択がワナらしいので

  • Posted by: maRk
  • mt4 | mt5 | plugins
  • はてなブックマークに追加

Movale TypeのTemplateShelfプラグインですがAll Templatesを選択時にテンプレートの数が多いと動作が重くなるとのことなので使えないようにする改造とグローバルテンプレートのIDについてです

Movable Type 5で「TemplateShelfプラグイン」が動作できるとの情報がWolaWolaさまにて紹介されています。不具合の修正や改造方法も掲載されていますので参考になります。

ヴァージョンを4.2にしてから動作しなくなったので放置してしまったのですが、4.2以降でも動作するようにヴァージョンアップされていたようですね。さっそく使ってみましたところ4.261においても動作することを確認しました。

さて、「All Templates」を選択した際に動作が重いとのことです(JSON形式のデータの書き出しか読み込みで時間がかかるのか??)。すべてのテンプレートのショートカットを表示させたい場面は滅多にありませんので要らないものは使わなくて済むように以下のように変更してみました。なお以下のカスタマイズはMovable Type 4.261にて確認をおこないました

<option value="" disabled="disabled"><__trans phrase="All Templates"></option>

template_shelf.tmplファイルのoption要素で当該の箇所にdisabled属性を追加して選択できないようにしています。

余談ではありますが、書いておきますとoption要素のdisabled属性がIE6では選択不可にならなかったとおもいます。その前にIE自体でこのプラグインが動かないですので。。(参考:「Template Shelf」プラグインがIE6では動かない? - ElectricBrain Standard)上記はワタくシがやった方法ですから、その部分を削除するなり、コメントにするなりお好みの方法でよろしいかと。

それと、グローバルテンプレート時の振り分け(blog_id=0のパラメタが機能していない件の対処)についてなのですが、実はモーダルボックスでグローバルテンプレートの表示を試してみると(MT4.261の場合です)、コチラのほうはいちおう表示されているんですね、これが。

ソースを見るとどうやらtmpl.idの値が求めているものそのものらしいです。で、問題の箇所は以下のように変更してみました。createRow()関数の箇所でmt:var name="blog_id"の部分をtmpl.blog_idに置き換えます。そういう意味とは違うようでしたら御免なさい。

?__mode=view&amp;_type=template&amp;blog_id='+ tmpl.blog_id + '&id=' + tmpl.id + '">'

改造後はいつもの如しで、MTシステムディレクトリ/plugins/TemplateShelf/tmpl以下にアップロードして管理ページから確認して終了です。これで「むきょー!」の仲間入りですね。

MT:PubSubHubbubプラグインについて

Movable Typeのプラグイン、PubSubHubbubの紹介と導入について書きます。

「PubSubHubbub」って何?といわれてもよくわかってなかったりしますが、RSSの更新情報の反映をRSSリーダーなどでの時差を解消しようとするものです。

説明不足でアレなので、PubSubHubbubについては、以下のページを参考リンクとして示します。

追記:livedoor reader については、記事投稿のときのPing送信先に、http://rpc.reader.livedoor.com/ping を指定されたほうが早いとおもわれます。

PubSubHubbubプラグイン

PubSubHubbubプラグインは、miyagawa(Tatsuhiko Miyagawa)氏の提供するMovable Type用プラグインです。Movable Type4以降で利用可能のようです。プラグインの入手は以下からダウンロードすることができます。

導入について

ダウンロードしたファイルを解凍し、フォルダごとMTシステムのディレクトリのpluginsディレクトリ内にアップロードします。アップロード後に、プラグインの設定画面にて設定をおこないます。なおプラグインはブログ単位で設定をおこなうようになっています。

以下のキャプチャはMT5.0ベータ1によるものです。

mt_pubsubhubbub-01.gif

設定画面にて、pingを打つ先のURLを入力して、設定を完了します。今のところ、「http://pubsubhubbub.appspot.com/」が利用可能のようです。

設定が済んだら、「最新記事のフィード(feed_recent)」(atom.xml)テンプレートの<link rel="self" ... />以下に<$mt:PubSubHubbubLinks$>を埋め込み、保存・再構築をおこないます。

mt_pubsubhubbub-02.gif

再構築後のフィードのソースを見ると、<link rel="hub" href="..." />というコードが追加されています。 W3C Feed Validation Service で確認すると、Recommendationsとして、「Unregistered link relationship」が指摘されるのですが、御愛嬌ということで。

あとは、記事を更新するのみです。以上です。

Continue reading

RenameLabel Pluginを使って編集画面のラベルを漢字表記にしてみた

エムロジック放課後プロジェクト提供のRenameLabel Pluginは、Movable Typeの編集画面のフィールド名を任意の名称に変更するためのプラグインです。ためしにこれを使って漢字のラベルにしてみました。

プラグインを入手する

プラグインは、エムロジック放課後プロジェクト(エムロジック株式会社)さまの以下のページからダウンロードできます。

説明のHTMLファイル等も同梱されていましたので、導入方法などはそちらを参考にします。

ラベル表記を変更する

プラグインが導入できますと、ブログのプラグイン設定の画面にRenameLabel Pluginが表示されているはずですので、そこから「設定のタブ」を表示させると、設定画面が表示されます。

利用の状況に応じて適切なラベル名を付ける、というのがこのプラグインの本来の目的なのですが、今回は昨今の漢字ブームにあやかって(?)ラベルを漢字にしてみました。漢字訳ですが、かなりテキトーです。漢字訳については、いちおう以下のサイト等を利用しています。#ネタですいません(汗;

スクリーンショットを示します。

rename_fieldlabel_conf.gif

管理画面は以下のようになりました。ちょっとやばいカンジです。

rename_fieldlabel.gif

Click to Enlarge

今回ためした件のラベルとその値の対応は以下のファイルとなってます。訳はコチラのイメージとかによるので、妥当ではないとおもいます。「トラックバック/言及通知」とか。

Download

ActionStreams関連のドキュメント・リファレンスが追加されている

  • Posted by: maRk
  • mt4 | plugins
  • はてなブックマークに追加

Movable Type 4.25でバンドルされているActionStreams(アクションストリーム)プラグイン関連の情報がmovabletype.jpにあがってきているようです。

最近ほとんどかまうことのなくなってきたActionStreamsなのですが、movabletype.jpを見ますと、このプラグインの関連情報やタグリファレンスなどが追加されています。一寸だけピックアップします。詳細は、アクションストリームのドキュメントをご参照ください。

タグリファレンス

ドキュメント

Actionstreamsとはてなブックマークが関係してログフィードで不具合(?)

Movable TypeのシステムのログフィードをFirefoxに登録しているのですが、ライブブックマークを読み込めない状態がおこっていましたので原因を確かめてみました。

順を追って説明しますと。

  1. システムのログフィードが「ライブブックマークを読み込めませんでした」となっていた
  2. ログフィードを確認。謎の文字列が入っていて、ActionStreamsプラグインで、はてなブックマークでブックマークしたエントリに問題がある様子。
  3. 実際にエントリページを確認に行く。(はてなブックマーク - 新倉イワオ - Wikipedia
  4. 概要の部分にエラーログの内容にある文字列が入っていることを確認。
  5. 当該のブックマークを削除してみる
  6. ログ自体に文字列が残っているために、フィードが正しく生成できていないようである
  7. ログフィードをCSVファイルに吐き出してから、リセットをおこなう。
  8. 正常の状態に戻る

原因がどこにあるのか特定しにくいというか、レアケースと思われるのでフィードバックはおこなってません。環境は、Movable Type Commercial version 4.24-ja +プラグイン1.0+audiofan.netさまにて公開されていたはてな用config.yamlです。

はてなブックマークのエントリページの問題と思われる箇所のキャプチャを示します。

hateb-entrypage.png

ログをエクスポートしたCSVファイルから見たキャプチャは以下となっています。(ログインのユーザ名の部分は当方で修正)

errorlog_mt_actionstreams.png

Click to Enlarge

ブックマークしたページがアノかただけに......というオチはないです。以上です。

選択したテキストをExcerptフィールドに入力するボタンを作ってみた

久しぶりにCustomEditorButtonプラグインのボタンを作成してみました。今回のボタンは本文中の選択テキストを概要フィールドに入れてしまうというものです。

小粋空間さまにて、ExcerptRichText プラグインが公開されています。記事投稿画面の概要フィールドを、本文や追記のようにタブで選択してリッチテキストを使えるようにするというプラグインです。

そこでワタくシもアイデアを頂戴いたしまして、テキスト中の選択部分を概要フィールドにいれてしまおう、というのを考えました。

思いつきで作ったのでいまいとつなのですが、スクリプトのコードのみ掲載しておきます。あ、その前にまずはCustomEditorButtonプラグインを導入しておきます。 blog.aklaswad.comさまの以下のページから入手できます。

コードは以下のようなものです。*注:初期バージョンのものです

buttons:
    utl_excerpt:
        title: excerpt field
        image: images/excerpt.png
        code: |
            function ceb_utl_excerpt ( text ) {

            var removetext = 0;          // If you remove a select text, removetext= 1;
            var show_excerpt_field = 0;  //  Display Excerpt field, show_excerpt_field = 1;
            var cid = document.getElementById('excerpt');

            if(cid==null) return;
            
                 if(show_excerpt_field==1){
                        var node = document.getElementById('excerpt-field');
                        node.className =  "field";
                        }
            var vl = text;
            document.getElementById('excerpt').value = vl;
            if(removetext==1){ return '';
              } else {
                return undefined;
              }
            }

現時点の気づいた点は以下のとおりです。

  • テンプレートタグや(X)HTMLタグの除去機能はないですのでタグがついたまま放り込みます。
  • フィールドに内容があるとき、選択しない状態でボタンを押すと、概要フィードの内容が消えます。
  • IEで動作が怪しいかもですのでFirefoxのほうをおすすめしておきます。
  • Firefox3のCtrlを使った複数選択には対応できてません。

おまけ的な機能ですが、removetext の値を1にすると、ボタンを押したとき選択テキストをカットします。show_excerpt_fieldの値が1のときは、「表示オプション」で概要フィールドの表示のチェックの有無に関係なくボタンが押されたら、概要フィールドを表示します。

追記:2009/03/06 プラグインのファイルを置いておきます。

2009/09/05 プラグインをアップデートしました。主な変更点は以下となります。

  • Movable Type 5(5.0 beta 1)の画面での確認をおこなった
  • 概要フィールド入力時にメッセージがでるようにした
  • 選択せずにボタンが押されたときにアラートがでるようにした
  • remove_textの機能を使用したとき、テキストを半角スペースで返す動作に変更した
2009.09.05 update ver. 0.2.0

Select Export:指定した記事をエクスポート。(説明キャプチャなし)

Movable Typeにはブログ記事のエクスポート機能がありますが、特定の記事だけエクスポートするプラグインがSelective Exportです

Batch Publishing Optionsと同じく地味な部類に入りそうな(失礼。)プラグインなのですが、Selective Exportプラグインを使うと特定の記事のみエクスポートすることができるようになります。以下のページからダウンロードすることができます。

以下、バージョン1.0にもとづいて簡単ですが使い方メモです。

  1. ファイルを解凍してできたpluginsフォルダ内のSelectiveExportフォルダごとMTシステムのディレクトリのpluginsディレクトリにアップロード
  2. システムメニューのプラグイン一覧にSelect Exportがでていることを確認
  3. settingsのタブのところで設定する(具体的な設定は下に示します[説明↓])
  4. Save Changesボタンで設定完了
  5. 記事一覧や記事検索の結果一覧および各エントリの編集画面に、ドロップダウンメニューで(記事の)Exportが追加される

Selective Exportプラグインの設定について

Location for exporting your selected exports
エクスポートファイルの出力先のパスです。共用サーバの場合自分の領域に。
Combine all of the exported entries into a single export file.
初期設定ではチェックオフで、エクスポートファイルは記事単位で個別に出力されます。チェックオンにすると、選択された記事が1ファイルにまとめて出力されます。
Use the rich text editor for managing the look, linebreaks, etc.
ラインブレイク(強制改行)オプションを反映させるかどうかの設定。リッチテキストを使うときに

追記:Selective Exportの間違いでした。修正しました

ActionStreamsのサムネイル表示について

Movable TypeのActionStreamsプラグインで、Flickrなどサービスでサムネイルを表示させるためのテンプレートの書き方メモです

この記事は、つれづれぼっくすのほうで書いていたものを再編集したものです。

サムネイルを表示させるためのコードは、ActionStreams Pluginのなかに同梱されている、README.txtのなかに記載されていてます。

【追記:2009/03/24 】MT4.25のActionstreamsプラグインのREADME.txtには、サムネイル表示のためのコードは書かれていませんでした。ドキュメントが用意されています。

それを元にして、書いたコードは以下のようになります。テンプレート内で該当する場所を探して書き換えをします。

*コードは見やすくするために改行しています。

<mt:setvarblock name="thumb_url"><mt:StreamActionThumbnailURL></mt:setvarblock>
<mt:if name="thumb_url">
<div style='padding-left: 20px; padding-bottom: 10px; padding-top: 5px;'>
<img alt="thumbnail" src='<mt:var name='thumb_url'>' />
</div>
</mt:if>

ワタくシはmicroformatsのhAtomに対応させるのにspan要素の部分に以下のように記述させています。おススメというわけではないです。もっといい方法があるようなきがするんだけど知識がないもので(汗;

<span class="entry-content" style="display: none">
<mt:if name="thumb_url"><img alt="thumbnail" src='<mt:var name='thumb_url'>' /></mt:if>
<mt:StreamAction regex_replace="$name_regex","$author_short_name">
</span>

このサイトでは、ActionStreamsのページで適用してますが、常にサムネが表示されている状態を保てる保証がないので一応キャプチャを示しておきます。

actionstream-thumbnail.gif

訂正:ActionStreamsプラグイン、Deliciousのfeedについて

リニューアル後のDeliciuousのフィードで、RSS2.0が拡張されているようで、エレメントが以前のものと変わっていたもよう。これに従い、ActionStreamsのconfigファイルを修正してみました

前に、DeliciousリニュにつきActionStreamsのconfig.yamlを修正で紹介したのですが、その後確認しましたところ、feeds.delicious.comより配信されますフィードで、POSTされた時間をあらわすエレメントが、以前のフィードと変わっていたために、そのままで使うと、時系列の情報が正しく反映されません。例えば、プロフィールの画面からActionStreamsの一覧をみることができるのですが、Deliciousのところだけ投稿時間が「○時間後」といった表示になっていたりしてました。

Feedを確認したところ、投稿時刻を示すエレメントには、「pubDate」を使っているようでしたので、修正したconfig.yamlは以下のようになります。created_onの次をpubDateにしておきます。修正が済んだら、サーバのほうに上書しますが、念のためにconfig.yamlのオリジナルファイルはローカル側で残しておくといいかと思います。なお、config.yamlの改変は自己責任にてお願いします。

action_streams:
    delicious:

・・・ 途中省略 ・・・・

            url: 'http://feeds.delicious.com/v2/rss/{{ident}}'
            identifier: url
            xpath:
                foreach: //item
                get:
                    created_on: pubDate/child::text()

ちなみになのですが、ActionStreamsのオリジナルのconfig.yamlに記載されているdeliciousのフィード(http://del.icio.us/rss/(user))でアクセスすると、リダイレクトされて、ワタくシの場合ですと以下のようなURLです。v2というディレクトリがつくかつかないかですが、こちらの場合はRDFによるメタ情報といった感じRSS1.0です。dc:dateを使っているので、オリジナルのままで上記のような修正は必要なさそうです。どちらを選択するかは、各自の判断でといったところでしょうか。

  • http://feeds.delicious.com/rss/maR_K

テンプレート入れ替えとその顛末

  • Posted by: maRk
  • mt4 | plugins
  • はてなブックマークに追加

Vicunaのテンプレートを、MT4.2(4.21)に対応すべく、既存のものに追加する形で入れ替えしました。結果とそのなかでおこったことなどを

カスタマイズが多いということ

MTのバージョンも4.2になったことなので、テンプレートもmt.VIcunaにかえてみようとおもいました。で見た感じだとわかりにくいのかもしれないけど、ここではわりとテンプレート弄ってるものだから、元の姿とだいぶ変わってる箇所があります。

手順どおりでmt.Vicunaのテンプレートセットを入れ替え作業をするときにこちらが困る点はというとこれ。

  • 手順どおりにテンプレートセットを丸ごと変えてしまうと、これまでに作ったカスタムテンプレートが消えてしてしまう

テンプレートセットでの入れ替えは、手軽で簡単におこなえるし、クリーンインストールという意味ではいいのかも知れないんですけど、カスタムテンプレートが多いとそこからもとの状態に近づける作業時間が追加されることになるです。

そのために、一部テンプレートだけ差し替えをおこなってテンプレートの初期化をするという方法もあるわけですが、これもカスタマイズの箇所が多いと差分をとったりするのも結構手間だったり。でもまあ手間かけずに済まそうというならデフォルトのまま使えよ、とかいわれそうなんですけど。

テンプレッツプラグイン使ってみる

このようなときに、もしかして救世主?とおもったのが、Templetsプラグインなんであります。なお、プラグインについてはOgawa::Memorandaさまの以下のページを参照します。

このプラグインを使うことで、必要なものを既存のものに追加という形がとれますから、自分がカスタマイズして追加したテンプレートを残したまま、新しいテンプレートを追加することも可能となります。

入れ替え作業は難航?

それで、アーカイブリストのテンプレートとウィジェットを追加することをまずはやってみました。

おこなう前にcofig.yamlファイルの書式を理解する必要があって、これを理解するのに少し時間かかってしまいました。ローカルでテストしてたら、YAMLファイルが正しくないためにシステムがエラー返してましたし。(汗

あと、いきなり表示崩れとかやってしまいました。それは前のテンプレートでDIV要素が途中で切れる形になってモジュール化されてた箇所が原因で、当方がその部分すっかり忘れてたんですね。

結果として、テンプレッツの追加そのものはうまいことできました。ただ部分的なテンプレートの構造がわかってなかったためにヘマしてただけでした。

おわりに

教訓として、テンプレートを差し替えるときは、中身をそっくり替えてから、バックアップされたファイルなどを戻すほうが無難そう。あと、自分が弄った箇所が後からわかるようにメモに控えておくか、差分が取り易いようにカスタマイズをおこなったあとでローカルにファイルとしてとっておくのもいいかも。それと、テンプレートのコピー機能とかもうまく使いたいかな。

DeliciousリニュにつきActionStreamsのconfig.yamlを修正

Deliciousがリニューアルして、ドメインもdelicious.comに変わりました。ActionStreamsプラグインのconfig.yamlファイルのdeliciusを新しいドメインにあわせてみました。

リニューアルについては、delicious blogにて記事があがっています。

はじめにひとこといっておきますと、今の時点では特に変更してなくても、フィードのURLやユーザのページURLなどは今までのドメイン(del.icio.us)からdelicious.comのほうに表示されるようになってます。従いまして以下に示す変更をおこなわなくてもActionStreamsは稼動しているようです(2008/08/01確認)。
改変については自己責任ということでお願いします。

1. 変更された箇所について

先にdelicious.comになって変更になったURLをあげておきます。

ユーザのブックマークページ
  • リニューアル前:http://del.icio.us/<USER>
  • 新:http://delicious.com/<USER>
ユーザのフィード
  • リニューアル前:http://del.icio.us/rss/<USER>
  • 新:http://feeds.delicious.com/v2/rss/<USER>

2. config.yamlの変更箇所

ローカルにあるpluginsフォルダのActionStreamsフォルダ内にあるconfig.yamlファイルを開き、以下のように変更してみました。

140行目付近

    delicious:
        name: delicious
        url: http://delicious.com/%s/

*nemeのdeliciousの先頭は小文字にしておきました。

316行目付近

            url: 'http://feeds.delicious.com/v2/rss/{{ident}}'

書き換えが終わったら、config.yamlをサーバに上書きします。反映をすぐに確認したいときは、ブラウザからMTシステムのログフィードを読みこんでみたらよいかと。

あとこのままでは、Elsewhereのプロフィールページが前の状態のままですので、変更をすべて反映するには以下のようになります。

既存のdel.icio.usをプロフィールから削除する

  1. 管理ページの「こんにちは○○さん」のリンクをクリック
  2. Other Profilesのリンクをクリック。del.icio.us Profileだけチェックを入れ、削除を実行
  3. Add Profileから新たにdeliciousのプロフィールを追加(*)
  4. Elsewhereがモジュールになっている場合、特に変更せずに保存したのち、すべてを再構築して完了(再構築の必要がある場合のみ)

(*)2.で示したように変更されていれば、プロフィールのプルダウンメニュー内は「delicious」という名称にかわっています。

なお、delicious.com用として(単独に)config.yamlを作る手も考えられるのですが、どの道既存のdel.icio.us profileを削除する必要はありそうなので、オリジナルのconfig.yamlを変更でいいのではと思ってます。
追記:タイトルがおかしな感じなので変えました。
追記:Deliciousのフィードの要素が変更になっているので、上記の変更のみでは正しく動作しないようです。訂正の記事を書きました。 http://www.markdiary.com/archives/2008/09-19011506.php

Custom Editor Buttonで記事作成の効率アップ

  • Posted by: maRk
  • mt4 | plugins
  • はてなブックマークに追加

MovableTypeの記事作成画面に、任意の機能を持つボタンを追加させるプラグイン、「Custom Editor Button」がなかなか便利です。

Movable Type 5.2以降を利用している場合は、Tiny MCE プラグインを無効にします。

MT4ではさまざまなフォーマットに対応して記事を作成することができますが、使っていてこんな操作が欲しい、というのがあります。そんなときに、Custom Editor Buttonは、自分の欲しい操作を追加することができるので便利ではないでしょうか。

CustomEditorButton2 より

管理画面のブログ記事投稿画面に、任意の機能を持ったボタンを追加できるプラグインです。

関連ページは以下のとおりです

投稿時間に置き換えるボタンなど欲しい動作なので重宝します。自分が記事を書くスタイルにあわせて利用できるのがいいですね。ちょっと真似してタブ文字追加するのと、タブインデントつきliタグをつけるというのを作ってみました。配布するほどのものでないんでソースだけ紹介します。ボタン用の画像は、プラグインの中にプレーンなボタンが同梱されてましたので、それを使ったら簡単に作成できました。


    tabindentlist:
        image: <ボタン画像へのパス>
        title: tabindent-li
        code: |
            function ceb_tabindentlist ( text ) {
                return '\t<li>' + text + '</li>\n';
            }

追記:一応使っているボタン画像を置いておきます。画像のファイルはtablist_button.pngとなります。ボタンの使い方としては、自分が前に記述してあったリスト要素に後から追加するということを想定しています。終了タグ・</ul>または</ol>の前にカーソルを置いてからボタンを押下するとちょうどいい感じになるとおもいます。

RSSリーダーで見るとH3のほうが見やすいようなので

記事本文中で使う見出しレベルについて。Bloglinesで見たときにH2要素を使っていると文字が大きすぎるようなので、H3要素になるように調整してみました。

自分のところのブログのフィードを表示確認のためわざわざ登録しています。気づいたのですが、どうも記事で使っている見出しレベルがH2ですと、Bloglinesで見たらちょっと大きめな字になるです(ウチのところだけでないですが)。

そこで、RSSリーダーで見たときにH2を使った見出しレベルがH3になるように修正してみました。

出力する見出しレベルを調節するためのプラグインがあるそうで、2up.orgのKaminogoya氏が以下のページにて紹介および、プラグイン配布されています。

説明にあるとおり、レベル調整したいテンプレートのMTEntryBodyタグに、「hn_level="+1" 」という具合にモディファイアを記述するわけです。

ということで一時的に、Atomフィードのほうだけとりあえず、この処理を施しておくことにしました。あ、ちなみにトップページとか、アーカイブページのテンプレートでもこのプラグインを使っています。

フィードを見て見づらいようでしたらお知らせいただけたらと思います。以上です。

MTからVoxへクロスポスト

  • Posted by: maRk
  • mt4 | plugins
  • はてなブックマークに追加

Movable TypeからVoxへ同時投稿させるプラグイン、PostVoxを試してみました。

(2010年9月):Voxサービス停止(2010年10月1日)につきPostVoxプラグインの利用を中止しました。

PostVoxプラグインについて

PostVoxは、Yuji Takayama氏が提供されている、Movable Typeのプラグインです。

このプラグインを使用することで、Movable Typeで作成した記事を公開と同時にVoxブログへ投稿(クロスポスト)するというものです。

プラグインの情報なのですが、ネットで調べましたところ、MT4が登場する前の情報と混在しているようです。ということで、このエントリではMT4.1でPostVoxを利用する場合ということに限定した話ということにさせていただきます。

因みにPostVoxは以下のSixApartの記事にて紹介されています。

プラグインを入手して設定する

プラグインの入手は以下のページから。なお、当方が動作確認しているのはMT4.1です。4.01などで動作するかはまではわかりません。

上記ページから直接ファイルをダウンロードできるようです。ダウンロードしたら、解凍して、pluginsディレクトリにフォルダごとアップします。

設定等は見れば大体わかるようになっています。

以下、へたな説明ですみませんがこのような流れです。

  1. ブログのプラグイン設定(システムメニューのほうではない)からPostVoxプラグインのところをクリックして展開。設定タブをクリックする。
  2. ユーザー名・パスワードを設定。投稿させたいVoxブログに入るときのユーザ名・パスワード
  3. URL:は投稿させたいVoxブログのURL
  4. Crosspost by defaultのチェックをいれると、常に新規記事投稿のときクロスポストになり、チェックしなければ、新規記事投稿のときにクロスポストさせたい場合、チェックを入れるような形になる
  5. Cross-posting only excerptのチェックは、記事の概要をVoxにポストする場合にチェック、チェックしないと書いた記事をそのままVoxに投稿となる
  6. 「変更を保存」ボタンクリックで設定完了

記事を書いてクロスポストさせてみる

設定に間違いがなければ、新規記事作成の画面の右ペイン上部に、Cross Postingと書かれた項目が追加されています。

crosspost-vox01.gif

Cross post to Voxのところにチェックが入っている場合、記事投稿と同時にVoxに投稿されます。

あとは記事を書くだけです。参考までにplugin作者さまのVoxブログにて、以下のようなエントリがあがっています。

コメント欄によりますと、perlモジュールの関係からか動作できない場合があるもようです。ワタくシの環境では問題なく投稿できていました。

記事投稿後なのですが、以下のようにクロスポストされた状態としてリンクが挿入されています。

postvox.gif

リンクをクリックしますと、その投稿されたページの編集画面にいきます。ただし、Voxにログインされている状態でクリックしないと、Voxのログイン画面になってしまいます。

投稿に成功していると、Voxブログ側で以下のようになります。設定は、概要を投稿した場合です。この場合は、「read more...」というリンクが挿入されます。

crosspost-vox02.gif

余談なのですが、外部サービスのリンク(twitterプロフィールとか、technoratiプロフィールとか)をがんがん追加できるようなんですね、Vox。クロスポストばかりしてないで、ちょこちょこ弄っていないと進化についていけなくなるかも。

テンプレートタグが使われているリストのソースとか

Movable Typeのテンプレートタグを利用しているul,li要素のリストのソースについてためしてみました。

例えば、新着記事のリストがあったとします。その部分のソースを眺めていますと、li要素でそれぞれが1行ずつあいているものがあることに気づきました。

このことは自分のところだけかと思っていましたら、ほかの人のところでも1行空きのソースになっているみたいです。

当方として、やりたいことは、

<ul>
   <li>ほげほげ</li>
   <li>げほげほ</li>
</ul>

のように、該当部分で出力されたソースをみたときに、li要素の行間が詰めて表示されるようにするということです。


そこで、いろいろとテンプレートタグの位置などを変えたりなどして、どのようなソースになるのか実験してみました。

以下のような簡単なソースでテンプレートを作成しました。インデックステンプレートの新規作成でカスタムテンプレートとして、適当に名前をつけて再構築します。

「Recent Entries #1」から「Recent Entries #4」まで新着記事を並列列挙リストを出力させる、4つのパターンを作成してみました。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UL LI のテスト</title>
</head>
<body>
<div>
<h1>UL LI のテスト</h1>
<h2>Recent Entries #1</h2>
	<ul>
	<MTEntries lastn="3"><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li></MTEntries>
	</ul>

<h2>Recent Entries #2</h2>
	<ul>
	<MTEntries lastn="3">
        <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
        </MTEntries>
	</ul>

<h2>Recent Entries #3</h2>
	<ul><MTEntries lastn="3">
        <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li></MTEntries>
	</ul>

<h2>Recent Entries #4</h2>
	<ul>
<MTEntries lastn="3"><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li></MTEntries>
	</ul>

</div>
</body>
</html>

Continue reading

TagSupplementalsPluginを入れてみた

Ogawa::Memorandaの小川さん提供のプラグイン、TagSupplementals Pluginを導入しました。

~ TagSupplementals Plugin公開より

 

TagSupplementals Pluginは、MT 3.3の提供するテンプレートタグに加えて「あったらいいな」と思われる機能のコレクションを提供することを目指しています。

とのことです。MT4でも動作するようになったとのことですので、導入してみることにしました。

前回作成した、タグクラウド一覧のページ ですが、TagwireでTagCloudというエントリを参考にしています。実は前のブログ(現時点では未だ運営中)でも作成していたりします。


ところが、MT4でも、タグ機能関連のテンプレートタグには、タグを最後につけた日時を出力させるようなものが装備されていません

そこで、「TagSupplementals Plugin」をインストールして、MTTagLastUpdated変数タグを利用することで、タグ一覧のページを作成しました。

また、「MTRelatedEntriesコンテナタグ」 というのもありまして、関連するエントリを出力させることができます。これも記事ページ内に埋め込む形で利用してみました。

タグまわりが強化されるので、いろいろとカスタマイズできるようになりました。

Index of all entries

BlogTop > plugins Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top