load_skin_set.js 19 KB

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