fix: Escape characters visible in TOC

closes #1226
This commit is contained in:
Tom Moor 2020-04-06 09:01:03 -07:00
parent c94823dd59
commit b536c682a2
2 changed files with 25 additions and 1 deletions

View File

@ -1,6 +1,7 @@
// @flow
import { filter } from 'lodash';
import slugify from 'shared/utils/slugify';
import unescape from 'shared/utils/unescape';
export default function getHeadingsForText(
text: string
@ -13,7 +14,7 @@ export default function getHeadingsForText(
if (!match) continue;
const level = match[1].length;
const title = match[2];
const title = unescape(match[2]);
let slug = slugify(title);
const existing = filter(output, { slug });

View File

@ -0,0 +1,23 @@
/* eslint-disable flowtype/require-valid-file-annotation */
import getHeadingsForText from './getHeadingsForText';
it('should return an array of document headings', () => {
const response = getHeadingsForText(`
# Header
## Subheading
`);
expect(response.length).toBe(2);
expect(response[0].level).toBe(1);
expect(response[0].title).toBe('Header');
expect(response[1].level).toBe(2);
expect(response[1].title).toBe('Subheading');
});
it('should unescape special characters', () => {
const response = getHeadingsForText(`# Header <\\>`);
expect(response.length).toBe(1);
expect(response[0].title).toBe('Header <>');
});