二〇〇三年 十月 二十一日(

旧暦 九月二十六日 仏滅
癸未年 九月廿六日

MT 長いタイトルをトリミングする

エントリのタイトルが、えらく長くなってしまうことがある。
つい先日の「カテゴリ内前後リンクの云々」なんて最たるものだ。
最初からもっとまとめりゃいいようなもんなのだが、ついつい長くなっちゃうときもあるワケで、そういうとばっちり・・・・・を受けるのが、また個別カテゴリのページの、前後のエントリへのリンクの部分なワケだ。
MTというのはエラいもので、そういうときのためにtrim_toというフィルタを用意しているのだが、これは本国仕様なので2バイトの日本語では案の定不具合連発である。そうやすやすと日本語に便利には使わせてくれないのである。

そこで、EUC-JP限定だが、日本語対応のフィルタを作ってみた。
(2004.02.02追記:人生迷い箸 でutf-8,Shift-JIS対応版が公開されています。)

といったって、基本部分はPerlメモによるところが大きいワケで、本来ならわざわざエントリ立ててまで披露するほどのもんじゃないのだけど、とりあえず出来ましたってことで。

しかし、Perlメモは本当にいつもお世話になっております。ありがとうございます。ohzakiさん。この場を借りて深く御礼申し上げます。


◇つかいかた
以下のスクリプトを文字コードeucで保存し(ファイル名はmt-trimj.plとか適当に付けてください)、/pluginsディレクトリに入れる。trimj_to=""で文字数(半角文字数)を指定する。

例:<$MTEntryTitle trimj_to="20"$>

上記の例の場合、半角20文字分できっちり切れる場合は半角20文字分が、切れない場合はきっちり切れるまで1バイトずつ切りつめたものが返される。

オリジナルのtrim_toにない機能として、指定長さ以上の場合(切りつめた場合)には最後に尻尾sippoが付くようになっている。
以下のソースでは「...」が付くようにしてあるが、好みによって変えたり、コメントアウトしてもらいたい。


スクリプト:

# 指定された文字数(半角文字数)にトリミングするフィルタ
# EUC-JP 専用

package MT::Plugin::Trimj;

use MT::Template::Context;

MT::Template::Context->add_global_filter(trimj_to => sub {
my($str, $nstr, $ctx) = @_;
my $sippo = '...';
my $lenstr = length($str);
if($lenstr <= $nstr){return $str;}
my $out = substr($str,0,$nstr);

if ($out =~ /\x8F$/ or $out =~ tr/\x8E\xA1-\xFE// % 2) {
chop $out;
if($out =~ /\x8F$/){
chop $out;
}
}

$out .= $sippo;# 尻尾を付けたくない場合は、コメントアウトのこと。
return $out;
});

1;


以上。

Posted by mura at 2003年10月21日 20:11 | トラックバック
コメント

初めまして。有益な情報満載で是非参考にさせて頂きたいと思います。

さて、muraさんのスクリプトは EUC 限定とのことですが、 utf-8 限定でしたら、次のように書けます。

package MT::Plugin::Trimj;

use MT::Template::Context;

MT::Template::Context->add_global_filter(trimj_to => sub {
my($str, $nstr, $ctx) = @_;
my $sippo = '...';
my $lenstr = length($str);
if ($lenstr <= $nstr) { return $str; }
my $out = substr($str,0,$nstr);
if ($out !~ /[?x00-?x7F]$/) {
$out =~ s/[?xC0-?xFD]$//;
$out =~ s/[?xE0-?xFD][?x80-?xBF]$//;
$out =~ s/[?xF0-?xFD][?x80-?xBF]{2}$//;
}
$out .= $sippo; # 尻尾を付けたくない場合は、コメントアウトのこと。
return $out;
});
1;

以上、ご参考まで。

# 「人生迷い箸」さんの方では Jcode を利用していますが、利用しなくてもできるということで……。

Posted by: おおたに@SimpleBoxes at 2004年2月10日 18:05

おおたにさん。はじめまして。
有益なコメント、ありがとうございます!
文字コードに関して詳しくないので、こういうご助言は本当にうれしいです。

元のスクリプトも「Perlメモ」さんのを参考にさせていただいていて(というよりモロパクリに近いので ^_^;)、自分としては「書くほどのことではないなぁ」と思っていたのですが、意外と多くの方に参考にしていただけたようで、こうした積み重ねが結構大事なんだな、と感じたりしています。

きっと、おおたにさんの書いてくださったスクリプトも、いろんな人の役に立つのではないかと。

Posted by: mura at 2004年2月10日 19:22

こんばんは!
トリミングプラグインを使用させていただきました。
そこで質問なんですが、どうもトリミングが上手くいきません。
うちのサイトはEUCなので説明のとおりやってみたのですが・・・
他に注意する点などあればアドバイスお願いします。

Posted by: harumaki at 2004年2月20日 19:31

harumakiさん、こんにちは。

うまくゆかないとのことですが、どのようになるのでしょうか・・・。
どこのテンプレートにどういう記述をしたら、どういう結果になったということを書いていただけると、もう少しわかるかも知れません。
申し訳ないのですが、現状では情報不足で何を書いて差し上げればよいかわかりません(^_^;)。

Posted by: mura at 2004年2月22日 12:33

はじめまして、スクリプト使用させていただきました。
MTを始めてまだ日が浅いのですが、プラグインでいろいろできるんですね。
長いエントリーの羅列で、見苦しかったメニューなどがスッキリしました。有難うございました。

Posted by: 通販 生活 .com at 2004年6月 3日 02:04

お役に立てたようでなによりです。
確かに色々出来るんですけどねぇ、これを作った頃はデザインのためにプラグインを書いているのか、プラグインのためにデザインをしているのか分からない状態でしたね(笑)。
デザインが落ち着いてきちゃうと、新しいプラグインのアイディアもあんまり浮かばないです。

・・・ああ、それより今はMT3のことをお勉強しなきゃいけないのかな・・・。

Posted by: mura at 2004年6月 3日 10:00

Jcode使ってるんだからJfold使えば全文字コード対応で4行くらいで済むという罠
それ以前に3.1以降なら日本語対応済

Posted by: 名無し at 2004年12月24日 07:54

いずれもごもっとも>名無しさん
MTの古いバージョン時代の記事なので。
ただ、Jcode.pmだと、バイト数ではなく文字数が取れてしまうので、半角まじりが多い場合は・・・。
ま、こっちも3バイトが出てくればあんまりかわんないすけど。
全体的に冗長なのはご愛敬ということで。

Posted by: mura at 2004年12月24日 14:47

初めまして。
エントリー、参考にさせて頂きました。
有益な情報有り難うございました。

Posted by: 1096 at 2005年6月12日 23:04

どういたしまして。
参考になれば幸いです。

Posted by: mura at 2005年6月13日 15:54

始めまして管理人さん
「小粋空間」様経由で此方のサイトを知りスクリプトを導入させて頂きました。

ありがとうございます。

Posted by: mituru at 2006年4月16日 15:29

mituruさん、わざわざどうも。
お役に立てましたら幸いです。

Posted by: mura at 2006年4月17日 14:10

少し前から、カテゴリーの文字数をどうにかできないといろいろ調べて、たどり着くことが出来ました。
そして、無事に文字数を制御する事も出来た共に、
新たな発見もありました。
ありがとうございました(^^)

Posted by: 渡す世間 at 2006年4月17日 16:32

渡す世間さん、どういたしましてです。
いまだに、このプラグインが有効なことに我ながら驚いています。
UTF-8とかだと標準のtrimでも同じコトができるような気もするんですが・・・(未確認です ^_^;)。

いずれにせよ、お役に立てているのであれば有り難い限りです。

Posted by: mura at 2006年4月18日 16:48

invader zim videos to wacth

Posted by: Doll-tonia at 2008年3月22日 08:40

お世話になります。とても良い記事ですね。

Posted by: ルイヴィトン 公式 at 2013年7月 5日 18:22

Hello!

Posted by: cialis_online at 2014年6月21日 01:04
コメントする









名前、アドレスを登録しますか?






トラックバック

長いエントリをトリミング
概要 一日に何度もエントリを書こうと思うと、どうしても記事の長さが気になってくるわけです。 そんなわけで今回はエントリのタイトルや記事をトリミングするプラグインを導入...
Weblog: KANGAROO Weblog
時刻: 2004年10月06日 09:23

ゴッゴル絡みのトラックバックで思う事
概要 ゴッゴル トラックバックについて考察するページです
Weblog: Paqn! ミカニッキ
時刻: 2004年10月23日 13:01

ゴッゴル絡みのトラックバックで思う事
概要 ゴッゴル トラックバックについて考察するページです
Weblog: Paqn! ミカニッキ
時刻: 2004年10月23日 13:01

長くなってしまったタイトルをトリミングする方法(MT3.11)
概要 設置前 設置後...
Weblog: chiricoyet :: MT
時刻: 2004年11月03日 21:52

エデンの戦士&Movable Type
概要 カムイ先生の「エデンの戦士」11巻買いました!修行編、理解力のない私には少々難解...
Weblog: KillerPierce DIARY
時刻: 2004年11月09日 21:32

タイトル表示のトリミング
概要 タイトルが長いと、サイドバーで表示された時に 自動で折れちゃったりしてせっかくの...
Weblog: mayu in blog
時刻: 2004年11月10日 05:47

長いタイトルをトリミングする
概要 左のエントリータイトルが二行になってるのいやだなぁ。と前々から思っていまして・・・ ま、けど、ほたって置いたんですけど、ネットぶらぶらしてたらcocoons.o...
Weblog: +migi
時刻: 2004年11月16日 12:03

MTの長いタイトルをトリミング
概要 Movable Typeのエントリーに長いタイトルを付けてしまうことがよくありま...
Weblog: blog @ naotaka.com
時刻: 2004年11月23日 13:03

MTのうっとうしい長いタイトルをトリミングしてみるの巻
概要  まだまだブログ自体を始めたばかりなので解らない事ばかりなのだが、とにかく新聞記...
Weblog: yuki no hi no shimauma
時刻: 2004年12月07日 08:10

trim_toって何?
概要 M's folder: MT 長いタイトルをトリミングする MT3.0にしたときに、trim_to="20"というのがついているのよね どうも、文字数をカットし...
Weblog: Cafe's Weblog ☆ 珈琲たいむ
時刻: 2004年12月09日 17:34

長いタイトルをトリミング
概要 長いタイトルだとレイアウト的に微妙だったりとかするので導入してみました。 手順を...
Weblog: strawberry photographics
時刻: 2004年12月21日 15:33

MovableTypeのエントリ名を短くする
概要 Blogエントリのタイトルが長くなりがちなんですが、このPluginでタイトルを短く出来ます。 かなり露出しているネタですが・・・ 詳細 → M's folde...
Weblog: Zakimi::Blog
時刻: 2004年12月23日 20:13

タイトルをトリミングする
概要 せっかく幅を指定してかっこよくデザインしたのにタイトルが長すぎて折り返してしまう。必要なところで切ってくれないかなー。ということでpluginを使用してタイトル...
Weblog: --- CHILDJEN'S WORLD --- 音楽とビールと日常
時刻: 2005年01月26日 18:11

サイト再構築 再び
概要 一時トップページが悲惨な状況になってしまったので、一気にテンプレートを変更してみました。今回やった作業のメモ。
Weblog: Rainy days, Sunny days
時刻: 2005年01月29日 02:29

MTのうっとうしい長いタイトルをトリミングしてみるの巻
概要  まだまだブログ自体を始めたばかりなので解らない事ばかりなのだが、とにかく新聞記...
Weblog: ユキノヒノシマウマ
時刻: 2005年02月09日 12:49

エントリー名トリミングJcode版
概要 サイドバーのエントリー名を改行しないように切り詰めたいと思っていました。 同コン...
Weblog: Brilliant Rose
時刻: 2005年02月21日 01:13

エントリータイトルが長い時に省略
概要 エントリータイトルが長すぎると サイドカラムの横幅に入りきらずに、 折り返されて...
Weblog: スヌーピーキャンディー
時刻: 2005年03月20日 00:07

エデンの戦士&Movable Type
概要 カムイ先生の「エデンの戦士」11巻買いました!修行編、理解力のない私には少々難解...
Weblog: KillerPierce
時刻: 2005年03月29日 03:05

M008_エントリーの表示文字数を制限する
概要 どうしてもエントリータイトルの文字数が多くて、レイアウトがごちゃっと崩れてしまう...
Weblog: CDJの記録 form CDJ SATORU
時刻: 2005年04月13日 04:31

文字数を指定して表示するMT用トリミングプラグイン
概要 長い記事タイトルをつけてしまった場合、MovableTypeでは個別ページにある前記事と後記事へのリンクの部分で、ブログのデザインによっては改行しっちゃったりし...
Weblog: +solitude+
時刻: 2005年04月20日 12:54

サイドバーのエントリタイトルをトリミングする方法
概要 長いタイトルの場合、サイドバーに表示されるタイトルが ダラダラ表示されてしまいま...
Weblog: 糸博士の人力研究所 別館
時刻: 2005年04月22日 13:11

長いタイトルをトリミング
概要 最近、ブログのカスタマイズに没頭しています(^^;) 今回は、「Recent E...
Weblog: Project MultiBurst
時刻: 2005年04月22日 22:05

長いタイトルをトリミング
概要 長いタイトルだとレイアウト的に微妙だったりとかするので導入してみました。 手順を...
Weblog: sugarless eyes
時刻: 2005年05月05日 10:08

長いタイトルをトリミングする
概要 デザイン上、どうしても文字数を制限しないと美しくない場所がある。 そんな時文字数...
Weblog: スズ風呂
時刻: 2005年06月01日 02:45

長??いタイトルの省略。
概要 エントリーもグダグダだが、タイトルもこれまたグダグダ感満載で情けないところなのだが そんなタイトルを1行のみ省略して表示...
Weblog: ++narulog++
時刻: 2005年06月03日 12:35

久しぶりのカスタマイズ
概要 久しぶりにBlogをりぬっていたら 何気に カスタマイズやりたくなってやっちゃい...
Weblog: GF*days
時刻: 2005年06月06日 21:30

◎ MTカスタマイズ・メモ(mt-trimj プラグイン)
概要 今回、MTに改めてテンプレートを入れ直して、カスタマイズする上で、このようにエン...
Weblog: Old English White.com
時刻: 2005年06月12日 23:01

タイトルをトリミングする
概要 タイトルをトリミングするプラグインの紹介。
Weblog: MovableTypeを活用して脱初心者!
時刻: 2005年06月23日 20:58

長いエントリ名のトリミング
概要 エントリ名が長くて折り返されると新しいエントリの表示部分が汚くなるのでなんとかトリミングのいい方法がないかと探してみた。MTタグのtrim_toだと後ろに「.....
Weblog: SweetBubbles
時刻: 2005年06月24日 18:37

パンくずナビ
概要 よく見かけるかと思いますがトップページからの階層位置を表すナビリンクです。 例)...
Weblog: 創作イラストサイト【ALMA NOTE'S】
時刻: 2005年07月22日 13:14

