https://github.com/hymkor/bake.ps1
ローカルに保全していた静的ウェブサイトを GitHub Pages へ展開できるように、HTML を加工する
https://github.com/hymkor/bake.ps1
nkf perl powershell
Last synced: 12 months ago
JSON representation
ローカルに保全していた静的ウェブサイトを GitHub Pages へ展開できるように、HTML を加工する
- Host: GitHub
- URL: https://github.com/hymkor/bake.ps1
- Owner: hymkor
- License: mit
- Created: 2025-04-15T03:11:07.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-04-15T03:26:11.000Z (12 months ago)
- Last Synced: 2025-04-23T15:15:55.500Z (12 months ago)
- Topics: nkf, perl, powershell
- Language: PowerShell
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
bake.ps1
========
ローカルに保全していた静的ウェブサイトを GitHub Pages へ展開できるように、HTML を加工する。
- GitHub Pages では http ヘッダの charset で UTF-8 を強制しており、他の文字コードを指定しても文字化けする
→(1) 各HTMLの文字コードを UTF-8 変換する
- イメージファイルなどのパスが変わっている可能性がある
→(2) 置換する
(1): 文字コード変換: スクリプトとして直接使う
--------------------------------------------
- コピー元ディレクトリ以下の全ての HTML ファイルの文字コードを UTF8 変換し、コピー先ディレクトリ以下へ展開する
- HTML以外は、そのまま加工せず、そのままコピー
- サブディレクトリもたどる
- `.` で始まる名前, `docs` というディレクトリ, 拡張子 `.ps1` のファイルは処理から除外
- 文字コード自動判定のため要nkf32.exe
- コピー元ディレクトリは省略可: デフォルト: `.`
- コピー先ディレクトリは省略可: デフォルト: `docs`
```
curl -O https://github.com/hymkor/bake.ps1/blob/master/bake.ps1
pwsh bake.ps1 "コピー元ディレクトリ" "コピー先ディレクトリ"
```
(1)+(2): リンクも加工: ライブラリとして使う
------------------------------------------
- ./ 以下の全ての HTML ファイルの文字コードに以下の処理をして、docs/ 以下へ展開する
- UTF-8 変換
- `http://hp.vector.co.jp/authors/VA009797` というパス参照を `https://hymkor.github.io/hp.vector.co.jp_VA009797` へ置換 (href を対象とするため、`"` を付きのもののみ)
- 要nkf32.exe , perl.exe
- 例では改行コード変換をさせないために STDIN/STDOUT ともにバイナリ指定している
**bake-fiximg.ps1**
```bake-fiximg.ps1
. .\bake.ps1
bake "." ".\docs" {
param($from,$to)
nkf32 -w $from | perl -pe 'binmode(STDIN);binmode(STDOUT);s|"http://hp.vector.co.jp/authors/VA009797|"https://hymkor.github.io/hp.vector.co.jp_VA009797|g' > $to
}
```
Download example code:
```
curl -O https://github.com/hymkor/bake.ps1/blob/master/bake-fiximg.ps1
```