diff --git a/src/slack/format.ts b/src/slack/format.ts index 97fbed7d1e..3b07bd66d0 100644 --- a/src/slack/format.ts +++ b/src/slack/format.ts @@ -94,6 +94,20 @@ type SlackMarkdownOptions = { tableMode?: MarkdownTableMode; }; +function buildSlackRenderOptions() { + return { + styleMarkers: { + bold: { open: "*", close: "*" }, + italic: { open: "_", close: "_" }, + strikethrough: { open: "~", close: "~" }, + code: { open: "`", close: "`" }, + code_block: { open: "```\n", close: "```" }, + }, + escapeText: escapeSlackMrkdwnText, + buildLink: buildSlackLink, + }; +} + export function markdownToSlackMrkdwn( markdown: string, options: SlackMarkdownOptions = {}, @@ -105,17 +119,7 @@ export function markdownToSlackMrkdwn( blockquotePrefix: "> ", tableMode: options.tableMode, }); - return renderMarkdownWithMarkers(ir, { - styleMarkers: { - bold: { open: "*", close: "*" }, - italic: { open: "_", close: "_" }, - strikethrough: { open: "~", close: "~" }, - code: { open: "`", close: "`" }, - code_block: { open: "```\n", close: "```" }, - }, - escapeText: escapeSlackMrkdwnText, - buildLink: buildSlackLink, - }); + return renderMarkdownWithMarkers(ir, buildSlackRenderOptions()); } export function markdownToSlackMrkdwnChunks( @@ -131,17 +135,6 @@ export function markdownToSlackMrkdwnChunks( tableMode: options.tableMode, }); const chunks = chunkMarkdownIR(ir, limit); - return chunks.map((chunk) => - renderMarkdownWithMarkers(chunk, { - styleMarkers: { - bold: { open: "*", close: "*" }, - italic: { open: "_", close: "_" }, - strikethrough: { open: "~", close: "~" }, - code: { open: "`", close: "`" }, - code_block: { open: "```\n", close: "```" }, - }, - escapeText: escapeSlackMrkdwnText, - buildLink: buildSlackLink, - }), - ); + const renderOptions = buildSlackRenderOptions(); + return chunks.map((chunk) => renderMarkdownWithMarkers(chunk, renderOptions)); }