Hugo
been a while!
久し振りにHugoを更新してみる
長らく何もしていなかったので色々更新するのにだいぶ手間取った。 Hugoそのものを更新するのにbrewの更新や不備を直したり、なぜかついでにEmacsを最新にアップデートしたり。
更新作業したもの
- brew(brew doctorしていろいろあって大苦戦)
- Emacs(brewで整合性とったり動かなくなった設定直したり大苦戦)
- Hugo
- ブログのテンプレートちょこちょこ直した
- GitHubのSSH鍵(pushでエラー出るようになってて結局鍵を新しくした)
- このブログのGitHub Pagesの設定でhttpsに変更
新たに発見したことやったこと
虚しい更新作業の合間に発見したちょい技や機能があった。
1. デスクトップをきれいにする小技
正確にはデスクトップを整理整頓するのを諦めて、シェルでデスクトップの表示非表示を切り替えるようにした。
defaults write com.apple.finder CreateDesktop -boolean false && killAll Finder
でmacのデスクトップ上のものを非表示にできる(falseをtrueにすれば逆の設定になる)。 んでそのシェルをAutomatorでアプリケーションに登録してLaunchpadで呼び出して実行すれば切り替えられるという。
2. pbcopy
macにあるコマンド。初めて知ったような忘れていただけのような。 今回GitHubに登録する鍵(pubの方)をGitHubのページで貼り付けるのに使った。
cat id_rsa.pub | pbcopy
って感じでクリップボードに送り込めるのでGitHubの入力フォームで貼り付け! 便利なコマンドがあったんですね。以前はターミナル上もしくはエディタで開いたものをコピーしてたけどこれなら余計な改行やスペースが混ざり込む心配が無いですね。
3. GitHub Pagesのhttps化
このブログが長らくhttpsにしないで放置していたのでどこかに移行してhttps化しようと考えていたんだけどいつの間にかGitHub Pagesはhttpsできるようになっていたんですね。 早速設定でhttpsをオンにした。
やれやれですよ。。
Not Posted
2017年記事にしそこねたやったこと
- コマンドプロンプト(バッチファイル)
- コマンドプロンプトからPowershell実行
- シェルスクリプト
- AWS System Manager Run Command (sum)
- VagrantでSQL Server他DBもセットアップしたよ
- Nano Server試そうとした
- React Redux…etc
- Webpack
- Docker再入門とWP開発環境の作成
- WordPressテーマ開発用のベースを作成した
- AWS Lambda をPythonで
- AWS Lambda をNode.jsで
- CakePHP 3 tutorial 少しやった
- Vagrant でPHP開発環境作成
- Terraform試した
- Hugo用テーマを作成した
忙しいというよりは怠惰だったのと、Hugoのテーマを変えてからやろうと言い訳してるうちに忘れてしまった。
コマンドプロンプト(バッチファイル)
Windowsサーバーでバッチファイルで操作しようとした時に少しおぼえた。
例えばこんなこと。実行結果を変数に入れるのが面倒。
setlocal enabledelayedexpansion
for /f %%a in ('whoami') do @set watashi=%%a
echo %date% %time% !watashi! >> execute.log
別プロセスで実行する方法
replace hugo post rule
Hugoの記事の命名規則を見直して直した
辛かった。
カテゴリ名、タグ名、ファイル名、記事のタイトル。これらが日本語だとジェネレート後のディレクトリ名、ファイル名、URLパス等で日本語が混ざってしまうので、片っ端から探して変更した。
今後は記事内容以外では絶対に日本語を使わないようにしないと。
これはおそらくHugoに限らず静的サイトジェネレーターならだいたいそうだと思う。
しかしカテゴリ名やタグ名で日本語使えないのは辛いな。。
WordPressからHugoへ移行
開発メモブログをWordPressからHugoへの移行
- WordPressから記事をエクスポート
- Hugoをインストール
- エクスポートした記事を放り込む
WordPressから記事をエクスポート
- WordPressにHugo向けにエクスポートするプラグインを入れてデータを出す
Hugoをインストール
brew install hugo
hugo new site techblog
cd techblog
書き出した記事を放り込む
プラグインを使ってエクスポートした記事データはHugoのcontent/post
のpostディレクトリ相当のものが吐き出されているので、中身をcontent/post/
にぶちまける。
細かい設定
テーマを入れる
適当なテーマをインストール。今回はPolymer。
themeディレクトリがなかったら作ってその中でgit clone
したらいいよ。
config.tomlを編集
title,baseurl,languageCode,theme,paginateを修正する。
後で独自ドメインでGitHubPagesで運用するため、canonifyurls = trueを設定する。
GoogleAnalyticsのコードを入れるため、config.tomlに以下を追記
[params]
googleAnalyticsUserID = "<<code>>"
またURLの構造を検討する。 今回からパーマリンクを以下のようにした。permelink設定を追加
[permalinks]
post = "/:year/:month/:day/:slug"
これでyyyy/mm/dd/slugというようなURLになる。
URL構造を変更したため、取り込んだ記事のURL属性を消して代わりにSlug属性を追加。結構時間かかった。
新しい記事を追加する時には
hugo new post/<<post-name>>.md
で記事の初期状態のものが作られるので後は内容をMarkdownで記述していく。
GitHubPagesで公開する
- GitHubにリポジトリを追加
- hugoコマンドで出力されるpublicディレクトリの静的ファイルをコミット
- settingsのGitHub Pagesの項にあるCustom domainにドメインを入れて保存。
- hugoのpublicにCNAMEというファイルを追加。内容は公開ドメイン名
- 再度publicディレクトリの内容をコミット
- DNS(今回はRoute53)でCNAMEの設定をする。
今回はひとまずこんな感じ。 今後は記事の追加だけじゃなく、テーマを自作していきたい。