diff --git a/src/views/post/components/PostSettingDrawer.vue b/src/views/post/components/PostSettingDrawer.vue index fbcfc7951..023ebb609 100644 --- a/src/views/post/components/PostSettingDrawer.vue +++ b/src/views/post/components/PostSettingDrawer.vue @@ -602,9 +602,21 @@ export default { }) }, handleSetPinyinSlug() { - if (this.selectedPost.title && !this.selectedPost.id) { + if (this.selectedPost.title && this.selectedPost.title !== '' && !this.selectedPost.id) { if (pinyin.isSupported()) { - this.$set(this.selectedPost, 'slug', pinyin.convertToPinyin(this.selectedPost.title, '-', true)) + let result = '' + const tokens = pinyin.parse(this.selectedPost.title) + let lastToken + tokens.forEach((token, i) => { + if (token.type === 2) { + const target = token.target ? token.target.toLowerCase() : '' + result += result && !/\n|\s/.test(lastToken.target) ? '-' + target : target + } else { + result += (lastToken && lastToken.type === 2 ? '-' : '') + token.target + } + lastToken = token + }) + this.$set(this.selectedPost, 'slug', result) } } }, diff --git a/src/views/sheet/components/SheetSettingDrawer.vue b/src/views/sheet/components/SheetSettingDrawer.vue index bdfb2d219..1f3f4773a 100644 --- a/src/views/sheet/components/SheetSettingDrawer.vue +++ b/src/views/sheet/components/SheetSettingDrawer.vue @@ -444,7 +444,19 @@ export default { handleSetPinyinSlug() { if (this.selectedSheet.title && !this.selectedSheet.id) { if (pinyin.isSupported()) { - this.$set(this.selectedSheet, 'slug', pinyin.convertToPinyin(this.selectedSheet.title, '-', true)) + let result = '' + const tokens = pinyin.parse(this.selectedSheet.title) + let lastToken + tokens.forEach((token, i) => { + if (token.type === 2) { + const target = token.target ? token.target.toLowerCase() : '' + result += result && !/\n|\s/.test(lastToken.target) ? '-' + target : target + } else { + result += (lastToken && lastToken.type === 2 ? '-' : '') + token.target + } + lastToken = token + }) + this.$set(this.selectedSheet, 'slug', result) } } },