TDSの記事一覧

TDSからWordPressへのデータ移行

需要はなさそうだけど、せっかくだからTDSからWordPressへの日記データ移行方法を書いておこう。変換に使ったTDSスタイルも置いとくから、必要なら持って行って。

最初は手動で移すことも考えたけど、件数が多くて時間が掛かりすぎるのでMakoto先生にご相談。で、ライブドアブログ無料版でもMT形式でバックアップする方法。 | buena suerte!を教えてもらってピンと来た。TDSの出力スタイルをMTのエクスポート形式にすればいいんだ!

実際の作業手順はこんな感じ。

  1. TDSのスタイル変更
  2. TDSのNEW,SUB出力定義を変更
  3. TDSでHTMLファイルを静的出力
  4. 文字コードの変換
  5. WordPressでインポート

以下、順を追って説明していきます。

TDSのスタイル変更

まず作業ディレクトリにTDSをインストールし、適用スタイルを変換用スタイル定義に変更します。変換用スタイル定義では、skelton.htmlからHTML要素を一切削除し、本文表示のみを行います。実際のskelton.htmlは、こんな感じになります。

<!--#macro cmd=DIARY_CONTENT -->-----
--------

コマンドの後ろに”-“が付いてるのは、インポート時に必要な区切り文字なので削除しないようにね。

TDSのNEW,SUB出力定義を変更

続いてtemplate.phのNEW,SUB出力定義を、MTエクスポート形式に近づけるように編集します。具体例は下記参照のこと。

package TDS::Tdf::Command::NEW;
$Template = qq(--------\nTITLE: %ext_attrs\nAUTHOR: admin\nSTATUS: Publish\nCATEGORY: \nDATE: %0m/%0d/%year 00:00:%new\n-----\nBODY:\n);
$EndTemplate = "-----\nEXTENDED BODY: %footnote\n\n-----\nEXCERPT:\n\n";
$Mark = "%%%n";

package TDS::Tdf::Command::SUB;
$Template = qq(<H3>%ext_attrs</H3>\n);
$EndTemplate = "";
$Mark = "_";

この例だとカテゴリ定義がないけど、カテゴリも読み込むように出来るハズなので、上手い感じに工夫してみてくれ!

TDSでHTMLファイルを静的出力

上記スタイルを適用後、”perl static.pl -f”で静的に日記データを生成してください。これでMTエクスポート形式のHTMLファイルが出力されます。”d200201.html”みたいなファイルを探して中身を見ると、こんな感じになってるはず。

--------
TITLE: あけおめ
AUTHOR: admin
STATUS: Publish
CATEGORY:
DATE: 01/01/2002 00:00:1
-----
BODY:
<p >
ことよろ。
</p>

-----
EXTENDED BODY:

-----
EXCERPT:

--------

文字コードの変換

続いて文字コードの変換作業を行います。具体的にはTDSが出力したHTMLファイルの文字コードを、WordPressで使用する文字コードに変換します。おいらはTDS出力のHTMLファイルはEUC、WordPressの文字コードはUTF8だったので、EUC→UTF8の変換を行いました。

文字コードの変換は、文字コード変換ツール「KanjiTranslator」を使用し、UTF-8のBOM無しに変換しました。おいらは移行量が多かったので、事前にtm3takei:TextFileBinderを使って、月次ファイルを12ヶ月分結合し、1年分の日記データファイルを作成してから文字コードを変換しました。

WordPressでインポート

最後にWordPressの管理画面から「管理」→「インポート」→「Movable Type と TypePadMT」を選択、作成した変換済みHTMLファイルを読み込めばデータ移行完了です。


ダウンロード:tds2wordpress.zip [TDSに適用する、MTエクスポート形式出力スタイル]
参考リンク:Movable Type 3.3 マニュアル – Movable Typeの読み込みファイル・フォーマット

Namazuの調子が悪い

調子が悪いと言われて調べてみたけれど、結果としては良く分からず。cronが回って、インデックスの作成もやってるみたいだけど、なぜか検索にヒットしない。kakashi君の調子が悪いのかもしれないけど、どうやって切り分けていいのか分からないです。

取りあえずの回避策として、Google君のサイト内検索を付けておきました。ちょっと試してみたけど、ほとんど問題なく検索できましたよ。クロールも頻繁にきてくれてるし、実はNamazu君は要らないのか?

Hatena Antennaが邪魔なのです

はてな方面からいらっしゃる方もいるようなので、はてなアンテナも受け付けるようにしたのですが、ログに「Hatena Antenna」が残っていて目障りなのです。

user_agent.confに

Hatena Antenna,
Hatena%20Antenna,
Hatena,

などと書いてみましたが、あいだにスペースがあるせいか、どれも上手くヒットして無いようで。どなたかズザッと分かる方がいらっしゃいましたら、お知恵を御貸し頂けると幸いに存じ上げる次第で御座り申し上げ候。

デザイン変更、再び

また日記のデザインを変更しました。ちょっと見やすくなったかな?もうちょっといじったら、RSS配信にも取り組もう。

日記デザイン変更、サイドバーにカレンダーやコメントを追加

日記のデザインを変更しました。サイドバーを左に入れて、カレンダーやらコメント一覧を突っ込んでみたよ。

んでも完成前に寝る時間になったので、途中放棄してあります。ちいと見た目がおかしいので、しばしお待ちを。

