render_namumark.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. function get_link_state(data) {
  2. let data_exter_link = '0';
  3. if(document.cookie.match(main_css_regex_data('main_css_exter_link'))) {
  4. data_exter_link = document.cookie.match(main_css_regex_data('main_css_exter_link'))[1];
  5. }
  6. var link_list = [];
  7. var link_list_2 = {}
  8. for(var i = 0; document.getElementsByClassName(data + 'link_finder')[i]; i++) {
  9. var data_class = document.getElementsByClassName(data + 'link_finder')[i];
  10. if(data_class.id !== 'out_link' && !data_class.href.match(/^#/)) {
  11. link_list.push(data_class.title);
  12. if(!link_list_2[data_class.title]) {
  13. link_list_2[data_class.title] = [i];
  14. } else {
  15. link_list_2[data_class.title].push(i);
  16. }
  17. } else if(data_exter_link === '1' && data_class.id === 'out_link') {
  18. document.getElementsByClassName(data + 'link_finder')[i].target = '_self';
  19. }
  20. }
  21. var data_form = new FormData();
  22. data_form.append('title_list', JSON.stringify(link_list));
  23. var xhr = new XMLHttpRequest();
  24. xhr.open("POST", "/api/w/test?v=exist");
  25. xhr.send(data_form);
  26. xhr.onreadystatechange = function() {
  27. if(this.readyState === 4 && this.status === 200) {
  28. var data_xhr = JSON.parse(this.responseText);
  29. for(var key in link_list_2) {
  30. if(!data_xhr[key]) {
  31. for(var key_2 in link_list_2[key]) {
  32. document.getElementsByClassName(data + 'link_finder')[link_list_2[key][key_2]].id = "not_thing";
  33. }
  34. }
  35. }
  36. }
  37. }
  38. }
  39. function load_image_link(data) {
  40. data.innerHTML = '' +
  41. '<img style="' + data.getAttribute('under_style') + '" ' +
  42. 'alt="' + data.getAttribute('under_alt') + '" ' +
  43. 'src="' + data.getAttribute('under_src') + '">' +
  44. '';
  45. }
  46. function get_file_state_extermal(data, data_exter) {
  47. if(document.cookie.match(main_css_regex_data('main_css_image_set'))) {
  48. var data_image_set = document.cookie.match(main_css_regex_data('main_css_image_set'))[1];
  49. } else {
  50. var data_image_set = '0';
  51. }
  52. var data_class = document.getElementsByClassName(data + 'file_finder');
  53. for(var key in data_exter) {
  54. var key = data_exter[key];
  55. if(data_image_set === '1') {
  56. document.getElementsByClassName(data + 'file_finder')[key].innerHTML = '' +
  57. '<a href="' + data_class[key].getAttribute('under_src') + '" ' +
  58. 'title="' + data_class[key].getAttribute('under_src') + '">' +
  59. '(External image link)' +
  60. '</a>' +
  61. '';
  62. } else if(data_image_set === '2') {
  63. document.getElementsByClassName(data + 'file_finder')[key].innerHTML = '' +
  64. '<a href="javascript:void(0);" ' +
  65. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  66. 'under_style="' + data_class[key].getAttribute('under_style') + '" ' +
  67. 'under_alt="' + data_class[key].getAttribute('under_alt') + '" ' +
  68. 'under_src="' + data_class[key].getAttribute('under_src') + '" ' +
  69. 'title="' + data_class[key].getAttribute('under_src') + '">' +
  70. '(External image load)' +
  71. '</a>' +
  72. '';
  73. } else {
  74. document.getElementsByClassName(data + 'file_finder')[key].innerHTML = '' +
  75. '<img style="' + data_class[key].getAttribute('under_style') + '" ' +
  76. 'alt="' + data_class[key].getAttribute('under_alt') + '" ' +
  77. 'src="' + data_class[key].getAttribute('under_src') + '">' +
  78. '';
  79. }
  80. }
  81. }
  82. function get_file_state_intermal(data, data_inter) {
  83. var data_dict = {};
  84. var data_list = [];
  85. for(var key in data_inter) {
  86. var data_class = document.getElementsByClassName(data + 'file_finder')[key];
  87. var file_org = data_class.getAttribute('under_alt');
  88. var file_type = file_org.split('.');
  89. var file_name = file_type.slice(0, file_type.length - 1).join('.');
  90. file_type = file_type[file_type.length - 1];
  91. if(!data_dict[file_org]) {
  92. data_dict[file_org] = {};
  93. }
  94. data_dict[file_org]['file_name'] = file_name;
  95. data_dict[file_org]['file_type'] = file_type;
  96. data_list.push(file_name);
  97. if(!data_dict[file_org]['list']) {
  98. data_dict[file_org]['list'] = [key];
  99. } else {
  100. data_dict[file_org]['list'].push(key);
  101. }
  102. }
  103. if(document.cookie.match(main_css_regex_data('main_css_image_set'))) {
  104. var data_image_set = document.cookie.match(main_css_regex_data('main_css_image_set'))[1];
  105. } else {
  106. var data_image_set = '0';
  107. }
  108. var data_form = new FormData();
  109. data_form.append('title_list', JSON.stringify(data_list));
  110. var xhr = new XMLHttpRequest();
  111. xhr.open("POST", '/api/sha224/test');
  112. xhr.send(data_form);
  113. xhr.onreadystatechange = function() {
  114. if(this.readyState === 4 && this.status === 200) {
  115. var file_sha224 = JSON.parse(this.responseText);
  116. var data_list_2 = [];
  117. for(var key in data_dict) {
  118. data_dict[key]['file_sha224'] = file_sha224[data_dict[key]['file_name']]
  119. data_list_2.push(data_dict[key]['file_sha224'] + '.' + data_dict[key]['file_type'])
  120. }
  121. var data_form_2 = new FormData();
  122. data_form_2.append('title_list', JSON.stringify(data_list_2));
  123. var xhr_2 = new XMLHttpRequest();
  124. xhr_2.open("POST", '/api/image/test');
  125. xhr_2.send(data_form_2);
  126. xhr_2.onreadystatechange = function() {
  127. if(this.readyState === 4 && this.status === 200) {
  128. var file_data = JSON.parse(this.responseText);
  129. var data_class = document.getElementsByClassName(data + 'file_finder');
  130. for(var key_3 in data_dict) {
  131. if(!file_data[data_dict[key_3]['file_sha224'] + '.' + data_dict[key_3]['file_type']]) {
  132. for(var key_4 in data_dict[key_3]['list']) {
  133. var key_4 = data_dict[key_3]['list'][key_4];
  134. document.getElementsByClassName(data + 'file_finder')[key_4].innerHTML = '' +
  135. '<a href="' + data_class[key_4].getAttribute('under_href') + '" ' +
  136. 'id="not_thing">' +
  137. '(' + data_class[key_4].getAttribute('under_alt') + ')' +
  138. '</a>' +
  139. '';
  140. }
  141. } else {
  142. if(data_image_set === '1') {
  143. for(var key_4 in data_dict[key_3]['list']) {
  144. var key_4 = data_dict[key_3]['list'][key_4];
  145. document.getElementsByClassName(data + 'file_finder')[key_4].innerHTML = '' +
  146. '<a href="/image/' + data_dict[key_3]['file_sha224'] + '.' + data_dict[key_3]['file_type'] + '">' +
  147. '(' + data_class[key_4].getAttribute('under_alt') + ')' +
  148. '</a>' +
  149. '';
  150. }
  151. } else if(data_image_set === '2') {
  152. for(var key_4 in data_dict[key_3]['list']) {
  153. var key_4 = data_dict[key_3]['list'][key_4];
  154. document.getElementsByClassName(data + 'file_finder')[key_4].innerHTML = '' +
  155. '<a href="javascript:void(0);" ' +
  156. 'onclick="load_image_link(this); this.onclick = \'\';" ' +
  157. 'under_style="' + data_class[key_4].getAttribute('under_style') + '" ' +
  158. 'under_alt="' + data_class[key_4].getAttribute('under_alt') + '" ' +
  159. 'under_src="/image/' + data_dict[key_3]['file_sha224'] + '.' + data_dict[key_3]['file_type'] + '">' +
  160. '(' + data_class[key_4].getAttribute('under_alt') + ' load)' +
  161. '</a>' +
  162. '';
  163. }
  164. } else {
  165. for(var key_4 in data_dict[key_3]['list']) {
  166. var key_4 = data_dict[key_3]['list'][key_4];
  167. document.getElementsByClassName(data + 'file_finder')[key_4].innerHTML = '' +
  168. '<img style="' + data_class[key_4].getAttribute('under_style') + '" ' +
  169. 'alt="' + data_class[key_4].getAttribute('under_alt') + '" ' +
  170. 'src="/image/' + data_dict[key_3]['file_sha224'] + '.' + data_dict[key_3]['file_type'] + '">' +
  171. '' +
  172. '';
  173. }
  174. }
  175. }
  176. }
  177. }
  178. }
  179. }
  180. }
  181. }
  182. function get_file_state(data, i = 0) {
  183. var data_exter = [];
  184. var data_inter = [];
  185. for(var i = 0; document.getElementsByClassName(data + 'file_finder')[i]; i++) {
  186. var data_class = document.getElementsByClassName(data + 'file_finder')[i];
  187. if(data_class.getAttribute('under_href') === 'out_link') {
  188. data_exter.push(i);
  189. } else {
  190. data_inter.push(i);
  191. }
  192. }
  193. get_file_state_extermal(data, data_exter);
  194. get_file_state_intermal(data, data_inter);
  195. }
  196. function load_include(name_doc, name_ob, data_include, name_org = '') {
  197. var change = '';
  198. for(var key in data_include) {
  199. change += '' +
  200. '@' + data_include[key][0].replace('&', '<amp>') + '@,' +
  201. data_include[key][1].replace(',', '<comma>').replace('&', '<amp>') + ',' +
  202. ''
  203. }
  204. var url = '' +
  205. "/api/w/" + encodeURI(name_doc) +
  206. "?include=" + name_ob +
  207. "&change=" + change +
  208. '&name_org=' + name_org +
  209. '';
  210. var xhr = new XMLHttpRequest();
  211. xhr.open("GET", url);
  212. xhr.send();
  213. xhr.onreadystatechange = function() {
  214. if(this.readyState === 4 && this.status === 200) {
  215. if(this.responseText === "{}\n") {
  216. document.getElementById(name_ob).innerHTML = "";
  217. document.getElementsByClassName(name_ob)[0].href = "/w/" + do_url_change(name_doc);
  218. document.getElementsByClassName(name_ob)[0].id = "not_thing";
  219. } else {
  220. var data_load = JSON.parse(this.responseText);
  221. document.getElementById(name_ob).innerHTML = data_load['data'];
  222. eval(data_load['js_data']);
  223. }
  224. }
  225. }
  226. }
  227. function page_count() {
  228. var url = "/api/title_index";
  229. var xhr = new XMLHttpRequest();
  230. xhr.open("GET", url);
  231. xhr.send();
  232. xhr.onreadystatechange = function() {
  233. if(this.readyState === 4 && this.status === 200) {
  234. var i = 0;
  235. while(document.getElementsByClassName('all_page_count')[i]) {
  236. document.getElementsByClassName('all_page_count')[i].innerHTML = JSON.parse(this.responseText)['count'];
  237. i += 1;
  238. }
  239. }
  240. }
  241. }
  242. function do_open_folding(data, element = '') {
  243. var fol = document.getElementById(data);
  244. if(fol.style.display === '' || (fol.style.display === 'inline-block' || fol.style.display === 'block')) {
  245. document.getElementById(data).style.display = 'none';
  246. } else {
  247. document.getElementById(data).style.display = 'block';
  248. }
  249. if(element != '') {
  250. var fol_data = element.innerHTML;
  251. if(fol_data != '⊖') {
  252. element.innerHTML = '⊖';
  253. } else {
  254. element.innerHTML = '⊕';
  255. }
  256. }
  257. }
  258. function do_open_foot(name, num = 0) {
  259. var found_include = name.match(/^(include_(?:[0-9]+)\-)/);
  260. if(found_include) {
  261. var include_name = name.replace(/^(?:include_(?:[0-9]+)\-)/, '');
  262. var front_data = found_include[1];
  263. } else {
  264. var include_name = name;
  265. var front_data = '';
  266. }
  267. if(
  268. document.cookie.match(main_css_regex_data('main_css_footnote_set')) &&
  269. document.cookie.match(main_css_regex_data('main_css_footnote_set'))[1] === '1'
  270. ) {
  271. if(num === 1) {
  272. document.getElementById(front_data + 'r' + include_name).focus();
  273. } else {
  274. var get_data = document.getElementById(front_data + include_name).innerHTML;
  275. var org_data = document.getElementById(front_data + 'd' + include_name).innerHTML;
  276. if(org_data === '') {
  277. document.getElementById(front_data + 'd' + include_name).innerHTML = '' +
  278. '<a href="#' + front_data + 'c' + include_name + '">(Go)</a> ' + get_data +
  279. '';
  280. document.getElementById(front_data + 'd' + include_name).className = 'spead_footnote';
  281. } else {
  282. document.getElementById(front_data + 'd' + include_name).innerHTML = '';
  283. document.getElementById(front_data + 'd' + include_name).className = '';
  284. }
  285. }
  286. } else {
  287. document.getElementById(front_data + 'r' + include_name).style.color = 'red';
  288. document.getElementById(front_data + 'c' + include_name).style.color = (num === 1 ? 'inherit' : 'red');
  289. document.getElementById(front_data + (num === 1 ? 'r' : 'c') + include_name).focus();
  290. }
  291. }