Node.JSのExpress Web フレームワークを使用しており、マークダウンを HTML に解析するためにマークダウン パーサーを使用しています。Express を使用してこのマークダウンをレンダリングすることもできました。私は通常、Express プロジェクトで EJS テンプレートを使用しています。私ができるようにしたいのは、マークダウンで EJS を使用することです。chjj/marked
理想的には、EJS で通常使用されるコンパイル時のインクルードを使用できるようにしたいと考えています。その例を以下に示します。
<% include header.html %>
<h3>User List -- Located in users.html</h3>
<ul id="users">
<% users.forEach(function(user){ %>
<li><%= user.name %> -- <%= user.email %></li>
<% }) %>
</ul>
<% include footer.html %>
次のようなものを使用して、EJS テンプレート内にマークダウン ファイルも含められるとよいでしょう。
<% include markdown-file.md %>
また、マークダウン内で EJS 構文を使用したり、マークダウン内の変数にアクセスする方法を提供したりできると便利です。このようなことは可能ですか?そうでない場合、EJS テンプレートのコンテンツにマークダウンを使用する最も簡単な方法は何ですか?
2013 年 5 月 19 日編集:私は自分のプロジェクトで使用するためにこのようなことを本当にやりたかったので、マークダウンと EJS を組み合わせて試してみる必要がありました。markedejs
これにも興味がある場合は、GitHub で呼び出された私のモジュールを見てください。README は、私が行ったことをかなりうまく説明しています。このモジュールは、marked
マークダウンを HTML に解析してエスケープ解除し、最終的なレンダリングのために HTML テンプレートを EJS に渡すために を使用します。すべての EJS 構文はマークダウン内で機能し、マークダウン テンプレート内に HTML テンプレートを含めることも同様に機能します。次のようなマークダウン テンプレートを作成できます。
<nop><% include header.html %></nop>
<%= site.title %>
=======================
<%= site.description %>
This project was created by <%= author.name %>. My website is
located at the url [<%= author.url %>]().
## <%= header %>
![Markdown Logo](img/mdlogo.png)
Hey <%= user.name %>! This is a test template for the `markedejs` module. We
can use markdown and EJS together for some pretty awesome results.
### The Classic EJS Supplies List
<ul>
<% for (var i = 0; i < supplies.length; i++) { %>
<li><%= supplies[i] %></li>
<% } %>
</ul>
### Your User Data
I like using markdown lists a whole lot better when I can.
- **Username:** <%= user.username %>
- **Name:** <%= user.name %>
- **Stars:** <%= user.stars %>
We can do some conditionals as well. You will only see the footer below this
paragraph if you pass in `true` for the `showFooter` flag.
<% if (showFooter !== undefined && showFooter === true) { %>
<%= footer %>
<% } %>
<nop><% include footer.html %></nop>
<nop>
タグは によって削除され、およびのコンテンツの周囲にタグが追加されないmarkedejs
ように、マークダウン テンプレートに含まれます。<p>
header.html
footer.html
include
ただし、これは私が最初に望んでいたことをまだ完全に行っているわけではありません。他の HTML テンプレートと他のマークダウン テンプレートの両方でテンプレートをマークダウンできるようにしたいと考えています。現在、マークダウン テンプレート内には HTML テンプレートのみを含めることができます。EJS インクルードをマークダウン ファイルで動作させる方法について、誰かがより良いアイデアを持っていることを願っていますか?