-
-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Theme package copied in themes/packages/
should be customizable
#162
Comments
コピーをやめることに賛成ですが theme の npm を更新した際の反映をどうするか?という課題がありますね。 「npm 更新したら build の前に
ですかね。開発者会議で複数 theme の話がありましたけど、あれが実現すれば解決でしょうか。 |
はい、「変更を破棄して node_modules からのコピーをしなおすためのオプション --reset-theme なども必要かもしれない」と書いたとき、変更を破棄するのではなく元の theme の更新をマージする機能もほしいと考えました。検討課題です。
元の theme の更新とローカルの変更とをマージする機能がない間は、ローカルの変更をした場合は、元の theme の更新を簡単に反映させることはできないという制限があるのでよいと思います。一般のWebのスタイルシートのプロジェクトでもforkしてカスタマイズして利用していて、オリジナルのほうの更新を反映させるというのは両方とも変更が多いと簡単にはいかないので、vivliostyle theme についても同じことだと思います。 カスタム CSS を追加することでのカスタマイズの方法は、オリジナルでの更新を反映させやすいのでよい方法ですが、それを使うべきかどうかはケースバイケースです。CSSは、カスケーディングのしくみにより、複数のCSSファイルを指定して、あとから指定したCSSで最初のCSSでのスタイル指定を上書きすることなどができるのですが、この方法で思い通りにスタイルをカスタマイズするというのは簡単ではありません。複数の theme/CSS を指定できるようにすることには賛成ですが、それだけでは不十分だと思います。 vivliostyle theme の多くは SCSS で書かれると思います。SCSS を編集してカスタマイズできることが必要でしょう。 そのようにして変更した theme を元 theme から fork した新しい vivliostyle theme package として公開するのが簡単にできるようになれば、vivliostyle themes のエコシステムにとってとてもよいと思います。 |
元テーマのCSSを編集して再利用したいというニーズについて理解しました。どういった形で実現するか考えていましたが、以下のような
|
@MurakamiShinyu 「themeをコピーして編集しやすくすること」と「オリジナルのthemeの変更内容を反映させること」「forkしたテーマを新しいテーマとして公開すること」は個別に話したいので、このissueでは1つ目の内容について決めたいと思います。2, 3つ目の内容は別issueとして登録してもらえますか? |
英語に疎いのでイメージ違いかもしれませんが、themeのコピー用コマンドの候補としてholdやkeepはいかがでしょうか。 ejectはどうにもCD-ROMドライブがう゛ぃーっと開くイメージが強くて。 |
とあるので、今回の意味からはそれほど離れていないと思いますがどうでしょうか? 「detach」なども良いかと思います。 Footnotes |
個人の感覚ですが、node_modulesからejectするというよりvivliostyle-cliの管理下からejectするように捉えられそうだと感じたので候補を挙げさせていただきました。 反対意見というわけではありませんので、前例があるなら問題ないと思います。 |
i want to do this. currently, i'm using gutenberg theme using i like that theme but i want to modify it with custom css as well. is it possible currently? also, i tried doing https://vivliostyle.org/faq/#how-to-customize-a-theme but there exists on file like is there anyway to modify a theme especially gutenberg with custom css? the only solution i see it is delete the theme & copy the contents from gutenberg into custom css. |
npm package の vivliostyle theme を使用する場合、vivliostyle build コマンドでその theme package は
themes/packages/
ディレクトリ内にコピーされます。たとえば Create Book で "theme-academic" をインストールして作業開始した場合、 vivliostyle.config.js の theme 設定は、で、build を実行すると、
node_modules/@vivliostyle/theme-academic/
の内容が
themes/packages/@vivliostyle/theme-academic/
にコピーされています。
そのあと、このコピーされた theme package 内のCSSファイルなどを修正して、theme をカスタマイズしようとすることはよくあると思います。しかし、次に build を実行したとき、それらのファイル修正は破棄されて、node_modules からのコピーが再び行われるので、この方法での theme のカスタマイズは不可能です。
FAQの テーマをカスタマイズするには? の方法でカスタマイズはできますが、分かりにくいと思います。
build のたびに常に theme package をリセットするという現在の動作は見直した方がよいのではないでしょうか?
修正案:
themes/packages/
ディレクトリ内にあれば、node_modules からのコピーを行わない。themes/packages/
内に theme package がまだなければコピーする(カスタマイズ可能になる)。entryContextDir 内の theme の扱いについては関連issue Theme files/dirs in entryContextDir should be preserved in the output (#160) を参照。--reset-theme
なども必要かもしれないThe text was updated successfully, but these errors were encountered: