category

MT のエントリを Craft CMS に移行する

2019-04-30

MTの日記ブログの内容もこちらに持ってきてみることにした。

細かくは @tinybeans のエントリを参考にしてもらえればと思います。

MTOS から Craft CMS に JSON 形式でデータを移行する方法 | かたつむりくんのWWW
https://tinybeans.net/blog/201...

ドメインが www の有無、SSLかどうかが混じってたのでこのタイミングで置換して Feedmeで取り込んだ。

画像類とサムネイル系を丸っと持っていく。

それでも画像が抜けてるのとかはそもそも以前どこかのタイミングで抜けてたっぽい。まぁ仕方ない。

どっかのバックアップに落ちてるかなぁ。。。


最終的に移行用に作ったテンプレート

<mt:ignore>本文欄からサイトのホスト名部分を削除するための正規表現をセット</mt:ignore>
<mt:setvars>
pattern     =/<mt:blogurl>/g
replacement =<mt:blogrelativeurl>
</mt:blogrelativeurl></mt:blogurl></mt:setvars>
<mt:ignore>配列のための変数を初期化</mt:ignore>
<mt:setvar name="items">
<mt:entries lastn="0">
  <mt:ignore>配列 items に入れていく各アイテムをセットするハッシュ変数 item を初期化</mt:ignore>
  <mt:setvar name="item">
  <mt:ignore>各アイテムの情報をハッシュ変数 item にセット</mt:ignore>
  <mt:setvarblock name="item" key="title"><mt:entrytitle remove_html="1"></mt:entrytitle></mt:setvarblock>
  <mt:setvarblock name="item" key="id"><mt:entryid></mt:entryid></mt:setvarblock>
<mt:setvarblock name="item" key="category"><mt:entrycategory _default="diary"></mt:entrycategory></mt:setvarblock>
<mt:setvarblock name="item" key="slug"><mt:entrydate format="%Y%m_"><mt:entrybasename></mt:entrybasename></mt:entrydate></mt:setvarblock>
<mt:setvarblock name="item" key="body"><mt:entrybody regex_replace="$pattern" ,"$replacement"="" trim="1"></mt:entrybody></mt:setvarblock>
  <mt:setvarblock name="item" key="date"><mt:entrydate language="en"></mt:entrydate></mt:setvarblock>
  <mt:ignore>ハッシュ変数 item を配列変数 items に push</mt:ignore>
  <mt:setvar name="items" function="push" value="$item">
</mt:setvar></mt:setvar></mt:entries>
<mt:ignore>配列変数 items を変数 channel にセット</mt:ignore>
<mt:setvar name="channel" key="items" value="$items">
<mt:ignore>最終的に出力する変数 out に channel をセット</mt:ignore>
<mt:setvar name="out" key="channel" value="$channel">
<mt:ignore>変数 out を JSON で出力</mt:ignore>
<mt:var name="out" to_json="1" trim="1"></mt:var></mt:setvar></mt:setvar></mt:setvar>

slugをpermalinkベースの一意になるように設定してみたつもり。

カテゴリをタグに移行するように一応出力しつつ、未設定のはデフォルトで入れてみた。

リダイレクトとかもほんとはあるんだろうけど、まぁ更新してなかったからそこはいいとする。