【问题标题】:How do I make Sundown render blockquotes (lines that start with ">")如何使 Sundown 渲染块引用(以“>”开头的行)
【发布时间】:2015-07-06 17:29:15
【问题描述】:

无论出于何种原因,Sundown(更具体地说是 Snudown,它的一个分支)似乎没有输出如下行:

> some text

作为 HTML 中的块引用,就像它应该的那样,因为它是有效的 Markdown。我知道 Sundown 中有允许某些功能的扩展,但我找不到引用。

这是我正在使用的代码(它在 Objective-C 中,但大部分是 C):

struct sd_callbacks callbacks;
struct html_renderopt options;
const char *rawMarkdown = [markdownString cStringUsingEncoding:NSUTF8StringEncoding];
struct buf *inputBuffer = bufnew(strlen(rawMarkdown));
bufputs(inputBuffer, rawMarkdown);

// Parse the Markdown
struct buf *outputBuffer = bufnew(64);
sdhtml_renderer(&callbacks, &options, 0);
unsigned int extensions = MKDEXT_NO_INTRA_EMPHASIS|MKDEXT_TABLES|MKDEXT_FENCED_CODE|MKDEXT_AUTOLINK|MKDEXT_STRIKETHROUGH|MKDEXT_SUPERSCRIPT|MKDEXT_LAX_SPACING;
struct sd_markdown *markdown = sd_markdown_new(extensions, 16, 4, &callbacks, &options);
sd_markdown_render(outputBuffer, inputBuffer->data, inputBuffer->size, markdown);
sd_markdown_free(markdown);

NSString *HTML = [NSString stringWithCString:bufcstr(outputBuffer) encoding:NSUTF8StringEncoding];

bufrelease(inputBuffer);
bufrelease(outputBuffer);

NSLog(@"%@", HTML);

如果示例项目有助于说明问题,请直接说出来。

【问题讨论】:

  • 在 Sundown 中,Blockquotes 默认是打开的(我不确定你是否可以禁用它们)。您能否发布您正在使用的整个文档(或至少一个大的摘录)?我确实找到了这个bug report,上面写着 Sundown 需要在块引号之前加上一个空行。您是否考虑过使用不同的 Markdown 库?日落是basically abandoned
  • @Jordan 不幸的是,我正在使用 Reddit 使用的 Sundown 的一个分支,称为 Snudown。我将发布我正在使用的代码块,它在 Objective-C 中,但主要由 C 代码组成。我基本上是从 Markdown 中获取 HTML,然后将其打印出来,但它仍然包含 > 字符并且没​​有应用块引号。
  • 我不知道 sundown 是什么,但出于 html 安全或清理原因,它可能会剥离 ">" 字符。是否可以尝试用“>”替换内容中的“>”字符实体?
  • 一些引用的文本及其周围环境会有所帮助。您是否确定要引用的每一行都以 > 开头,后跟一个空格?
  • 根据@Jordan 提到的仍然打开的github bug,您是否尝试在块引用之前添加一个空格?

标签: html objective-c c markdown sundown


【解决方案1】:

在HTML中,''不能直接使用,

使用 html 实体:

> 显示 >

< 显示

点击编辑查看,使用实体代码代替'>'和'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多