| const RE_HEADING = /^(#\s*)(.+)$/m; | |
| export function inject(text: string): [string | false, string | false] { | |
| const trimmed_text = text.trim(); | |
| const heading_match = trimmed_text.match(RE_HEADING); | |
| if (!heading_match) { | |
| return [false, trimmed_text || false]; | |
| } | |
| const [full_match, , heading_content] = heading_match; | |
| const _heading = heading_content.trim(); | |
| if (trimmed_text === full_match) { | |
| return [_heading, false]; | |
| } | |
| const heading_end_index = | |
| heading_match.index !== undefined | |
| ? heading_match.index + full_match.length | |
| : 0; | |
| const remaining_text = trimmed_text.substring(heading_end_index).trim(); | |
| const _paragraph = remaining_text || false; | |
| return [_heading, _paragraph]; | |
| } | |