-
Notifications
You must be signed in to change notification settings - Fork 0
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
Drop Nunjucks (Use preact-render-to-string) #680
base: main
Are you sure you want to change the base?
Conversation
確かに Nunjucks の式、評価などの記述方法は毎回忘れてしまって手間がかかる一方、 一方、JSXやTSXはJavaScriptに馴染みのある人にとって学習コストは低いと思うが、 このボイラープレートを使う対象が変わってくるように思えます。 |
補足: 個人的にはJSXに慣れておきたい気持ちがあるので、賛成ではあります。 |
コメントありがとうございます 🙏
反復や条件分岐、値のテキスト展開などは他のテンプレートエンジンでも取り扱う範疇なので、その点はJSXに変えても必要な学習コストは変わらないかと思っています 敷居の高さを感じた部分について詳しくききたいです。
Preact の実装を今回使用していますが、以下についてはマークアップをする人にとっては大きな違いかなと思います。(AstroのJSX風シンタックスにも近い恩恵が得られるかと)
|
これは例えば関数の返値としてテンプレートを書く点ですかね? |
x-transition:enter-start="opacity-0 -translate-y-[2.5%] scale-95" | ||
x-transition:leave="transition ease-in duration-75" | ||
x-transition:leave-end="opacity-0 -translate-y-[2.5%] scale-95" | ||
{...{ "x-on:click.outside": "open = false" }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alpine.jsの書式の一部がJSXの書式では無効になるので、いくつか回避しなければならない箇所があった
@click
のような x-on のショートハンドはJSXの書式としては無効なので使用不可x-on:click.outside
のようなディレクティブのモディファイアはJSXの書式としては無効なので使用不可(スプレッド展開で回避)
もっと初学者的な言葉を使うと「JSの中にHTMLが書かれている」という点でしょうね。 「一般的なWebデザインやHTMLコーダーからすると」と前提で書いたとおり、 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
手元でも起動してみました。
個人的には使ってみたいと思いました。
JSX は JS のシンタックスシュガーであり、等価な JS のコードに変換可能という意味では JS で HTML を書いていると言えると思います。
Nunjucksはテンプレート言語として、実のところ HTML 構文を拡張しているわけではなく、 Vue(のVueテンプレート)は HTML 構文を拡張し互換性があることを謳っていますので、純粋な HTML マークアップの知識が活かせるということはたしかに言えそうです。
書き味への対応としては、 JSX ランタイムとしての Preact は、#680 (comment) に挙げたように HTML 属性に関しては HTML 標準をリスペクトしている点で React よりは抵抗なく使えるだろうというのが1点、 関数の戻り値ではなくCommonMark HTML blocks風にJSXが書けるMDXであればより純粋な HTML マークアップに近いだろうということで #693 に不完全ではありますがドラフトの実装を提出している状態です。
はい。本リポジトリのボイラープレートとして利用対象者をどう想定するかという話はあると思います。 tuqulore/website-boilerplate はツクロアが業務で静的なサイトを構築する際に適したボイラープレートを整備することを目指していると私は思ってますので、その目的を満たすために要求するスキルがなにかを挙げてみることは価値があるかなとは思います。 |
ツクロアが提供するサービスの手段に、デザインとエンジニアリングの専門分野とする以上、JSXやMDXをスキルセットとして理解しているのは必要だと考えますので、リクルート要件や研修プログラムにも反映すると良い気がします。 |
resolve #669
重要な変更なので利用上のご意見をください