growiのbackupからhugoのmarkdownを生成する
なんとなくperlである程度書いた(あとは誰かにgolangかRustかそのへんに移植してもらいたい
code:parse.pl
use strict;
use warnings;
use utf8;
use Encode;
use JSON;
use Path::Tiny;
use DDP {deparse => 1};
my $json_file = shift or die 'require json file';
my $revision = decode_json(path($json_file)->slurp);
my $paths;
for my $elem (@$revision) {
push(@{$paths->{$elem->{path}}}, $elem);
}
for my $path (keys %$paths) {
my $elems = $paths->{$path};
print "$path\n";
my @elems = @$elems;
if (@elems != 1) {
@elems = sort { $b->{createdAt} cmp $a->{createdAt}} @elems;
}
my $latest_elem = shift @elems;
my $emit_file_path = path("./emit/$path.md");
$emit_file_path->parent->mkpath;
$emit_file_path->spew_utf8($latest_elem->{body});
}
__END__
{
"_id": "5ecce2e5fc19b9004a86ec47",
"format": "markdown",
"createdAt": "2020-05-26T09:35:33.830Z",
"path": "/user/anatofuz/note/2020/05/26",
"body": "",
"author": "5df5ef37d744a60045dd1524",
"hasDiffToPrev": true,
"__v": 0
}