|
|
@@ -171,6 +171,8 @@ function esc(s){if(!s)return'';return s.replace(/&/g,'&').replace(/</g,'<
|
|
|
function escAttr(s){if(!s)return'';return s.replace(/"/g,'"').replace(/'/g,''')}
|
|
|
function md2html(h){
|
|
|
if(!h)return'';h=esc(h);
|
|
|
+// 保留图片标签不转义
|
|
|
+h=h.replace(/<img\s+src="(.+?)"\s*\/?>/g,'<img src="$1" style="max-width:100%">');
|
|
|
h=h.replace(/\*\*(.+?)\*\*/g,'<strong>$1</strong>');
|
|
|
h=h.replace(/⚠️?\s*([^\n<]+)/g,'<span class="warn">$1</span>');
|
|
|
h=h.replace(/\[([^\]]+)\]\((https?:\/\/[^\s<>)]+)\)/g,'<a href="$2" target="_blank" rel="noopener" class="ext-link">$1</a>');
|
|
|
@@ -339,7 +341,7 @@ function buildSourceTags(){
|
|
|
var name=s.name||'未知';
|
|
|
var ver=s.source||s.category||'';
|
|
|
var gkey=name+'|'+ver;
|
|
|
- if(!groups[gkey]){groups[gkey]={sections:[],seen:new Set(),name:name,source:ver};order.push(gkey);}
|
|
|
+ if(!groups[gkey]){groups[gkey]={sections:[],seen:new Set(),name:name,source:ver,drugId:s.drug_id||''};order.push(gkey);}
|
|
|
var key=s.section;
|
|
|
if(!groups[gkey].seen.has(key)){
|
|
|
groups[gkey].seen.add(key);
|
|
|
@@ -354,7 +356,7 @@ function buildSourceTags(){
|
|
|
var dn=order[g],grp=groups[dn],cnt=grp.sections.length;
|
|
|
h+='<div style="margin-bottom:10px">';
|
|
|
h+='<div class="src-title">📖 '+esc(dn)+' · '+esc(grp.source)+' ('+cnt+'个栏目)';
|
|
|
- h+=' <a href="javascript:void(0)" onclick="switchTab(\'drugs\');loadDrugDetailBySrc(\''+escAttr(dn)+'\')" style="font-size:11px;color:#002FA7">查看详情 →</a></div>';
|
|
|
+ h+=' <a href="javascript:void(0)" onclick="switchTab(\'drugs\');loadDrugDetail(\''+escAttr(grp.drugId)+'\')" style="font-size:11px;color:#002FA7">查看详情 →</a></div>';
|
|
|
for(var s=0;s<grp.sections.length;s++){
|
|
|
var sec=grp.sections[s];
|
|
|
h+='<span class="source-tag" onclick="var p=this.parentNode;this.classList.toggle(\'open\')">'+esc(sec.section)+'<div class="src-excerpt"><strong>'+esc(dn)+' · '+esc(sec.source)+'</strong><br><br>'+esc(sec.excerpt)+'</div></span>';
|