はてなブログに書いた過去の記事を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
...
ので、雑なリネームスクリプトを書いてリネームしてから記事を取り込んだ。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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; | |
} |
カテゴリ設定などはできていないが、とりあえず良しとする。