load_onmark_render.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function do_onmark_text_render(data) {
  2. data = data.replace(/'''((?:(?!''').)+)'''/g, '<b>$1</b>');
  3. data = data.replace(/''((?:(?!'').)+)''/g, '<i>$1</i>');
  4. data = data.replace(/__((?:(?!__).)+)__/g, '<u>$1</u>');
  5. data = data.replace(/\^\^((?:(?!\^\^).)+)\^\^/g, '<sup>$1</sup>');
  6. data = data.replace(/,,((?:(?!,,).)+),,/g, '<sub>$1</sub>');
  7. data = data.replace(/--((?:(?!--).)+)--/g, '<s>$1</s>');
  8. data = data.replace(/~~((?:(?!~~).)+)~~/g, '<s>$1</s>');
  9. return data;
  10. }
  11. function do_onmark_heading_render(data) {
  12. var heading_re = /<br>(={1,6}) ?([^=]+) ?={1,6}<br>/;
  13. var heading_level_all = [0, 0, 0, 0, 0, 0];
  14. while(1) {
  15. var heading_data = data.match(heading_re);
  16. if(!heading_data) {
  17. break;
  18. }
  19. var heading_level = heading_data[1].length;
  20. heading_level_all[heading_level - 1] += 1;
  21. var i = 6;
  22. while(i > heading_level - 1) {
  23. heading_level_all[i] = 0;
  24. i -= 1;
  25. }
  26. heading_level = String(heading_level);
  27. var heading_level_string = '';
  28. i = 0;
  29. while(i < 6) {
  30. if(heading_level_all[i] !== 0) {
  31. heading_level_string += String(heading_level_all[i]) + '.';
  32. }
  33. i += 1;
  34. }
  35. data = data.replace(heading_re, '<h' + heading_level + '>' + heading_level_string + ' ' + heading_data[2] + '</h' + heading_level + '><br>');
  36. }
  37. data = data.replace(/(<\/h[0-9]>)<br>/g, '$1');
  38. return data;
  39. }
  40. function do_onmark_render(id_name) {
  41. var data = document.getElementById(id_name).innerHTML;
  42. data = '<br>' + data.replace(/\n/g, '<br>') + '<br>';
  43. data = do_onmark_text_render(data);
  44. data = do_onmark_heading_render(data);
  45. data = data.replace(/^(<br>| )+/, '');
  46. data = data.replace(/(<br>| )+$/, '');
  47. document.getElementById(id_name).innerHTML = data;
  48. }