add options that make it possible to make nazeka look more like yomichan

This commit is contained in:
wareya committed 2019-09-11 19:51:44 -04:00
1 parent e5a45749aa
commit d25a47814c
2 files changed
+136 -10

No files matched your search

+76 -6
View File
@@ -144,12 +144,6 @@ function defaults()
default: "一,二,三,四,五,六,七,八,九,〇",
label: "Ignore json dictionary entries with these spellings"
});
settings.push({
id: "highlight_dict_headers",
kind: "checkbox",
default: false,
label: "Highlight dictionary headers"
});
settings.push({
id: "popup_requires_key",
kind: "combobox",
@@ -262,6 +256,18 @@ function defaults()
default: false,
label: "Fixed width"
});
settings.push({
id: "novalign",
kind: "checkbox",
default: false,
label: "Disable use of `vertical-align: middle;` for reading/etc info"
});
settings.push({
id: "inserthr",
kind: "checkbox",
default: false,
label: "Insert horizontal bar between entries"
});
/*
// currently broken
settings.push({
@@ -310,6 +316,12 @@ function defaults()
default: false,
label: "Disable border"
});
settings.push({
id: "dropshadow",
kind: "checkbox",
default: false,
label: "Enable dropshadow"
});
settings.push({
id: "bgcolor",
kind: "color",
@@ -340,6 +352,26 @@ function defaults()
default: "#D8A888",
label: "Dictionary title color (for when using json dictionaries)"
});
settings.push({
id: "highlight_dict_headers",
kind: "checkbox",
default: false,
label: "Highlight dictionary headers"
});
settings.push({
id: "dropshadowcolor",
kind: "color",
default: "#000000",
label: "Dropshadow color"
});
settings.push({
id: "dropshadowradius",
kind: "number",
min: 1,
max: 50,
default: 10,
label: "Dropshadow radius"
});
settings.push({
id: "font",
kind: "text",
@@ -382,6 +414,44 @@ function defaults()
default: false,
label: "Sticky mode"
});
settings.push({
id: "padding",
kind: "number",
min: 0,
max: 10,
default: 2,
label: "Padding"
});
settings.push({
id: "info_styling",
kind: "checkbox",
default: false,
label: "Yomichan-like definition info tag styling"
});
settings.push({
id: "info_fgcolor",
kind: "color",
default: "#CCCCCC",
label: "Yomichan-like info tag text color"
});
settings.push({
id: "info_bgcolor_pos",
kind: "color",
default: "#284880",
label: "Yomichan-like info tag background for part-of-speech tags"
});
settings.push({
id: "info_bgcolor_num",
kind: "color",
default: "#484848",
label: "Yomichan-like info tag background color for sense numbers"
});
settings.push({
id: "info_bgcolor_etc",
kind: "color",
default: "#305028",
label: "Yomichan-like info tag background color for etc tags"
});
// reader
settings.push({
+60 -4
View File
@@ -67,7 +67,18 @@ live_mining: false,
use_selection: false,
only_selection: false,
audio_force_https: false,
highlight_dict_headers: false
highlight_dict_headers: false,
dropshadow: false,
dropshadowradius: 10,
dropshadowcolor: "#000000",
padding: 2,
novalign: 2,
inserthr: false,
info_styling: false,
info_fgcolor: "#CCCCCC",
info_bgcolor_pos: "#606060",
info_bgcolor_num: "#406080",
info_bgcolor_etc: "#608040"
};
let platform = "win";
@@ -208,7 +219,7 @@ function display_div(middle, x, y)
font += ",";
middle.style = `background-color: ${settings.bgcolor}; border-radius: 2.5px; border: 1px solid ${settings.bgcolor};`;
let border_text = (settings.disableborder)?("border: 0px solid transparent;"):(`border: 1px solid ${settings.fgcolor}`);
middle.firstChild.style = `${border_text}; border-radius: 2px; padding: 2px; background-color: ${settings.bgcolor}; color: ${settings.fgcolor}; font-family: ${font} Arial, sans-serif; text-align: left; font-size: ${settings.definition_fontsize}px;`;
middle.firstChild.style = `${border_text}; border-radius: 2px; padding: ${settings.padding}px; background-color: ${settings.bgcolor}; color: ${settings.fgcolor}; font-family: ${font} Arial, sans-serif; text-align: left; font-size: ${settings.definition_fontsize}px;`;
let find_root = document.defaultView;
let newx = x;
@@ -272,6 +283,15 @@ function display_div(middle, x, y)
styletext += `border-radius: 3px; background-color: ${settings.bgcolor}; z-index: 1000000000000000000000;`;
styletext += "writing-mode: horizontal-tb; line-height: initial; white-space: initial;";
if(settings.dropshadow)
{
let v = parseInt(settings.dropshadowcolor.substring(1), 16);
let r = Math.floor(v / 256 / 256);
let g = Math.floor(v / 256) % 256;
let b = Math.floor(v) % 256;
let rgba = "rgba(" + r + "," + g + "," + b + ",0.5)";
styletext += `box-shadow: 0 0 ${settings.dropshadowradius}px ${rgba};`
}
let other = mydoc.body.getElementsByClassName(div_class);
let outer = undefined;
@@ -426,7 +446,7 @@ function elementize_jmdict_defs(goodsenses)
{
let sense = goodsenses[j];
if(sense.pos == lastpos)
if(sense.pos + "" == lastpos) // removing this + "" breaks repetitive sense hiding in chrome
sense.pos = undefined;
else
lastpos = sense.pos;
@@ -581,10 +601,25 @@ function get_style()
font += ",";
if(morefont != "")
font += morefont + ",";
let valign = ".nazeka_word * {vertical-align: middle}";
if(settings.novalign)
valign = "";
let infostyle = "";
if(settings.info_styling)
{
infostyle =
`.nazeka_pos, .nazeka_num, .nazeka_misc {font-size:80%; border-radius:3px; padding: 1px 3px 2px; color:${settings.info_fgcolor}; display:inline-block; position: relative; bottom: 1px; margin-bottom: -5px;}
.nazeka_pos {background-color:${settings.info_bgcolor_pos};}
.nazeka_num {background-color:${settings.info_bgcolor_num};}
.nazeka_misc {background-color:${settings.info_bgcolor_etc};}
`;
}
style.textContent =
`.nazeka_main_keb{font-size:${settings.dict_item_fontsize}px;white-space:nowrap;font-family: ${font}IPAGothic,TakaoGothic,Noto Sans CJK JP Regular,Meiryo,sans-serif;color:${settings.hlcolor}}
.nazeka_main_reb{font-size:${settings.dict_item_fontsize}px;white-space:nowrap;font-family: ${font}IPAGothic,TakaoGothic,Noto Sans CJK JP Regular,Meiryo,sans-serif;color:${settings.hlcolor}}
.nazeka_word * {vertical-align: middle}
${valign}
${infostyle}
.${div_class} hr{margin: 0.5em; padding: 0; border: none; border-top: 1px solid ${settings.fgcolor}; opacity: 0.25}
.nazeka_sub_keb{font-size:${settings.reading_fontsize}px;white-space:nowrap;font-family: ${font}IPAGothic,TakaoGothic,Noto Sans CJK JP Regular,Meiryo,sans-serif}
.nazeka_sub_reb{font-size:${settings.reading_fontsize}px;white-space:nowrap;color:${settings.hlcolor2}}
.nazeka_original{float: right; margin-right: 2px; margin-left:4px; opacity:0.7;}
@@ -1126,9 +1161,17 @@ function build_div_compound (results, moreText, index)
for(let lookup of results)
{
if(settings.corner == 2 || settings.corner == 3)
{
if(!first && settings.inserthr)
middle.firstChild.insertBefore(document.createElement("hr"), middle.firstChild.children[0]);
middle.firstChild.insertBefore(build_div_inner(lookup.text, lookup.result, moreText, index, first), middle.firstChild.children[0]);
}
else
{
if(!first && settings.inserthr)
middle.firstChild.appendChild(document.createElement("hr"));
middle.firstChild.appendChild(build_div_inner(lookup.text, lookup.result, moreText, index, first));
}
first = false;
}
return middle;
@@ -1341,6 +1384,19 @@ async function settings_init()
getvar("audio_force_https");
getvar("highlight_dict_headers");
getvar("dropshadow");
getvar("dropshadowradius");
getvar("dropshadowcolor");
getvar("padding");
getvar("novalign");
getvar("inserthr");
getvar("info_styling");
getvar("info_fgcolor");
getvar("info_bgcolor_pos");
getvar("info_bgcolor_num");
getvar("info_bgcolor_etc");
if(!settings.enabled && exists_div())
delete_div();
if(!settings.enabled)