HUGOで作成したページでスタイルにcharsetが出力され、有効なAMPにならない
HUGOで出力されたページをAMPにしたい
AMPチェックをしました。
style amp-custom の @charset エラー
AMPにするためには、@charset
があってはダメなようです。
AMPのドキュメントを確認しました。
AMP HTML 仕様
許可の中に@charset
がありません。
誰が @charset を付けているか
public 配下のhtmlを確認すると、@charset "UTF-8";
がありました。
scssファイルには@charset
は記載していないので、
HUGOでCSSを作成するときに付けてくれているようです。
全角文字をAsciiに変更
ascii文字以外がある場合に付くようです。
scssファイルをチェックし、multi byte文字をasciiに修正します。
まだ、charset がついたまま。
charset を削除
オプションを調べましたがまだ charset が付く理由がわからなかったので、scss変換時にcharsetの出力を消すのは諦めます。
cssに変換後にcharsetを削除することにします。
PostCSS
PostCSS
を使用してCSSファイルを変換することができるようです。
PostCSS
HUGOのドキュメントページ PostCSS の説明に従い、下記のコマンドを実行しJavaScriptモジュールをインストールします。
|
|
@fullhuman/postcss-purgecss
モジュールで期待通りのことができるようなので、こちらもインストールしておきます。
|
|
HUGOのドキュメントページ PostCSS の説明に従い、postcss.config.js ファイルを作成し、PostCSS処理でインストールしたモジュールが実行されるように設定します。
|
|
main.scss を css に変換して、各htmlページのstyleタグに出力されるように、baseof.html テンプレートに下記にように記述しました。
変更前
|
|
変更後
|
|
public 配下のhtmlを確認すると、@charset "UTF-8";
がなくなりました。
追記
CLOUDFLAREでビルドする際にエラーとなっていたので、PostCSSの処理を削除しました。
ビルド結果を確認すると@charset "UTF-8";
が出力されていませんでした。
ローカルPCの問題だったのかも。