Bloggerのエクスポートファイルからテンプレートを取り出す方法 - Blogger
テンプレート(デザイン)をバックアップせずに修正してしまって、元に戻せなくなった時、諦めるのはまだ早いです。テンプレート修正前にブログの投稿記事をバックアップ(= エクスポート)している場合、そのデータの中からテンプレートの情報を取り出す事が出来るからです。
o Bloggerのテンプレートをバックアップする手順はこちら
o Bloggerの投稿記事をバックアップする手順はこちら
**** 原理
o ファイルの改行文字はUNIX形式(\n)です。データを取り出す時は気を付けます。
o テンプレートが埋まっている場所を探して、その範囲だけ書き出します。
o エスケープされている文字(<>&)がありますので、元に戻します。
+ エスケープされている文字は、他にもあるかもしれません。その時は、変換していない文字がブログで文字化けするでしょうから、その部分を直します。
**** AWKプログラムで取り出す場合の例
o 2010年9月現在のものです。
o Bloggerの仕様が新しくなった時には、正しく変換出来ないかもしれません。
** 実行手順
o Bloggerブログのバックアップデータを探します。
+ 名前が「template-」から始まっているxmlファイル
+ このファイルを見つけたら、そのままBloggerにインポート出来ます。
+ ファイル名の例 template-1234553936789003939.xml
+ 名前が「blog-」から始まっているxmlファイル
+ ファイルの中に、テンプレートXMLも眠っていますので、以下の手順で取り出します。
+ ファイル名の例 blog-09-10-2010.xml
+ どちらの形式も見つからなかった時は、諦めて作り直します。
o AWKを入手します。Gawkがおすすめです。
+ (リンクは、Windowsのものです。)
o AWKの実行ファイルと、下の2つのファイルを、同じフォルダーに置きます。
+ .exe などが表示されない時は、「ファイルの拡張子を変更可能にする方法」
+ AWKの実行ファイル名は、Gawk on Windowsの場合「gawk.exe」です。
+ AWKの実行ファイルをコピーしたくない時は、C:\program\gawk.exeのように、ファイルの置き場所まで直接指定する方法などがあります。
o GetTemplate.bat を実行します。
+ 黒い画面が出てきます。
+ 最後に「続行するには何かキーを押してください」と表示されますので、スペースキー辺りを押します。
+ Gawk on Windows以外の処理系で動す時、警告が出る事があります。
+ 警告が出るだけで、処理は最後まで終わっています。
+ 気になる時は、batファイルに書いてある「 -W ctype=UTF8」オプションを外します。
o フォルダーが2つ出来ますので、inフォルダーに、Bloggerのエクスポートデータを置きます。
o もう一度、GetTemplate.bat を実行します。
+ 黒い画面が出てきますので、同様に、スペースキー辺りを押します。
o outフォルダーに、テンプレートファイルが出来ます。
o 念の為、事前に現在のテンプレートファイルをバックアップ(= ダウンロード)します。
o outフォルダーに出来たテンプレートファイルを、Bloggerにアップロードしてみます。
+ ブログの見栄えが元に戻りましたら、成功です。
**** プログラム例。ファイル2つ
** GetTemplate.bat
o こちらのプログラムは、Windows用です。iMacやUNIXの方は書き換えて下さい。
--------
if not exist in mkdir in
if not exist out mkdir out
cd in
for %%F in (blog*.xml) do ..\gawk.exe -v BINMODE=3 -W ctype=UTF8 -f ..\GetTemplate.awk "%%F" > ..\out\"template_%%F"
cd ..
pause
--------
o gawk.exeの部分は、実行したいAWKのファイル名に置き換えます。
o Gawk on Windows以外の処理系で動す時、警告が出ることがあります。動作に支障はありませんが、気になる時は、「 -W ctype=UTF8」オプションを外すと静かになります。
** GetTemplate.awk
o こちらのプログラムは、Windows以外でも動くと思います。
o メモ帳で保存する時、普通に保存して下さい。文字コードUTF-8を選択すると動きません。
--------
BEGIN {
if (ARGC < 2) {
print "# GetTemplate from BloggerBlogXML at 2010-09-09 (to_dk notebook)";
print "# gawk -v BINMODE=3 -W ctype=UTF8 -f GetTemplate.awk input_xml > output_xml"
exit;
}
RS = "[>]";
}
{
if (status == 0) {
if ($0 ~/^<category scheme=(.)+\/kind#template'\/$/) {
status = 1;
}
next;
}
if (status == 1) {
if ($0 ~/^<content type='text'$/) {
status = 2;
}
next;
}
sub(/<\/content$/, "");
gsub(/</, "<");
gsub(/>/, ">");
gsub(/&/, "\\&");
printf("%s", $0);
exit;
}
--------
==
関連ページ:
▼Bloggerブログのバックアップと復元
▼Blogger
▼制作メモ
> ▼分析とWebサービス連携
+
Bloggerの投稿記事をバックアップする(エクスポート)
Bloggerの投稿記事を復元する(インポート)
Bloggerで、カスタマイズしたCSS(= テンプレート)をバックアップする
Bloggerで、カスタマイズしたCSS(= テンプレート)を復元する
(2010年9月9日変更。GetTemplate.awkに不要な判定があったので削除。動きは同じ)