TDSにコメント機能を追加した

まこちゃんにソースを分けてもらって、日記にコメント機能を追加してみたよ。とりあえず最低限の設定とデザインは済ませちゃったつもりだけど、何かおかしなところがあったらご指摘よろしくです。

交換日記

ああ、僕が書く前に紹介されちゃったよ(笑)

そこら辺が集まって、一つのテーマについて日替わりで書いてます。テーマが一巡したら次のテーマになるのです。著者やってみたい!とか、こんなテーマで書けっ!と言うご意見募集中なのです。よろしくどうぞー

robot君襲来

Openfind data gatherer, Openbotと言う長い名前のUAが遊びにきました。さようなら。

汚されちゃった…ここ数日 ロボット君が暴れてくれるお陰で、ちゃんとしたアクセス数がわかんないよ…

前述のOpenbot君、2,3アクセス程度で IPアドレスが変わってるよ。同時に複数 robot を動かしてるのか、悪意を持って偽装してるのか微妙な所だな。

君とは分かれられないね。思い出した!こいつは途中に’,’が入ってるからTDSで弾けないんだっけ。帰ってから deny しないと駄目っぽい。 しかし,このロボット今までに三回も爆撃かけてるんだな。毎回違う所からなので、denyするのも面倒だ。

TdfEditor for Windows、DLL同梱版を公開

ようやくですが、DLL 同梱版を公開します。バージョンもあがってちょっとだけバグフィックスしたよ。

変更点は以下の通りです。

  • FTPモードで存在しないディレクトリを作成するのに失敗していた不具合を修正。
  • コード最適化。ちょっとだけ実行ファイルが小さくなりました。
  • DLL同梱版も公開するようにした。

DLL非同梱版はもうちょっと待っててね。今ソフトウェア公開用のページを作成中なので、完成したらおいておきます。

TDSでCAT表示をカスタマイズ

最初に、現在の僕の template.ph の NEW コマンド部の設定を書いておきます。

package TDS::Tdf::Command::NEW;
$Template = qq(<h4 class="TDS-title"><span class="TDS-category">%cat</span><a name="%anchor" href="%href">%mark</a> %ext_attrs</h4>\n<div class="TDS-content">);
$EndTemplate = "%footnote</div>\n";
$Mark = qq(<img height=16 width=15 src="grnbtn.png" alt='button'>);

ええと、まず変更する場所ですが template.ph の package TDS::Tdf::Command::NEW; からですね。他の所に設定しても、現状の TDS だと NEW の時以外にはカテゴリ表示は無視されるはず。

$Template = の行が NEW コマンド入力時に展開されます。ここで “%cat”と書いてあるところが、実際にカテゴリが代入されるところですね。ここで編集するのは、ホントに細かいところだけだと思います。

具体的なCATの表示は CSS ファイルの TDS-category で定義されてます。 CSS で 左右に振ったり色付けたり出来るので、template.ph をいじらなくても、かなり外見をカスタマイズできますよ。

あとは skelton.html でCSSの設定をしてあげれば、最終的な CAT 表示を決定できるかと思います。

TdfEditorのFTP機能を強化した

FTP機能を少し強化した。サーバー設定などを変更、保存出来るようにして汎用化。文字コードも設定できるように変更。細かな機能の整合性をあわせて、当日のファイルの読み書きに関しては一段落かな?あとは、日付を変更するインタフェイスを実装しちゃえば、それなりに使えるようになると思います。

hns対応も視野に入れてみる。コマンド入力もダブってるところが多いし、保存するファイル名を適切なものに変更するようにすれば、hnsでもそれなりに使えるかと思うんだけど…使いたいって人はいるんだろうか?

自作TDSエディタでテーブルテスト

見出し1 見出し2 見出し3
データ1 データ2 データ3

うーん、TRのコメントって何の意味があるんだろう?無視されてるみたいだな。

分かった。ソースの TR のすぐ横にコメントがそのままかかれていた。恐らく、align なんかの指定に使えと言うことかな?

自作TDSエディタのテスト(2001年11月1日)

てすとですよ。おおきくちいさく強調最強調打ち消し線下線斜体サブスクリプトスーパースクリプト

うむー最強調って、意味がわからないよなぁ。サブスクリプトとスーパースクリプトも何をするものなんだろう?

TDS 1.4.2

この日記がTDS 1.4.2 に上がってたよ。お疲れさまでした>担当者

mailtoを NEW の中に埋め込みたい

日記の内容にコメントするときに、簡単にメールを送れると便利かなぁと思って template.ph をいじってみた。

だけど、どうも上手く行かなくて “@” が展開されなかったり、本文に 日記へのリンクを埋め込もうとしても “?body=”が展開されなかったりする。試しに “@” を “%40″に変えたりもしたんだけど、それでも動作がおかしいことには変わりない。

なんか、細工しないと行けないのかなぁ…

tdsの連続アクセス排除案

カウンタが n 回上がったときに、n回前から現在までの log を検索するってのはダメでしょうか

不正なアクセスが見えたら、著者管理のどこかに不正アクセス元の名前をだして、どう対処するかをユーザーが決められるようになっていると、便利かも。不正の定義も難しそう。

自動で reject されちゃうと、それはそれで不安にもなります。

mail2tdf

mail2tdfをセットアップし直したら、何となく動くようになりました。謎だ…