From 9d3c8c0e6e1a7ba43bf3dc19350d1dca68b657a3 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sun, 10 Feb 2019 11:16:07 +0800 Subject: Initial commit. --- blog/sbs_2/blogpost.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 blog/sbs_2/blogpost.js (limited to 'blog/sbs_2/blogpost.js') diff --git a/blog/sbs_2/blogpost.js b/blog/sbs_2/blogpost.js new file mode 100644 index 0000000..4c17772 --- /dev/null +++ b/blog/sbs_2/blogpost.js @@ -0,0 +1,103 @@ +//License: Expat (MIT) +//Chrisoft Xiong 2017 +var prev,succ,tocid=0,headerlist=[]; +function request(url,func) +{ + var h=new XMLHttpRequest(); + h.open("GET",url); + h.onload=()=>{func(h.response,h.status)}; + h.send(); +} +function parsetags(tgs) +{ + var r=""; + var a=tgs.split(","); + r="#"+a[0]; + for(var i=1;i'+el.innerHTML+''; + le.appendChild(e); + el.id='tocanch'+(tocid++); + el.classList.add('tvis'); + var che=null,i; + for(i=p+1;i1&&parr[1].length) + { + request("/blog/cgi-bin/get-post-content.cgi?p="+parr[1], + (r,s)=> + { + if(s>=400)window.location="/blog"; + var p1=r.search('\n'); + var title=r.substr(0,r.search('\n')); + var p2=r.substr(p1+1).search('\n'); + var date=r.substr(p1+1,p2); + var p3=r.substr(p1+p2+2).search('\n'); + var tags=r.substr(p1+p2+2,p3); + document.getElementById("title").innerHTML=title; + document.getElementById("titleh").innerHTML=title; + document.getElementById("datetags").innerHTML=date+"
"+parsetags(tags); + document.getElementById("article").innerHTML=r.substr(p1+p2+p3+3); + var l=document.getElementById("article").querySelectorAll("script"); + for(var i of l) + { + var s=document.createElement("script"); + s.async=true; + s.src=i.src; + document.getElementById("article").appendChild(s); + } + var tgs=tags.split(','); + for(var i=0;i'+tgs[i]+""; + document.getElementById('tagslist').appendChild(l); + } + request("/blog/cgi-bin/get-archive-list.cgi?qn="+parr[1], + (r,s)=> + { + if(s>=400)return; + var o=JSON.parse(r); + prev=o.prev;succ=o.succ; + } + ); + l=document.getElementById('article').querySelectorAll('h2,h3,h4,h5,h6'); + var tocroot=document.getElementById('tocroot'); + for(var i of l) + { + if(!i.classList.contains('notoc'))headerlist.push(i); + } + for(var i=0;i