load_skin_set.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. function main_css_regex_data(data) {
  2. return new RegExp('(?:^|; )' + data + '=([^;]*)');
  3. }
  4. function main_css_get_post() {
  5. var check = document.getElementById('main_css_strike');
  6. if(check.value === 'normal') {
  7. document.cookie = 'main_css_del_strike=0;';
  8. } else if(check.value === 'change') {
  9. document.cookie = 'main_css_del_strike=1;';
  10. } else {
  11. document.cookie = 'main_css_del_strike=2;';
  12. }
  13. check = document.getElementById('main_css_bold');
  14. if(check.value === 'normal') {
  15. document.cookie = 'main_css_del_bold=0;';
  16. } else if(check.value === 'change') {
  17. document.cookie = 'main_css_del_bold=1;';
  18. } else {
  19. document.cookie = 'main_css_del_bold=2;';
  20. }
  21. check = document.getElementById('main_css_include');
  22. if(check.checked) {
  23. document.cookie = 'main_css_include_link=1;';
  24. } else {
  25. document.cookie = 'main_css_include_link=0;';
  26. }
  27. check = document.getElementById('main_css_category');
  28. if(check.value === 'bottom') {
  29. document.cookie = 'main_css_category_set=0;';
  30. } else {
  31. document.cookie = 'main_css_category_set=1;';
  32. }
  33. check = document.getElementById('main_css_footnote');
  34. if(check.value === 'spread') {
  35. document.cookie = 'main_css_footnote_set=1;';
  36. } else {
  37. document.cookie = 'main_css_footnote_set=0;';
  38. }
  39. check = document.getElementById('main_css_image');
  40. if(check.value === 'new_click') {
  41. document.cookie = 'main_css_image_set=2;';
  42. } else if(check.value === 'click') {
  43. document.cookie = 'main_css_image_set=1;';
  44. } else {
  45. document.cookie = 'main_css_image_set=0;';
  46. }
  47. check = document.getElementById('main_css_image_paste');
  48. if(check.checked) {
  49. document.cookie = 'main_css_image_paste=1;';
  50. } else {
  51. document.cookie = 'main_css_image_paste=0;';
  52. }
  53. check = document.getElementById('main_css_toc');
  54. if(check.value === 'on') {
  55. document.cookie = 'main_css_toc_set=2;';
  56. } else if(check.value === 'off') {
  57. document.cookie = 'main_css_toc_set=1;';
  58. } else {
  59. document.cookie = 'main_css_toc_set=0;';
  60. }
  61. check = document.getElementById('main_css_font_size');
  62. if(check.value.match(/^[0-9]+$/)) {
  63. document.cookie = 'main_css_font_size=' + check.value + ';';
  64. } else {
  65. document.cookie = 'main_css_font_size=;';
  66. }
  67. check = document.getElementById('main_css_monaco');
  68. if(check.checked) {
  69. document.cookie = 'main_css_monaco=1;';
  70. } else {
  71. document.cookie = 'main_css_monaco=0;';
  72. }
  73. check = document.getElementById('main_css_exter_link');
  74. if(check.value === 'self') {
  75. document.cookie = 'main_css_exter_link=1;';
  76. } else {
  77. document.cookie = 'main_css_exter_link=0;';
  78. }
  79. check = document.getElementById('main_css_link_delimiter');
  80. if(check.checked) {
  81. document.cookie = 'main_css_link_delimiter=1;';
  82. } else {
  83. document.cookie = 'main_css_link_delimiter=0;';
  84. }
  85. history.go(0);
  86. }
  87. function main_css_skin_load() {
  88. var head_data = document.querySelector('head');
  89. if(document.cookie.match(main_css_regex_data('main_css_del_strike'))) {
  90. if(document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === '1') {
  91. head_data.innerHTML += '<style>s { text-decoration: none; } s:hover { background-color: transparent; }</style>';
  92. } else if(document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === '2') {
  93. head_data.innerHTML += '<style>s { display: none; }</style>';
  94. }
  95. }
  96. if(document.cookie.match(main_css_regex_data('main_css_del_bold'))) {
  97. if(document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === '1') {
  98. head_data.innerHTML += '<style>b { font-weight: normal; }</style>';
  99. } else if(document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === '2') {
  100. head_data.innerHTML += '<style>b { display: none; }</style>';
  101. }
  102. }
  103. if(
  104. document.cookie.match(main_css_regex_data('main_css_include_link')) &&
  105. document.cookie.match(main_css_regex_data('main_css_include_link'))[1] === '1'
  106. ) {
  107. head_data.innerHTML += '<style>#include_link { display: inline; }</style>';
  108. }
  109. if(
  110. document.cookie.match(main_css_regex_data('main_css_category_set')) &&
  111. document.cookie.match(main_css_regex_data('main_css_category_set'))[1] === '1'
  112. ) {
  113. var get_category = document.getElementById('cate_all');
  114. if(get_category) {
  115. var backup_category = get_category.innerHTML;
  116. var in_data = document.getElementById('render_content').innerHTML;
  117. get_category.innerHTML = '';
  118. document.getElementById('render_content').innerHTML = backup_category + in_data;
  119. head_data.innerHTML += '<style>#cate { margin-top: 0px; margin-bottom: 20px; }</style>';
  120. }
  121. }
  122. if(document.cookie.match(main_css_regex_data('main_css_toc_set'))) {
  123. if(document.cookie.match(main_css_regex_data('main_css_toc_set'))[1] === '2') {
  124. head_data.innerHTML += '<style>#auto_toc { display: none; }</style>';
  125. } else if(document.cookie.match(main_css_regex_data('main_css_toc_set'))[1] === '1') {
  126. head_data.innerHTML += '<style>#toc { display: none; }</style>';
  127. }
  128. }
  129. if(
  130. document.cookie.match(main_css_regex_data('main_css_font_size')) &&
  131. document.cookie.match(main_css_regex_data('main_css_font_size'))[1] !== ''
  132. ) {
  133. head_data.innerHTML += '<style>body, input, textarea { font-size: ' + document.cookie.match(main_css_regex_data('main_css_font_size'))[1] + 'px; }</style>';
  134. }
  135. if(
  136. document.cookie.match(main_css_regex_data('main_css_darkmode')) &&
  137. document.cookie.match(main_css_regex_data('main_css_darkmode'))[1] === '1'
  138. ) {
  139. head_data.innerHTML += '' +
  140. '<link rel="stylesheet" href="/views/main_css/css/sub/dark.css?ver=5">' +
  141. '';
  142. }
  143. if(
  144. document.cookie.match(main_css_regex_data('main_css_link_delimiter')) &&
  145. document.cookie.match(main_css_regex_data('main_css_link_delimiter'))[1] === '1'
  146. ) {
  147. head_data.innerHTML += '<style>#real_normal_link::before, #not_thing::before, #inside::before { content: \'🅸\'; font-weight: lighter; background: transparent; }</style>';
  148. }
  149. }
  150. function main_css_load_lang(name) {
  151. var set_language = {
  152. "en-US" : {
  153. "default" : "Default",
  154. "change_to_normal" : "Change to normal text",
  155. "delete" : "Delete",
  156. "include_link" : "Using include link",
  157. "save" : "Save",
  158. "strike" : "Strike",
  159. "bold" : "Bold",
  160. "other" : "Other",
  161. "where_category" : "Set category location",
  162. "bottom" : "Bottom",
  163. "top" : "Top",
  164. "set_footnote" : "Set footnote",
  165. "renderer" : "Renderer",
  166. "spread" : "Spread",
  167. "set_image" : "Set image",
  168. "set_toc" : "Set TOC",
  169. "click_load" : "Load on click",
  170. "in_content" : "Only when TOC is in the document",
  171. "all_off" : "Always off",
  172. "set_font_size" : "Set font size",
  173. "change_to_link" : "Change to link",
  174. "font_size" : "font size",
  175. "editor" : "Editor",
  176. "main" : "Main",
  177. "clipboard_upload" : "Clipboard upload",
  178. "only_korean" : "Supported in korean only",
  179. "except_ie" : "Not supported for Internet Explorer",
  180. "use_monaco" : "Use monaco editor",
  181. "self_tab" : "Current tab",
  182. "exter_link_open_method" : "External link",
  183. "link_delimiter" : "Add link delimiter"
  184. }, "ko-KR" : {
  185. "default" : "기본값",
  186. "change_to_normal" : "일반 텍스트로 변경",
  187. "delete" : "삭제",
  188. "include_link" : "틀 링크 사용",
  189. "save" : "저장",
  190. "strike" : "취소선",
  191. "bold" : "볼드체",
  192. "other" : "기타",
  193. "where_category" : "분류 위치 설정",
  194. "bottom" : "아래",
  195. "top" : "위",
  196. "set_footnote" : "각주 설정",
  197. "renderer" : "렌더러",
  198. "spread" : "펼치기",
  199. "set_image" : "이미지 설정",
  200. "set_toc" : "목차 설정",
  201. "click_load" : "클릭시 불러오기",
  202. "in_content" : "문서 안에 있을 때만",
  203. "all_off" : "항상 끔",
  204. "set_font_size" : "글자 크기 설정",
  205. "change_to_link" : "링크로 변경",
  206. "font_size" : "글자 크기",
  207. "editor" : "편집기",
  208. "main" : "메인",
  209. "clipboard_upload" : "클립보드 파일 올리기",
  210. "only_korean" : "한국어로만 지원됨",
  211. "except_ie" : "인터넷 익스플로러에선 지원되지 않음",
  212. "use_monaco" : "모나코 에디터 사용",
  213. "self_tab" : "현재 탭",
  214. "exter_link_open_method" : "외부 링크",
  215. "link_delimiter" : "링크 구분자 추가"
  216. }
  217. }
  218. var server_language = document.cookie.match(main_css_regex_data('language'))[1];
  219. var user_language = document.cookie.match(main_css_regex_data('user_language'))[1];
  220. if(user_language in set_language) {
  221. language = user_language;
  222. } else {
  223. if(server_language in set_language) {
  224. language = server_language;
  225. } else {
  226. language = 'en-US';
  227. }
  228. }
  229. if(name in set_language[language]) {
  230. return set_language[language][name];
  231. } else {
  232. return name + ' (' + language + ')';
  233. }
  234. }
  235. function main_css_skin_set() {
  236. var set_data = {};
  237. var strike_list = [
  238. ['0', 'normal', main_css_load_lang('default')],
  239. ['1', 'change', main_css_load_lang('change_to_normal')],
  240. ['2', 'delete', main_css_load_lang('delete')]
  241. ];
  242. set_data["strike"] = '';
  243. var i = 0;
  244. while(strike_list[i]) {
  245. if(
  246. document.cookie.match(main_css_regex_data('main_css_del_strike')) &&
  247. document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === strike_list[i][0]
  248. ) {
  249. set_data["strike"] = '<option value="' + strike_list[i][1] + '">' + strike_list[i][2] + '</option>' + set_data["strike"];
  250. } else {
  251. set_data["strike"] += '<option value="' + strike_list[i][1] + '">' + strike_list[i][2] + '</option>';
  252. }
  253. i += 1;
  254. }
  255. var bold_list = [
  256. ['0', 'normal', main_css_load_lang('default')],
  257. ['1', 'change', main_css_load_lang('change_to_normal')],
  258. ['2', 'delete', main_css_load_lang('delete')]
  259. ];
  260. set_data["bold"] = '';
  261. i = 0;
  262. while(bold_list[i]) {
  263. if(
  264. document.cookie.match(main_css_regex_data('main_css_del_bold')) &&
  265. document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === bold_list[i][0]
  266. ) {
  267. set_data["bold"] = '<option value="' + bold_list[i][1] + '">' + bold_list[i][2] + '</option>' + set_data["bold"];
  268. } else {
  269. set_data["bold"] += '<option value="' + bold_list[i][1] + '">' + bold_list[i][2] + '</option>';
  270. }
  271. i += 1;
  272. }
  273. if(
  274. document.cookie.match(main_css_regex_data('main_css_include_link')) &&
  275. document.cookie.match(main_css_regex_data('main_css_include_link'))[1] === '1'
  276. ) {
  277. set_data["include"] = "checked";
  278. } else {
  279. set_data["include"] = "";
  280. }
  281. if(
  282. document.cookie.match(main_css_regex_data('main_css_image_paste')) &&
  283. document.cookie.match(main_css_regex_data('main_css_image_paste'))[1] === '1'
  284. ) {
  285. set_data["image_paste"] = "checked";
  286. } else {
  287. set_data["image_paste"] = "";
  288. }
  289. var category_list = [
  290. ['0', 'bottom', main_css_load_lang('bottom')],
  291. ['1', 'top', main_css_load_lang('top')],
  292. ];
  293. set_data["category"] = '';
  294. i = 0;
  295. while(category_list[i]) {
  296. if(
  297. document.cookie.match(main_css_regex_data('main_css_category_set')) &&
  298. document.cookie.match(main_css_regex_data('main_css_category_set'))[1] === category_list[i][0]
  299. ) {
  300. set_data["category"] = '<option value="' + category_list[i][1] + '">' + category_list[i][2] + '</option>' + set_data["category"];
  301. } else {
  302. set_data["category"] += '<option value="' + category_list[i][1] + '">' + category_list[i][2] + '</option>';
  303. }
  304. i += 1;
  305. }
  306. var footnote_list = [
  307. ['0', 'normal', main_css_load_lang('default')],
  308. ['1', 'spread', main_css_load_lang('spread')]
  309. ];
  310. set_data["footnote"] = '';
  311. i = 0;
  312. while(footnote_list[i]) {
  313. if(
  314. document.cookie.match(main_css_regex_data('main_css_footnote_set')) &&
  315. document.cookie.match(main_css_regex_data('main_css_footnote_set'))[1] === footnote_list[i][0]
  316. ) {
  317. set_data["footnote"] = '<option value="' + footnote_list[i][1] + '">' + footnote_list[i][2] + '</option>' + set_data["footnote"];
  318. } else {
  319. set_data["footnote"] += '<option value="' + footnote_list[i][1] + '">' + footnote_list[i][2] + '</option>';
  320. }
  321. i += 1;
  322. }
  323. var image_list = [
  324. ['0', 'normal', main_css_load_lang('default')],
  325. ['1', 'click', main_css_load_lang('change_to_link')],
  326. ['2', 'new_click', main_css_load_lang('click_load')]
  327. ];
  328. set_data["image"] = '';
  329. i = 0;
  330. while(image_list[i]) {
  331. if(
  332. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  333. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === image_list[i][0]
  334. ) {
  335. set_data["image"] = '<option value="' + image_list[i][1] + '">' + image_list[i][2] + '</option>' + set_data["image"];
  336. } else {
  337. set_data["image"] += '<option value="' + image_list[i][1] + '">' + image_list[i][2] + '</option>';
  338. }
  339. i += 1;
  340. }
  341. var toc_list = [
  342. ['0', 'normal', main_css_load_lang('default')],
  343. ['1', 'off', main_css_load_lang('all_off')],
  344. ['2', 'on', main_css_load_lang('in_content')]
  345. ];
  346. set_data["toc"] = '';
  347. i = 0;
  348. while(toc_list[i]) {
  349. if(
  350. document.cookie.match(main_css_regex_data('main_css_toc_set')) &&
  351. document.cookie.match(main_css_regex_data('main_css_toc_set'))[1] === toc_list[i][0]
  352. ) {
  353. set_data["toc"] = '<option value="' + toc_list[i][1] + '">' + toc_list[i][2] + '</option>' + set_data["toc"];
  354. } else {
  355. set_data["toc"] += '<option value="' + toc_list[i][1] + '">' + toc_list[i][2] + '</option>';
  356. }
  357. i += 1;
  358. }
  359. if(
  360. document.cookie.match(main_css_regex_data('main_css_monaco')) &&
  361. document.cookie.match(main_css_regex_data('main_css_monaco'))[1] === '1'
  362. ) {
  363. set_data["monaco"] = "checked";
  364. } else {
  365. set_data["monaco"] = "";
  366. }
  367. if(document.cookie.match(main_css_regex_data('main_css_font_size'))) {
  368. set_data["font_size"] = document.cookie.match(main_css_regex_data('main_css_font_size'))[1];
  369. } else {
  370. set_data["font_size"] = '';
  371. }
  372. let exter_link_list = [
  373. ['0', 'blank', main_css_load_lang('default')],
  374. ['1', 'self', main_css_load_lang('self_tab')]
  375. ];
  376. set_data["exter_link"] = '';
  377. for(let i = 0; exter_link_list[i]; i++) {
  378. if(
  379. document.cookie.match(main_css_regex_data('main_css_exter_link')) &&
  380. document.cookie.match(main_css_regex_data('main_css_exter_link'))[1] === exter_link_list[i][0]
  381. ) {
  382. set_data["exter_link"] = '<option value="' + exter_link_list[i][1] + '">' + exter_link_list[i][2] + '</option>' + set_data["exter_link"];
  383. } else {
  384. set_data["exter_link"] += '<option value="' + exter_link_list[i][1] + '">' + exter_link_list[i][2] + '</option>';
  385. }
  386. }
  387. if(
  388. document.cookie.match(main_css_regex_data('main_css_link_delimiter')) &&
  389. document.cookie.match(main_css_regex_data('main_css_link_delimiter'))[1] === '1'
  390. ) {
  391. set_data["link_delimiter"] = "checked";
  392. } else {
  393. set_data["link_delimiter"] = "";
  394. }
  395. document.getElementById("main_skin_set").innerHTML = ' \
  396. <h2>1. ' + main_css_load_lang('renderer') + '</h2> \
  397. <h3>1.1. ' + main_css_load_lang('strike') + '</h3> \
  398. <select id="main_css_strike"> \
  399. ' + set_data["strike"] + ' \
  400. </select> \
  401. <h3>1.2. ' + main_css_load_lang('bold') + '</h3> \
  402. <select id="main_css_bold"> \
  403. ' + set_data["bold"] + ' \
  404. </select> \
  405. <h3>1.3. ' + main_css_load_lang('where_category') + '</h3> \
  406. <select id="main_css_category"> \
  407. ' + set_data["category"] + ' \
  408. </select> \
  409. <h3>1.4. ' + main_css_load_lang('set_footnote') + '</h3> \
  410. <select id="main_css_footnote"> \
  411. ' + set_data["footnote"] + ' \
  412. </select> \
  413. <h3>1.5. ' + main_css_load_lang('set_image') + '</h3> \
  414. <select id="main_css_image"> \
  415. ' + set_data["image"] + ' \
  416. </select> \
  417. <h3>1.6. ' + main_css_load_lang('other') + '</h3> \
  418. <input ' + set_data["include"] + ' type="checkbox" id="main_css_include" value="include"> ' + main_css_load_lang('include_link') + ' \
  419. <hr class="main_hr"> \
  420. <input ' + set_data["link_delimiter"] + ' type="checkbox" id="main_css_link_delimiter" value="link_delimiter"> ' + main_css_load_lang('link_delimiter') + '<sup>(1)</sup> \
  421. <h3>1.7. ' + main_css_load_lang('set_toc') + '</h3> \
  422. <select id="main_css_toc"> \
  423. ' + set_data["toc"] + ' \
  424. </select> \
  425. <h3>1.8. ' + main_css_load_lang('set_font_size') + '</h3> \
  426. <input id="main_css_font_size" placeholder="' + main_css_load_lang('font_size') + ' (EX : 11)" value="' + set_data["font_size"] + '"> \
  427. <h3>1.9. ' + main_css_load_lang('exter_link_open_method') + '</h3> \
  428. <select id="main_css_exter_link"> \
  429. ' + set_data["exter_link"] + ' \
  430. </select> \
  431. <h2>2. ' + main_css_load_lang('editor') + '</h2> \
  432. <h3>2.1. ' + main_css_load_lang('main') + '</h3> \
  433. <input ' + set_data["monaco"] + ' type="checkbox" id="main_css_monaco" value="monaco"> ' + main_css_load_lang('use_monaco') + '<sup>(1)</sup> \
  434. <hr class="main_hr"> \
  435. <input ' + set_data["image_paste"] + ' type="checkbox" id="main_css_image_paste" value="image_paste"> ' +
  436. main_css_load_lang('clipboard_upload') + '<sup>(ko-KR)</sup><sup>(1)</sup> \
  437. <hr class="main_hr"> \
  438. <button onclick="main_css_get_post();">' + main_css_load_lang('save') + '</button> \
  439. <hr class="main_hr"> \
  440. <ul id="footnote_data"> \
  441. <li><a id="note_1_end" href="#note_1">(1)</a> ' + main_css_load_lang('except_ie') + '</li> \
  442. <li><a href="#note_1_1">(1.1)</a></li> \
  443. <li><a id="note_2_end" href="#note_2">(ko-KR)</a> ' + main_css_load_lang('only_korean') + '</li> \
  444. </ul> \
  445. ';
  446. simple_render('main_skin_set');
  447. }
  448. document.addEventListener("DOMContentLoaded", main_css_skin_load);