WordPressのテーマ作成の備忘録⑤
javascriptの設定を追加
webpack.mix.jsを変更
mix.postCss( './assets/css/style.css', './theme/style.css' ).options({ postCss: [ require('postcss-import')(), require('tailwindcss/nesting')(require('postcss-nesting')), tailwindcss('./tailwind.config.js'), ], processCssUrls: false, }).js( 'assets/js/app.js', 'theme/js' );
動作確認し、問題ないのを確認。
WordPressのテーマ作成の備忘録④
寄り道してunderscoresに
tailwindcss3とAlpinejsをLaravel Mixで導入。
underscoresを公式からダウンロードして
ダウンロードしたファイルをthemeフォルダに展開し
モジュールを入れる。
yarn init yarn add --dev laravel-mix tailwindcss alpinejs cross-env postcss-import cross-env postcss-nesting yarn tailwindcss init touch webpack.mix.js
ディレクトリ構成はこんな感じ
├── assets // css、jsを格納 ├── mix-manifest.json ├── node_modules ├── package.json ├── tailwind.config.js ├── theme // underscoresをここに展開 ├── webpack.mix.js └── yarn.lock
取り急ぎcssをテストできる状況に。
webpack.mix.js
const mix = require('laravel-mix'); const tailwindcss = require('tailwindcss'); mix.postCss( './assets/css/style.css', './theme/style.css' ).options( { postCss: [ require('postcss-import')(), require('tailwindcss/nesting')(require('postcss-nesting')), tailwindcss('./tailwind.config.js'), ], processCssUrls: false, });
Tailwindcss2から3になり設定が多少変わっているので
こちらを参考に修正。
tailwind.config.js
module.exports = { darkMode: 'class', content: [ './theme/**/*.php', ], safelist: [ { pattern: /^font-/, }, ], theme: { extend: { }, }, plugins: [], }
これでCSSの生成まで完了。
次はAlpinejsを動かします。
WordPressのテーマ作成の備忘録③
実のところ、既に同じ構成で作ってあるのだけれど、
いろいろ思うところがあって作り直すことにした。
まず前バージョンで実装していなかったダークモード対応を入れたい。
Tailwind CSSとAlpine.jsが組み込まれているので、
そちらで組んでいく。
まずは
Tailwind CSS にダークモードの設定を追加。
helpでいうとここ。
バージョン違うけど。
tailwind/tailwind.config.js
module.exports = { darkMode: 'class', //ここを追加 }
これでprefixのdarkが有効に。
ダークモードの制御用のコードを作成
テンプレに埋め込むこともできるけど、
モジュール化しておく。
script/darkmode.js
export default () => ({ dark: false, isDark() { return this.dark; }, toggle() { this.dark = !this.dark; this.setMode(); }, setMode() { localStorage.setItem('dark', this.dark); }, mounted() { this.dark = window.matchMedia('(prefers-color-scheme: dark)').matches; if (localStorage.getItem('dark') !== null) { this.dark = JSON.parse(localStorage.getItem('dark')); } }, })
ここにきてLaravel Mixが使われていない事に気付く。
Javascriptをどう処理するか悩む。
でも悩み続けるのも嫌だなぁ。
Tailwind CSSのバージョンもまだ2系統だし
Underscoresに仕込んだ方が楽な気もしてる。
さてどうしようか。
WordPressのテーマ作成の備忘録②
まずはUnderscoreTWからソースコードを取得。
Advanced Optionsを選択し、適当にデータを入れてダウンロード。
ダウンロードしたものを解凍し、composer周りのアップグレードに
postcss、postcss-nestingを入れ、themeファイルを作成
composer update
composer upgrade
composer clearcache
yarn add --dev postcss postcss-nesting
yarn
yarn run watch
これで弄ってないテーマの作成が完了
取り急ぎthemeフォルダにシンボリックリンクを張り
テーマが動いているか確認。
デザインが入っていない状態で問題なく表示されている。
WordPressのテーマ作成の備忘録①
WordPressでブログを書き始めた。
有料テーマを買うお金もないので
無料のテーマを使おうと思ったのだけれど、
細かい修正を入れようと思うと
根が深くて修正不可能だったりする。
ならば自作してしまおうと考えたわけだが
1から調べながらやるのも面倒なもの。
良さげなスターターテーマを使って拡張していくことにした。
スターターテーマの検討だが、
普段から使っているTailwind CSSが導入済みのものがいい。
ReactやVueのようなJSフレームワークを導入済みなのがありがたい。
そんなものがあるのか? と思ったらすんなり見つかる。
それがこちらのUnderscoreTW。
こちらはUnderscoresからフォークされて作成されていて
Laravel Mixを導入Tailwind CSSとAlpine.jsが導入済み。
手間がメチャクチャ省けてありがたすぎる。
次からは実際の導入方法を記載していく。