1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 01:36:22 +00:00

FIX #2853 Allow "#" in title

- Only strip the leading # in the title
- Make the finding title logic more straightforward
- Add unit test
This commit is contained in:
Shenghan Chen
2019-02-04 20:07:33 +13:00
parent 885f656d34
commit 0f232b3d86
3 changed files with 9 additions and 3 deletions

View File

@@ -22,7 +22,7 @@ export function strip (input) {
.replace(/\[(.*?)\][\[\(].*?[\]\)]/g, '$1') .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, '$1')
.replace(/>/g, '') .replace(/>/g, '')
.replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '') .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '')
.replace(/^#{1,6}\s*([^#]*)\s*(#{1,6})?/gm, '$1') .replace(/^#{1,6}\s*/gm, '')
.replace(/(`{3,})(.*?)\1/gm, '$2') .replace(/(`{3,})(.*?)\1/gm, '$2')
.replace(/^-{3,}\s*$/g, '') .replace(/^-{3,}\s*$/g, '')
.replace(/`(.+?)`/g, '$1') .replace(/`(.+?)`/g, '$1')

View File

@@ -100,7 +100,12 @@ class MarkdownNoteDetail extends React.Component {
handleUpdateContent () { handleUpdateContent () {
const { note } = this.state const { note } = this.state
note.content = this.refs.content.value note.content = this.refs.content.value
note.title = markdown.strip(striptags(findNoteTitle(note.content, this.props.config.editor.enableFrontMatterTitle, this.props.config.editor.frontMatterTitleField)))
let title = findNoteTitle(note.content, this.props.config.editor.enableFrontMatterTitle, this.props.config.editor.frontMatterTitleField)
title = striptags(title)
title = markdown.strip(title)
note.title = title
this.updateNote(note) this.updateNote(note)
} }

View File

@@ -36,7 +36,8 @@ test(t => {
['`MY_TITLE`', 'MY_TITLE'], ['`MY_TITLE`', 'MY_TITLE'],
['MY_TITLE', 'MY_TITLE'], ['MY_TITLE', 'MY_TITLE'],
// I have no idea for it... // I have no idea for it...
['```test', '`test'] ['```test', '`test'],
['# C# Features', 'C# Features']
] ]
testCases.forEach(testCase => { testCases.forEach(testCase => {