diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d00319d..9498cd7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## [5.x.x] - 2021-xx-xx + +### 🐞 Fixes + +- Value check when generating slug from title + ## [5.2.0] - 2021-10-19 ### 🎨 Enhancements diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index ffd9a6b1..8aceac5d 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -251,7 +251,6 @@ export class ArticleHelper { const items = [{ title: "Check file", action: async () => { - console.log(fileName); await EditorHelper.showFile(fileName) } }]; diff --git a/src/helpers/SlugHelper.ts b/src/helpers/SlugHelper.ts index 2dedc629..70ffc0a7 100644 --- a/src/helpers/SlugHelper.ts +++ b/src/helpers/SlugHelper.ts @@ -14,14 +14,18 @@ export class SlugHelper { // Remove punctuation from input string, and split it into words. let cleanTitle = this.removePunctuation(articleTitle); - cleanTitle = cleanTitle.toLowerCase(); - // Split into words - let words = cleanTitle.split(/\s/); - // Removing stop words - words = this.removeStopWords(words); - cleanTitle = words.join("-"); - cleanTitle = this.replaceCharacters(cleanTitle); - return cleanTitle; + if (cleanTitle) { + cleanTitle = cleanTitle.toLowerCase(); + // Split into words + let words = cleanTitle.split(/\s/); + // Removing stop words + words = this.removeStopWords(words); + cleanTitle = words.join("-"); + cleanTitle = this.replaceCharacters(cleanTitle); + return cleanTitle; + } + + return null; } /** @@ -30,6 +34,10 @@ export class SlugHelper { * @param value */ private static removePunctuation(value: string): string { + if (typeof value !== "string") { + return ""; + } + const punctuationless = value?.replace(/[\.,-\/#!$@%\^&\*;:{}=\-_`'"~()+\?<>]/g, " "); // Remove double spaces return punctuationless?.replace(/\s{2,}/g," ");