diff --git a/shared/editor/lib/markdown/serializer.ts b/shared/editor/lib/markdown/serializer.ts index c453e173e..bda4c8651 100644 --- a/shared/editor/lib/markdown/serializer.ts +++ b/shared/editor/lib/markdown/serializer.ts @@ -62,6 +62,7 @@ export class MarkdownSerializer { // node and mark serialization methods (see `toMarkdown`). export class MarkdownSerializerState { inTable = false; + inList = false; inTightList = false; closed = false; delim = ""; diff --git a/shared/editor/nodes/Image.tsx b/shared/editor/nodes/Image.tsx index 99daa9240..d67efc302 100644 --- a/shared/editor/nodes/Image.tsx +++ b/shared/editor/nodes/Image.tsx @@ -297,8 +297,12 @@ export default class Image extends SimpleImage { ); toMarkdown(state: MarkdownSerializerState, node: ProsemirrorNode) { - let markdown = - " ![" + + // Skip the preceding space for images at the start of a list item or Markdown parsers may + // render them as code blocks + let markdown = state.inList ? "" : " "; + + markdown += + "![" + state.esc((node.attrs.alt || "").replace("\n", "") || "", false) + "](" + state.esc(node.attrs.src || "", false);