Как на самом деле использовать Markdown с Meteor

Я работаю над проектом с Meteor, и я хочу, чтобы он использовал markdown, и было очень приятно видеть, что есть пакет, который можно сделать с помощью.

Итак, у меня метеор добавил вскрытие, это сработало, и теперь я могу сделать что-то вроде

{{#markdown}}
    #This is a header

    this is a paragraph
{{/markdown}}

и все работает отлично. Но теперь я хочу на самом деле поставить там что-то более интересное. Первая мысль заключалась в том, чтобы синхронизировать его с текстовым полем. Я попробовал три вещи. Во-первых, я пробовал это:

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

Где .preview - это div, который я хочу отобразить html, а #text - это текстовое поле, где кто-то печатает. Это не работает, но это просто показывает {{#markdown}} и прочее.

Затем я попытался просто настроить div следующим образом:

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

    {{/markdown}}
</div>

И добавьте к нему:

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

или

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

Но опять же, он просто показал текст, а не html.

Наконец, я пробовал жесткую кодировку в разделе уценки, но это явно не сработало. Такие вещи, как

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

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

или

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

Итак, в основном, я пробовал все, о чем я могу думать, и ничто из этого не делает то, что я хочу. Я попробовал еще несколько вещей, но думаю, что вы поняли эту идею. Как я должен использовать это?

Это легко: просто поместите свою метку в теги {{#markdown}}... {{markpoint}}.

Ответы

Ответ 1

Все внутри уценки считается уценкой, поэтому убедитесь, что вы это сделали:

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

Вместо

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

jquery не работает, потому что {{markdown}} отображается до того, как DOM вставлен на место.

Вместо этого используйте сеанс

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

Затем ваш шаблон

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

Затем сохраните свой документ с меткой в ​​

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