BlogTop > Archives > 2009年3月 Archive

2009年3月 Archive

« 2009年2月 | 2009年3月 | 2009年4月 »

4.25がでたのだけど

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

Movable Type4.25の出荷が開始されましたが、どうも今回はアップデートするのが乗り気でありません

Movable Type 4.25 では、様々なバグフィクス、セキュリティ強化に加え、モーションブログを作成するためのテンプレートセットや、それに関する新機能を追加。また、プラグインとして提供されていたアクションストリーム機能を強化してバンドルしています。

Movable Type 4.25 出荷開始 | MovableType.jpより

【追記:2009/04/30 】4月30日に4.25にアップグレードしました。4.24において脆弱性が確認されたとのことです。詳細は、Movable Type 4.24 でのセキュリティ上の問題について (MovableType.jp)に記載されています。

モーションブログ、アクションストリーム機能は今回の目玉というわけですが、どうも今回はアップデートする気が起きません。

理由としては、ベータ版から正式版リリースまでの期間がはやすぎない??というのと、アクションストリームはプラグイン単体のほうがいいような気がするということからです。

まぁ個人が思ったことにすぎず細かく説明することもないのでこれ以上のことは書かないでおきますが。

いちおう本体はダウンロードしていて、アクションストリーム1.0との差分みていたりします。config.yamlでわかったのは、1.0になくて追加になっているテンプレートタグがあるようですネ。以下が4.25にバンドルされたほうでつかえるタグのようです。

function
block

あと、これはどうでもいいことですが、これ以降、このブログでアクションストリームのネタをとりあげるのを打ち止めにしておきます。バージョン1.0のころの情報で古いですし、どこの馬の骨かわからないようなのが情報垂れ流ししても迷惑なだけで、影響力のあるヒトが書いたらそのほうが情報を信頼できるでしょうから。自分で書いてて馬鹿馬鹿しくなってきたので。

それと。。Movable Typeのタグの仕様とかみるのに、テンプレートタグリファレンスみたら全部わかるよ、と思っているかたもいるとはおもうんですけど(自分でもリンク張っていますが)、あれ万能というわけでもないですから。これとか

今月のいらんことしい(2009年3月)

今月(2009年3月)サイトやブログのテンプレートをカスタマイズした点をまとめた記事です

  • 月別アーカイブページを作り、サイドバーメニューの月別アーカイブリンクをやめた
  • 月別アーカイブページの先頭はページ内リンクという形にした。
  • 個別記事ページでtitle要素を「記事タイトル」、「ブログ名」の順にした
  • 検索結果のページを分割表示にした

月別のアーカイブページですが、あまりにも読まれることがなく、リンクがあっても辿るひとがいないわけでして、このようなページへのリンクは無駄だろうということから、サイドバーメニューから外すことにしました。勝手は悪くなるけど、かわりに月別アーカイブ一覧ページを作りそのページへリンクするようにしてみました。

月別ページで、目的の記事への移動がしやすいように、MTBlogIDを利用し、フラグメント識別子によりページ内リンクすることにしました。説明するより見てもらったほうが早いかと。2009年3月アーカイブ

検索結果のページはmt.Vicunaでは、分割表示されていないのでデフォルトの検索結果ページのソースをみながら修正を加えてみました。

ページ分割については、HashiM氏の以下の記事を参考にしました。簡単にまとめると、mt.Vicunaテンプレートでは検索フォーム内でlimitの設定をおこなわないといけない、ということです。

説明しようとおもったのですが無駄に長くなるだけですので、サンプルテンプレートということで提示します。mt.Vicuna 2.2.0の検索結果テンプレートをベースとしたものですからmt.Vicunaテンプレートセットと一緒に使う必要があります。

download

MTHTTPContentTypeタグを使ったページの出力メモ

Movable Typ動的ページのとき、MTHTTPContentTypeタグを使い、type属性の値をapplication/xhtml+xmlとさせたときの出力結果のメモです。

テンプレートタグについて

テンプレートタグリファレンスによると、動的生成されるページのときに動作するとのこと。typeには適切なContent-Typeの値を設定する。今回は、XHTMLのページをapplication/xhtml+xmlとして提供するという場合についてを確認するので 、type="application/xhtml+xml"

