render_namumark.js 11 KB

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