長いタイトルをトリミング
概要 最近、ブログのカスタマイズに没頭しています(^^;) 今回は、「Recent Entry」などのように、エントリー名を羅列しますが、 それが長いタイトルの場合、...
Weblog: Project MultiBurst
時刻: 2005年08月10日 20:44

■長いタイトルをトリミング
概要 M's folderさんのMT 長いタイトルをトリミングすると 人生迷い箸さんの...
Weblog: [嘘]Liar's web
時刻: 2005年09月06日 23:39

デースケドガー
概要 デースケドガーって知ってますか? デースケドガーって聞いたことないありますか? デースケドガーって一昔前ホットでした。 デースケドガーって検索してみてくだ...
Weblog: つれづれなるままに
時刻: 2005年11月15日 23:56

ゴッゴル
概要 ゴッゴル
Weblog: つれづれなるままに
時刻: 2005年11月20日 00:38

長いタイトルをトリミング
概要 長いタイトルだとレイアウト的に微妙だったりとかするので導入してみました。 手順を...
Weblog: sugarless
時刻: 2005年12月16日 13:18

長いタイトルをトリミングする
概要 サイドバーなんかにエントリーの一覧などが表示されますが、 エントリーのタイトルが...
Weblog: I c e c r e a m - n e t . c o m
時刻: 2006年03月03日 12:07

