BlogTop > plugins Archive

plugins Archive

2 of 3

< Previous PageNext Page >

すべてのページ

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

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

Index of all entries

BlogTop > plugins Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top