diff --git a/src/commands/Article.ts b/src/commands/Article.ts index b4aad4dc..d8daeab7 100644 --- a/src/commands/Article.ts +++ b/src/commands/Article.ts @@ -10,7 +10,8 @@ import { SETTING_SLUG_PREFIX, SETTING_SLUG_SUFFIX, SETTING_CONTENT_PLACEHOLDERS, - TelemetryEvent + TelemetryEvent, + SETTING_SLUG_TEMPLATE } from './../constants'; import * as vscode from 'vscode'; import { CustomPlaceholder, Field } from '../models'; @@ -260,6 +261,21 @@ export class Article { return; } + const slugTemplate = Settings.get(SETTING_SLUG_TEMPLATE); + if (slugTemplate) { + if (slugTemplate === '{{title}}') { + const article = ArticleHelper.getFrontMatter(editor); + if (article?.data?.title) { + return article.data.title.toLowerCase().replace(/\s/g, '-'); + } + } else { + const article = ArticleHelper.getFrontMatter(editor); + if (article?.data) { + return SlugHelper.createSlug(article.data.title, article.data, slugTemplate); + } + } + } + const file = parseWinPath(editor.document.fileName); if (!isValidFile(file)) { diff --git a/src/helpers/SlugHelper.ts b/src/helpers/SlugHelper.ts index 6cf4ac36..9eed5c4d 100644 --- a/src/helpers/SlugHelper.ts +++ b/src/helpers/SlugHelper.ts @@ -24,6 +24,9 @@ export class SlugHelper { if (slugTemplate) { if (slugTemplate.includes('{{title}}')) { const regex = new RegExp('{{title}}', 'g'); + slugTemplate = slugTemplate.replace(regex, articleTitle.toLowerCase().replace(/\s/g, '-')); + } else if (slugTemplate.includes('{{seoTitle}}')) { + const regex = new RegExp('{{seoTitle}}', 'g'); slugTemplate = slugTemplate.replace(regex, SlugHelper.slugify(articleTitle)); }