render_wiki.js 14 KB

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