0

シンプルなサイトを Jekyll に移行し始めました。すべてが継承される一連のテンプレートがあるので、実際のコンテンツを入力するだけで済みます。ただし、コンテンツを移動する際に、テンプレートによって以前に指定されたタグを変更する必要があることがわかりました。

たとえば、開始<body>タグまでのすべてを指定する「メイン」テンプレートがあります。私のサイトのページの 1 つは、JavaScript を少し使用して html5 キャンバスを変更しているため、その開始タグは のようなものにする必要があります<body onload="startDrawing();">。現在、この 1 つのタグのみを変更する完全に別個のテンプレートを用意するのはばかげているように思えますが、テンプレートからこのタグを削除して、すべてのページで開始<body>タグを手動で指定するのも同様にばかげています。これを解決する正しい方法は何ですか?

4

2 に答える 2

0

Jekyll については何も知りませんが、キャンバスを含む 1 つのページに別のテンプレートを用意することに傾倒しています。これは特別なケースであり、Jekyll が特別な構文でそれを説明できない場合を除き、このケースには別のテンプレートを使用する方がすっきりしているように感じます。

于 2011-06-05T02:59:49.647 に答える
0

特別な onload コマンドが必要な個々のページで、YAML フロントマターに次の行を追加します。


---
... your existing frontmatter ...
special_command: onload="startDrawing();"
---

次に、デフォルトのテンプレートで、変更します

<body>

<body {{ page.special_command }}>

その YAML フロントマターを持つページでは、コンテンツがレンダリングされます。フロントマターに「special_command」行がないページでは、何もレンダリングされません。これらのページの <body> タグに余分なスペースが残りますが、それでも W3 仕様を有効なコードとして渡します (または、少なくとも、そのコードを実行したときに Validator を渡しました)。

于 2011-06-08T15:41:46.320 に答える