2010年9月9日木曜日

Bloggerの投稿記事を復元する方法(インポート)

Bloggerブログのバックアップと復元
Bloggerは、投稿記事の復元もサポートしています。
公式手順による復元は、全部の記事を元に戻したい時に便利です。
o 今の所、URLまでは戻りません。記事内でリンクしている時は、インポート後にリンクを貼り直す必要があります。


**** 手順 (2012年5月現在)
o Bloggerにログインします。
o 「設定」-「その他」画面を開きます。
   + ブログの右上にある「デザイン」リンクを押します。
      + ダッシュボードに居る時は、変更したいブログの「▼」をクリックして、「設定」もしくは「テンプレート」
   + そして、切り替わった画面の左側のメニューから「設定」-「その他」。
o 上の方、ブログツール欄に並んでいるリンクから、「ブログをインポート」リンクを押します。

o 小さな場面「ブログをインポート」画面が出てきますので、
o 「参照...」ボタンを押して、戻したい投稿記事のXMLを選びます。
   + ファイル名の形式は「blog-月-日-年.xml」。「blog-09-09-2010.xml」のような名前です。
   + template-から始まる名前のファイルは、テンプレート(デザイン)のバックアップです。
o 画像の中に含まれている英数字を入力します。
o その他、「インポートされたすべての投稿を自動的に公開」オプションにチェックが入っていますので、必要に応じて外します。
      + バックアップした記事数が多いと、すぐに公開するチェックを入れても公開されない記事があるかもしれません。
      + 一度に公開する時、ある期間当たりの公開記事数に上限があるという噂を、どこかで聞いた事があります。
o 入力が終わったら、下にある「ブログをインポート」ボタンを押します。

(以下、新デザイン移行後は未確認)
o インポートした日記は、基本的には全部公開されます。
   + 自動的に公開のチェックを入れなければ、非公開の形で取り込まれます。
o XMLの中にある全ての記事が取り込まれますので、不要な記事は削除します。
   + 記事が重複している時に、2重登録されるかどうかは未確認です。
o 後は、内部リンクなどを地道に修正しながら、公開していきます。
   + 公開範囲や権限などのオプションが変わっているかもしれません。
   + 公開範囲や権限を細かく切り替えている方は、公開時に確認します。


**** メモ
o 公式手順以外のバックアップツールを使って保存した時は、そのツールの復元手順に従います。


==
関連ページ:
    ▼Bloggerブログのバックアップと復元
    ▼Blogger
    ▼制作メモ
    > Bloggerで、カスタマイズしたCSS(= テンプレート)をバックアップする
    Bloggerで、カスタマイズしたCSS(= テンプレート)を復元する
    Bloggerのエクスポートファイルからテンプレートを取り出す
    +
    Bloggerの投稿記事をバックアップする(エクスポート)
(2012年5月7日変更。新デザイン対応)

Bloggerのエクスポートファイルからテンプレートを取り出す方法 - 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(/&lt;/, "<");
  gsub(/&gt;/, ">");
  gsub(/&amp;/, "\\&");
  printf("%s", $0);
  exit;
}
--------



==
関連ページ:
    ▼Bloggerブログのバックアップと復元
    ▼Blogger
    ▼制作メモ
    > ▼分析とWebサービス連携
    +
    Bloggerの投稿記事をバックアップする(エクスポート)
    Bloggerの投稿記事を復元する(インポート)
    Bloggerで、カスタマイズしたCSS(= テンプレート)をバックアップする
    Bloggerで、カスタマイズしたCSS(= テンプレート)を復元する
(2010年9月9日変更。GetTemplate.awkに不要な判定があったので削除。動きは同じ)