Skip to main content
  1. Entry/

はてなブログに書いた過去の記事をhugoの記事としてインポート

過去の記事を放置しておくのももったいないので今のブログにインポートした。

はてなブログからエクスポートしたテキストファイルをhatenablog2hugoで変換した。soh335++

このままだと以下のようなディレクトリ構造になっていてブログのパス構成に合わない。

$ tree hugo_content
hugo_content
├── 20090912
│   └── 1254327299.md
├── 20090913
│   └── 1254327262.md
...
├── 2012
│   ├── 01
│   │   ├── 09
│   │   │   └── 205000.md
│   │   ├── 13
│   │   │   └── 150733.md
│   │   ├── 30
│   │   │   └── 145627.md
│   │   └── 31
│   │       └── 175832.md
...

ので、雑なリネームスクリプトを書いてリネームしてから記事を取り込んだ。

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Path::Class qw{dir};
my $root = dir(".");
for my $year ($root->children) {
next if ! $year->is_dir;
next if $year->basename =~ /\d{8}/;
for my $month ($year->children) {
for my $day ($month->children) {
my $dirname = $year->basename . $month->basename . $day->basename;
# mkdir $dirname;
for my $article ($day->children) {
my $org = $article->absolute;
my $dst = $root->subdir($dirname)->file($article->basename)->absolute;
warn $org . " -> " . $dst;
# rename $org, $dst;
}
$day->remove;
}
$month->remove;
}
$year->remove;
}
for my $year ($root->children) {
next if ! $year->is_dir;
my $org = $year->absolute;
my $dst = $org;
$dst =~ s/(....)(..)(..)$/$1-$2-$3/;
warn $org . " -> " . $dst;
rename $org, $dst;
}
view raw rename.pl hosted with ❤ by GitHub

カテゴリ設定などはできていないが、とりあえず良しとする。