1

我在我的应用程序中使用RDiscount将 Markdown 转换为 html。实际上,当我在 Markdown 中添加一些代码时,它会生成代码标记,但我想在代码标记中添加一个类,我该怎么做?我需要用 Nokogiri 或类似的东西解析生成的 HTML 吗?

4

2 回答 2

2

Rdiscount 本身似乎无法做到这一点。解析结果(使用 Nokogiri 或其他)可能会奏效,但可能会很昂贵。如果可以,请切换到另一个库,例如Redcarpet。这个看起来可以很容易地扩展以满足您的需求

于 2012-09-11T09:51:26.520 回答
2

有一件事是肯定的,你不能告诉 Rdiscount 去做,它没有选择。我查看了 Rdiscount 源代码,这就是我最终在文件 generate.c 中的内容:

static void
printcode(Line *t, MMIOT *f)
{
    int blanks;

    Qstring("<pre><code>", f);
    for ( blanks = 0; t ; t = t->next ) {
    if ( S(t->text) > t->dle ) {
        while ( blanks ) {
        Qchar('\n', f);
        --blanks;
        }
        code(f, T(t->text), S(t->text));
        Qchar('\n', f);
    }
    else blanks++;
    }
    Qstring("</code></pre>", f);
}

没有将任何类添加到代码和 pre 的选项。

如果您需要添加一个类来格式化标记,也许您可​​以尝试一种解决方法并在

<div class="myclass">
    <pre><code>

对你来说可行吗?

于 2012-09-11T10:59:54.103 回答