mt-trimj.pl
概要 3.2へのバージョンアップ前は大丈夫だったのだが、バージョンアップ後、右欄のSy...
Weblog: Nao23's Topics
時刻: 2006年03月17日 23:51

設置したFlashカレンダーver2.00の動作がおかしい
概要 一昨日、Kinarie&MayさんのFlashカレンダーのVer.2.0を設置し...
Weblog: Japan Military Review「軍事研究」
時刻: 2006年04月07日 03:07

links for 2006-04-12
概要 LA1.JP (tags: CSS movabletype web...
Weblog: オラオラ
時刻: 2006年04月12日 10:12

ヒロテック便りをアップグレード!月別アーカイブがカレンダー表示に
概要 長いゴールデンウィークも終わり、ヒロテックも充電完了。今日から社会復帰です。 ゴールデンウィーク中に、ヒロテック便りをアップグレードしました。 ■サイト内...
Weblog: ヒロテック便り
時刻: 2006年05月08日 10:56

長いタイトルをトリミングする。
概要 分かりやすく説明すると文章で説明するより画像乗っけますね。 次の2つの画像の違い...
Weblog: TABOX
時刻: 2006年11月28日 00:48

MT長いタイトルをトリミング(短くする?)
概要 エントリータイトルを...
Weblog: 初心者のためのヤフーオークション
時刻: 2007年01月26日 21:12

trimj plug in
概要  trimj plug in は、長いタイトル名などをトリミングするプ...
Weblog: Blog
時刻: 2007年03月02日 21:46

プラグインについて
概要 このテンプレートは、下記のプラグインを使用しています。 これら...
Weblog: 256 bits web
時刻: 2007年03月13日 15:18

ヒロテック便りをアップグレード!月別アーカイブがカレンダー表示に
概要 長いゴールデンウィークも終わり、ヒロテックも充電完了。今日から社会復帰です。 ゴールデンウィーク中に、ヒロテック便りをアップグレードしました。 ■サイト内...
Weblog: 週刊ヒロテック
時刻: 2007年03月18日 21:51

最新のコメントと最新のトラックバック表示の整理。
概要 メインページの左サイドバーに表示させている、「最新のコメント」と「最新のトラックバック」表示を整理してみた。
Weblog: ももち ど ぶろぐ
時刻: 2007年08月30日 20:55

M's folder: MT 長いタイトルをトリミングする
概要 M's folder: MT 長いタイトルをトリミングする utf-8 限定でしたら、次のように書けます。 package MT::Plugin::Tri...
Weblog: ciprdy::blog
時刻: 2012年03月20日 21:52

このエントリのトラックバックURL

http://www.villagewood.net/mt/mt-tb.cgi/42

◇このサイトのサーバの調子によって、トラックバックを送信してもエラーが表示されたり、すぐにこのページに反映できないときがあります。ですが、トラックバック自体は送られていますので、重ねて送っていただかなくても大丈夫です。こちらでも出来るだけ早く反映できるようにrebuildしますので、ご容赦ください。
参照元URL
関連エントリ