javascript - 如何在 Meteor 中实际使用 Markdown

标签 javascript html meteor markdown showdown

我正在使用 Meteor 做一个项目,我希望它使用 markdown,很高兴看到有一个包可以用来做这件事。

所以我添加了 meteor showdown,它起作用了,现在我可以做类似的事情了

{{#markdown}}
    #This is a header

    this is a paragraph
{{/markdown}}

而且效果很好。但现在我想把更有趣的东西放在那里。首先想到的是将其与文本区域同步。我尝试了三件事。首先,我尝试了这个:

$('.preview').html('{{#markdown}}'+$('#text').val()+'{{/markdown}}');

其中 .preview 是我希望 html 显示在其中的 div,#text 是某人正在键入的文本区域。但这不起作用,它只是显示 {{#markdown}} 和东西。

接下来,我试着像这样设置 div:

<div class="preview">
    {{#markdown}}

    {{/markdown}}
</div>

并添加:

$('.preview').html('#Is this an H1?');

$('.preview').append('*is this italics?*');

但同样,它只显示文本,而不是 html。

最后,我尝试将一些东西硬编码到 markdown 部分,但这显然行不通。像

这样的事情
<div class="preview">
    {{#markdown}}
        <div class="previewInner">

        </div>
    {{/markdown}}
</div>

<div class="span6 preview">
    {{#markdown}}
        {{>innerPreview}}
    {{/markdown}}
</div>

所以基本上,我已经尝试了所有我能想到的方法,但没有一个能达到我想要的效果。我尝试了更多的东西,但我想你明白了。我该如何使用它?

It's easy: just put your markdown inside {{#markdown}} ... {{/markdown}} tags.

最佳答案

markdown 中的所有内容都被视为 markdown,因此请确保您这样做:

{{#markdown}}{{>innerPreview}}{{/markdown}}

代替

{{#markdown}}
    {{>innerPreview}}
{{/markdown}}

jquery 无法工作,因为 {{markdown}}在 DOM 就位之前呈现。

改为使用 session

Template.hello.markdown_data = function() {return Session.get("markdown_data")});

然后是你的模板

{{#markdown}}{{{markdown_data}}}{{/markdown}}

然后将你的markdown文档存入

Session.set("markdown_data","<your markdown data>");

关于javascript - 如何在 Meteor 中实际使用 Markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030845/

相关文章:

html - CSS 移动端一列,桌面端两列

javascript - 将事件添加到 FullCalendar 导致事件行容器跨单元格网格绘制

javascript - 使用 JavaScript 控制 HTML 中的 mp3 播放

javascript - 有没有办法在导入或需要 Node 模块后检查 Node 模块的版本?

javascript - 使用 Restangular 并尝试将多个参数设置为 $scope 中的 var

java - JSoup - 选择不在链接内的图像

html - 我可以在 Rails 中使用哪些工具/方法从外部 URL 获取信息?

Meteor.http.post 设置小写的 'host' header 。我如何覆盖它?

meteor - 如何根据某些表达式更改 layoutTemplate?铁路由器

javascript - 用 Jasmine 测试异步函数的错误处理