render_namumark.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. function get_link_state(data, i = 0) {
  2. var get_class = document.getElementsByClassName(data + 'link_finder')[i];
  3. if(get_class) {
  4. if(get_class.href.match(/^#/)) {
  5. document.getElementsByClassName(data + 'link_finder')[i].id = "";
  6. } else {
  7. var xhr = new XMLHttpRequest();
  8. xhr.open("GET", get_class.href.replace('/w/', '/api/w/').replace(/#([^#]*)/, '') + "?exist=1");
  9. xhr.send();
  10. xhr.onreadystatechange = function() {
  11. if(this.readyState === 4 && this.status === 200) {
  12. if(JSON.parse(this.responseText)['exist'] !== '1') {
  13. document.getElementsByClassName(data + 'link_finder')[i].id = "not_thing";
  14. } else {
  15. document.getElementsByClassName(data + 'link_finder')[i].id = "";
  16. }
  17. }
  18. }
  19. }
  20. get_link_state(data, i + 1);
  21. }
  22. }
  23. function load_image_link(data) {
  24. data.innerHTML = '' +
  25. '<img style="' + data.getAttribute('under_style') + '" ' +
  26. 'alt="' + data.getAttribute('under_alt') + '" ' +
  27. 'src="' + data.getAttribute('under_src') + '">' +
  28. '';
  29. }
  30. function get_file_state(data, i = 0) {
  31. // 개인적인 생각엔 이 부분 개편 필요
  32. var get_class = document.getElementsByClassName(data + 'file_finder')[i];
  33. if(get_class) {
  34. if(get_class.getAttribute('under_href') === 'out_link') {
  35. if(
  36. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  37. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '1'
  38. ) {
  39. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  40. '<a href="' + get_class.getAttribute('under_src') + '" ' +
  41. 'title="' + get_class.getAttribute('under_src') + '">' +
  42. '(External image link)' +
  43. '</a>' +
  44. '';
  45. } else if(
  46. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  47. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '2'
  48. ) {
  49. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  50. '<a href="javascript:void(0);" ' +
  51. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  52. 'under_style="' + get_class.getAttribute('under_style') + '" ' +
  53. 'under_alt="' + get_class.getAttribute('under_alt') + '" ' +
  54. 'under_src="' + get_class.getAttribute('under_src') + '" ' +
  55. 'title="' + get_class.getAttribute('under_src') + '">' +
  56. '(External image load)' +
  57. '</a>' +
  58. '';
  59. } else {
  60. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  61. '<img style="' + get_class.getAttribute('under_style') + '" ' +
  62. 'alt="' + get_class.getAttribute('under_alt') + '" ' +
  63. 'src="' + get_class.getAttribute('under_src') + '">' +
  64. '';
  65. }
  66. } else {
  67. var file_type = get_class.getAttribute('under_src').split('.');
  68. var file_name = file_type.slice(0, file_type.length - 1).join('.');
  69. file_type = file_type[file_type.length - 1].toLowerCase();
  70. var xhr = new XMLHttpRequest();
  71. xhr.open("GET", '/api/sha224/' + file_name);
  72. xhr.send();
  73. xhr.onreadystatechange = function() {
  74. if(this.readyState === 4 && this.status === 200) {
  75. file_name = JSON.parse(this.responseText)['data'];
  76. var xhr_2 = new XMLHttpRequest();
  77. xhr_2.open("GET", '/api/image/' + file_name + '.' + file_type);
  78. xhr_2.send();
  79. xhr_2.onreadystatechange = function() {
  80. if(this.readyState === 4 && this.status === 200) {
  81. if(JSON.parse(this.responseText)['exist'] !== '1') {
  82. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  83. '<a href="' + get_class.getAttribute('under_href') + '" ' +
  84. 'id="not_thing">' +
  85. '(' + get_class.getAttribute('under_alt') + ')' +
  86. '</a>' +
  87. '';
  88. } else {
  89. if(
  90. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  91. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '1'
  92. ) {
  93. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  94. '<a href="/image/' + file_name + '.' + file_type + '">' +
  95. '(' + get_class.getAttribute('under_alt') + ')' +
  96. '</a>' +
  97. '';
  98. } else if(
  99. document.cookie.match(main_css_regex_data('main_css_image_set')) &&
  100. document.cookie.match(main_css_regex_data('main_css_image_set'))[1] === '2'
  101. ) {
  102. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  103. '<a href="javascript:void(0);" ' +
  104. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  105. 'under_style="' + get_class.getAttribute('under_style') + '" ' +
  106. 'under_alt="' + get_class.getAttribute('under_alt') + '" ' +
  107. 'under_src="/image/' + file_name + '.' + file_type + '">' +
  108. '(' + get_class.getAttribute('under_alt') + ' load)' +
  109. '</a>' +
  110. '';
  111. } else {
  112. document.getElementsByClassName(data + 'file_finder')[i].innerHTML = '' +
  113. '<img style="' + get_class.getAttribute('under_style') + '" ' +
  114. 'alt="' + get_class.getAttribute('under_alt') + '" ' +
  115. 'src="/image/' + file_name + '.' + file_type + '">' +
  116. '';
  117. }
  118. }
  119. }
  120. }
  121. }
  122. }
  123. }
  124. get_file_state(data, i + 1);
  125. }
  126. }
  127. function load_include(name_doc, name_ob, data_include, name_org = '') {
  128. var change = '';
  129. for(var key in data_include) {
  130. change += '' +
  131. '@' + data_include[key][0].replace('&', '<amp>') + '@,' +
  132. data_include[key][1].replace(',', '<comma>').replace('&', '<amp>') + ',' +
  133. ''
  134. }
  135. var url = '' +
  136. "/api/w/" + encodeURI(name_doc) +
  137. "?include=" + name_ob +
  138. "&change=" + change +
  139. '&name_org=' + name_org +
  140. '';
  141. var xhr = new XMLHttpRequest();
  142. xhr.open("GET", url);
  143. xhr.send();
  144. xhr.onreadystatechange = function() {
  145. if(this.readyState === 4 && this.status === 200) {
  146. if(this.responseText === "{}\n") {
  147. document.getElementById(name_ob).innerHTML = "";
  148. document.getElementsByClassName(name_ob)[0].href = "/w/" + do_url_change(name_doc);
  149. document.getElementsByClassName(name_ob)[0].id = "not_thing";
  150. } else {
  151. var data_load = JSON.parse(this.responseText);
  152. document.getElementById(name_ob).innerHTML = data_load['data'];
  153. eval(data_load['js_data']);
  154. }
  155. }
  156. }
  157. }
  158. function page_count() {
  159. var url = "/api/title_index";
  160. var xhr = new XMLHttpRequest();
  161. xhr.open("GET", url);
  162. xhr.send();
  163. xhr.onreadystatechange = function() {
  164. if(this.readyState === 4 && this.status === 200) {
  165. var i = 0;
  166. while(document.getElementsByClassName('all_page_count')[i]) {
  167. document.getElementsByClassName('all_page_count')[i].innerHTML = JSON.parse(this.responseText)['count'];
  168. i += 1;
  169. }
  170. }
  171. }
  172. }
  173. function do_open_folding(data, element = '') {
  174. var fol = document.getElementById(data);
  175. if(fol.style.display === '' || (fol.style.display === 'inline-block' || fol.style.display === 'block')) {
  176. document.getElementById(data).style.display = 'none';
  177. } else {
  178. document.getElementById(data).style.display = 'block';
  179. }
  180. if(element != '') {
  181. var fol_data = element.innerHTML;
  182. if(fol_data != '(-)') {
  183. element.innerHTML = '(-)';
  184. } else {
  185. element.innerHTML = '(+)';
  186. }
  187. }
  188. }
  189. function do_open_foot(name, num = 0) {
  190. var found_include = name.match(/^(include_(?:[0-9]+)\-)/);
  191. if(found_include) {
  192. var include_name = name.replace(/^(?:include_(?:[0-9]+)\-)/, '');
  193. var front_data = found_include[1];
  194. } else {
  195. var include_name = name;
  196. var front_data = '';
  197. }
  198. if(
  199. document.cookie.match(main_css_regex_data('main_css_footnote_set')) &&
  200. document.cookie.match(main_css_regex_data('main_css_footnote_set'))[1] === '1'
  201. ) {
  202. if(num === 1) {
  203. document.getElementById(front_data + 'r' + include_name).focus();
  204. } else {
  205. var get_data = document.getElementById(front_data + include_name).innerHTML;
  206. var org_data = document.getElementById(front_data + 'd' + include_name).innerHTML;
  207. if(org_data === '') {
  208. document.getElementById(front_data + 'd' + include_name).innerHTML = '' +
  209. '<a href="#' + front_data + 'c' + include_name + '">(Go)</a> ' + get_data +
  210. '';
  211. document.getElementById(front_data + 'd' + include_name).className = 'spead_footnote';
  212. } else {
  213. document.getElementById(front_data + 'd' + include_name).innerHTML = '';
  214. document.getElementById(front_data + 'd' + include_name).className = '';
  215. }
  216. }
  217. } else {
  218. document.getElementById(front_data + 'r' + include_name).style.color = 'red';
  219. document.getElementById(front_data + 'c' + include_name).style.color = (num === 1 ? 'inherit' : 'red');
  220. document.getElementById(front_data + (num === 1 ? 'r' : 'c') + include_name).focus();
  221. }
  222. }