簡単なテンプレートを作成し先頭にテンプレートタグを埋める

適当なXHTMLのテンプレートを用意する。適当とはいえ、いい加減というわけにもいかない。

個人的なことだが、W3Cで示されている以下のテンプレートを拝借してローカルに保存し、よくひな型として使っている。

このテンプレートの先頭に以下のようにテンプレートタグを埋め込み、適当なファイル名にして、ダイナミックパブリッシングに設定する。拡張子はとりあえず.htmlにしておく。

<$mt:HTTPContentType type="application/xhtml+xml"$>

表示の確認

FirefoxとInternet Explorer7 とで確認をおこなってみる。どちらも表示されているようす。Firefoxでは、ツール>ページの情報とすれば(alt t i)、MIMEタイプを確認できるのと、アドオンのLive HTTP headersを入れておけば、HTTPヘッダー情報を参照できる。

整形式でなかったとき

試しに、先に示したテンプレートでP要素の終了タグを省略して書いて保存して、確かめる。

Firefoxでは、パースエラー。IE7ではエラーはでず表示されていた。

拡張子が.phpであったとき

ファイルの拡張子を.phpに変えてみる。ダイナミックのページは、拡張子を変える必要はないのだが、とりあえず実験。

FIrefoxでは表示されるが、IE7だと、php_auto_fileとしてファイルがダウンロードになってしまう。どうもヘッダ情報が無視されているらしいのだけど不明。

というわけで、今のところここのブログで、月別アーカイブの一覧ページがそのような形となっております。以上です。

カスタムフィールドで選択項目が多い場合ドロップダウンを使ってみては。

カスタムフィールドのお話。カスタムフィールドであつかう内容にあったタイプを使って見るというのはどうでしょうか。

Movable Typeのカスタムフィールドで、管理画面をからみたスタイルを調整するのに、/mt-static/addons/Commercial.pack/styles-customfields.cssにスタイルを加える、といった情報を見つけたのですが、見た目だけの問題でしたら、ブラウザのユーザースタイルでおこなうというのもアリだと思っています。バージョンが変わるごとに書き換えの必要がでてきますし、userChrome.cssを書き換えるのと、styles-customfields.cssを書き換えてからサーバに上書アップロードするというのでは、どちらのほうが手間でしょうか。

さて、選択式のフィールドでラジオボタンタイプなどを使われていたとして、項目が増えてきますと、横並びであったとしても少し見づらかったり、場所をとってしまったりもします(表示オプションの設定で使うたびに表示・非表示という手はありますが、勝手が悪いように思います)。

そこで選択項目が多く、ある程度までは増えることもないものであれば、ドロップダウンタイプを使って、フィールドの表示スペースを少なくしてみるという手もあります。

「二十八宿」をその日書いたエントリーで指定して表示させるといったカスタムフィールドを作るとします。ま、このようなフィールドを作るヒトはまずいないとおもうのですが、例えとしてですので。このような感じで設定しておきます。

edit_customfield_dropdown.png

カンマ(,)で区切ってデフォルトのところで、デフォルトで指定したい値を決めることができます。(=selected属性の値)

=====,角宿,亢宿,テイ宿,房宿, (・・・以下、軫宿まで)

小技ですが、デフォルト値を、選択項目にないものにしておき、選択をおこなわなかったときに表示されないといった振り分けもできます。

<MTIfNonEmpty tag="entrydatatestdropdowmenu">
<mt:SetVarBlock name="menu_value"><MTentrydatatestdropdowmenu></mt:SetVarBlock>
</MTIfNonEmpty>
<mt:if name="menu_value" ne="=====">
<p>二十八宿: <MTentrydatatestdropdowmenu></p>
</mt:if>

というわけで余計なお世話なことですが、型にあったフィールドのタイプを選択してみようということでした。

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

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

EntryAuthorLinkタグでAuthorのURLの有無で分岐する

MTEntryAuthorLinkは、ブログ記事作成者に対しリンクを付加するものです。このタグでリンクが付かなかった場合の分岐をやってみます。あとmicroformatsを少々カスタマイズします。

Vicunaテンプレートのカスタマイズを中心にやっているのですが、たまにはデフォルトのテンプレートをカスタマイズしてみることにします。

