文法
Rino.js 2 から、文法が標準 HTML ベースになり、 直感的で学習しやすいものになりました。 例えば、コンポーネントは次のように定義できます (詳しくはプロジェクト構造をご参照ください):
<component @path="/header" @tag="header" />
このページでは、プロジェクト構造でカバーされていない Rino.js の文法について説明します。
JavaScript/TypeScript を使用した HTML テンプレート
Rino.js は JavaScript または TypeScript を使用した強力なテンプレート機能をサポートしています。 この機能を使用して、npm パッケージの統合、ファイルの読み込み、 またはプログラム的に HTML コンテンツを生成することができます。
主なポイント:
@type
属性を使用して、言語(js, javascript, ts, typescript)を指定します。- 結果の文字列をグローバル変数
result
に代入します(result
を明示的に宣言する必要はありません)。 - すべてのテンプレートコードは Node.js の VM 内で実行されます。
- 現在、
import/export
文はサポートされていません。
例:
JavaScript の使用例:
<script @type="js" type="text/javascript">
result = "<div>こんにちは、Rino.js!</div>";
</script>
TypeScript の使用例:
<script @type="ts" type="text/typescript">
result = "<div>こんにちは、Rino.js TypeScript!</div>";
</script>
Markdown
Rino.js では、Markdown を HTML ファイル内に直接埋め込むことができます。
これは、@path
属性を使用して外部ファイルから Markdown を読み込むオプションを補完します。
主なポイント:
@type
属性に md または markdown の値を使用します。- 閉じタグ
</script>
は、バックスラッシュ<\/
を追加してエスケープ処理を行います。
例:
<script @type="md" type="text/markdown">
# Markdownタイトル
このHTMLファイル内に埋め込まれたMarkdownコンテンツです。
</script>