diff --git a/src/parsers/poetry.ts b/src/parsers/poetry.ts index 0fca859..fe5fae7 100644 --- a/src/parsers/poetry.ts +++ b/src/parsers/poetry.ts @@ -3,6 +3,6 @@ import { encodeAttr, wrap } from '../utils' export const poetry: ParserDef = { name: 'poetry', - regex: /(?:^|\n+)(?:\t| {2,})(?.+)+\n*/, + regex: /(?:^|\n+)(?:\t| {4})(?.+)+\n*/, handler: ({ content }) => `
${wrap('code', encodeAttr(content))}
`, } diff --git a/test/codeQuotes.test.ts b/test/codeQuotes.test.ts index 22b872f..7701c89 100644 --- a/test/codeQuotes.test.ts +++ b/test/codeQuotes.test.ts @@ -30,6 +30,28 @@ describe('code & quotes', () => { ) }) + test('parses tabs as a code poetry block & retains inner tabs', () => { + expect(starkdown('\t\tvar a = 1')).toEqual( + '
\tvar a = 1
' + ) + }) + + test('does not parses two spaces as a code poetry block', () => { + expect(starkdown(' var a = 1')).toEqual('

var a = 1

') + }) + + test('parses four spaces as a code poetry block', () => { + expect(starkdown(' var a = 1')).toEqual( + '
var a = 1
' + ) + }) + + test('parses four spaces as a code poetry block & retains inner spaces', () => { + expect(starkdown(' var a = 1')).toEqual( + '
  var a = 1
' + ) + }) + test('escapes code/quote blocks', () => { expect(starkdown('```\n\n```')).toEqual( '
<foo>
'