[MFM] Better inline code parse
This commit is contained in:
parent
b7b36973f7
commit
b2f8003602
2 changed files with 22 additions and 6 deletions
|
@ -119,7 +119,7 @@ const mfm = P.createLanguage({
|
||||||
|
|
||||||
//#region Inline code
|
//#region Inline code
|
||||||
inlineCode: r =>
|
inlineCode: r =>
|
||||||
P.regexp(/`(.+?)`/, 1)
|
P.regexp(/`([^´\n]+?)`/, 1)
|
||||||
.map(x => makeNode('inlineCode', { code: x })),
|
.map(x => makeNode('inlineCode', { code: x })),
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|
18
test/mfm.ts
18
test/mfm.ts
|
@ -469,13 +469,29 @@ describe('Text', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('inline code', () => {
|
describe('inline code', () => {
|
||||||
|
it('simple', () => {
|
||||||
const tokens = analyze('`var x = "Strawberry Pasta";`');
|
const tokens = analyze('`var x = "Strawberry Pasta";`');
|
||||||
assert.deepEqual([
|
assert.deepEqual([
|
||||||
node('inlineCode', { code: 'var x = "Strawberry Pasta";' })
|
node('inlineCode', { code: 'var x = "Strawberry Pasta";' })
|
||||||
], tokens);
|
], tokens);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('disallow line break', () => {
|
||||||
|
const tokens = analyze('`foo\nbar`');
|
||||||
|
assert.deepEqual([
|
||||||
|
text('`foo\nbar`')
|
||||||
|
], tokens);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('disallow ´', () => {
|
||||||
|
const tokens = analyze('`foo´bar`');
|
||||||
|
assert.deepEqual([
|
||||||
|
text('`foo´bar`')
|
||||||
|
], tokens);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('math', () => {
|
it('math', () => {
|
||||||
const fomula = 'x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}';
|
const fomula = 'x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}';
|
||||||
const text = `\\(${fomula}\\)`;
|
const text = `\\(${fomula}\\)`;
|
||||||
|
|
Loading…
Reference in a new issue