Skip to content

Commit fe807df

Browse files
ioquatixjgm
authored andcommitted
Don't append a newline character when rendering inline nodes.
1 parent 28eebd0 commit fe807df

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

api_test/main.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ static void render_commonmark(test_batch_runner *runner) {
731731
cmark_node *text = cmark_node_new(CMARK_NODE_TEXT);
732732
cmark_node_set_literal(text, "Hi");
733733
commonmark = cmark_render_commonmark(text, CMARK_OPT_DEFAULT, 0);
734-
STR_EQ(runner, commonmark, "Hi\n", "render single inline node");
734+
STR_EQ(runner, commonmark, "Hi", "render single inline node");
735735
free(commonmark);
736736

737737
cmark_node_free(text);

src/render.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,11 @@ char *cmark_render(cmark_node *root, int options, int width,
178178
}
179179
}
180180

181-
// ensure final newline
182-
if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {
183-
cmark_strbuf_putc(renderer.buffer, '\n');
181+
// If the root node is a block type (i.e. not inline), ensure there's a final newline:
182+
if (cmark_node_is_block(root)) {
183+
if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {
184+
cmark_strbuf_putc(renderer.buffer, '\n');
185+
}
184186
}
185187

186188
result = (char *)cmark_strbuf_detach(renderer.buffer);

0 commit comments

Comments
 (0)