Миграция с blogspot на hexo

Hexo

Перешёл на hexo. Дополнительно решил перенести свои заметки с blogspot.

  • Установил пакет для миграции:

    1npm install hexo-migrator-blogger --save
    
  • Подправил файл миграции (node_modules/hexo-migrator-blogger/lib/migrate.js), чтобы нормальные названия файлов были: {% codeblock lang:patch %} — migrate.js.old 2016-09-24 10:02:27.000000000 +0300 +++ migrate.js 2018-03-27 15:23:52.475311505 +0300 @@ -11,17 +11,19 @@ module.exports = function(source, target var posts = JSON.parse(body).feed.entry; async.each(posts, function(item, cb) { var title = item.title[’$t’];

  •        var file = title.replace(/\s/g,'-').replace(/[^A-z 0-9 -]/g,'');
           var published = item.published['$t'];
    
  •        var file = moment(published).format('YYYY-MM-DD') + '-' + title;
           var tags = '';
           if (item.category) {
               tags = item.category.map(prop('term'));
           }
           var header = [
    
  •            'title: |',
    
  •            '\t' +  title,
    
  •           'layout: post',
    
  •            'title: ' + '\"' + title + '\"',
               'date: ' + moment(published).format('YYYY-MM-DD HH:mm:ss'),
               'tags: [' + tags + ']',
    
  •           'categories: blog',
    
  •           'lang: ru',
               '---',
           ];
           var content = item.content['$t'];
    

{% endcodeblock %}

  • Запустил миграцию:

    1hexo migrate blogger "http://yamadharma.blogspot.ru/feeds/posts/default?alt=json&max-results=10000"
    
  • Почистил получившиеся файлы: {% codeblock lang:bash %} #!/bin/bash

name: clean

for i in .md do sed -i -e “s:

::g”
-e “s:<div.
>::g”
“$i” done {% endcodeblock %}

  • Сделал транслит названий: {% codeblock lang:bash %} #!/bin/bash

name: translit

Перекодирует рекурсивно в текущем каталоге имена

файлов и каталогов в транслит.

Успенский В. А. К проблеме транслитерации русских текстов латинскими буквами

http://lingvoforum.net/index.php?topic=35758.0

shopt -s nullglob for NAME in * do TRS=echo $NAME | sed "y/абвгдезиклмнопрстуфц/abvgdeziklmnoprstufc/" TRS=echo $TRS | sed "y/АБВГДЕЗИКЛМНОПРСТУФЦ/ABVGDEZIKLMNOPRSTUFC/" TRS=${TRS//х/kh} TRS=${TRS//Х/KH}; TRS=${TRS//ч/ch} TRS=${TRS//Ч/CH}; TRS=${TRS//ш/sh} TRS=${TRS//Ш/SH}; TRS=${TRS//ё/yo} TRS=${TRS//Ё/YO}; TRS=${TRS//ж/zh} TRS=${TRS//Ж/ZH}; TRS=${TRS//щ/th} TRS=${TRS//Щ/TH}; TRS=${TRS//э/eh} TRS=${TRS//Э/EH}; TRS=${TRS//ю/yu} TRS=${TRS//Ю/YU}; TRS=${TRS//я/ya} TRS=${TRS//Я/YA}; TRS=${TRS//й/yj} TRS=${TRS//Й/yj}; TRS=${TRS//ъ/jh} TRS=${TRS//Ъ/JH}; TRS=${TRS//ь/j} TRS=${TRS//Ь/J}; TRS=${TRS//ы/ih} TRS=${TRS//Ы/IH};

TRS=${TRS// /_};

if [[ -d "$NAME" ]]
then
mv -v "$NAME" "$TRS"
cd "$TRS"
"$0"
cd ..
else
mv -v "$NAME" "$TRS"
fi

done {% endcodeblock %}


No notes link to this note

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие