summaryrefslogtreecommitdiff
path: root/src/mfm/parse/elements/code.ts
blob: 63a535fc555d72e561c9d37bd3389df73c377d88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 * Code (block)
 */

import genHtml from '../core/syntax-highlighter';

export type TextElementCode = {
	type: 'code';
	content: string;
	code: string;
	html: string;
};

export default function(text: string) {
	const match = text.match(/^```([\s\S]+?)```/);
	if (!match) return null;
	const code = match[0];
	return {
		type: 'code',
		content: code,
		code: match[1],
		html: genHtml(match[1].trim())
	} as TextElementCode;
}