MTEntryAuthorLinkの説明は以下のページに記載されています。

さて、Movable typeデフォルトテンプレートのエントリアーカイブには、microfomatsが埋め込まれており、Operator(Firefoxアドオン)などを使うことで情報を抽出できるようになっています。

しかしながら、OperatorでMovable Typeのテンプレートで生成されたページをみますと、hcardの連絡先の部分でInvalidになっているのをよく見かけます。

これをOperatorでおこられないようにしてみよう、というわけです。

Invalidの原因と対処

OperatorでInvalidとなる原因ですが、早い話が仕様に則してない書き方をされてる、ということになります。

最も簡単な解決方法は、記事を作成できる権限のあるユーザにプロフィールでURLを設定してもらえば、Invalidとはなりません。それは、EntryAuthorLinkshow_hcard="1"の指定によるものです。例えば、MTUserさんが、user.example.orgで設定された場合の実際のテンプレートタグの出力は、

<span class="vcard author">
<a class="fn url" href="http://mtuser.example.org">MT User</a>
</span>

となっています。これが、URLおよびEmailを設定されていませんと、リンクとおよびclass属性のfn urlが表示されませんからOperatorでInvalidとなるようです。

分岐によりURLがないときvcardをつけないようにする

ということで、作成者のURLがないとき、vcardは使わない、というように分岐してみることにしました。デフォルトテンプレートを以下のように書き換えてみます。

<mt:If tag="EntryAuthorDisplayName">
<mt:SetVarBlock name="Autr">
<$mt:EntryAuthorLink show_hcard="1"$>
</mt:SetVarBlock>
 By <mt:If name="Autr" like="href="><span class="vcard author"><mt:Else><span class="author"></mt:If><$mt:Var name="Autr" /></span> on <abbr class="published" title="<$mt:EntryDate format_name="iso8601"$>"><$mt:EntryDate format="%x %X"$></abbr>
<mt:Else>
・・・・以下略・・・・

ここではAutrという変数名にEntryAuthorLinkの内容を与え、href属性があるかで判断しております。リンクがないと、vcardが付かないので、Operatorでは抽出されなくなります。細かくて伝わらないと思いますけど、複数記事作成者がいて、URLの登録を統一できないようなときなどに。

ちょっと小技で改造する

一寸だけ改造をしてみます。テンプレートを見ると、<mt:If tag="EntryAuthorDisplayName">とあることから、表示名はニックネームだろうと、決め付けてしまうならば、オプションのnicknameをつけて以下のようにしてみるとか。

<$mt:EntryAuthorLink show_hcard="1" regex_replace="/fn url/","fn nickname url"$>

あと思いつたのは、hAtom関連で、updated情報もというときに。

<abbr class="updated" title="<$mt:Date format_name="iso8601"$>">Update: <$mt:Date format="%x %X"$></abbr>

といった感じです。最後に、show_hcardの情報はMovableType.orgの以下を参考にしました。

ユーザースタイルシート:Analyticsでtableの行をハイライト

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

Stylish向けのユーザースタイルシート。Analyticsでオンマウスの行をハイライトするというものです。

