某はてなブログからHexoに移行
動機
- はてなブログの残念ポイント
- バージョン管理ができない
- 数式にエスケープや中括弧が必要(
x_1, x^{2}
など) - 複数回同じ脚注を使うことができない
- 編集途中に回線が落ちると編集内容が消える
- 面倒だったので、静的サイトジェネレータに移行することにしました。
- 新しいものを使いたくなり(Cloudflare Pages+GitHub+)Hexoに移行することにしました。ただ、ユーザーのほとんどが中国語話者のようで、READMEが中国語で書かれているテーマだらけでした。とりあえず無難にIcarusを使うことにしました。結局テーマなんて萌え絵が貼ってあればどうでもいい説(適当
- コメントは適当にDisqusを選び, 広告と寄付欄を消し, 共有欄はMastodonがあったAddToAnyに変更(NostrやらBlueskyやらがねえ!!!), ライセンスを削除しました。レンダラーはなんとなくPandocにしました。
環境構築
1 | npm install hexo-theme-icarus --save |
なぜかtrailing_index
とtrailing_html
をfalse
にしないと、サイトマップに.html
付きのurlが記載されリダイレクトが行われてSearch Consoleでエラーが出ました。
1 | pretty_urls: |
- はてなブログは最近ではMarkdownで記事を書いていたので、変換は幾分楽でした。
- 画像以外の独自機能をあまり使い込んでいなかったので、
pre-commit
の悪用で適当にうまくいきました。
pre-commitの設定(フォーマット&はてな記法の置換)
1 | # See https://pre-commit.com for more information |
はてな記法の画像をダウンロードしリンクを置換するスクリプト(はてな記法全てには全く対応していない)
1 | import re |
- コードにタイトルをつけられるのすごい
- 記事編集はVSCodeで行い、Markdown Pasteを使った。
Ctrl+Shift+V
で画像を貼り付けると、source/images
に勝手に保存される。
1 | { |
リダイレクトの設定
「無料はてなブログ移転でページランクを維持したリダイレクト設定」を参考に設定/デザイン/🔧/ヘッダにコードを追加
設定/デザイン/🔧/ヘッダ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<p>このサイトは移転しました。1秒後に移動します……</p>
<script type="text/javascript" language="javascript">
<!--
var domain = "https://blog.mikomon.net";
var path = location.pathname;
var url = domain + path;
document.write('<a href="' + url + '">' + url + "</a></p>");
setTimeout("redirect()", 1000);
function redirect() {
location.href = url;
}
let canonicalTag = document.querySelector("link[rel='canonical']");
canonicalTag.href = url + "/";
-->
</script>各記事の先頭に
alias
を追加1
2
3
4
5
6---
title: ...
date: ...
tags: ...
alias: entry/YYYY/MM/XX/??????/index.html
---
Copilotが勝手に続き書いてくれるのこy