Я использовал Express web framework для Node.JS и использовал анализатор chjj/marked
, чтобы разобрать разметку в HTML. Я также смог выполнить эту уценку с помощью Express. Я использую шаблоны EJS в моих экспресс-проектах как правило, и то, что я хотел бы сделать, это использовать EJS с уценкой.Как отменить уценку с помощью EJS с помощью Express/Node.JS?
В идеале я хотел бы иметь возможность использовать во время компиляции включает, которые обычно используются в 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?
EDIT 5/19/13: Я действительно хотел сделать что-то подобное для использования в своих проектах, поэтому мне пришлось дать ему возможность сочетать уценку с EJS. Взгляните на мой модуль на GitHub под названием markedejs
, если вы заинтересованы в этом, README объясняет, что я сделал довольно хорошо. Этот модуль использует marked
для анализа разметки в HTML, unescapes и передает шаблон 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 включать работу с файлами разметки?