From 681002037665785541f35e110efce26aa3cab787 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sat, 24 Jun 2023 18:18:08 +0900 Subject: [PATCH] [feat] automark plugin --- src/lib/Setting/Pages/PluginSettings.svelte | 2 +- src/ts/plugins/automark.ts | 56 +++++++++++++++++++++ src/ts/{process => plugins}/plugins.ts | 2 +- src/ts/process/request.ts | 2 +- src/ts/storage/database.ts | 2 +- src/ts/storage/globalApi.ts | 2 +- src/ts/translator/translator.ts | 2 +- 7 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/ts/plugins/automark.ts rename src/ts/{process => plugins}/plugins.ts (99%) diff --git a/src/lib/Setting/Pages/PluginSettings.svelte b/src/lib/Setting/Pages/PluginSettings.svelte index 35bec798..095abb01 100644 --- a/src/lib/Setting/Pages/PluginSettings.svelte +++ b/src/lib/Setting/Pages/PluginSettings.svelte @@ -3,7 +3,7 @@ import { language } from "src/lang"; import { alertConfirm } from "src/ts/alert"; import { DataBase } from "src/ts/storage/database"; - import { importPlugin } from "src/ts/process/plugins"; + import { importPlugin } from "src/ts/plugins/plugins";

{language.plugin}

diff --git a/src/ts/plugins/automark.ts b/src/ts/plugins/automark.ts new file mode 100644 index 00000000..9adc42ea --- /dev/null +++ b/src/ts/plugins/automark.ts @@ -0,0 +1,56 @@ +const reg:[RegExp,string][] = [] + + +export function autoMarkPlugin(data:string){ + if(reg.length === 0){ + const pluginRegex = [ + { + "in": "“|”", + "out": "\"", + "flag": "g" + }, + { + "in": "‘|’", + "out": "'", + "flag": "g" + }, + { + "in": "^(?!\\d\\.)([\\wㄱ-ㅎ가-힣'])(?!.*[{<>}])|(?<=^\\[.*\\] *|^\\(.*\\) *)([\\wㄱ-ㅎ가-힣'])(?!.*[{<>}])", + "out": "$1$2", + "flag": "gm" + }, + { + "in": "(?.*)(?", + "flag": "gm" + }, + { + "in": "(?<=.*|^\".*)( +\"[\\S])|(?<=.*|\" +.*)( *\\[)", + "out": "$1$2", + "flag": "gm" + }, + { + "in": "(?<=^\".*|<\\/em>.*)([\\S]\" +|[\\S]\"(?=[,.…ㄱ-ㅎ가-힣]))|(?<=<\\/em>.*)( *\\] *)", + "out": "$1$2", + "flag": "gm" + }, + { + "in": "(?<=.*? +|\\[|\\[.* +|\\(|\\(.* +|\"|\".*? +)(?)('[\\wㄱ-ㅎ가-힣])", + "out": "$1$2", + "flag": "gm" + }, + { + "in": "(?<=')(.*?')(?= +.+?|[ㄱ-ㅎ가-힣?!:;,.…—-])|(?<='.*)(')(?=<\\/em>|\")|(?<=\\(')(?=\\))", + "out": "$1$2", + "flag": "gm" + } + ] + for(const r of pluginRegex){ + reg.push([new RegExp(r.in, r.flag),r.out]) + } + } + for(let i=0;i