Hexo を esa ぽい URL にする

Copied from: blog/esa 2 GitHub の .travis.yml を微調整

Hexoのパスを/posts/242みたいにしてあげれば↑のCopied fromもいい感じにリンクされるのでは説。

https://github.com/ppworks/ppworks.github.io/commit/0ca5a701df1482bc638a5320ac047c622ad2d947

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
diff --git a/_config.yml b/_config.yml
index 76bbbfb..61852bc 100644
--- a/_config.yml
+++ b/_config.yml
@@ -14,14 +14,14 @@ timezone: Asia/Tokyo
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://ppworks.github.io
root: /
-permalink: :title
+permalink: posts/:number/
permalink_defaults:

# Directory
source_dir: source
public_dir: public
tag_dir: tags
-archive_dir: archives
+archive_dir: posts
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
diff --git a/themes/landscape/_config.yml b/themes/landscape/_config.yml
index 4c1bb96..e8d5ba2 100644
--- a/themes/landscape/_config.yml
+++ b/themes/landscape/_config.yml
@@ -1,7 +1,7 @@
# Header
menu:
Home: /
- Archives: /archives
+ Archives: /posts
rss: /atom.xml

# Content

permalink: posts/:numberにしたくなりがちだけど、ブラウザがhtmlとして認識しなくなってしまうので、/をつけて、トレイリングスラッシュあり的な扱いでお茶を濁す。

esa 2 GitHub の .travis.yml を微調整

Copied from: blog/GitHub Page を Hexo で作る

何も考えずに他人の.travis.ymlを適当に使ってたので、ちょっと調整したりした。
本当はpublicをcacheしたいんだけど、どうしてもうまく行かずに一旦ほぼ元のと同じ感じになった。この時間、なんだったんだ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
language: node_js
sudo: false
cache:
apt: true
directories:
- node_modules
node_js:
- '6'
branches:
only:
- esa
env:
global:
- GIT_COMMITTER_NAME=ppworks
- GIT_COMMITTER_EMAIL=koshikawa@ppworks.jp
- GIT_AUTHOR_NAME=ppworks
- GIT_AUTHOR_EMAIL=koshikawa@ppworks.jp
before_install:
- npm install
before_script:
- git config --global user.name 'ppworks'
- git config --global user.email 'koshikawa@ppworks.jp'
- rm -fr public
- git clone --depth=1 --branch=master https://github.com/ppworks/ppworks.github.io.git public
- cd public
- git ls-files | xargs -I {} rm -rf {}
- cd -
script:
- $(npm bin)/hexo generate
- cd public
- git add -A
- git commit -m 'Update'
- git push https://$GH_TOKEN@github.com/ppworks/ppworks.github.io.git master

Travis CIでのHexo自動ビルドエラーについて · Issue #2 · llminatoll/wakaba-review https://github.com/llminatoll/wakaba-review/issues/2

が大変参考になった。ありがたい。

そして、dateが毎回書き換わる問題によって、permalinkも毎回変わってしまってつらかったので、一旦permalinkからdateを消すという雑な対応をした。

https://github.com/ppworks/ppworks.github.io/commit/12eb69754b42587e7c6e6b78b29af83acbed3418

本当はpublicをcacheしたいんだけど、どうしてもうまく行かず

どうもpublic配下のcacheをクリアしても、git-cloneしたrepositoryがmasterブランチになってしまって、コンフリクトし続けてしまった。何か手順がミスっていたかもしれない。

どうせcacheしてもarchiveをネットワーク越しにもってくるし、git clone --depth=1と対して変わらんので、いいかもしれない。

git ls-files | xargs -I {} rm -rf {}

何なの、って思ってたけど、tricknotesさんのコメントをみて理解した。sourcethemeなどから消したファイルの差分を検知するために、一旦雑にワークディレクトリから全ファイルを消してから、hexo generateを実行することで、正しい結果をコミットできる。なるほどだ。

GitHub Page を Hexo で作る

個人esaの特定のカテゴリ配下を https://ppworks.github.io としてブログにしてみることにした。

  1. https://github.com/taea/taea.github.io を雑にfork
  2. taeaをppworksに変える
  3. esaのGitHub連携をする(personal access tokenはpublic_repoだけチェックが入っていればよい
  4. travis-ci.orgのsettingでBuild only if .travis.yml is presentをチェックする(しないとmasterブランチがコケ続ける)
  5. travis-ci.orgのsettingでGH_TOKENをセットする
  6. masterをまっさらにする(git rm -r archives categories css fancybox js tags index.html)
  7. なんか色々調整する
    • とくにpost.dateがmetaデータにないせいで起きる問題へのワークアラウンドがポイントではあるがesa側で柔軟に指定できるようにしたいなという気持ちがある。

とりあえず、それっぽくなった。(テーマは宇宙のままだけど)

Docker を使ってみる

Copied from: Docker の導入と概念の理解

1
2
3
4
5
6
7
docker pull httpd
docker image list
docker container list
docker run -d -p 8080:80 httpd:latest
docker ps
docker container stop
docker container rm
1
2
docker volume ls
docker volume create myvolume

よく使うDockerコマンド - Qiita
コンテナをつくってログインする: docker run -it
コンテナをバックグランドで動作させる: docker run -d
コンテナを環境変数で設定する: docker run -e