例によってFirefoxアドオン、Stylishで使用するスタイルシートを書いてみました。

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document url-prefix("https://www.google.com/analytics/reporting/") {

tbody[id^=f_tbody] tr:hover td {
font-weight:bold;
background-color:#D8E4F8 !important; }

}

tr要素にhoverというのは、前からあるテクニックらしくて、IEだとうまく動かないらしいですね。

あと、グラフのある場所がうまいこと表示できてなくて、それほど支障がないので保留状態です。

選択したテキストを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

ブロックタグとファンクションタグと書式のこと

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

Movable Typeのテンプレートタグには「ブロックタグ」と「ファンクションタグ」があり、書式においてファンクションタグではブロックタグとの区別として$マークを使えることになっています。

この$の記述をブロックタグのときに使って、ファンクションタグのときは$を使わないとどうなるのかといいますと、テキトーですが以下のようなテンプレートで試してみます。

$がついたブロックタグでの出力

ブロックタグ、MTEntriesに$をつけた形のテンプレートです。(バージョン、4.24-en)

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>TEST MT tag</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="start" href="./" />
<link rev="made" href="mailto:me@example.org" />
</head>

<body>
<table summary="Test of Movable Type template tag" border="1"><tbody>
<tr><th abbr="title">Entry Title</th><th abbr="link">Entry Permalink</th></tr>
<$mt:Entries lastn="10"$>
<tr><td><mt:EntryTitle remove_html="1"></td><td><mt:EntryPermaLink></td></tr>    
</mt:Entries>
</tbody>
</table>
</body>
</html>

上に示したテンプレートにおいて、の終了タグには$を付けずにおこなうとこのテンプレートは正常にビルドできました。

ではここで、終了タグに$を付けてみます

<$mt:Entries lastn="10"$>
do something...
<$/mt:Entries$> 

Movable Typeのハイライト表示でみるとmt:Entriesの終了タグのハイライトが正常におこなわれてないことがわかるかと思います。それを再構築してみると「終了タグがない」と、エラー警告がでてしまいます。

One or more errors were found in this template.
<mt:Entries> with no </mt:Entries> on line 18. 

ということから、ブロックタグには$を使わないほうがよいということは明確でしょう。

自分ルールを決めておきたい

編集のときにMovable Typeの編集画面でのタグのハイライト表示を利用しない、というのもあるのですけれど、自分がテンプレート編集するときに、例えばXMLファイルですと、ブロックタグが他の要素と紛れてわかりにくかったり、<mt:~ />のような空要素タグのような書き方にしても、img要素の近くにこのように空要素タグの書きかたをしたテンプレートタグがいくつかでてくると見分けが付きにくのでないかという感じがします。

ですので、自分が編集していて見やすい書き方を決めておくというのも一つの方法ではないでしょうか。自分以外のひとでもテンプレート編集されるという場合も書式は統一しておいたほうがいいのかもしれません。

ファンクションタグについては、Movable Type テンプレートタグの種類と働き(Movable Type 4 ドキュメント)にて、書式等の説明があります。

サイトのトップページ他テンプレート変更に向けて作業中。

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

このサイトトップのテンプレートもVicunaに変えることにしたので、今作業を進めております

これまで、LoveAppleさま提供のテンプレートをお借りしていました(*この記事を書いている時点では、まだお借りしています)。

これまでのテンプレートも簡単に紹介しておきますが、CSS着せ替えテンプレートプロジェクトといいまして、もとテンプレートは殆ど手をつけずにCSSと画像を入れ替えるだけで、簡単にデザインを切り替えることのできるテンプレートを作成する、という試みだそうです。Voxブログなどを思い浮かべるとわかりがいいでしょうか。

それで、今回トップページのリニューアル(というほど大袈裟でないけど)につき、使い慣れてきたVicunaのテンプレートにすることにいたしました。作業中の画面は以下。なお、スタイルは、新しい構造のスキンができました!(Vicunaフォーラムより)にて公開されてるスキンで調整をすすめいています。

editing_page_now.png

【追記:22時56分】InstaMTでエラーログ見ていてわかったのですが、import.css内に、@import url(tuika.css);が記述されており、tuika.cssを使わないときはコメントにしたほうがいいような。まぁスキンそのものがテスト版なんでアレですが

title要素で記事タイトルとブログ名(サイト名)の順をいれかえることにしました。

このブログおよびサイトのtitle要素の内容を変更してみました。サイト名・ブログ名が記事タイトル・ページタイトルのあとになるようにしました。

Vicunaテンプレート(mtVicuna 2.2.0)に入れ替えをした時点で処理していなかった事ですが、こちらの一方的都合でということで、以下のように変更としました。

  • 記事ページにおけるtitle要素の内容で(ブログ名 - 記事タイトル)であったものを、(記事タイトル « ブログ名)という形式に変えることにした。
  • ウェブページ等では、(ページタイトル « maRkdiary.com )という形とした
  • 区切り文字を「ハイフン(-)」から「 « 」とした

以上些細なことですが、お知らせおよびメモでした。

タイトル順序等については、参考としてVicuna フォーラムの以下のトピックを拝読しました。あ、でもSEOとかはほとんど意識してなくて単に好みの問題であったり。

Index of all entries

BlogTop > Archives > 2009年3月 Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top