reader.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. var _reader_view="sent";
  2. var _reader_book=-1;
  3. var _reader_para = -1;
  4. var _reader_begin=-1;
  5. var _reader_end=-1;
  6. var _channal = "";
  7. var _lang = "";
  8. var _author = "";
  9. var _display = "para";
  10. var arrMyTerm = new Array();
  11. var _sent_data = new Array();
  12. palicanon_load_term();
  13. function reader_load(){
  14. $.get(
  15. "../reader/get_para.php",
  16. {
  17. view:_reader_view,
  18. book:_reader_book,
  19. para:_reader_para,
  20. begin:_reader_begin,
  21. end:_reader_end,
  22. },
  23. function(data){
  24. _sent_data = JSON.parse(data);
  25. let tpl = "";
  26. let currPara=0;
  27. if(_sent_data.sentences.length>0){
  28. for (const iterator of _sent_data.sentences) {
  29. if(currPara!=iterator.paragraph){
  30. tpl +="\n";
  31. currPara=iterator.paragraph;
  32. tpl += "```para\n";
  33. tpl += currPara+"\n";
  34. tpl += "```\n";
  35. }
  36. tpl += "{{"+iterator.book+"-"+iterator.paragraph+"-"+iterator.begin+"-"+iterator.end+"}}\n";
  37. }
  38. $("#contents").html(note_init(tpl));
  39. note_refresh_new();
  40. reader_draw_para_menu();
  41. //右侧目录
  42. let tocHtml="";
  43. let tocNextMenu="";
  44. if(_sent_data.toc.length>0){
  45. let firstLevel = _sent_data.toc[0].level;
  46. for (let index = 1; index < _sent_data.toc.length; index++) {
  47. const element = _sent_data.toc[index];
  48. tocHtml+= "<div class='reader_right_toc level_"+(element.level-firstLevel)+"'><a href='#para_"+element.paragraph+"'>"+element.toc+"</a></div>";
  49. tocNextMenu +="<a href='../reader/?view=chapter&book="+_reader_book+"&para="+element.paragraph+"'>"+element.toc+"</a>";
  50. }
  51. $("#toc_content").html(tocHtml);
  52. $("#toc_next_menu").html(tocNextMenu);
  53. }
  54. }
  55. else{
  56. //仅有目录
  57. tpl += "<h2>Table of Content</h2>";
  58. if(_sent_data.toc.length>0){
  59. let firstLevel = _sent_data.toc[0].level;
  60. for (let index = 1; index < _sent_data.toc.length; index++) {
  61. const element = _sent_data.toc[index];
  62. if(element.level<8){
  63. tpl+= "<div class='reader_main_toc level_"+(element.level-firstLevel)+"'><a href='../reader/?view=chapter&book="+_reader_book+"&para="+element.paragraph+"&display="+_display+"'>"+element.toc+"</a></div>";
  64. }
  65. }
  66. }
  67. $("#contents").html(tpl);
  68. }
  69. }
  70. );
  71. reader_get_path();
  72. }
  73. function reader_draw_para_menu(){
  74. $(".language-para").each(function(){
  75. let strPara = $(this).text();
  76. $(this).addClass("case_dropdown");
  77. let html="<a name='para_"+strPara+"'></a>";
  78. html +="<div class='case_dropdown-content para_menu'>";
  79. if(typeof _reader_view !="undefined" && _reader_view != "para"){
  80. html +="<a onclick='junp_to('"+_reader_book+"','"+strPara+"')'>跳转至此段</a>";
  81. }
  82. html +="<a onclick=\"copy_para_ref('"+_reader_book+"','"+strPara+"')\">复制引用</a>";
  83. html +="<a onclick='copy_text(this)'>复制文本</a>";
  84. html +="<a onclick='add_to_list()'>添加到选择列表</a>";
  85. html +="</div>";
  86. $(this).append(html);
  87. });
  88. }
  89. function copy_para_ref(book,para) {
  90. let output = "";
  91. let currPara = para;
  92. for (const iterator of _sent_data) {
  93. if(iterator.book==book && iterator.paragraph==para){
  94. output +="{{"+book+"-"+para+"-"+iterator.begin+"-"+iterator.end+"}}\n";
  95. }
  96. }
  97. output +="\n";
  98. copy_to_clipboard(output)
  99. }
  100. function reader_get_path(){
  101. $.get(
  102. "../reader/get_path.php",
  103. {
  104. book:_reader_book,
  105. para:_reader_para,
  106. },
  107. function(data){
  108. $("#para_path").html(data);
  109. $("chapter").each(function(){
  110. let title = $(this).text();
  111. let strLocalTitle="";
  112. if( strLocalTitle = term_lookup_my(title,_channal.split()[0],getCookie("userid"),getCookie("language"))){
  113. $(this).html(strLocalTitle.word);
  114. }
  115. else if( strLocalTitle = term_lookup_my_a(title,_channal.split()[0],getCookie("userid"),getCookie("language"))){
  116. let newLocal = title.replace(strLocalTitle.word,strLocalTitle.meaning);
  117. $(this).html(newLocal);
  118. }
  119. });
  120. let suttaTitle = $("chapter").last().html();
  121. $("#article_title").html(suttaTitle);
  122. if(_reader_view=="chapter"){
  123. //$("chapter").last().hide();
  124. }
  125. }
  126. );
  127. }
  128. function palicanon_load_term() {
  129. $.get(
  130. "../term/term.php",
  131. {
  132. op:"my"
  133. },
  134. function(data){
  135. arrMyTerm = JSON.parse(data);
  136. }
  137. );
  138. }