wyam ことはじめ
ソースの方のリポジトリがハードディスククラッシュで失われて 更新できなくなっていたので、サイトを作りなおし。 wyamを使ってみる。
インストール
$ dotnet tool install -g Wyam.Tool
初期化する
$ mkdir site
$ cd site
$ wyam new --recipe blog
config.wyam(siteの設定)
input(記事置き場)
about.md
posts
first-post.md
設定ファイル
config.wyam がそれで、C# を Roslyn で処理するらしい。 おもしろい。
// config.wyam
#recipe Blog
#theme Phantom
// Customize your settings and add new ones here
Settings[Keys.Host] = "ousttrue.github.io";
Settings[BlogKeys.Title] = "三次元日誌";
Settings[BlogKeys.Description] = "programming とか";
// Add any pipeline customizations here
#recipe Blog がパイプライン設定で、 input フォルダの構成と処理を設定している。 設定ファイルに展開したものを記述することもできるみたい。
gitignore
https://wyam.io/docs/advanced/what_to_exclude_from_source_control
#.gitignore
.vs/
output/
config.wyam.hash
config.wyam.dll
config.wyam.packages.xml
生成する
$ wyam
output
index.html
$ wyam --watch --preview で更新を監視して livereload できる。
動作
input/posts/ 配下の markdown が /posts/ 下にhtml化される
input/posts/**/hoge.md が /posts/hoge.html のように階層は無くなる
テーマを変えてみる
コマンドラインに、 --theme THEME_NAME とするか config.wyam に
// config.wyam
#theme THEME_NAME
とすれば OK。
appveyor で GitHub-Pages に展開
https://wyam.io/docs/deployment/appveyor
CIよくわかってないので難航したが動くようになった。
GitHub-pages のユーザー頁を使ったので、 ソースのリポジトリと、html置き場のリポジトリを分けた。
ソースのリポジトリに AppVeyor を仕掛けて、 push したときにビルドして、html置き場に push する。
branches:
only:
- master
environment:
access_token:
# EDIT the encrypted version of your GitHub access token
# https://www.appveyor.com/docs/deployment/github/
secure: E+wmFkBHvRVLnVcg9mIBXP7iTXKIqJyi/DewA+0SEtkpWmtiNFKKhYzD4bs0nw2L
install:
- mkdir ..\Wyam
- mkdir ..\output
# Fetch the latest version of Wyam
- "curl -s https://raw.githubusercontent.com/Wyamio/Wyam/master/RELEASE -o ..\\Wyam\\wyamversion.txt"
- set /P WYAMVERSION=< ..\Wyam\wyamversion.txt
- echo %WYAMVERSION%
# Get and unzip the latest version of Wyam
- ps: Start-FileDownload "https://github.com/Wyamio/Wyam/releases/download/$env:WYAMVERSION/Wyam-$env:WYAMVERSION.zip" -FileName "..\Wyam\Wyam.zip"
- 7z x ..\Wyam\Wyam.zip -o..\Wyam -r
build_script:
- dotnet ..\Wyam\Wyam.dll --output ..\output
on_success:
# Switch branches to gh-pages, clean the folder, copy everything in from the Wyam output, and commit/push
# See http://www.appveyor.com/docs/how-to/git-push for more info
- git config --global credential.helper store
# EDIT your Git email and name
- git config --global user.email ousttrue@gmail.com
- git config --global user.name ousttrue
- ps: Add-Content "$env:USERPROFILE\.git-credentials" "https://$($env:access_token):x-oauth-basic@github.com`n"
- git checkout gh-pages
- git rm -rf .
- xcopy ..\output . /E
# EDIT your domain name or remove if not using a custom domain
# - echo wyam.io > CNAME
# EDIT the origin of your repository - have to reset it here because AppVeyor pulls from SSH, but GitHub won't accept SSH pushes
# 送り先(push できるように environment access token をセットしている)
- git remote set-url origin https://github.com/ousttrue/ousttrue.github.io.git
# 空の gh-pages ブランチに変更を追加
- git add -A
- git commit -a -m "Commit from AppVeyor"
# gh-pages ブランチから origin の master に送る(use の GitHubPages を使っているので master ブランチ運用)
- git push -f origin gh-pages:master
vscode で編集する
watch タスクを作成してバックグランドで input の変更を監視。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "watch",
"type": "shell",
"command": "wyam",
"args": [
"--watch", "--preview",
],
"problemMatcher": [
],
"isBackground": true
},
]
}
launch.json を作成して F5 でブラウザを開く。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:5080",
"webRoot": "${workspaceFolder}"
}
]
}
自動でリロードがかかるので快適。
参考
日本語で wyam に言及しているサイトはこれしかなかった。 マイナーでござる。