Improve automark.ts code to handle more symbols

This commit is contained in:
kwaroran
2024-06-15 02:04:12 +09:00
parent fd6e481e8d
commit 6ec18685b4

View File

@@ -1,5 +1,7 @@
const excludesDat = ['<','>','{','}','[',']','(',')','-',':',';','…','—','','_','*','+','/','\\','|','!','?','.',',',' '] const excludesDat = ['<','>','{','}','[',']','(',')','-',':',';','…','—','','_','*','+','/','\\','|','!','?','.',',',' ']
const symbols = ['<','>','{','}','[',']','(',')','-',':',';','…','—','','_','*','+','/','\\','|','!','?','.',',',' ', '\n', '。', '、', '', '', '', '', '', '', '', '【', '】', '「', '」', '『', '』', '“', '”', '', '', '《', '》', '〈', '〉', '', '', '«', '»', '‟', '„']
const selfClosingTags = [ const selfClosingTags = [
'br','hr','img','input','meta','link','base','area','col','command','embed','keygen','param','source','track','wbr', 'br','hr','img','input','meta','link','base','area','col','command','embed','keygen','param','source','track','wbr',
//self closing tags defined by HTML5 //self closing tags defined by HTML5
@@ -123,6 +125,10 @@ export function risuFormater(dat:string){
//spaces for detection //spaces for detection
line = ' ' + line + ' ' line = ' ' + line + ' '
const isNotCharacter = (t:string) => {
return symbols.includes(t)
}
for(let j=0;j<line.length;j++){ for(let j=0;j<line.length;j++){
switch(line[j]){ switch(line[j]){
case '"': case '"':
@@ -145,7 +151,7 @@ export function risuFormater(dat:string){
case '': case '':
case '':{ case '':{
if(depthChunkType[depth] === "'"){ if(depthChunkType[depth] === "'"){
if(line[j-1] === ' ' || line[j+1] !== ' ' || (line[j-2] === 'i' && line[j-1] === 'n')){ if(isNotCharacter(line[j-1]) || !isNotCharacter(line[j+1]) || (line[j-2] === 'i' && line[j-1] === 'n')){
//this is not a quote //this is not a quote
depthChunk[depth] += line[j] depthChunk[depth] += line[j]
} }
@@ -157,7 +163,7 @@ export function risuFormater(dat:string){
} }
} }
else{ else{
if(line[j-1] !== ' ' || line[j+1] === ' '){ if(!isNotCharacter(line[j-1]) || isNotCharacter(line[j+1])){
//this is not a quote //this is not a quote
depthChunk[depth] += line[j] depthChunk[depth] += line[j]
} }