vitepress-markdown-timeline
Version:
在vitepress添加时间线(时间轴)渲染能力
2 lines (1 loc) • 2.18 kB
JavaScript
import r from"dayjs";"function"==typeof SuppressedError&&SuppressedError;var e=function(r,e,n){var t=(n=n||{}).marker||":",o=t.charCodeAt(0),i=t.length,a=n.validate||function(r){return r.trim().split(" ",2)[0]===e},l=n.render||function(r,n,t,o,i){return 1===r[n].nesting&&r[n].attrJoin("class",e),i.renderToken(r,n,t,o,i)};r.block.ruler.before("fence","container_"+e,(function(r,n,l,c){var s,f,u,p,d,k,h,y,m=!1,v=r.bMarks[n]+r.tShift[n],b=r.eMarks[n];if(o!==r.src.charCodeAt(v))return!1;for(s=v+1;s<=b&&t[(s-v)%i]===r.src[s];s++);if((u=Math.floor((s-v)/i))<3)return!1;if(s-=(s-v)%i,p=r.src.slice(v,s),d=r.src.slice(s,b),!a(d,p))return!1;if(c)return!0;for(f=n;!(++f>=l)&&!((v=r.bMarks[f]+r.tShift[f])<(b=r.eMarks[f])&&r.sCount[f]<r.blkIndent);)if(o===r.src.charCodeAt(v)&&!(r.sCount[f]-r.blkIndent>=4)){for(s=v+1;s<=b&&t[(s-v)%i]===r.src[s];s++);if(!(Math.floor((s-v)/i)<u||(s-=(s-v)%i,(s=r.skipSpaces(s))<b))){m=!0;break}}return h=r.parentType,y=r.lineMax,r.parentType="container",r.lineMax=f,(k=r.push("container_"+e+"_open","div",1)).markup=p,k.block=!0,k.info=d,k.map=[n,f],r.md.block.tokenize(r,n+1,f),(k=r.push("container_"+e+"_close","div",-1)).markup=r.src.slice(v,s),k.block=!0,r.parentType=h,r.lineMax=y,r.line=f+(m?1:0),!0}),{alt:["paragraph","reference","blockquote","list"]}),r.renderer.rules["container_"+e+"_open"]=l,r.renderer.rules["container_"+e+"_close"]=l},n=function(r,n,t){return[e,r,{render:function(e,n){var o=e[n],i=o.info.trim().slice(r.length).trim();return 1===o.nesting?"<div class='timeline-dot'><span class='timeline-dot-title'>"+t.renderInline(i)+"</span>\n":"</div>\n"}}]},t=function(e,t){e.use.apply(e,function(r,e,n){if(n||2===arguments.length)for(var t,o=0,i=e.length;o<i;o++)!t&&o in e||(t||(t=Array.prototype.slice.call(e,0,o)),t[o]=e[o]);return r.concat(t||Array.prototype.slice.call(e))}([],function(r,e){var n="function"==typeof Symbol&&r[Symbol.iterator];if(!n)return r;var t,o,i=n.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(t=i.next()).done;)a.push(t.value)}catch(r){o={error:r}}finally{try{t&&!t.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}(n("timeline",r().format("YYYY-MM-DD"),e)),!1))};export{t as default};