diff --git a/src/lang/en.ts b/src/lang/en.ts index e177cda7..0e1c7a42 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -735,4 +735,10 @@ export const languageEnglish = { strictJsonSchema: "Strict Schema", extractJson: "Extract JSON", reloadSession: "Newer version of save data is found. reloading the session...", + fixMarkdownNewline: "Fix Markdown Newline", + customQuotes: "Custom Quotes", + leadingSingleQuote: "Leading Single Quote", + leadingDoubleQuote: "Leading Double Quote", + trailingSingleQuote: "Trailing Single Quote", + trailingDoubleQuote: "Trailing Double Quote", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/DisplaySettings.svelte b/src/lib/Setting/Pages/DisplaySettings.svelte index c2541e64..d5bcede5 100644 --- a/src/lib/Setting/Pages/DisplaySettings.svelte +++ b/src/lib/Setting/Pages/DisplaySettings.svelte @@ -315,6 +315,24 @@ +
+ +
+ + {#if $DataBase.customQuotes} + {language.leadingSingleQuote} + + + {language.trailingSingleQuote} + + + {language.leadingDoubleQuote} + + + {language.trailingDoubleQuote} + + {/if} +
diff --git a/src/ts/parser.ts b/src/ts/parser.ts index d3951f57..febacef1 100644 --- a/src/ts/parser.ts +++ b/src/ts/parser.ts @@ -76,15 +76,20 @@ DOMPurify.addHook("uponSanitizeAttribute", (node, data) => { function renderMarkdown(md:markdownit, data:string){ const db = get(DataBase) + let quotes = ['“', '”', '‘', '’'] + if(db?.customQuotes){ + quotes = db.customQuotesData ?? quotes + } + let text = md.render(data.replace(/“|”/g, '"').replace(/‘|’/g, "'")) if(db?.unformatQuotes){ - text = text.replace(/\uE9b0/gu, '“').replace(/\uE9b1/gu, '”') - text = text.replace(/\uE9b2/gu, '‘').replace(/\uE9b3/gu, '’') + text = text.replace(/\uE9b0/gu, quotes[0]).replace(/\uE9b1/gu, quotes[1]) + text = text.replace(/\uE9b2/gu, quotes[2]).replace(/\uE9b3/gu, quotes[3]) } else{ - text = text.replace(/\uE9b0/gu, '“').replace(/\uE9b1/gu, '”') - text = text.replace(/\uE9b2/gu, '‘').replace(/\uE9b3/gu, '’') + text = text.replace(/\uE9b0/gu, '' + quotes[0]).replace(/\uE9b1/gu, quotes[1] + '') + text = text.replace(/\uE9b2/gu, '' + quotes[2]).replace(/\uE9b3/gu, quotes[3] + '') } return text diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 0e0562b4..1702794b 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -440,6 +440,8 @@ export function setDatabase(data:Database){ messages: 0, imports: 0 } + data.customQuotes ??= false + data.customQuotesData ??= ['“','”','‘','’'] changeLanguage(data.language) DataBase.set(data) } @@ -743,6 +745,8 @@ export interface Database{ messages: number imports: number } + customQuotes:boolean + customQuotesData?:[string, string, string, string] } export interface customscript{