Более простой конвертер уценки для node.js - PullRequest
3 голосов
/ 13 января 2012

У меня есть приложение node.js, и я хочу, чтобы мои пользователи могли улучшить свои сообщения с небольшой уценкой. Но только немного. Я хочу

  • Дезинфекция
  • Жирный (**) и Курсив (*)
  • Ссылки

И это все, больше ничего. Но мне может понадобиться больше позже, при расширении системы обмена сообщениями.

Я смотрел на showdown, markdown-js и PageDown. Только у последнего была дезинфекция, но все они не настраиваются. PageDown было самым многообещающим, но я не мог заставить его не производить <p> вокруг вывода.

Есть ли другая альтернатива, которая дает мне больше контроля?

Ответы [ 2 ]

8 голосов
/ 13 января 2012

Существует довольно новый конвертер, который поддерживает прямой доступ к лексеру. Я думаю, что это будет то, что вам нужно: https://github.com/chjj/marked

1 голос
/ 15 июля 2013

Ознакомьтесь с проектом Rho .Вы можете использовать InlineCompiler, что по сути делает то, что вам нужно (при условии, что вам также нужны некоторые базовые экранирования, такие как &lt; и &amp;).

Вы можете использовать Rho внутри помощников Express / Handlebars, например так:

var exphbs = require('express-handlebars');
var rho = require('rho');
var hbs = exphbs.create({
    helpers: {
        mdToHtml: function(options) {
            return new hbs.handlebars.SafeString(
                rho.toInlineHtml(options.fn(this))
            );
        }
    }
});

, а затем прочитайте уценку из JSON внутри шаблонов, например

<div class="col-xs-12">
    <p class="body">
        {{#mdToHtml}}{{message.body}}{{/mdToHtml}}
    </p>
</div>

, где message - это некоторый JSON, который вы предоставили шаблону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...