Add custom quotes

This commit is contained in:
kwaroran
2024-09-23 20:46:58 +09:00
parent 3d2ad3736f
commit 6fdc6878d9
4 changed files with 37 additions and 4 deletions

View File

@@ -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",
}

View File

@@ -315,6 +315,24 @@
<Check bind:check={$DataBase.unformatQuotes} name={language.unformatQuotes}/>
</div>
<div class="flex items-center mt-2">
<Check bind:check={$DataBase.customQuotes} name={language.customQuotes}/>
</div>
{#if $DataBase.customQuotes}
<span class="text-textcolor mt-4">{language.leadingSingleQuote}</span>
<TextInput bind:value={$DataBase.customQuotesData[0]} />
<span class="text-textcolor mt-4">{language.trailingSingleQuote}</span>
<TextInput bind:value={$DataBase.customQuotesData[1]} />
<span class="text-textcolor mt-4">{language.leadingDoubleQuote}</span>
<TextInput bind:value={$DataBase.customQuotesData[2]} />
<span class="text-textcolor mt-4">{language.trailingDoubleQuote}</span>
<TextInput bind:value={$DataBase.customQuotesData[3]} />
{/if}
<div class="flex items-center mt-2">
<Check bind:check={$DataBase.betaMobileGUI} name={language.betaMobileGUI}/>
<Help key="betaMobileGUI"/>

View File

@@ -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, '<mark risu-mark="quote2">').replace(/\uE9b1/gu, '</mark>')
text = text.replace(/\uE9b2/gu, '<mark risu-mark="quote1">').replace(/\uE9b3/gu, '</mark>')
text = text.replace(/\uE9b0/gu, '<mark risu-mark="quote2">' + quotes[0]).replace(/\uE9b1/gu, quotes[1] + '</mark>')
text = text.replace(/\uE9b2/gu, '<mark risu-mark="quote1">' + quotes[2]).replace(/\uE9b3/gu, quotes[3] + '</mark>')
}
return text

View File

@@ -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{