Skip to content

Commit ebf37d7

Browse files
authored
fix: correct parsing of \n in inline code (#135)
1 parent 7fd74af commit ebf37d7

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

src/core/markdown/MarkdownParser.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ export class MarkdownParser implements Parser {
151151

152152
if (tokenSpec.noCloseToken) {
153153
this.openMark(schemaSpec.create(attrs));
154-
this.addText(withoutTrailingNewline(yfmToken.content));
154+
let {content} = yfmToken;
155+
if (!tokenSpec.code) content = withoutTrailingNewline(content);
156+
this.addText(content);
155157
this.closeMark(schemaSpec);
156158

157159
return;

src/core/types/parser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface ParserToken {
2020
// То есть контент лежит в поле content токена, а не между открывающим и закрывающим токенами.
2121
noCloseToken?: boolean;
2222
ignore?: boolean;
23+
code?: boolean;
2324
/** only for tokens with type=block */
2425
prepareContent?: (content: string) => string;
2526
}

src/extensions/markdown/Code/Code.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,8 @@ describe('Code extension', () => {
3737
it('should parse html - code tag', () => {
3838
parseDOM(schema, '<code>code inline</code>', doc(p(c('code inline'))));
3939
});
40+
41+
it('should parse new line in code', () => {
42+
same('`\\n`', doc(p(c('\\n'))));
43+
});
4044
});

src/extensions/markdown/Code/CodeSpecs/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const CodeSpecs: ExtensionAuto = (builder) => {
2626
escape: false,
2727
},
2828
fromYfm: {
29-
tokenSpec: {name: codeMarkName, type: 'mark', noCloseToken: true},
29+
tokenSpec: {name: codeMarkName, type: 'mark', code: true, noCloseToken: true},
3030
tokenName: 'code_inline',
3131
},
3232
}),

0 commit comments

Comments
 (0)