【发布时间】: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