thomwolf HF staff commited on
Commit
1feb413
1 Parent(s): 2378dcc

move to docker

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. Dockerfile +20 -0
  2. README.md +2 -1
  3. assets/404.80d55b49.js +0 -1
  4. assets/Blog.b84894dd.js +0 -48
  5. assets/Blog.d073ff16.css +0 -1
  6. assets/BlogList.c2f8123e.js +0 -1
  7. assets/DynamicPathMatcher.29f46833.js +0 -1
  8. assets/EmbedWebSite.e11e9c3e.js +0 -1
  9. assets/HighlightBlogSection.d9673e14.js +0 -1
  10. assets/Home.3c376c2f.css +0 -1
  11. assets/Home.93068458.js +0 -9
  12. assets/StarXYChart.f2d40091.js +0 -0
  13. assets/dbcost.486cae2c.webp +0 -0
  14. assets/index.684a8343.css +0 -1
  15. assets/index.c6d64976.js +0 -1
  16. assets/sqlchat.fc20a128.webp +0 -0
  17. assets/utils.4c76304e.js +0 -0
  18. assets/vendor.deac2ab7.js +0 -0
  19. blog/add-a-live-star-history-chart-to-your-github-readme.md +0 -89
  20. blog/assets/embed-chart-with-iframe.png +0 -3
  21. blog/assets/embed-chart-with-svg.png +0 -3
  22. blog/assets/github-badges.png +0 -3
  23. blog/assets/github-trending-tab/github-home.webp +0 -0
  24. blog/assets/github-trending-tab/github-trending-tab.webp +0 -0
  25. blog/assets/github-trending-tab/hn.webp +0 -0
  26. blog/assets/github-trending-tab/star-history.webp +0 -0
  27. blog/assets/github-trending-tab/throw.gif +0 -3
  28. blog/assets/how-to-use-github-star-history/add-access-token.webp +0 -0
  29. blog/assets/how-to-use-github-star-history/align-timeline.webp +0 -0
  30. blog/assets/how-to-use-github-star-history/book.webp +0 -0
  31. blog/assets/how-to-use-github-star-history/chrome-extension-working.webp +0 -0
  32. blog/assets/how-to-use-github-star-history/chrome-extension.webp +0 -0
  33. blog/assets/how-to-use-github-star-history/classic-form.webp +0 -0
  34. blog/assets/how-to-use-github-star-history/copy-iframe-readme.webp +0 -0
  35. blog/assets/how-to-use-github-star-history/edit-gh-access-token.webp +0 -0
  36. blog/assets/how-to-use-github-star-history/embed.webp +0 -0
  37. blog/assets/how-to-use-github-star-history/generate-new-token.webp +0 -0
  38. blog/assets/how-to-use-github-star-history/gh-readme.webp +0 -0
  39. blog/assets/how-to-use-github-star-history/hide-show.webp +0 -0
  40. blog/assets/how-to-use-github-star-history/home-chrome-extension.webp +0 -0
  41. blog/assets/how-to-use-github-star-history/how-to-use-github-star-history.webp +0 -0
  42. blog/assets/how-to-use-github-star-history/multiple-repos.webp +0 -0
  43. blog/assets/how-to-use-github-star-history/new-token-classic.webp +0 -0
  44. blog/assets/how-to-use-github-star-history/personal-token-copy.webp +0 -0
  45. blog/assets/how-to-use-github-star-history/search-bar.webp +0 -0
  46. blog/assets/how-to-use-github-star-history/user-manual.webp +0 -0
  47. blog/assets/ockam/banner.webp +0 -0
  48. blog/assets/ockam/build-trust.webp +0 -0
  49. blog/assets/ockam/ockam.webp +0 -0
  50. blog/assets/old-embed-issue.png +0 -3
Dockerfile ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:19 as star-history-builder
2
+
3
+ WORKDIR /app
4
+
5
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
6
+ git && \
7
+ rm -rf /var/lib/apt/lists/*
8
+
9
+ RUN git clone https://github.com/thomwolf/thomwolf/hf-star-history.git
10
+
11
+ WORKDIR /app/hf-star-history
12
+
13
+ RUN --mount=type=cache,target=/app/.npm \
14
+ npm set cache /app/.npm && \
15
+ npm ci
16
+
17
+ RUN npm install -g pnpm
18
+ RUN pnpm i
19
+
20
+ CMD pnpm dev
README.md CHANGED
@@ -3,9 +3,10 @@ title: Hf Star History
3
  emoji: 📚
4
  colorFrom: yellow
5
  colorTo: purple
6
- sdk: static
7
  pinned: false
8
  license: mit
 
9
  ---
10
 
11
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
3
  emoji: 📚
4
  colorFrom: yellow
5
  colorTo: purple
6
+ sdk: docker
7
  pinned: false
8
  license: mit
9
+ app_port: 3000
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
assets/404.80d55b49.js DELETED
@@ -1 +0,0 @@
1
- import{_ as e}from"./index.c6d64976.js";import{o,m as t,n as s}from"./vendor.deac2ab7.js";const c={},r={class:"relative w-full h-auto min-h-screen overflow-auto flex flex-col justify-center items-center"},n=s("p",null,"404, Not Found.",-1),a=[n];function _(l,f){return o(),t("div",r,a)}var m=e(c,[["render",_]]);export{m as default};
 
 
assets/Blog.b84894dd.js DELETED
@@ -1,48 +0,0 @@
1
- var he=Object.defineProperty,ue=Object.defineProperties;var pe=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable;var F=(l,e,n)=>e in l?he(l,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[e]=n,V=(l,e)=>{for(var n in e||(e={}))fe.call(e,n)&&F(l,n,e[n]);if(P)for(var n of P(e))ge.call(e,n)&&F(l,n,e[n]);return l},H=(l,e)=>ue(l,pe(e));import{h as de,i as me,J as xe,l as ke,K as we,r as be,o as v,m as j,C as B,n as x,B as W,t as q,x as X,b as _e,A as ie}from"./vendor.deac2ab7.js";import{u as G}from"./utils.4c76304e.js";import{c as ye,d as $e,a as ze,F as Se,e as Te}from"./HighlightBlogSection.d9673e14.js";import"./index.c6d64976.js";function se(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let C=se();function Re(l){C=l}const Ie=/[&<>"']/,Ae=/[&<>"']/g,Le=/[<>"']|&(?!#?\w+;)/,ve=/[<>"']|&(?!#?\w+;)/g,Be={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},J=l=>Be[l];function w(l,e){if(e){if(Ie.test(l))return l.replace(Ae,J)}else if(Le.test(l))return l.replace(ve,J);return l}const Ce=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function re(l){return l.replace(Ce,(e,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Ee=/(^|[^\[])\^/g;function d(l,e){l=typeof l=="string"?l:l.source,e=e||"";const n={replace:(t,i)=>(i=i.source||i,i=i.replace(Ee,"$1"),l=l.replace(t,i),n),getRegex:()=>new RegExp(l,e)};return n}const De=/[^\w:]/g,je=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function K(l,e,n){if(l){let t;try{t=decodeURIComponent(re(n)).replace(De,"").toLowerCase()}catch{return null}if(t.indexOf("javascript:")===0||t.indexOf("vbscript:")===0||t.indexOf("data:")===0)return null}e&&!je.test(n)&&(n=Me(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const O={},Ze=/^[^:]+:\/*[^/]*$/,qe=/^([^:]+:)[\s\S]*$/,Oe=/^([^:]+:\/*[^/]*)[\s\S]*$/;function Me(l,e){O[" "+l]||(Ze.test(l)?O[" "+l]=l+"/":O[" "+l]=M(l,"/",!0)),l=O[" "+l];const n=l.indexOf(":")===-1;return e.substring(0,2)==="//"?n?e:l.replace(qe,"$1")+e:e.charAt(0)==="/"?n?e:l.replace(Oe,"$1")+e:l+e}const U={exec:function(){}};function $(l){let e=1,n,t;for(;e<arguments.length;e++){n=arguments[e];for(t in n)Object.prototype.hasOwnProperty.call(n,t)&&(l[t]=n[t])}return l}function Y(l,e){const n=l.replace(/\|/g,(s,r,a)=>{let c=!1,p=r;for(;--p>=0&&a[p]==="\\";)c=!c;return c?"|":" |"}),t=n.split(/ \|/);let i=0;if(t[0].trim()||t.shift(),t.length>0&&!t[t.length-1].trim()&&t.pop(),t.length>e)t.splice(e);else for(;t.length<e;)t.push("");for(;i<t.length;i++)t[i]=t[i].trim().replace(/\\\|/g,"|");return t}function M(l,e,n){const t=l.length;if(t===0)return"";let i=0;for(;i<t;){const s=l.charAt(t-i-1);if(s===e&&!n)i++;else if(s!==e&&n)i++;else break}return l.slice(0,t-i)}function Ue(l,e){if(l.indexOf(e[1])===-1)return-1;const n=l.length;let t=0,i=0;for(;i<n;i++)if(l[i]==="\\")i++;else if(l[i]===e[0])t++;else if(l[i]===e[1]&&(t--,t<0))return i;return-1}function le(l){l&&l.sanitize&&!l.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function ee(l,e){if(e<1)return"";let n="";for(;e>1;)e&1&&(n+=l),e>>=1,l+=l;return n+l}function te(l,e,n,t){const i=e.href,s=e.title?w(e.title):null,r=l[1].replace(/\\([\[\]])/g,"$1");if(l[0].charAt(0)!=="!"){t.state.inLink=!0;const a={type:"link",raw:n,href:i,title:s,text:r,tokens:t.inlineTokens(r,[])};return t.state.inLink=!1,a}return{type:"image",raw:n,href:i,title:s,text:w(r)}}function Ne(l,e){const n=l.match(/^(\s+)(?:```)/);if(n===null)return e;const t=n[1];return e.split(`
2
- `).map(i=>{const s=i.match(/^\s+/);if(s===null)return i;const[r]=s;return r.length>=t.length?i.slice(t.length):i}).join(`
3
- `)}class N{constructor(e){this.options=e||C}space(e){const n=this.rules.block.newline.exec(e);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(e){const n=this.rules.block.code.exec(e);if(n){const t=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?t:M(t,`
4
- `)}}}fences(e){const n=this.rules.block.fences.exec(e);if(n){const t=n[0],i=Ne(t,n[3]||"");return{type:"code",raw:t,lang:n[2]?n[2].trim():n[2],text:i}}}heading(e){const n=this.rules.block.heading.exec(e);if(n){let t=n[2].trim();if(/#$/.test(t)){const s=M(t,"#");(this.options.pedantic||!s||/ $/.test(s))&&(t=s.trim())}const i={type:"heading",raw:n[0],depth:n[1].length,text:t,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}hr(e){const n=this.rules.block.hr.exec(e);if(n)return{type:"hr",raw:n[0]}}blockquote(e){const n=this.rules.block.blockquote.exec(e);if(n){const t=n[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(t,[]),text:t}}}list(e){let n=this.rules.block.list.exec(e);if(n){let t,i,s,r,a,c,p,g,_,m,u,L,y=n[1].trim();const R=y.length>1,k={type:"list",raw:"",ordered:R,start:R?+y.slice(0,-1):"",loose:!1,items:[]};y=R?`\\d{1,9}\\${y.slice(-1)}`:`\\${y}`,this.options.pedantic&&(y=R?y:"[*+-]");const b=new RegExp(`^( {0,3}${y})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;e&&(L=!1,!(!(n=b.exec(e))||this.rules.block.hr.test(e)));){if(t=n[0],e=e.substring(t.length),g=n[2].split(`
5
- `,1)[0],_=e.split(`
6
- `,1)[0],this.options.pedantic?(r=2,u=g.trimLeft()):(r=n[2].search(/[^ ]/),r=r>4?1:r,u=g.slice(r),r+=n[1].length),c=!1,!g&&/^ *$/.test(_)&&(t+=_+`
7
- `,e=e.substring(_.length+1),L=!0),!L){const I=new RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))`),z=new RegExp(`^ {0,${Math.min(3,r-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`);for(;e&&(m=e.split(`
8
- `,1)[0],g=m,this.options.pedantic&&(g=g.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(I.test(g)||z.test(e)));){if(g.search(/[^ ]/)>=r||!g.trim())u+=`
9
- `+g.slice(r);else if(!c)u+=`
10
- `+g;else break;!c&&!g.trim()&&(c=!0),t+=m+`
11
- `,e=e.substring(m.length+1)}}k.loose||(p?k.loose=!0:/\n *\n *$/.test(t)&&(p=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(u),i&&(s=i[0]!=="[ ] ",u=u.replace(/^\[[ xX]\] +/,""))),k.items.push({type:"list_item",raw:t,task:!!i,checked:s,loose:!1,text:u}),k.raw+=t}k.items[k.items.length-1].raw=t.trimRight(),k.items[k.items.length-1].text=u.trimRight(),k.raw=k.raw.trimRight();const E=k.items.length;for(a=0;a<E;a++){this.lexer.state.top=!1,k.items[a].tokens=this.lexer.blockTokens(k.items[a].text,[]);const I=k.items[a].tokens.filter(A=>A.type==="space"),z=I.every(A=>{const Z=A.raw.split("");let D=0;for(const ce of Z)if(ce===`
12
- `&&(D+=1),D>1)return!0;return!1});!k.loose&&I.length&&z&&(k.loose=!0,k.items[a].loose=!0)}return k}}html(e){const n=this.rules.block.html.exec(e);if(n){const t={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};return this.options.sanitize&&(t.type="paragraph",t.text=this.options.sanitizer?this.options.sanitizer(n[0]):w(n[0]),t.tokens=[],this.lexer.inline(t.text,t.tokens)),t}}def(e){const n=this.rules.block.def.exec(e);if(n){n[3]&&(n[3]=n[3].substring(1,n[3].length-1));const t=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:t,raw:n[0],href:n[2],title:n[3]}}}table(e){const n=this.rules.block.table.exec(e);if(n){const t={type:"table",header:Y(n[1]).map(i=>({text:i})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(`
13
- `):[]};if(t.header.length===t.align.length){t.raw=n[0];let i=t.align.length,s,r,a,c;for(s=0;s<i;s++)/^ *-+: *$/.test(t.align[s])?t.align[s]="right":/^ *:-+: *$/.test(t.align[s])?t.align[s]="center":/^ *:-+ *$/.test(t.align[s])?t.align[s]="left":t.align[s]=null;for(i=t.rows.length,s=0;s<i;s++)t.rows[s]=Y(t.rows[s],t.header.length).map(p=>({text:p}));for(i=t.header.length,r=0;r<i;r++)t.header[r].tokens=[],this.lexer.inline(t.header[r].text,t.header[r].tokens);for(i=t.rows.length,r=0;r<i;r++)for(c=t.rows[r],a=0;a<c.length;a++)c[a].tokens=[],this.lexer.inline(c[a].text,c[a].tokens);return t}}}lheading(e){const n=this.rules.block.lheading.exec(e);if(n){const t={type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:[]};return this.lexer.inline(t.text,t.tokens),t}}paragraph(e){const n=this.rules.block.paragraph.exec(e);if(n){const t={type:"paragraph",raw:n[0],text:n[1].charAt(n[1].length-1)===`
14
- `?n[1].slice(0,-1):n[1],tokens:[]};return this.lexer.inline(t.text,t.tokens),t}}text(e){const n=this.rules.block.text.exec(e);if(n){const t={type:"text",raw:n[0],text:n[0],tokens:[]};return this.lexer.inline(t.text,t.tokens),t}}escape(e){const n=this.rules.inline.escape.exec(e);if(n)return{type:"escape",raw:n[0],text:w(n[1])}}tag(e){const n=this.rules.inline.tag.exec(e);if(n)return!this.lexer.state.inLink&&/^<a /i.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):w(n[0]):n[0]}}link(e){const n=this.rules.inline.link.exec(e);if(n){const t=n[2].trim();if(!this.options.pedantic&&/^</.test(t)){if(!/>$/.test(t))return;const r=M(t.slice(0,-1),"\\");if((t.length-r.length)%2===0)return}else{const r=Ue(n[2],"()");if(r>-1){const c=(n[0].indexOf("!")===0?5:4)+n[1].length+r;n[2]=n[2].substring(0,r),n[0]=n[0].substring(0,c).trim(),n[3]=""}}let i=n[2],s="";if(this.options.pedantic){const r=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);r&&(i=r[1],s=r[3])}else s=n[3]?n[3].slice(1,-1):"";return i=i.trim(),/^</.test(i)&&(this.options.pedantic&&!/>$/.test(t)?i=i.slice(1):i=i.slice(1,-1)),te(n,{href:i&&i.replace(this.rules.inline._escapes,"$1"),title:s&&s.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(e,n){let t;if((t=this.rules.inline.reflink.exec(e))||(t=this.rules.inline.nolink.exec(e))){let i=(t[2]||t[1]).replace(/\s+/g," ");if(i=n[i.toLowerCase()],!i||!i.href){const s=t[0].charAt(0);return{type:"text",raw:s,text:s}}return te(t,i,t[0],this.lexer)}}emStrong(e,n,t=""){let i=this.rules.inline.emStrong.lDelim.exec(e);if(!i||i[3]&&t.match(/[\p{L}\p{N}]/u))return;const s=i[1]||i[2]||"";if(!s||s&&(t===""||this.rules.inline.punctuation.exec(t))){const r=i[0].length-1;let a,c,p=r,g=0;const _=i[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(_.lastIndex=0,n=n.slice(-1*e.length+r);(i=_.exec(n))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(c=a.length,i[3]||i[4]){p+=c;continue}else if((i[5]||i[6])&&r%3&&!((r+c)%3)){g+=c;continue}if(p-=c,p>0)continue;if(c=Math.min(c,c+p+g),Math.min(r,c)%2){const u=e.slice(1,r+i.index+c);return{type:"em",raw:e.slice(0,r+i.index+c+1),text:u,tokens:this.lexer.inlineTokens(u,[])}}const m=e.slice(2,r+i.index+c-1);return{type:"strong",raw:e.slice(0,r+i.index+c+1),text:m,tokens:this.lexer.inlineTokens(m,[])}}}}codespan(e){const n=this.rules.inline.code.exec(e);if(n){let t=n[2].replace(/\n/g," ");const i=/[^ ]/.test(t),s=/^ /.test(t)&&/ $/.test(t);return i&&s&&(t=t.substring(1,t.length-1)),t=w(t,!0),{type:"codespan",raw:n[0],text:t}}}br(e){const n=this.rules.inline.br.exec(e);if(n)return{type:"br",raw:n[0]}}del(e){const n=this.rules.inline.del.exec(e);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}autolink(e,n){const t=this.rules.inline.autolink.exec(e);if(t){let i,s;return t[2]==="@"?(i=w(this.options.mangle?n(t[1]):t[1]),s="mailto:"+i):(i=w(t[1]),s=i),{type:"link",raw:t[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}url(e,n){let t;if(t=this.rules.inline.url.exec(e)){let i,s;if(t[2]==="@")i=w(this.options.mangle?n(t[0]):t[0]),s="mailto:"+i;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])[0];while(r!==t[0]);i=w(t[0]),t[1]==="www."?s="http://"+i:s=i}return{type:"link",raw:t[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(e,n){const t=this.rules.inline.text.exec(e);if(t){let i;return this.lexer.state.inRawBlock?i=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):w(t[0]):t[0]:i=w(this.options.smartypants?n(t[0]):t[0]),{type:"text",raw:t[0],text:i}}}}const h={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:U,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};h._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;h._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;h.def=d(h.def).replace("label",h._label).replace("title",h._title).getRegex();h.bullet=/(?:[*+-]|\d{1,9}[.)])/;h.listItemStart=d(/^( *)(bull) */).replace("bull",h.bullet).getRegex();h.list=d(h.list).replace(/bull/g,h.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+h.def.source+")").getRegex();h._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";h._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;h.html=d(h.html,"i").replace("comment",h._comment).replace("tag",h._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();h.paragraph=d(h._paragraph).replace("hr",h.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",h._tag).getRegex();h.blockquote=d(h.blockquote).replace("paragraph",h.paragraph).getRegex();h.normal=$({},h);h.gfm=$({},h.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});h.gfm.table=d(h.gfm.table).replace("hr",h.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",h._tag).getRegex();h.gfm.paragraph=d(h._paragraph).replace("hr",h.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",h.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",h._tag).getRegex();h.pedantic=$({},h.normal,{html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",h._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:U,paragraph:d(h.normal._paragraph).replace("hr",h.hr).replace("heading",` *#{1,6} *[^
15
- ]`).replace("lheading",h.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const o={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:U,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:U,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};o._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";o.punctuation=d(o.punctuation).replace(/punctuation/g,o._punctuation).getRegex();o.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;o.escapedEmSt=/\\\*|\\_/g;o._comment=d(h._comment).replace("(?:-->|$)","-->").getRegex();o.emStrong.lDelim=d(o.emStrong.lDelim).replace(/punct/g,o._punctuation).getRegex();o.emStrong.rDelimAst=d(o.emStrong.rDelimAst,"g").replace(/punct/g,o._punctuation).getRegex();o.emStrong.rDelimUnd=d(o.emStrong.rDelimUnd,"g").replace(/punct/g,o._punctuation).getRegex();o._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;o._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;o._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;o.autolink=d(o.autolink).replace("scheme",o._scheme).replace("email",o._email).getRegex();o._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;o.tag=d(o.tag).replace("comment",o._comment).replace("attribute",o._attribute).getRegex();o._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;o._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;o._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;o.link=d(o.link).replace("label",o._label).replace("href",o._href).replace("title",o._title).getRegex();o.reflink=d(o.reflink).replace("label",o._label).replace("ref",h._label).getRegex();o.nolink=d(o.nolink).replace("ref",h._label).getRegex();o.reflinkSearch=d(o.reflinkSearch,"g").replace("reflink",o.reflink).replace("nolink",o.nolink).getRegex();o.normal=$({},o);o.pedantic=$({},o.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",o._label).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",o._label).getRegex()});o.gfm=$({},o.normal,{escape:d(o.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/});o.gfm.url=d(o.gfm.url,"i").replace("email",o.gfm._extended_email).getRegex();o.breaks=$({},o.gfm,{br:d(o.br).replace("{2,}","*").getRegex(),text:d(o.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function Qe(l){return l.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function ne(l){let e="",n,t;const i=l.length;for(n=0;n<i;n++)t=l.charCodeAt(n),Math.random()>.5&&(t="x"+t.toString(16)),e+="&#"+t+";";return e}class S{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||C,this.options.tokenizer=this.options.tokenizer||new N,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:h.normal,inline:o.normal};this.options.pedantic?(n.block=h.pedantic,n.inline=o.pedantic):this.options.gfm&&(n.block=h.gfm,this.options.breaks?n.inline=o.breaks:n.inline=o.gfm),this.tokenizer.rules=n}static get rules(){return{block:h,inline:o}}static lex(e,n){return new S(n).lex(e)}static lexInline(e,n){return new S(n).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,`
16
- `),this.blockTokens(e,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(e,n=[]){this.options.pedantic?e=e.replace(/\t/g," ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(a,c,p)=>c+" ".repeat(p.length));let t,i,s,r;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(t=a.call({lexer:this},e,n))?(e=e.substring(t.raw.length),n.push(t),!0):!1))){if(t=this.tokenizer.space(e)){e=e.substring(t.raw.length),t.raw.length===1&&n.length>0?n[n.length-1].raw+=`
17
- `:n.push(t);continue}if(t=this.tokenizer.code(e)){e=e.substring(t.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=`
18
- `+t.raw,i.text+=`
19
- `+t.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(t);continue}if(t=this.tokenizer.fences(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.heading(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.hr(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.blockquote(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.list(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.html(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.def(e)){e=e.substring(t.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=`
20
- `+t.raw,i.text+=`
21
- `+t.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[t.tag]||(this.tokens.links[t.tag]={href:t.href,title:t.title});continue}if(t=this.tokenizer.table(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.lheading(e)){e=e.substring(t.raw.length),n.push(t);continue}if(s=e,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const c=e.slice(1);let p;this.options.extensions.startBlock.forEach(function(g){p=g.call({lexer:this},c),typeof p=="number"&&p>=0&&(a=Math.min(a,p))}),a<1/0&&a>=0&&(s=e.substring(0,a+1))}if(this.state.top&&(t=this.tokenizer.paragraph(s))){i=n[n.length-1],r&&i.type==="paragraph"?(i.raw+=`
22
- `+t.raw,i.text+=`
23
- `+t.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(t),r=s.length!==e.length,e=e.substring(t.raw.length);continue}if(t=this.tokenizer.text(e)){e=e.substring(t.raw.length),i=n[n.length-1],i&&i.type==="text"?(i.raw+=`
24
- `+t.raw,i.text+=`
25
- `+t.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(t);continue}if(e){const a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,n}inline(e,n){this.inlineQueue.push({src:e,tokens:n})}inlineTokens(e,n=[]){let t,i,s,r=e,a,c,p;if(this.tokens.links){const g=Object.keys(this.tokens.links);if(g.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null;)g.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,a.index)+"["+ee("a",a[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(r))!=null;)r=r.slice(0,a.index)+"["+ee("a",a[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.escapedEmSt.exec(r))!=null;)r=r.slice(0,a.index)+"++"+r.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(c||(p=""),c=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(g=>(t=g.call({lexer:this},e,n))?(e=e.substring(t.raw.length),n.push(t),!0):!1))){if(t=this.tokenizer.escape(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.tag(e)){e=e.substring(t.raw.length),i=n[n.length-1],i&&t.type==="text"&&i.type==="text"?(i.raw+=t.raw,i.text+=t.text):n.push(t);continue}if(t=this.tokenizer.link(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(t.raw.length),i=n[n.length-1],i&&t.type==="text"&&i.type==="text"?(i.raw+=t.raw,i.text+=t.text):n.push(t);continue}if(t=this.tokenizer.emStrong(e,r,p)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.codespan(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.br(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.del(e)){e=e.substring(t.raw.length),n.push(t);continue}if(t=this.tokenizer.autolink(e,ne)){e=e.substring(t.raw.length),n.push(t);continue}if(!this.state.inLink&&(t=this.tokenizer.url(e,ne))){e=e.substring(t.raw.length),n.push(t);continue}if(s=e,this.options.extensions&&this.options.extensions.startInline){let g=1/0;const _=e.slice(1);let m;this.options.extensions.startInline.forEach(function(u){m=u.call({lexer:this},_),typeof m=="number"&&m>=0&&(g=Math.min(g,m))}),g<1/0&&g>=0&&(s=e.substring(0,g+1))}if(t=this.tokenizer.inlineText(s,Qe)){e=e.substring(t.raw.length),t.raw.slice(-1)!=="_"&&(p=t.raw.slice(-1)),c=!0,i=n[n.length-1],i&&i.type==="text"?(i.raw+=t.raw,i.text+=t.text):n.push(t);continue}if(e){const g="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(g);break}else throw new Error(g)}}return n}}class Q{constructor(e){this.options=e||C}code(e,n,t){const i=(n||"").match(/\S*/)[0];if(this.options.highlight){const s=this.options.highlight(e,i);s!=null&&s!==e&&(t=!0,e=s)}return e=e.replace(/\n$/,"")+`
26
- `,i?'<pre><code class="'+this.options.langPrefix+w(i,!0)+'">'+(t?e:w(e,!0))+`</code></pre>
27
- `:"<pre><code>"+(t?e:w(e,!0))+`</code></pre>
28
- `}blockquote(e){return`<blockquote>
29
- ${e}</blockquote>
30
- `}html(e){return e}heading(e,n,t,i){if(this.options.headerIds){const s=this.options.headerPrefix+i.slug(t);return`<h${n} id="${s}">${e}</h${n}>
31
- `}return`<h${n}>${e}</h${n}>
32
- `}hr(){return this.options.xhtml?`<hr/>
33
- `:`<hr>
34
- `}list(e,n,t){const i=n?"ol":"ul",s=n&&t!==1?' start="'+t+'"':"";return"<"+i+s+`>
35
- `+e+"</"+i+`>
36
- `}listitem(e){return`<li>${e}</li>
37
- `}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return`<p>${e}</p>
38
- `}table(e,n){return n&&(n=`<tbody>${n}</tbody>`),`<table>
39
- <thead>
40
- `+e+`</thead>
41
- `+n+`</table>
42
- `}tablerow(e){return`<tr>
43
- ${e}</tr>
44
- `}tablecell(e,n){const t=n.header?"th":"td";return(n.align?`<${t} align="${n.align}">`:`<${t}>`)+e+`</${t}>
45
- `}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return`<del>${e}</del>`}link(e,n,t){if(e=K(this.options.sanitize,this.options.baseUrl,e),e===null)return t;let i='<a href="'+w(e)+'"';return n&&(i+=' title="'+n+'"'),i+=">"+t+"</a>",i}image(e,n,t){if(e=K(this.options.sanitize,this.options.baseUrl,e),e===null)return t;let i=`<img src="${e}" alt="${t}"`;return n&&(i+=` title="${n}"`),i+=this.options.xhtml?"/>":">",i}text(e){return e}}class ae{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,n,t){return""+t}image(e,n,t){return""+t}br(){return""}}class oe{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,n){let t=e,i=0;if(this.seen.hasOwnProperty(t)){i=this.seen[e];do i++,t=e+"-"+i;while(this.seen.hasOwnProperty(t))}return n||(this.seen[e]=i,this.seen[t]=0),t}slug(e,n={}){const t=this.serialize(e);return this.getNextSafeSlug(t,n.dryrun)}}class T{constructor(e){this.options=e||C,this.options.renderer=this.options.renderer||new Q,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ae,this.slugger=new oe}static parse(e,n){return new T(n).parse(e)}static parseInline(e,n){return new T(n).parseInline(e)}parse(e,n=!0){let t="",i,s,r,a,c,p,g,_,m,u,L,y,R,k,b,E,I,z,A;const Z=e.length;for(i=0;i<Z;i++){if(u=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[u.type]&&(A=this.options.extensions.renderers[u.type].call({parser:this},u),A!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(u.type))){t+=A||"";continue}switch(u.type){case"space":continue;case"hr":{t+=this.renderer.hr();continue}case"heading":{t+=this.renderer.heading(this.parseInline(u.tokens),u.depth,re(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue}case"code":{t+=this.renderer.code(u.text,u.lang,u.escaped);continue}case"table":{for(_="",g="",a=u.header.length,s=0;s<a;s++)g+=this.renderer.tablecell(this.parseInline(u.header[s].tokens),{header:!0,align:u.align[s]});for(_+=this.renderer.tablerow(g),m="",a=u.rows.length,s=0;s<a;s++){for(p=u.rows[s],g="",c=p.length,r=0;r<c;r++)g+=this.renderer.tablecell(this.parseInline(p[r].tokens),{header:!1,align:u.align[r]});m+=this.renderer.tablerow(g)}t+=this.renderer.table(_,m);continue}case"blockquote":{m=this.parse(u.tokens),t+=this.renderer.blockquote(m);continue}case"list":{for(L=u.ordered,y=u.start,R=u.loose,a=u.items.length,m="",s=0;s<a;s++)b=u.items[s],E=b.checked,I=b.task,k="",b.task&&(z=this.renderer.checkbox(E),R?b.tokens.length>0&&b.tokens[0].type==="paragraph"?(b.tokens[0].text=z+" "+b.tokens[0].text,b.tokens[0].tokens&&b.tokens[0].tokens.length>0&&b.tokens[0].tokens[0].type==="text"&&(b.tokens[0].tokens[0].text=z+" "+b.tokens[0].tokens[0].text)):b.tokens.unshift({type:"text",text:z}):k+=z),k+=this.parse(b.tokens,R),m+=this.renderer.listitem(k,I,E);t+=this.renderer.list(m,L,y);continue}case"html":{t+=this.renderer.html(u.text);continue}case"paragraph":{t+=this.renderer.paragraph(this.parseInline(u.tokens));continue}case"text":{for(m=u.tokens?this.parseInline(u.tokens):u.text;i+1<Z&&e[i+1].type==="text";)u=e[++i],m+=`
46
- `+(u.tokens?this.parseInline(u.tokens):u.text);t+=n?this.renderer.paragraph(m):m;continue}default:{const D='Token with "'+u.type+'" type was not found.';if(this.options.silent){console.error(D);return}else throw new Error(D)}}}return t}parseInline(e,n){n=n||this.renderer;let t="",i,s,r;const a=e.length;for(i=0;i<a;i++){if(s=e[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]&&(r=this.options.extensions.renderers[s.type].call({parser:this},s),r!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type))){t+=r||"";continue}switch(s.type){case"escape":{t+=n.text(s.text);break}case"html":{t+=n.html(s.text);break}case"link":{t+=n.link(s.href,s.title,this.parseInline(s.tokens,n));break}case"image":{t+=n.image(s.href,s.title,s.text);break}case"strong":{t+=n.strong(this.parseInline(s.tokens,n));break}case"em":{t+=n.em(this.parseInline(s.tokens,n));break}case"codespan":{t+=n.codespan(s.text);break}case"br":{t+=n.br();break}case"del":{t+=n.del(this.parseInline(s.tokens,n));break}case"text":{t+=n.text(s.text);break}default:{const c='Token with "'+s.type+'" type was not found.';if(this.options.silent){console.error(c);return}else throw new Error(c)}}}return t}}function f(l,e,n){if(typeof l=="undefined"||l===null)throw new Error("marked(): input parameter is undefined or null");if(typeof l!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(l)+", string expected");if(typeof e=="function"&&(n=e,e=null),e=$({},f.defaults,e||{}),le(e),n){const t=e.highlight;let i;try{i=S.lex(l,e)}catch(a){return n(a)}const s=function(a){let c;if(!a)try{e.walkTokens&&f.walkTokens(i,e.walkTokens),c=T.parse(i,e)}catch(p){a=p}return e.highlight=t,a?n(a):n(null,c)};if(!t||t.length<3||(delete e.highlight,!i.length))return s();let r=0;f.walkTokens(i,function(a){a.type==="code"&&(r++,setTimeout(()=>{t(a.text,a.lang,function(c,p){if(c)return s(c);p!=null&&p!==a.text&&(a.text=p,a.escaped=!0),r--,r===0&&s()})},0))}),r===0&&s();return}try{const t=S.lex(l,e);return e.walkTokens&&f.walkTokens(t,e.walkTokens),T.parse(t,e)}catch(t){if(t.message+=`
47
- Please report this to https://github.com/markedjs/marked.`,e.silent)return"<p>An error occurred:</p><pre>"+w(t.message+"",!0)+"</pre>";throw t}}f.options=f.setOptions=function(l){return $(f.defaults,l),Re(f.defaults),f};f.getDefaults=se;f.defaults=C;f.use=function(...l){const e=$({},...l),n=f.defaults.extensions||{renderers:{},childTokens:{}};let t;l.forEach(i=>{if(i.extensions&&(t=!0,i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if(s.renderer){const r=n.renderers?n.renderers[s.name]:null;r?n.renderers[s.name]=function(...a){let c=s.renderer.apply(this,a);return c===!1&&(c=r.apply(this,a)),c}:n.renderers[s.name]=s.renderer}if(s.tokenizer){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[s.level]?n[s.level].unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}s.childTokens&&(n.childTokens[s.name]=s.childTokens)})),i.renderer){const s=f.defaults.renderer||new Q;for(const r in i.renderer){const a=s[r];s[r]=(...c)=>{let p=i.renderer[r].apply(s,c);return p===!1&&(p=a.apply(s,c)),p}}e.renderer=s}if(i.tokenizer){const s=f.defaults.tokenizer||new N;for(const r in i.tokenizer){const a=s[r];s[r]=(...c)=>{let p=i.tokenizer[r].apply(s,c);return p===!1&&(p=a.apply(s,c)),p}}e.tokenizer=s}if(i.walkTokens){const s=f.defaults.walkTokens;e.walkTokens=function(r){i.walkTokens.call(this,r),s&&s.call(this,r)}}t&&(e.extensions=n),f.setOptions(e)})};f.walkTokens=function(l,e){for(const n of l)switch(e.call(f,n),n.type){case"table":{for(const t of n.header)f.walkTokens(t.tokens,e);for(const t of n.rows)for(const i of t)f.walkTokens(i.tokens,e);break}case"list":{f.walkTokens(n.items,e);break}default:f.defaults.extensions&&f.defaults.extensions.childTokens&&f.defaults.extensions.childTokens[n.type]?f.defaults.extensions.childTokens[n.type].forEach(function(t){f.walkTokens(n[t],e)}):n.tokens&&f.walkTokens(n.tokens,e)}};f.parseInline=function(l,e){if(typeof l=="undefined"||l===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof l!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(l)+", string expected");e=$({},f.defaults,e||{}),le(e);try{const n=S.lexInline(l,e);return e.walkTokens&&f.walkTokens(n,e.walkTokens),T.parseInline(n,e)}catch(n){if(n.message+=`
48
- Please report this to https://github.com/markedjs/marked.`,e.silent)return"<p>An error occurred:</p><pre>"+w(n.message+"",!0)+"</pre>";throw n}};f.Parser=T;f.parser=T.parse;f.Renderer=Q;f.TextRenderer=ae;f.Lexer=S;f.lexer=S.lex;f.Tokenizer=N;f.Slugger=oe;f.parse=f;T.parse;S.lex;const Pe={class:"relative w-full h-auto min-h-screen overflow-auto flex flex-col"},Fe={class:"w-full h-auto grow lg:grid lg:grid-cols-[256px_1fr_256px]"},Ve={class:"w-full hidden lg:block"},He={class:"w-full flex flex-col justify-start items-center"},We={key:0,class:"grow w-full flex flex-col justify-center items-center"},Xe=x("i",{class:"fas fa-spinner animate-spin text-4xl z-10"},null,-1),Ge=[Xe],Je={key:1,class:"w-full h-10 flex flex-col justify-center items-center"},Ke=x("p",{class:"text-center leading-8 text-lg text-dark font-medium"}," Oops! No article found. ",-1),Ye={class:"text-center leading-8 text-lg text-dark font-medium"},et=x("button",{class:"w-full px-4 py-2 h-full text-base rounded-md bg-gray-400 shadow-inner text-light hover:bg-gray-500"},[x("i",{class:"fas fa-chevron-left mr-1"}),ie(" Back to blog list ")],-1),tt={key:2,class:"w-full p-4 md:p-0 mt-6 md:w-5/6 lg:max-w-6xl h-full flex flex-col justify-start items-center self-center"},nt=["src"],it={class:"w-auto max-w-6xl mt-4 md:mt-12 prose prose-indigo prose-xl md:prose-2xl flex flex-col justify-center items-center"},st={class:"leading-16"},rt={class:"w-full mt-8 mb-2 max-w-6xl px-2 flex flex-row items-center justify-center text-sm text-gray-900 font-semibold tracking-wide uppercase"},lt={class:"flex space-x-1 text-gray-500"},at={class:"text-gray-900"},ot=x("span",{"aria-hidden":"true"}," \xB7 ",-1),ct=["datetime"],ht=x("span",{"aria-hidden":"true"}," \xB7 ",-1),ut=["innerHTML"],pt={key:0,class:"w-full h-10 flex flex-col justify-center items-center"},ft=x("p",{class:"text-center leading-8 text-lg text-dark font-medium"}," Oops! No article found. ",-1),gt={class:"text-center leading-8 text-lg text-dark font-medium"},dt=x("button",{class:"w-full px-4 py-2 h-full text-base rounded-md bg-gray-400 shadow-inner text-light hover:bg-gray-500"},[x("i",{class:"fas fa-chevron-left mr-1"}),ie(" Back to blog list ")],-1),mt=x("div",{class:"w-full hidden lg:block"},null,-1),yt=de({__name:"Blog",setup(l){const e=me({isLoading:!0}),n=xe();return ke(async()=>{const t=n.params.blogSlug,r=(await(await fetch("/blog/data.json")).json()).find(p=>p.slug===t);if(!r)return;const c=await(await fetch(`/blog/${t}.md`)).text();e.blog=H(V({},r),{readingTime:G.calcReadingTime(c)}),e.parsedBlogHTML=f.parse(c),e.isLoading=!1,we({title:r.title,twitterTitle:r.title,twitterImage:G.absolutifyLink(r.featureImage)})}),(t,i)=>{const s=be("router-link");return v(),j("div",Pe,[B(ye),x("div",Fe,[x("div",Ve,[B($e)]),x("div",He,[e.isLoading?(v(),j("div",We,Ge)):e.blog===void 0?(v(),j("div",Je,[Ke,x("p",Ye,[B(s,{class:"mt-3 flex flex-row justify-center items-center",to:"/blog"},{default:W(()=>[et]),_:1})])])):(v(),j("div",tt,[x("img",{class:"hidden md:block w-auto max-w-full object-scale-down",src:e.blog.featureImage||""},null,8,nt),x("div",it,[x("h1",st,q(e.blog.title),1)]),x("div",rt,[x("div",lt,[x("span",at,q(e.blog.author),1),ot,x("time",{datetime:e.blog.publishedDate},q(new Date(e.blog.publishedDate||"").toLocaleString("default",{year:"numeric",month:"short",day:"numeric"})),9,ct),ht,x("span",null,q(e.blog.readingTime),1)])]),x("div",{class:"blog-content-container w-full max-w-5xl prose prose-indigo prose-xl md:prose-2xl",innerHTML:e.parsedBlogHTML},null,8,ut),!e.isLoading&&e.blog===void 0?(v(),j("div",pt,[ft,x("p",gt,[B(s,{class:"mt-3 flex flex-row justify-center items-center",to:"/blog"},{default:W(()=>[dt]),_:1})])])):X("",!0)])),e.isLoading?X("",!0):(v(),_e(ze,{key:3,class:"mt-32 mb-8"}))]),mt]),B(Se),B(Te)])}}});export{yt as default};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/Blog.d073ff16.css DELETED
@@ -1 +0,0 @@
1
- .blog-content-container>h1{display:none!important}
 
 
assets/BlogList.c2f8123e.js DELETED
@@ -1 +0,0 @@
1
- var k=Object.defineProperty,j=Object.defineProperties;var B=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var b=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var m=(o,s,l)=>s in o?k(o,s,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[s]=l,x=(o,s)=>{for(var l in s||(s={}))b.call(s,l)&&m(o,l,s[l]);if(_)for(var l of _(s))L.call(s,l)&&m(o,l,s[l]);return o},h=(o,s)=>j(o,B(s));import{u as $}from"./utils.4c76304e.js";import{c as D,d as C,a as F,F as N,e as S}from"./HighlightBlogSection.d9673e14.js";import{h as T,i as I,l as R,r as V,o as a,m as n,C as r,n as t,F as g,s as p,b as z,x as w,B as f,t as i}from"./vendor.deac2ab7.js";import"./index.c6d64976.js";const E={class:"relative w-full h-auto min-h-screen overflow-auto flex flex-col"},H={class:"w-full h-auto grow lg:grid lg:grid-cols-[256px_1fr_256px]"},M={class:"w-full hidden lg:block"},O={class:"w-full flex flex-col justify-start items-center"},q={class:"w-full grow px-3 md:w-5/6 lg:max-w-6xl min-h-full h-auto flex flex-col justify-start items-center self-center"},A=t("p",{class:"mt-12 p-8 text-4xl font-bold text-dark",style:{"font-family":"'xkcd'"}}," Star History Blog ",-1),G={key:0,class:"grow w-full flex flex-col justify-center items-center"},J=t("i",{class:"fas fa-spinner animate-spin text-4xl z-10"},null,-1),K=[J],P={key:1,class:"w-full h-10 flex flex-col justify-center items-center"},Q=t("p",{class:"text-center leading-8 text-lg text-dark font-medium"}," Oops! No article found. ",-1),U=[Q],W={key:2,class:"w-full flex flex-col justify-start items-center"},X={class:"w-full mt-8 flex flex-col justify-start items-start"},Y=["src"],Z={class:"w-full p-6 py-4 flex flex-col justify-start"},tt={class:"mt-2 w-full flex flex-col justify-start items-start"},et={class:"text-xl font-semibold text-dark"},st={class:"mt-3 text-base text-gray-500 line-clamp-3"},lt={class:"mt-3 flex flex-row justify-start items-center"},ot={class:"flex space-x-1 text-sm text-gray-500"},at={class:"text-sm font-medium text-gray-900"},it=t("span",{"aria-hidden":"true"}," \xB7 ",-1),nt=["datetime"],ct=t("span",{"aria-hidden":"true"}," \xB7 ",-1),rt={class:"w-full flex flex-col justify-start items-start grow mb-16"},dt={class:"p-6 pr-4 w-full flex flex-col justify-start items-start"},ft={class:"w-full flex flex-col justify-start items-start"},ut={class:"text-xl font-semibold text-dark"},_t={class:"w-full mt-3 text-base text-gray-500 break-words line-clamp-3"},mt=t("div",{class:"grow"},null,-1),xt={class:"flex flex-row justify-start items-center"},ht={class:"flex ml-2 space-x-1 text-sm text-gray-500"},gt={class:"text-sm ml-2 font-medium text-gray-900"},pt=t("span",{"aria-hidden":"true"}," \xB7 ",-1),wt=["datetime"],yt=t("span",{"aria-hidden":"true"}," \xB7 ",-1),vt=["src"],kt=t("div",{class:"w-full hidden lg:block"},null,-1),Ct=T({__name:"BlogList",setup(o){const s=I({isLoading:!0,blogs:[],featuredBlogs:[]});return R(async()=>{const u=await(await fetch("/blog/data.json")).json(),c=[];for(const d of u){const v=await(await fetch(`/blog/${d.slug}.md`)).text();c.push(h(x({},d),{readingTime:$.calcReadingTime(v)}))}const e=c.filter(d=>d.featured),y=c.filter(d=>!d.featured);s.featuredBlogs=e,s.blogs=y,s.isLoading=!1}),(l,u)=>{const c=V("router-link");return a(),n("div",E,[r(D),t("div",H,[t("div",M,[r(C)]),t("div",O,[t("section",q,[A,s.isLoading?(a(),n("div",G,K)):s.featuredBlogs.length+s.blogs.length===0?(a(),n("div",P,U)):(a(),n("div",W,[t("div",X,[(a(!0),n(g,null,p(s.featuredBlogs,e=>(a(),n("div",{key:e.slug,class:"w-full h-auto flex flex-col border rounded-md mb-6 shadow-lg"},[r(c,{to:{path:`/blog/${e.slug}`}},{default:f(()=>[t("img",{class:"h-60 w-full flex-shrink-0 object-cover rounded-t-md",src:e.featureImage},null,8,Y)]),_:2},1032,["to"]),t("div",Z,[t("div",tt,[r(c,{to:{path:`/blog/${e.slug}`}},{default:f(()=>[t("p",et,i(e.title),1)]),_:2},1032,["to"]),t("p",st,i(e.excerpt),1)]),t("div",lt,[t("p",ot,[t("span",at,i(e.author),1),it,t("time",{datetime:e.publishedDate},i(new Date(e.publishedDate).toLocaleString("default",{year:"numeric",month:"short",day:"numeric"})),9,nt),ct,t("span",null,i(e.readingTime),1)])])])]))),128))]),t("div",rt,[(a(!0),n(g,null,p(s.blogs,e=>(a(),n("div",{key:e.slug,class:"w-full h-auto flex flex-col-reverse justify-start lg:flex-row lg:justify-between border rounded-md mb-4"},[t("div",dt,[t("div",ft,[r(c,{to:{path:`/blog/${e.slug}`}},{default:f(()=>[t("p",ut,i(e.title),1)]),_:2},1032,["to"]),t("p",_t,i(e.excerpt),1)]),mt,t("div",xt,[t("p",ht,[t("span",gt,i(e.author),1),pt,t("time",{datetime:e.publishedDate},i(new Date(e.publishedDate).toLocaleString("default",{year:"numeric",month:"short",day:"numeric"})),9,wt),yt,t("span",null,i(e.readingTime),1)])])]),e.featureImage?(a(),n("img",{key:0,class:"shrink-0 w-full h-60 object-cover rounded-t-md lg:w-auto lg:h-auto lg:max-h-full lg:max-w-xs lg:m-2 lg:rounded-md",src:e.featureImage},null,8,vt)):w("",!0)]))),128))])]))]),s.isLoading?w("",!0):(a(),z(F,{key:0,class:"mb-8"}))]),kt]),r(N),r(S)])}}});export{Ct as default};
 
 
assets/DynamicPathMatcher.29f46833.js DELETED
@@ -1 +0,0 @@
1
- import{h as s,L as o,J as r,l as n,o as p,m as c}from"./vendor.deac2ab7.js";const i=s({__name:"DynamicPathMatcher",setup(h){const e=o(),a=r();return n(()=>{const t=a.params.pathList;Array.isArray(t)&&t.length>=2?e.push({path:"/",hash:`#${t[0]}/${t[1]}`}):e.push({path:"/404"})}),(t,u)=>(p(),c("p"))}});export{i as default};
 
 
assets/EmbedWebSite.e11e9c3e.js DELETED
@@ -1 +0,0 @@
1
- import{b as x,d as y,_ as D,t as k,M as d}from"./StarXYChart.f2d40091.js";import{h as v,i as M,j as R,k as B,l as S,o as h,m as p,x as m,b as C,u as $,n as _}from"./vendor.deac2ab7.js";import"./utils.4c76304e.js";const j=["href"],E={key:0,class:"absolute w-full h-full flex justify-center items-center z-10 top-0"},F=_("div",{class:"absolute w-full h-full blur-md bg-white bg-opacity-80"},null,-1),T=_("i",{class:"fas fa-spinner animate-spin text-4xl z-10"},null,-1),W=[F,T],I=v({__name:"EmbedWebSite",setup(H){const g=a=>{k.warn(a,-1)},t=M({chartData:void 0,chartMode:"Date",isFetching:!0,repos:[]}),r=R(null),b=B(()=>`https://star-history.com/#${t.repos.join("&")}&${t.chartMode}`);S(()=>{var f;if(!r.value)return;(f=document.body.querySelector("#app"))==null||f.setAttribute("style","position:absolute;width:100%;height:100%;top:0;left:0;background-color:white;display:flex;flex-direction:column;justify-content:center;align-items:center;");const a=r.value.getBoundingClientRect();let s=Math.min(a.width,a.height*1.5);s<d&&(s=d);const n=s/1.5;r.value.style.width=`${s}px`,r.value.style.height=`${n}px`;const o=window.location.search.slice(1),c=window.location.hash.slice(1).split("&").filter(e=>Boolean(e)),l=[];let u="";for(const e of o.split("&"))if(e.startsWith("secret=")){u=atob(e.slice(7));break}for(const e of c){if(e==="Date"||e==="Timeline"){t.chartMode=e;continue}l.includes(e)||l.push(e)}t.repos=l,w(l,u)});const w=async(a,s)=>{t.isFetching=!0;const n=[];try{const o=await x(a,s);for(const i of o)n.push(i)}catch(o){g(o.message);return}t.isFetching=!1,n.length===0?t.chartData=void 0:(n.sort((o,i)=>Math.max(...i.starRecords.map(c=>c.count))-Math.max(...o.starRecords.map(c=>c.count))),t.chartData=y(n,t.chartMode))};return(a,s)=>(h(),p("a",{ref_key:"containerElRef",ref:r,class:"relative w-full h-full min-w-600px min-h-400px p-4 pt-0 flex flex-col bg-white",href:$(b),target:"_blank"},[t.isFetching?(h(),p("div",E,W)):m("",!0),t.chartData?(h(),C(D,{key:1,classname:"w-full h-auto",data:t.chartData,"chart-mode":t.chartMode},null,8,["data","chart-mode"])):m("",!0)],8,j))}});export{I as default};
 
 
assets/HighlightBlogSection.d9673e14.js DELETED
@@ -1 +0,0 @@
1
- import{_ as B,u as j,s as M}from"./index.c6d64976.js";import{o,m as a,D as A,h as f,j as H,l as C,n as t,t as n,E as L,G as z,p as m,i as v,k as D,b as T,B as _,u as x,q as I,v as G,A as c,r as q,C as b,x as F,F as h,s as y,H as E}from"./vendor.deac2ab7.js";import{a as V,u as g,l as N}from"./utils.4c76304e.js";var O="/assets/sqlchat.fc20a128.webp",P="/assets/dbcost.486cae2c.webp";const Q={},R={class:"relative w-full shrink-0 h-auto mt-6 flex flex-col justify-end items-center"},U=A('<div class="w-full py-2 px-3 md:w-5/6 lg:max-w-7xl flex flex-row flex-wrap justify-between items-center text-neutral-700 border-t"><div class="text-sm leading-8 flex flex-row flex-wrap justify-start items-center"><h1 class="h-full text-gray-600"> The missing GitHub star history graph </h1><a class="h-full flex flex-row justify-center items-center ml-3 text-lg hover:opacity-80" href="https://twitter.com/StarHistoryHQ" target="_blank"><i class="fab fa-twitter"></i></a><a class="h-full flex flex-row justify-center items-center mx-3 text-lg hover:opacity-80" href="mailto:star@bytebase.com" target="_blank"><i class="fas fa-envelope"></i></a><a class="h-full flex flex-row justify-center items-center mr-3 text-lg hover:opacity-80" href="https://github.com/star-history/star-history" target="_blank"><i class="fab fa-github"></i></a></div><div class="flex flex-row flex-wrap items-center space-x-4"><div class="flex flex-row text-sm leading-8 underline text-blue-700 hover:opacity-80"><img class="h-6 mt-1 mr-2" src="'+O+'"><a href="https://sqlchat.ai" target="_blank"> SQL Chat </a></div><div class="flex flex-row text-sm leading-8 underline text-blue-700 hover:opacity-80"><img class="h-6 mt-1 mr-2" src="'+P+'"><a href="https://dbcost.com" target="_blank">DB Cost</a></div></div><div class="text-xs leading-8 flex flex-row flex-nowrap justify-end items-center"><span class="text-gray-600"> Maintained by <a class="text-blue-500 font-bold hover:opacity-80" href="https://bytebase.com" target="_blank">Bytebase</a>, originally built by <a class="bg-blue-400 text-white p-1 pl-2 pr-2 rounded-l-2xl rounded-r-2xl hover:opacity-80" href="https://twitter.com/tim_qian" target="_blank"> @tim_qian </a></span></div></div>',1),Y=[U];function J(i,l){return o(),a("div",R,Y)}var Jt=B(Q,[["render",J]]),W="/icon.png";const K={class:"border rounded flex flex-row justify-start items-center text-black text-xs bg-white shadow-inner hover:opacity-80",href:"https://github.com/star-history/star-history",target:"_blank","aria-label":"Star star-history/star-history on GitHub"},X=t("span",{class:"pr-1 pl-2 h-full flex flex-row justify-center items-center bg-gray-100 border-r font-medium"},[t("i",{class:"fab fa-github text-base mr-1 -mt-px"}),t("span",{class:"mt-px"},"Star")],-1),Z={class:"h-full block px-2 mt-px font-medium"},tt={key:0},et=t("i",{class:"fa fa-spinner animate-spin opacity-90 px-2"},null,-1),st=[et],ot={key:1},at=f({__name:"GitHubStarButton",setup(i){const l=H(0),s=async()=>{const{data:e}=await V.get("https://api.github.com/repos/star-history/star-history",{headers:{Accept:"application/vnd.github.v3.star+json",Authorization:""}});return e.stargazers_count};return C(async()=>{l.value=await s()}),(e,u)=>(o(),a("a",K,[X,t("div",Z,[l.value===0?(o(),a("span",tt,st)):(o(),a("span",ot,n(l.value),1))])]))}}),lt=f({__name:"Dialog",props:{classname:{type:String,default:""}},setup(i){const l=i;return C(()=>{document.body.classList.add("overflow-hidden")}),L(()=>{document.body.classList.remove("overflow-hidden")}),(s,e)=>(o(),a("div",{class:m(["fixed w-full px-3 md:px-0 h-full flex flex-col justify-center items-center bg-black bg-opacity-60 z-100 top-0 left-0",l.classname])},[z(s.$slots,"default")],2))}}),rt={class:"w-160 max-w-full h-auto flex flex-col justify-start items-start bg-white rounded-md"},nt={class:"w-full flex flex-row justify-between items-center p-4 pr-5 bg-gray-100 rounded-t-lg"},it={class:"text-2xl"},ct={class:"w-full flex flex-col justify-start items-start p-4 pr-5 text-base"},ht=t("p",null,[c(" Star-history use GitHub API to retrieve repository metadata. You may see this page because you have hit the "),t("a",{class:"text-blue-500",href:"https://docs.github.com/en/rest/overview/resources-in-the-rest-api",target:"_blank"}," GitHub API rate limit "),c(". ")],-1),ut=t("br",null,null,-1),dt=t("p",null,[c(" Star-history will need your "),t("a",{class:"text-blue-500",href:"https://github.com/settings/tokens",target:"_blank"}," personal access token "),c("to unlimit it. If you don't already have one, "),t("a",{class:"text-blue-500",href:"https://github.com/settings/tokens/new",target:"_blank"}," create one "),c(" , and paste it into the textbox below (no scope to your personal data is needed) ")],-1),ft=t("br",null,null,-1),pt=t("p",{class:"font-bold"}," Access Token (will be stored in your local storage) ",-1),mt=f({__name:"TokenSettingDialog",emits:["close"],setup(i,{emit:l}){const s=j(),e=v({token:s.token}),u=D(()=>s.token),r=()=>{s.setToken(e.token),M.set({accessTokenCache:e.token}),l("close")},d=()=>{l("close")};return($,w)=>(o(),T(lt,null,{default:_(()=>[t("div",rt,[t("header",nt,[t("span",it,n(x(u)?"Edit":"Add")+" GitHub Access Token",1),t("i",{class:"fas fa-times-circle text-xl text-gray-400 cursor-pointer hover:text-gray-500",onClick:d})]),t("main",ct,[ht,ut,dt,ft,pt,I(t("input",{"onUpdate:modelValue":w[0]||(w[0]=p=>e.token=p),class:"w-full outline-none border mt-2 shadow-inner p-2 rounded-md focus:shadow-focus",type:"text"},null,512),[[G,e.token]])]),t("footer",{class:"w-full flex flex-row justify-end bg-gray-100 items-center p-4 pr-5 border-t rounded-b-md"},[t("button",{class:"pl-4 pr-4 h-10 rounded-md bg-green-500 shadow-inner text-light text-base hover:bg-green-600",onClick:r}," Save ")])])]),_:1}))}}),xt={class:"w-full h-14 shrink-0 flex flex-row justify-center items-center bg-dark text-light"},bt={class:"w-full md:max-w-5xl lg:max-w-7xl h-full flex flex-row justify-between items-center px-0 sm:px-4"},_t={class:"h-full flex flex-row justify-start items-center"},yt=t("img",{class:"w-7 h-auto",src:W},null,-1),gt=t("span",{class:"text-light font-semibold"},"Blog",-1),wt=t("a",{class:"h-full flex flex-row justify-center items-center px-4 hover:bg-zinc-800",href:"https://twitter.com/StarHistoryHQ",target:"_blank"},[t("span",{class:"hidden lg:flex text-light font-semibold pr-3"},"Follow us on"),t("i",{class:"fab fa-twitter text-2xl text-blue-300"})],-1),kt={class:"hidden h-full md:flex flex-row justify-start items-center"},vt={class:"h-full hidden md:flex flex-row justify-end items-center"},$t={class:"h-full flex md:hidden flex-row justify-end items-center"},St=t("span",{class:"h-12 px-3 w-full flex flex-row justify-start items-center"},[t("a",{class:"github-button -mt-1",href:"https://github.com/star-history/star-history","data-show-count":"true","aria-label":"Star star-history/star-history on GitHub",target:"_blank"}," Star ")],-1),Wt=f({__name:"Header",setup(i){const l=j(),s=v({showDropMenu:!1,showSetTokenDialog:!1}),e=D(()=>l.token),u=()=>{s.showSetTokenDialog=!0},r=()=>{s.showSetTokenDialog=!1},d=()=>{s.showDropMenu=!s.showDropMenu};return($,w)=>{const p=q("router-link");return o(),a(h,null,[t("header",xt,[t("div",bt,[t("div",_t,[b(p,{class:"h-full flex flex-row justify-center items-center px-4 hover:bg-zinc-800",to:"/"},{default:_(()=>[yt]),_:1}),b(p,{class:"h-full flex flex-row justify-center items-center px-4 hover:bg-zinc-800",to:"/blog"},{default:_(()=>[gt]),_:1}),wt]),t("div",kt,[b(p,{class:"h-full flex flex-row justify-center items-center px-4 hover:bg-zinc-800",to:"/blog/how-to-use-github-star-history"},{default:_(()=>[c(" \u{1F4D5} How to use this site ")]),_:1})]),t("div",vt,[t("span",{class:"h-full flex flex-row justify-center items-center cursor-pointer font-semibold mr-2 px-3 hover:bg-zinc-800",onClick:u},n(x(e)?"Edit":"Add")+" Access Token ",1),b(at)]),t("div",$t,[t("span",{class:"relative h-full w-10 px-3 flex flex-row justify-center items-center cursor-pointer font-semibold text-light hover:bg-zinc-800",onClick:d},[t("span",{class:m(["w-4 transition-all h-px bg-light absolute top-1/2",s.showDropMenu?"w-6 rotate-45":"-mt-1"])},null,2),t("span",{class:m(["w-4 transition-all h-px bg-light absolute top-1/2",s.showDropMenu?"hidden":""])},null,2),t("span",{class:m(["w-4 transition-all h-px bg-light absolute top-1/2",s.showDropMenu?"w-6 -rotate-45":"mt-1"])},null,2)])])])]),t("div",{class:m(["`w-full h-auto py-2 flex md:hidden flex-col justify-start items-start shadow-lg border-b",s.showDropMenu?"flex":"hidden"])},[b(p,{class:"h-12 px-3 w-full flex flex-row justify-start items-center cursor-pointer font-semibold text-dark mr-2 hover:bg-gray-100 hover:text-blue-500",to:"/blog/how-to-use-github-star-history"},{default:_(()=>[c(" \u{1F4D5} How to use this site ")]),_:1}),t("span",{class:"h-12 px-3 w-full flex flex-row justify-start items-center cursor-pointer font-semibold text-dark mr-2 hover:bg-gray-100 hover:text-blue-500",onClick:u},n(x(e)?"Edit":"Add")+" Access Token ",1),St],2),s.showSetTokenDialog?(o(),T(mt,{key:0,onClose:r})):F("",!0)],64)}}}),S=[{name:"Bytebase",logo:g.absolutifyLink("/sponsors/bytebase/logo.webp"),landingImage:g.absolutifyLink("/sponsors/bytebase/landing.webp"),link:"https://bytebase.com?source=star-history",slogan:"Database DevOps and CI/CD for MySQL, PG, ClickHouse, Snowflake, TiDB, MongoDB and Spanner"},{name:"Ockam",logo:g.absolutifyLink("/sponsors/ockam/logo.webp"),landingImage:g.absolutifyLink("/sponsors/ockam/landing.webp"),link:"https://github.com/build-trust/ockam?utm_source=starhistory",slogan:"End-to-end encryption and authentication for data-in-motion between distributed applications"}],k=N.exports.sampleSize(S,S.length),jt={class:"w-full px-3 max-w-4xl mx-auto flex lg:hidden flex-col justify-center items-center"},Ct={class:"relative flex flex-row justify-center items-center mb-2 font-semibold"},Dt=["href"],Tt=t("span",{class:"last:hidden mx-1"},"&",-1),Bt={class:"mb-2 text-sm sm:text-base text-gray-600"},Mt=["href"],At=["src","alt"],Kt=f({__name:"SponsorView",setup(i){return(l,s)=>(o(),a("div",jt,[t("p",Ct,[t("span",null,[c(" Sponsored by "),(o(!0),a(h,null,y(x(k),e=>(o(),a(h,{key:e.name},[t("a",{class:"text-blue-500 hover:opacity-80 underline",href:e.link,target:"_blank"},n(e.name),9,Dt),Tt],64))),128))])]),(o(!0),a(h,null,y(x(k),e=>(o(),a("div",{key:e.name,class:"w-full mb-6 flex flex-col justify-center items-center"},[t("p",Bt,n(e.slogan),1),t("a",{class:"hover:opacity-80",href:e.link,target:"_blank"},[t("img",{class:"w-auto max-w-full",src:e.landingImage,alt:e.name},null,8,At)],8,Mt)]))),128))]))}}),Ht={class:"w-full flex flex-row justify-between items-center mb-2 -mt-2"},Lt=t("span",{class:"text-xs font-medium text-gray-400"},"SPONSORS",-1),zt=["onClick"],It=["href"],Gt=["src","alt"],qt={class:"text-xs mt-2"},Ft=t("a",{href:"mailto:star@bytebase.com?subject=I'm interested in sponsoring star-history.com",target:"_blank",class:"w-full p-2 text-center bg-gray-50 text-xs leading-6 text-gray-400 rounded hover:underline hover:text-blue-600"},"Your logo",-1),Xt=f({__name:"SponsorStaticBanner",setup(i){const l=v({hide:!1}),s=()=>{l.hide=!0};return(e,u)=>(o(),a("div",{class:m(["fixed right-0 top-32 hidden lg:flex flex-col justify-start items-start transition-all bg-white w-48 xl:w-64 shadow p-4 rounded z-50",l.hide&&"!hidden"])},[t("div",Ht,[Lt,t("i",{class:"fas fa-times text-base text-gray-400 cursor-pointer hover:text-gray-500",onClick:E(s,["prevent"])},null,8,zt)]),(o(!0),a(h,null,y(x(k),r=>(o(),a("a",{key:r.name,href:r.link,class:"bg-gray-50 p-2 rounded w-full flex flex-col justify-center items-center mb-2 text-zinc-600 hover:opacity-80 hover:text-blue-600 hover:underline",target:"_blank"},[t("img",{class:"w-auto max-w-full",src:r.logo,alt:r.name},null,8,Gt),t("span",qt,n(r.slogan),1)],8,It))),128)),Ft],2))}}),Et={class:"flex flex-col justify-start items-start w-full mt-12 p-4 pl-8"},Vt={class:"w-full flex flex-row justify-between items-center my-2"},Nt={class:"text-sm font-medium text-gray-400 leading-6"},Ot={class:"list-disc list-inside"},Pt=["onClick"],Qt={class:"inline -ml-2 text-sm text-blue-700 hover:underline"},Zt=f({__name:"HighlightBlogSection",setup(i){const l=[{title:"Best of 2022",linkList:[{title:"Data, Infra & DevTools",path:"https://star-history.com/blog/star-history-yearly-pick-2022-data-infra-devtools"},{title:"Platform Engineering",path:"https://star-history.com/blog/star-history-open-source-2022-platform-engineering"},{title:"Open-Source Alternatives",path:"https://star-history.com/blog/star-history-open-source-2022-open-source-alternatives"},{title:"Front-end",path:"https://star-history.com/blog/star-history-yearly-pick-2022-frontend"}]},{title:"Monthly Pick",linkList:[{title:"2023 Apr",path:"https://star-history.com/blog/star-history-monthly-pick-202304"},{title:"2023 Mar (ChatGPT Edition)",path:"https://star-history.com/blog/star-history-monthly-pick-202303"},{title:"2023 Feb",path:"https://star-history.com/blog/star-history-monthly-pick-202302"},{title:"2023 Jan",path:"https://star-history.com/blog/star-history-monthly-pick-202301"},{title:"2022 Dec",path:"https://star-history.com/blog/star-history-monthly-pick-202212"}]},{title:"Collections",linkList:[{title:"AI Model",path:"https://star-history.com/#CompVis/stable-diffusion&lllyasviel/ControlNet&openai/whisper&facebookresearch/llama&databrickslabs/dolly&tatsu-lab/stanford_alpaca&nomic-ai/gpt4all&Stability-AI/StableLM"},{title:"Database DevOps",path:"https://star-history.com/#bytebase/bytebase&liquibase/liquibase&flyway/flyway"},{title:"Workflow Orchestration",path:"https://star-history.com/#temporalio/temporal&apache/dolphinscheduler&apache/airflow&quartz-scheduler/quartz"}]}],s=e=>{window.open(e,"_blank")};return(e,u)=>(o(),a("div",Et,[(o(),a(h,null,y(l,r=>(o(),a(h,{key:r.title},[t("div",Vt,[t("h3",Nt,n(r.title),1)]),t("ul",Ot,[(o(!0),a(h,null,y(r.linkList,d=>(o(),a("li",{key:d.title,class:"mb-2 leading-3 cursor-pointer",onClick:$=>s(d.path)},[t("span",Qt,n(d.title),1)],8,Pt))),128))])],64))),64))]))}});export{Jt as F,lt as _,Kt as a,mt as b,Wt as c,Zt as d,Xt as e};
 
 
assets/Home.3c376c2f.css DELETED
@@ -1 +0,0 @@
1
- input[data-v-30d41058]::-moz-placeholder{color:#c2c2c2}input[data-v-30d41058]::placeholder{color:#c2c2c2}
 
 
assets/Home.93068458.js DELETED
@@ -1,9 +0,0 @@
1
- import{_ as K,a as Z,b as ee,c as te,d as oe,F as se,e as ae}from"./HighlightBlogSection.d9673e14.js";import{h as G,i as N,j as W,k as R,l as O,w as z,o as d,m as x,n as e,p as U,q as Q,v as Y,u as k,F as J,s as re,t as T,x as $,y as ne,z as le,A as m,b as j,B as X,C as M}from"./vendor.deac2ab7.js";import{l as ie,u as D}from"./utils.4c76304e.js";import{t as _,G as L,g as ce,c as de,_ as he,a as pe}from"./StarXYChart.f2d40091.js";import{_ as ue,u as B}from"./index.c6d64976.js";const F=C=>(ne("data-v-30d41058"),C=C(),le(),C),fe={class:"w-full px-3 shrink-0 flex flex-col justify-start items-center"},me=F(()=>e("span",{class:"px-2 -mt-px leading-7 rounded mr-2 text-sm bg-green-100 text-green-600 font-medium"},"What's new",-1)),ge=F(()=>e("a",{class:"text-gray-700 hover:underline",href:"https://www.bytebase.com/blog/bytebase-2-0/"},[m(" Bytebase 2.0 - the GitLab for Database DevOps "),e("i",{class:"fas fa-chevron-right mr-1 text-gray-500 text-sm"})],-1)),_e=[me,ge],be={class:"w-auto sm:w-full grow max-w-3xl 2xl:max-w-4xl mt-4 flex flex-row justify-center items-center shadow-inner border border-solid border-dark rounded"},xe=["placeholder"],we={class:"w-full mt-4 flex flex-row justify-center items-center"},ye={key:0,class:"w-full max-w-2xl flex flex-row flex-wrap justify-center items-center"},ke=["href"],ve=F(()=>e("i",{class:"fas fa-external-link-alt mr-2 fa-sm text-gray-400 hover:text-green-600"},null,-1)),Ce=[ve],$e=["onClick"],De=["onClick"],Ee=F(()=>e("span",{class:"w-3 rotate-45 h-px bg-black absolute top-1/2"},null,-1)),Re=F(()=>e("span",{class:"w-3 -rotate-45 h-px bg-black absolute top-1/2"},null,-1)),Se=[Ee,Re],Ie=G({__name:"RepoInputer",setup(C){const o=B(),t=N({repo:"",repos:[]}),l=W(null),y=R(()=>o.isFetching);O(async()=>{const a=await(await fetch("/blog/data.json")).json();for(const r of a)if(r.featured){t.latestBlog=r;break}t.repos=o.repos.map(r=>({name:r,visible:!0}))}),z(()=>[o.repos,o.chartMode],()=>{for(const a of t.repos)a.visible&&!o.repos.includes(a.name)&&t.repos.splice(t.repos.indexOf(a),1);let n="";o.repos.length>0&&(n=`#${o.repos.join("&")}&${o.chartMode}`),window.location.hash=n});const w=()=>{if(o.isFetching)return;let n=t.repo;if(n===""&&o.repos.length===0&&(n="star-history/star-history"),n===""){_.warn("Please input the repo name");return}for(const a of n.split(",")){let r="";if(L.test(a)&&(r=a.match(L)[1]),r=ie.exports.head(a.split("#")),r==="")continue;if(L.test(r)){const s=L.exec(r);s&&s[1]&&(r=s[1])}const p=r.split("/");p.length===1?r=`${p[0]}/${r}`:p.length>=2&&(r=`${p[0]}/${p[1]}`);for(const s of t.repos)if(s.name===r){s.visible?_.warn(`Repo ${r} is already on the chart`):(s.visible=!0,o.setRepos(t.repos.filter(u=>u.visible).map(u=>u.name))),t.repo="";return}t.repos.push({name:r,visible:!0}),o.addRepo(r)}t.repo=""},v=n=>{for(const a of t.repos)if(a.name===n){a.visible=!a.visible;break}o.setRepos(t.repos.filter(a=>a.visible).map(a=>a.name))},E=n=>{for(const a of t.repos)if(a.name===n){t.repos.splice(t.repos.indexOf(a),1);break}o.delRepo(n)},S=()=>{t.repos=[],o.setRepos([])},A=async n=>{if(!l.value)return;const a=l.value;if(n.clipboardData){n.preventDefault();const r=n.clipboardData.getData("text").replace(/(?:\r\n|\r|\n| )/g,""),p=t.repo,s=p.slice(0,Math.min(a.selectionStart||0,a.selectionEnd||0)),u=p.slice(Math.max(a.selectionStart||0,a.selectionEnd||0));t.repo=`${s}${r}${u}`}},V=n=>{n.key==="Enter"&&(n.preventDefault(),w())};return(n,a)=>{var r;return d(),x("div",fe,[e("div",{class:U(["w-auto mx-auto mt-6 mb-2 flex flex-row justify-center items-center flex-wrap",(r=t.latestBlog)!=null?r:"invisible"])},_e,2),e("div",be,[Q(e("input",{ref_key:"inputElRef",ref:l,"onUpdate:modelValue":a[0]||(a[0]=p=>t.repo=p),class:"w-auto h-9 px-2 grow shrink text-dark outline-none rounded rounded-r-none placeholder:text-gray-300 focus:shadow-focus",type:"text",placeholder:t.repos.length>0?"...add next repository":"star-history or star-history/star-history or https://github.com/star-history/star-history",onPaste:A,onKeydown:V},null,40,xe),[[Y,t.repo]]),e("button",{class:U(["h-9 pl-4 pr-4 whitespace-nowrap w-auto text-dark border-l border-dark hover:bg-dark hover:text-light",k(y)?"cursor-wait":""]),onClick:w}," View star history ",2)]),e("div",we,[t.repos.length>0?(d(),x("div",ye,[(d(!0),x(J,null,re(t.repos,p=>(d(),x("div",{key:p.name,class:"leading-8 px-3 pr-2 mb-2 text-dark rounded flex flex-row justify-center items-center border mr-3 last:mr-0"},[e("a",{href:`https://github.com/${p.name}`,target:"_blank"},Ce,8,ke),e("span",{class:U(["mr-1 cursor-pointer hover:line-through select-none",p.visible?"":"line-through text-gray-400"]),onClick:s=>v(p.name)},T(p.name),11,$e),e("span",{class:"relative w-5 h-5 flex flex-row justify-center items-center cursor-pointer hover:opacity-60",onClick:s=>E(p.name)},Se,8,De)]))),128)),e("button",{class:"leading-8 mb-2 text-black hover:bg-gray-100 px-3 rounded border border-transparent",onClick:S}," Clear all ")])):$("",!0)])])}}});var Me=ue(Ie,[["__scopeId","data-v-30d41058"]]),je="/icons/free.svg";const Ge={class:"w-160 max-w-full h-auto flex flex-col justify-start items-start bg-white rounded-md"},Ae=e("span",{class:"text-2xl"},"Embed Chart",-1),Te={class:"w-full flex flex-col justify-start items-start p-4 pr-5"},Be=e("p",null,[m(" Star-history will need your "),e("a",{class:"text-blue-500",href:"https://github.com/settings/tokens",target:"_blank"}," personal access token "),m(" to unlimit the "),e("a",{class:"text-blue-500",href:"https://developer.github.com/v3/#rate-limiting",target:"_blank"}," GitHub API rate limit"),m(". If you don't have one, "),e("a",{class:"text-blue-500",href:"https://github.com/settings/tokens/new",target:"_blank"}," create one"),m(", and paste it into the textbox below (no scope to your personal data is needed). ")],-1),Fe=e("p",{class:"leading-8 mt-4"},[e("span",{class:"text-red-600"},"*"),m(" Access Token ")],-1),Le=e("p",{class:"rounded-md font-bold text-sm text-red-600"}," Please do not give ANY SCOPE PERMISSION to the token. If you did, someone could use this to access your personal data. ",-1),Ue=e("p",{class:"leading-8 mt-4 mb-1"}," Copy and paste the below codes into your blog or website ",-1),Ve={class:"relative w-full h-auto border px-4 py-3 pb-14 rounded-md shadow-inner"},He={class:"font-mono break-all text-gray-600 text-sm"},Pe=G({__name:"GenerateEmbedCodeDialog",emits:["close"],setup(C,{emit:o}){const t=B(),l=N({embedCode:"",token:t.token}),y=()=>{const E=btoa(l.token);l.embedCode=`<iframe style="width:100%;height:auto;min-width:600px;min-height:400px;" src="${window.location.origin}/embed?secret=${E}#${t.repos.join("&")}&${t.chartMode}" frameBorder="0"></iframe>`};O(()=>{y()}),z(()=>[l.token],()=>{y()});const w=()=>{if(l.token===""){_.warn("Please input the token");return}D.copyTextToClipboard(l.embedCode),_.succeed("Embed code copied")},v=()=>{o("close")};return(E,S)=>(d(),j(K,null,{default:X(()=>[e("div",Ge,[e("header",{class:"w-full flex flex-row justify-between items-center p-4 pr-5 bg-gray-100 rounded-t-lg"},[Ae,e("i",{class:"fas fa-times-circle text-xl text-gray-400 cursor-pointer hover:text-gray-500",onClick:v})]),e("main",Te,[Be,Fe,Le,Q(e("input",{"onUpdate:modelValue":S[0]||(S[0]=A=>l.token=A),class:"w-full outline-none border mt-2 shadow-inner p-2 rounded-md focus:shadow-focus",type:"text"},null,512),[[Y,l.token]]),Ue,e("div",Ve,[e("p",He,T(l.embedCode),1),e("button",{class:"absolute bottom-2 right-2 px-4 leading-10 rounded-md bg-green-600 shadow-inner text-light hover:bg-green-700",onClick:w}," Copy ")])])])]),_:1}))}}),Ne={class:"w-full h-auto mb-16 px-3 mx-auto max-w-4xl flex flex-col justify-start items-center"},Oe={class:"leading-8 mb-3"},ze=["href"],qe={key:1,class:"font-mono font-bold text-gray-500"},Ke=["href"],We={class:"w-full bg-gray-100 text-dark rounded-md shadow"},Qe={class:"w-full p-4 font-mono break-all whitespace-pre-wrap text-sm"},Ye=G({__name:"EmbedMarkdownSection",setup(C){const o=B(),t=R(()=>o.repos.length===1?o.repos[0]:null),l=R(()=>t.value?t.value.split("/")[1]:"your repository's"),y=R(()=>`## Star History
2
-
3
- [![Star History Chart](https://api.star-history.com/svg?repos=${o.repos.join(",")}&type=${o.chartMode})](${window.location.href})
4
- `),w=()=>{D.copyTextToClipboard(y.value),_.succeed("Embed markdown code copied")};return(v,E)=>(d(),x("div",Ne,[e("p",Oe,[m(" \u{1F31F} Show real-time chart on "+T(k(l))+" ",1),k(t)?(d(),x("a",{key:0,class:"font-mono font-bold underline text-blue-500 hover:opacity-80",href:`https://github.com/${k(t)}/blob/master/README.md`,target:"_blank"},"README.md",8,ze)):(d(),x("span",qe,"README.md")),m(" with the following code ("),e("a",{class:"font-mono font-bold underline text-blue-500 hover:opacity-80",href:"https://github.com/bytebase/bytebase#star-history",target:"_blank"},"example",8,Ke),m("): ")]),e("div",We,[e("pre",Qe,T(k(y)),1),e("p",{class:"w-full text-center py-4 bg-green-600 text-light font-mono rounded-b-md cursor-pointer hover:bg-green-700",onClick:w}," Copy to GitHub README.md ")])]))}}),Je={class:"w-160 max-w-full h-auto flex flex-col justify-start items-start bg-white rounded-md"},Xe=e("span",{class:"text-2xl"},"Step-to-step guide",-1),Ze={class:"w-full flex flex-col justify-start items-start p-4 pr-5"},et=e("p",{class:"leading-7"}," It's very easy to add star-history chart into GitHub README, just two steps: ",-1),tt={class:"list-decimal pl-5 mt-3"},ot={class:"mb-2"},st=e("p",null,"Copy the raw markdown string below",-1),at={class:"relative w-full h-auto border mt-2 px-4 py-3 rounded-md shadow-inner"},rt={class:"font-mono break-all text-gray-600 text-sm whitespace-pre-wrap"},nt={class:"mb-2"},lt=["href"],it={key:1,class:"font-mono"},ct=G({__name:"EmbedChartGuideDialog",emits:["close"],setup(C,{emit:o}){const t=B(),l=R(()=>t.repos.length===1?t.repos[0]:null),y=R(()=>`## Star History
5
-
6
- [![Star History Chart](https://api.star-history.com/svg?repos=${t.repos.join(",")}&type=${t.chartMode})](${window.location.href})
7
- `),w=()=>{D.copyTextToClipboard(y.value),_.succeed("Embed markdown code copied")},v=()=>{o("close")};return(E,S)=>(d(),j(K,null,{default:X(()=>[e("div",Je,[e("header",{class:"w-full flex flex-row justify-between items-center p-4 pr-5 bg-gray-100 rounded-t-lg"},[Xe,e("i",{class:"fas fa-times-circle text-xl text-gray-400 cursor-pointer hover:text-gray-500",onClick:v})]),e("main",Ze,[et,e("ol",tt,[e("li",ot,[st,e("div",at,[e("pre",rt,T(k(y)),1),e("button",{class:"absolute top-2 right-2 px-4 leading-8 text-sm rounded-md bg-green-600 shadow-inner text-white hover:bg-green-700",onClick:w}," Copy ")])]),e("li",nt,[e("p",null,[m(" Paste it into your repo "),k(l)?(d(),x("a",{key:0,class:"font-mono underline text-blue-600 hover:opacity-80",href:`https://github.com/${k(l)}/blob/master/README.md`,target:"_blank"},"README",8,lt)):(d(),x("span",it,"README"))])])])])])]),_:1}))}}),dt={key:0,class:"absolute w-full h-full flex justify-center items-center z-10 top-0"},ht=e("div",{class:"absolute w-full h-full blur-md bg-white bg-opacity-80"},null,-1),pt=e("i",{class:"fas fa-spinner animate-spin text-4xl z-10"},null,-1),ut=[ht,pt],ft={key:1,class:"absolute top-0 right-1 p-2 flex flex-row"},mt=["checked"],gt={key:0,class:"relative mt-4 mb-8 w-full px-3 mx-auto max-w-4xl flex flex-row flex-wrap justify-between items-center"},_t=e("div",{class:"flex flex-row justify-start items-center mb-2"},[e("a",{class:"h-full flex flex-row justify-center items-center leading-8 hover:opacity-80 underline underline-offset-2 mb-2 decoration-dark",href:"https://chrome.google.com/webstore/detail/iijibbcdddbhokfepbblglfgdglnccfn",target:"_blank"},[e("img",{class:"w-5 h-auto mr-1",src:je}),e("span",{class:"text-dark"},"Get Chrome Extension")])],-1),bt={class:"flex flex-row flex-wrap justify-end items-center mb-2"},xt=e("i",{class:"fas fa-download"},null,-1),wt=e("i",{class:"fas fa-download"},null,-1),yt=e("i",{class:"fas fa-code"},null,-1),kt=e("i",{class:"far fa-copy"},null,-1),vt=e("i",{class:"relative -bottom-px fab fa-twitter"},null,-1),Ct=e("div",{class:"grow"},null,-1),$t=G({__name:"StarChartViewer",setup(C){const o=N({chartMode:"Date",repoCacheMap:new Map,chartData:void 0,isGeneratingImage:!1,showSetTokenDialog:!1,showGenEmbedCodeDialog:!1,showEmbedChartGuideDialog:!1}),t=B(),l=W(null),y=R(()=>t.isFetching),w=R(()=>t.chartMode);O(()=>{t.repos.length>0&&v(t.repos)}),z(()=>t.repos,()=>{v(t.repos)});const v=async s=>{t.setIsFetching(!0);const u=[];for(const i of s)o.repoCacheMap.get(i)||u.push(i);try{const i=await ce(u,t.token);for(const{repo:c,starRecords:b,logoUrl:g}of i)o.repoCacheMap.set(c,{starData:b,logoUrl:g})}catch(i){_.warn(i.message),i.status===401||i.status===403?o.showSetTokenDialog=!0:(i.status===404||i.status===501)&&t.delRepo(i.repo)}t.setIsFetching(!1);const f=[];for(const i of s){const c=o.repoCacheMap.get(i);f.push({repo:i,starRecords:c.starData,logoUrl:c.logoUrl})}f.length===0?o.chartData=void 0:o.chartData=de(f,w.value)},E=async()=>{await D.copyTextToClipboard(window.location.href),_.succeed("Link copied")},S=async()=>{var f,i;if(o.isGeneratingImage)return;const s=(i=(f=l.value)==null?void 0:f.querySelector("svg"))==null?void 0:i.cloneNode(!0);s.querySelectorAll(".chart-tooltip-dot").forEach(c=>c.remove());for(const c of Array.from(s.querySelectorAll("image"))){const b=c.getAttribute("href");if(b){const g=await D.getBase64Image(b);c.setAttribute("href",g)}}if(s.setAttribute("class","fixed -z-10"),document.body.append(s),!s||!l.value){_.warn("Chart element not found, please try later");return}o.isGeneratingImage=!0;let u=()=>{};setTimeout(()=>{o.isGeneratingImage&&(u=_.warn('<i class="fas fa-spinner animate-spin text-2xl mr-3"></i>Generating image',-1).destory)},2e3);try{const{width:c,height:b}=l.value.getBoundingClientRect(),g=document.createElement("canvas"),h=Math.floor(window.devicePixelRatio*2);g.width=(c+20)*h,g.height=(b+30)*h;const I=g.getContext("2d");if(!I){_.warn("Get canvas context failed.");return}I.fillStyle="white",I.fillRect(0,0,g.width,g.height);const q=D.convertSVGToDataURL(s),H=new Image;H.src=q,await D.waitImageLoaded(H),I.drawImage(H,10*h,10*h,c*h,b*h);const P=document.createElement("a");P.download=`star-history-${D.getDateString(Date.now(),"yyyyMMdd")}.png`,P.href=g.toDataURL(),P.click(),o.isGeneratingImage=!1,u(),_.succeed("Image Downloaded")}catch(c){console.error(c),_.error("Generate image failed")}s.remove()},A=()=>{var i;let s="";for(const c of t.repos){const b=(i=o.repoCacheMap.get(c))==null?void 0:i.starData;if(b){const g=[];for(const h of b)g.push([c,new Date(h.date),h.count]);s+=g.map(h=>typeof h=="string"&&h.indexOf(",")>=0?`"${h}"`:String(h)).join(`
8
- `),s+=`
9
- `}}const u=encodeURI("data:text/csv;charset=utf-8,"+s),f=document.createElement("a");f.download=`star-history-${D.getDateString(Date.now(),"yyyyMMdd")}.csv`,f.href=u,f.click(),_.succeed("CSV Downloaded")},V=async()=>{const s=t.repos;if(s.length===0){_.error("No repo found");return}const u=encodeURIComponent(window.location.href);let f="";if(s.length===1){const g=s[0];let h=0;try{h=await pe.getRepoStargazersCount(g,t.token)}catch{}let I="";h>0&&(I=`${(h<1e3?h:(h/1e3).toFixed(1)+"K")+" \u2B50\uFE0F "}`),f=`${I}Thank you! \u{1F64F}%0A${u}%0A%0A`}else f=s.join(" vs ")+"%0A%0A";f+=`${s.length===1?`github.com/${s[0]}`:u}%0A%0A`,f+=`${encodeURIComponent("#starhistory #GitHub #OpenSource ")}`;const c=`https://twitter.com/intent/tweet?text=${f}%0A&via=StarHistoryHQ`,b=document.createElement("a");b.href=c,b.target="_blank",b.click()},n=()=>{o.showGenEmbedCodeDialog=!0},a=()=>{o.showGenEmbedCodeDialog=!1},r=()=>{t.setChartMode(w.value==="Date"?"Timeline":"Date"),v(t.repos)},p=()=>{o.showSetTokenDialog=!1};return(s,u)=>(d(),x(J,null,[e("div",{ref_key:"containerElRef",ref:l,class:"relative w-full h-auto min-h-400px self-center max-w-3xl 2xl:max-w-4xl sm:p-4 pt-0"},[k(y)?(d(),x("div",dt,ut)):$("",!0),o.chartData?(d(),x("div",ft,[e("div",{class:"flex flex-row justify-center items-center rounded leading-8 text-sm px-3 cursor-pointer z-10 text-dark select-none hover:bg-gray-100",onClick:r},[e("input",{class:"mr-2",type:"checkbox",checked:k(w)==="Timeline"},null,8,mt),m(" Align timeline ")])])):$("",!0),o.chartData?(d(),j(he,{key:2,classname:"w-full h-auto",data:o.chartData,"chart-mode":k(w)},null,8,["data","chart-mode"])):$("",!0)],512),o.chartData?(d(),x("div",gt,[_t,e("div",bt,[e("button",{class:U(["ml-2 mb-2 rounded leading-9 text-sm px-3 cursor-pointer border text-dark bg-gray-100 hover:bg-gray-200",o.isGeneratingImage?"bg-gray-200 cursor-wait":""]),onClick:S},[xt,m(" Image ")],2),e("button",{class:"ml-2 mb-2 rounded leading-9 text-sm px-3 cursor-pointer border text-dark bg-gray-100 hover:bg-gray-200",onClick:A},[wt,m(" CSV ")]),e("button",{class:"ml-2 mb-2 rounded leading-9 text-sm px-3 cursor-pointer border text-dark bg-gray-100 hover:bg-gray-200",onClick:n},[yt,m(" Embed ")]),e("button",{class:"ml-2 mb-2 rounded leading-9 text-sm px-3 cursor-pointer border text-dark bg-gray-100 hover:bg-gray-200",onClick:E},[kt,m(" Link ")]),e("button",{class:"shadow-inner ml-2 mb-2 rounded leading-9 px-4 cursor-pointer bg-green-600 border border-transparent text-white hover:bg-green-700",onClick:V},[vt,m(" Share on Twitter ")])])])):$("",!0),o.chartData?(d(),j(Ye,{key:1})):$("",!0),Ct,M(Z),o.showSetTokenDialog?(d(),j(ee,{key:2,onClose:p})):$("",!0),o.showGenEmbedCodeDialog?(d(),j(Pe,{key:3,onClose:a})):$("",!0),o.showEmbedChartGuideDialog?(d(),j(ct,{key:4,onClose:u[0]||(u[0]=f=>o.showEmbedChartGuideDialog=!1)})):$("",!0)],64))}}),Dt={class:"relative w-full h-auto min-h-screen overflow-auto flex flex-col"},Et={class:"w-full h-auto grow lg:grid lg:grid-cols-[256px_1fr_256px]"},Rt={class:"w-full hidden lg:block"},St={class:"w-full flex flex-col justify-start items-center"},It=e("div",{class:"hidden lg:block"},null,-1),Bt=G({__name:"Home",setup(C){return(o,t)=>(d(),x("div",Dt,[M(te),e("div",Et,[e("div",Rt,[M(oe)]),e("div",St,[M(Me),M($t)]),It]),M(se),M(ae)]))}});export{Bt as default};
 
 
 
 
 
 
 
 
 
 
assets/StarXYChart.f2d40091.js DELETED
The diff for this file is too large to render. See raw diff
 
assets/dbcost.486cae2c.webp DELETED
Binary file (10.4 kB)
 
assets/index.684a8343.css DELETED
@@ -1 +0,0 @@
1
- *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~="not-prose"] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(ol):not(:where([class~="not-prose"] *)){list-style-type:decimal;padding-left:1.625em}.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~="not-prose"] *)){list-style-type:disc;padding-left:1.625em}.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~="not-prose"] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~="not-prose"] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *)):after{content:close-quote}.prose :where(h1):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~="not-prose"] *)){font-weight:900}.prose :where(h2):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~="not-prose"] *)){font-weight:800}.prose :where(h3):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(h4):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~="not-prose"] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~="not-prose"] *)):before{content:"`"}.prose :where(code):not(:where([class~="not-prose"] *)):after{content:"`"}.prose :where(a code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links)}.prose :where(pre):not(:where([class~="not-prose"] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~="not-prose"] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~="not-prose"] *)):before{content:none}.prose :where(pre code):not(:where([class~="not-prose"] *)):after{content:none}.prose :where(table):not(:where([class~="not-prose"] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~="not-prose"] *)){vertical-align:baseline;padding:.5714286em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(img):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.875em}.prose :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.9em}.prose :where(li):not(:where([class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.prose-xl{font-size:1.25rem;line-height:1.8}.prose-xl :where(p):not(:where([class~="not-prose"] *)){margin-top:1.2em;margin-bottom:1.2em}.prose-xl :where([class~="lead"]):not(:where([class~="not-prose"] *)){font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.prose-xl :where(blockquote):not(:where([class~="not-prose"] *)){margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.prose-xl :where(h1):not(:where([class~="not-prose"] *)){font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.prose-xl :where(h2):not(:where([class~="not-prose"] *)){font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.prose-xl :where(h3):not(:where([class~="not-prose"] *)){font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.prose-xl :where(h4):not(:where([class~="not-prose"] *)){margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.prose-xl :where(img):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose-xl :where(video):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose-xl :where(figure):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose-xl :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose-xl :where(figcaption):not(:where([class~="not-prose"] *)){font-size:.9em;line-height:1.5555556;margin-top:1em}.prose-xl :where(code):not(:where([class~="not-prose"] *)){font-size:.9em}.prose-xl :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.8611111em}.prose-xl :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.9em}.prose-xl :where(pre):not(:where([class~="not-prose"] *)){font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.prose-xl :where(ol):not(:where([class~="not-prose"] *)){padding-left:1.6em}.prose-xl :where(ul):not(:where([class~="not-prose"] *)){padding-left:1.6em}.prose-xl :where(li):not(:where([class~="not-prose"] *)){margin-top:.6em;margin-bottom:.6em}.prose-xl :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.4em}.prose-xl :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.4em}.prose-xl>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.8em;margin-bottom:.8em}.prose-xl>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.2em}.prose-xl>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.2em}.prose-xl>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.2em}.prose-xl>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.2em}.prose-xl :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.8em;margin-bottom:.8em}.prose-xl :where(hr):not(:where([class~="not-prose"] *)){margin-top:2.8em;margin-bottom:2.8em}.prose-xl :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-xl :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-xl :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-xl :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-xl :where(table):not(:where([class~="not-prose"] *)){font-size:.9em;line-height:1.5555556}.prose-xl :where(thead th):not(:where([class~="not-prose"] *)){padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.prose-xl :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-xl :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-xl :where(tbody td):not(:where([class~="not-prose"] *)){padding:.8888889em .6666667em}.prose-xl :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-xl :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-xl>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose-xl>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.prose-indigo{--tw-prose-links: #4f46e5;--tw-prose-invert-links: #6366f1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-0{top:0px}.left-0{left:0px}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.top-1\/2{top:50%}.right-0{right:0px}.top-32{top:8rem}.right-1{right:.25rem}.-bottom-px{bottom:-1px}.-top-full{top:-100%}.bottom-1{bottom:.25rem}.z-100{z-index:100}.z-50{z-index:50}.z-10{z-index:10}.-z-10{z-index:-10}.mx-auto{margin-left:auto;margin-right:auto}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mt-3{margin-top:.75rem}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mb-16{margin-bottom:4rem}.mb-3{margin-bottom:.75rem}.mt-6{margin-top:1.5rem}.ml-3{margin-left:.75rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mr-2{margin-right:.5rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mr-1{margin-right:.25rem}.-mt-px{margin-top:-1px}.mt-px{margin-top:1px}.-mt-1{margin-top:-.25rem}.mt-12{margin-top:3rem}.-ml-2{margin-left:-.5rem}.-mt-2{margin-top:-.5rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-1{margin-left:.25rem}.mt-8{margin-top:2rem}.mt-32{margin-top:8rem}.mb-4{margin-bottom:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.\!hidden{display:none!important}.h-full{height:100%}.h-auto{height:auto}.h-6{height:1.5rem}.h-14{height:3.5rem}.h-px{height:1px}.h-12{height:3rem}.h-9{height:2.25rem}.h-5{height:1.25rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-8{height:2rem}.h-60{height:15rem}.min-h-400px{min-height:400px}.min-h-screen{min-height:100vh}.min-h-full{min-height:100%}.w-full{width:100%}.w-160{width:40rem}.w-7{width:1.75rem}.w-10{width:2.5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-auto{width:auto}.w-5{width:1.25rem}.w-3{width:.75rem}.w-48{width:12rem}.w-9{width:2.25rem}.min-w-600px{min-width:600px}.max-w-full{max-width:100%}.max-w-4xl{max-width:56rem}.max-w-3xl{max-width:48rem}.max-w-2xl{max-width:42rem}.max-w-lg{max-width:32rem}.max-w-6xl{max-width:72rem}.max-w-5xl{max-width:64rem}.flex-shrink-0,.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.origin-top-left{transform-origin:top left}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-solid{border-style:solid}.border-dark{border-color:RGB(54,54,54)}.border-transparent{border-color:transparent}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity))}.bg-dark{background-color:RGB(54,54,54)}.bg-light{background-color:RGB(245,245,245)}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-opacity-60{--tw-bg-opacity: .6}.bg-opacity-80{--tw-bg-opacity: .8}.object-cover{-o-object-fit:cover;object-fit:cover}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-0{padding-left:0;padding-right:0}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pr-5{padding-right:1.25rem}.pl-5{padding-left:1.25rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.pb-14{padding-bottom:3.5rem}.pr-1{padding-right:.25rem}.pr-3{padding-right:.75rem}.pl-8{padding-left:2rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-base{font-size:1rem;line-height:1.5rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-10{line-height:2.5rem}.leading-6{line-height:1.5rem}.leading-3{line-height:.75rem}.leading-9{line-height:2.25rem}.tracking-wide{letter-spacing:.025em}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-dark{color:RGB(54,54,54)}.text-light{color:RGB(245,245,245)}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-dark{text-decoration-color:RGB(54,54,54)}.underline-offset-2{text-underline-offset:2px}.opacity-90{opacity:.9}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}@font-face{font-family:xkcd;src:url(/fonts/xkcd.ttf)}html,body{font-family:Inter,sans-serif}.placeholder\:text-gray-300::-moz-placeholder{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.placeholder\:text-gray-300::placeholder{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.last\:mr-0:last-child{margin-right:0}.last\:hidden:last-child{display:none}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.hover\:bg-zinc-800:hover{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-dark:hover{background-color:RGB(54,54,54)}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.hover\:bg-gray-500:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.hover\:text-light:hover{color:RGB(245,245,245)}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:line-through:hover{text-decoration-line:line-through}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-60:hover{opacity:.6}.hover\:opacity-70:hover{opacity:.7}.focus\:shadow-focus:focus{--tw-shadow: 0 0 0 .125em rgb(54 54 54 / 25%);--tw-shadow-colored: 0 0 0 .125em var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:ml-3{margin-left:.75rem}.sm\:flex{display:flex}.sm\:w-full{width:100%}.sm\:flex-shrink-0{flex-shrink:0}.sm\:p-4{padding:1rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width: 768px){.md\:prose-2xl{font-size:1.5rem;line-height:1.6666667}.md\:prose-2xl :where(p):not(:where([class~="not-prose"] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.md\:prose-2xl :where([class~="lead"]):not(:where([class~="not-prose"] *)){font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.md\:prose-2xl :where(blockquote):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.md\:prose-2xl :where(h1):not(:where([class~="not-prose"] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.md\:prose-2xl :where(h2):not(:where([class~="not-prose"] *)){font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.md\:prose-2xl :where(h3):not(:where([class~="not-prose"] *)){font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.md\:prose-2xl :where(h4):not(:where([class~="not-prose"] *)){margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.md\:prose-2xl :where(img):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.md\:prose-2xl :where(video):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.md\:prose-2xl :where(figure):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.md\:prose-2xl :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.md\:prose-2xl :where(figcaption):not(:where([class~="not-prose"] *)){font-size:.8333333em;line-height:1.6;margin-top:1em}.md\:prose-2xl :where(code):not(:where([class~="not-prose"] *)){font-size:.8333333em}.md\:prose-2xl :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.875em}.md\:prose-2xl :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.8888889em}.md\:prose-2xl :where(pre):not(:where([class~="not-prose"] *)){font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.md\:prose-2xl :where(ol):not(:where([class~="not-prose"] *)){padding-left:1.5833333em}.md\:prose-2xl :where(ul):not(:where([class~="not-prose"] *)){padding-left:1.5833333em}.md\:prose-2xl :where(li):not(:where([class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.md\:prose-2xl :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.4166667em}.md\:prose-2xl :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.4166667em}.md\:prose-2xl>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.8333333em;margin-bottom:.8333333em}.md\:prose-2xl>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.md\:prose-2xl>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.md\:prose-2xl>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.md\:prose-2xl>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.md\:prose-2xl :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.6666667em;margin-bottom:.6666667em}.md\:prose-2xl :where(hr):not(:where([class~="not-prose"] *)){margin-top:3em;margin-bottom:3em}.md\:prose-2xl :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.md\:prose-2xl :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.md\:prose-2xl :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.md\:prose-2xl :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.md\:prose-2xl :where(table):not(:where([class~="not-prose"] *)){font-size:.8333333em;line-height:1.4}.md\:prose-2xl :where(thead th):not(:where([class~="not-prose"] *)){padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.md\:prose-2xl :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.md\:prose-2xl :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.md\:prose-2xl :where(tbody td):not(:where([class~="not-prose"] *)){padding:.8em .6em}.md\:prose-2xl :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.md\:prose-2xl :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.md\:prose-2xl>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.md\:prose-2xl>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.md\:mt-12{margin-top:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-5\/6{width:83.333333%}.md\:max-w-5xl{max-width:64rem}.md\:p-0{padding:0}.md\:px-0{padding-left:0;padding-right:0}}@media (min-width: 1024px){.lg\:m-2{margin:.5rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-auto{height:auto}.lg\:max-h-full{max-height:100%}.lg\:w-auto{width:auto}.lg\:max-w-7xl{max-width:80rem}.lg\:max-w-6xl{max-width:72rem}.lg\:max-w-xs{max-width:20rem}.lg\:grid-cols-\[256px_1fr_256px\]{grid-template-columns:256px 1fr 256px}.lg\:flex-row{flex-direction:row}.lg\:justify-between{justify-content:space-between}.lg\:rounded-md{border-radius:.375rem}}@media (min-width: 1280px){.xl\:w-64{width:16rem}}@media (min-width: 1536px){.\32xl\:max-w-4xl{max-width:56rem}}
 
 
assets/index.c6d64976.js DELETED
@@ -1 +0,0 @@
1
- import{c as f,a as h,r as d,o as m,b as _,d as g,e as v,f as y,g as E}from"./vendor.deac2ab7.js";const O=function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))n(e);new MutationObserver(e=>{for(const t of e)if(t.type==="childList")for(const r of t.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerpolicy&&(t.referrerPolicy=e.referrerpolicy),e.crossorigin==="use-credentials"?t.credentials="include":e.crossorigin==="anonymous"?t.credentials="omit":t.credentials="same-origin",t}function n(e){if(e.ep)return;e.ep=!0;const t=s(e);fetch(e.href,t)}};O();const S="modulepreload",p={},b="/",a=function(i,s){return!s||s.length===0?i():Promise.all(s.map(n=>{if(n=`${b}${n}`,n in p)return;p[n]=!0;const e=n.endsWith(".css"),t=e?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${t}`))return;const r=document.createElement("link");if(r.rel=e?"stylesheet":S,e||(r.as="script",r.crossOrigin=""),r.href=n,document.head.appendChild(r),e)return new Promise((c,l)=>{r.addEventListener("load",c),r.addEventListener("error",()=>l(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>i())},k=[{path:"/",name:"home",component:()=>a(()=>import("./Home.93068458.js"),["assets/Home.93068458.js","assets/Home.3c376c2f.css","assets/HighlightBlogSection.d9673e14.js","assets/vendor.deac2ab7.js","assets/utils.4c76304e.js","assets/StarXYChart.f2d40091.js"])},{path:"/embed",name:"embed-website",component:()=>a(()=>import("./EmbedWebSite.e11e9c3e.js"),["assets/EmbedWebSite.e11e9c3e.js","assets/StarXYChart.f2d40091.js","assets/vendor.deac2ab7.js","assets/utils.4c76304e.js"])},{path:"/blog",name:"blog-list",component:()=>a(()=>import("./BlogList.c2f8123e.js"),["assets/BlogList.c2f8123e.js","assets/utils.4c76304e.js","assets/HighlightBlogSection.d9673e14.js","assets/vendor.deac2ab7.js"])},{path:"/blog/:blogSlug",name:"blog-detail",component:()=>a(()=>import("./Blog.b84894dd.js"),["assets/Blog.b84894dd.js","assets/Blog.d073ff16.css","assets/vendor.deac2ab7.js","assets/utils.4c76304e.js","assets/HighlightBlogSection.d9673e14.js"])},{path:"/404",name:"404",component:()=>a(()=>import("./404.80d55b49.js"),["assets/404.80d55b49.js","assets/vendor.deac2ab7.js"])},{path:"/:pathList(.*)*",name:"dynamic-path-matcher",component:()=>a(()=>import("./DynamicPathMatcher.29f46833.js"),["assets/DynamicPathMatcher.29f46833.js","assets/vendor.deac2ab7.js"])}],L=f({history:h(),routes:k});var I=(o,i)=>{const s=o.__vccOpts||o;for(const[n,e]of i)s[n]=e;return s};const P={};function R(o,i){const s=d("router-view");return m(),_(s)}var A=I(P,[["render",R]]),u;(function(o){function i(e){const t={};for(const r of e)try{const c=localStorage.getItem(r);if(c!==null){const l=JSON.parse(c);t[r]=l}}catch(c){console.error("Get storage failed in ",r,c)}return t}o.get=i;function s(e){for(const t in e)try{const r=JSON.stringify(e[t]);localStorage.setItem(t,r)}catch(r){console.error("Save storage failed in ",t,r)}}o.set=s;function n(e){for(const t of e)try{localStorage.removeItem(t)}catch(r){console.error("Remove storage failed in ",t,r)}}o.remove=n})(u||(u={}));var T=u;const w=g(),$=v("appStore",{state:()=>{const{accessTokenCache:o}=T.get(["accessTokenCache"]),s=window.location.hash.slice(1).split("&").filter(t=>Boolean(t)),n=[];let e="Date";for(const t of s){if(t==="Date"||t==="Timeline"){e=t;continue}n.includes(t)||n.push(t)}return{isFetching:!1,token:o||"",repos:n,chartMode:e}},actions:{addRepo(o){this.repos.includes(o)||this.repos.push(o),this.repos=[...this.repos]},delRepo(o){this.repos.includes(o)&&this.repos.splice(this.repos.indexOf(o),1),this.repos=[...this.repos]},setRepos(o){this.repos=o},setToken(o){this.token=o},setIsFetching(o){this.isFetching=o},setChartMode(o){this.chartMode=o}}});const D=y(A),V=E();D.use(L).use(w).use(V).mount("#app");export{I as _,T as s,$ as u};
 
 
assets/sqlchat.fc20a128.webp DELETED
Binary file (8.8 kB)
 
assets/utils.4c76304e.js DELETED
The diff for this file is too large to render. See raw diff
 
assets/vendor.deac2ab7.js DELETED
The diff for this file is too large to render. See raw diff
 
blog/add-a-live-star-history-chart-to-your-github-readme.md DELETED
@@ -1,89 +0,0 @@
1
- # Add a live star-history chart to your GitHub README
2
-
3
- ![star-history-svg-example](/blog/assets/star-history-svg-example.png)
4
- Now we support embedding a live star history chart into your GitHub README.  Above is the screenshot from our own [GitHub start history repo](https://github.com/star-history/star-history).
5
-
6
- This feature is quite handy.  A snippet would appear after querying the repository from our star-history.com main page; the only thing you need to do is simply copy that snippet into your GitHub README markdown file.
7
- ![star-history-embed-block](/blog/assets/star-history-embed-block.png)
8
- Under the hood, it's actually a long story about developing this embedded star history chart.  It all starts from an issue 6 years ago.
9
-
10
- ## An issue from 6 years ago
11
-
12
- In 2016, a user opened an [issue](https://github.com/star-history/star-history/issues/35) asking to embed GitHub star-history chart into their own website.  But due to the development resource and API token limitations, it was dismissed.
13
- ![old-embed-issue](/blog/assets/old-embed-issue.png)
14
- Recently, we resumed the development effort and after completing a major refactoring of [star-history](https://star-history.com/blog/introducing-the-new-star-history-com), we are ready to tackle this.  Our first improvement is to introduce the embeddable GitHub star-history chart using `<iframe />`.
15
-
16
- ## Embed with `<iframe />`
17
-
18
- After looking through the popular web-side embedding implementations, we decide to use `<iframe />` as the embedded block container.  It can display original charts on a webpage without implementing a backend server.  And `<iframe />` is also interactive with real-time data.
19
-
20
- Because GitHub API imposes a strict rate limit on the anonymous callers, we need users to provide their self-generated tokens to overcome that limit.
21
-
22
- ### Step-to-step guide to use `iframe` embed
23
-
24
- 1. Open [star-history.com](https://star-history.com) and query for a repository;
25
-
26
- 2. Click the `Embed` button below the chart;
27
-
28
- 3. Input your personal access token;
29
- ![embed-chart-with-svg](/blog/assets/embed-chart-with-iframe.png)
30
-
31
- 4. Click the `Copy` button, then paste it into your websites or blogs;
32
-
33
- ## Live chart image in SVG format
34
-
35
- The iframe-based embed block is a decent improvement, while it still has some flaws:
36
-
37
- 1. One commonly used case is to embed the GitHub star-history chart into the repository README file, so that it can be displayed on the repo's front page. However, the GitHub markdown flavor disallows rendering `<iframe />`, which makes it impossible to directly embed star-history charts there.
38
- 2. We require users to provide their personal access tokens.  Though star-history never stores the token on our own server (we don't have a server at all), the token itself could be found if someone views the webpage source code.  This limits the usage since it's not fully secure unless adding the chart to a trusted platform, i.e. the internal dashboard of a team.
39
-
40
- ### Inspiration
41
-
42
- We noticed that many open source projects have badges on their README
43
- ![github-badges](/blog/assets/github-badges.png)
44
- After thorough research, we figured that those badges are dynamically generated SVG images.
45
-
46
- Coincidentally, star-history also generates the SVG chart image.  If we can return this SVG image by a link, then we can achieve a similar result as those generated badges.
47
-
48
- ### Implementation
49
-
50
- star-history has always been a single-page application (SPA) without backend code. In order to offer this feature, we have to add the backend logic to serve the image request. To reuse the SVG generation code, we choose nodejs to create a service returning the live star history chart SVG.
51
-
52
- To avoid GitHub request rate limit, we create a token pool for polling requests. Those tokens are donated by our community members. If you would like to donate one, please follow this guide: [Donate GitHub Personal Access Token for star-history.com](https://github.com/star-history/star-history/wiki/Donate-your-GitHub-Personal-Access-Token)
53
-
54
- This is an example link to get the live SVG image for our star-history project: [https://api.star-history.com/svg?repos=star-history/star-history](https://api.star-history.com/svg?repos=star-history/star-history)
55
- ![star-history-api-svg](/blog/assets/star-history-api-svg.png)
56
-
57
- ### Step-to-step guide to add the chart to your GitHub README
58
-
59
- 1. Open [star-history.com](https://star-history.com) and query for a repository;
60
-
61
- 2. Scroll the page below the action buttons;
62
- ![embed-chart-with-svg](/blog/assets/embed-chart-with-svg.png)
63
- 3. Click the `Copy` button;
64
-
65
- 4. Paste the code into your repository's README;
66
-
67
- 5. Everything is done. 😎
68
-
69
- ## Running on [render](http://render.com)
70
-
71
- The existing star-history frontend is a static site and is running on [render.com](http://render.com/).  As you can see, we have added the API server which is a Web Service type serving the live star history SVG image request.
72
- ![render-overview](/blog/assets/render-overview.png)
73
- Here is the render's monitoring view and it's been running fine so far
74
- ![render-usage](/blog/assets/render-usage.png)
75
-
76
- ## Conclusion
77
-
78
- We provide two ways to embed the real-time star history chart into the web pages.
79
-
80
- - If you want to put an auto-sizeable and interactive chart on your private network, you should try the embedded chart with `<iframe />`.
81
- - If you want to show a static chart with update-to-date star history data to the public, such as putting it on the GitHub repository README, you should use the image link such as `https://api.star-history.com/svg?repos=star-history/star-history&type=Date`
82
-
83
- ---
84
-
85
- Check out examples below of using SVG embed charts in GitHub repository README and organization README.
86
-
87
- - [https://github.com/star-history/star-history#star-history](https://github.com/star-history/star-history#star-history)
88
- - [https://github.com/bytebase/bytebase#star-history](https://github.com/bytebase/bytebase#star-history)
89
- - [https://github.com/bytebase](https://github.com/bytebase)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
blog/assets/embed-chart-with-iframe.png DELETED

Git LFS Details

  • SHA256: b319819cf5b058f9a844e13140ea366a77f526cab48fa0386b3b1582c167a4f2
  • Pointer size: 131 Bytes
  • Size of remote file: 211 kB
blog/assets/embed-chart-with-svg.png DELETED

Git LFS Details

  • SHA256: 69dbba7cd2f3403ccc989a3a169db48cdf4dd553162335baac10f706fa6416cf
  • Pointer size: 131 Bytes
  • Size of remote file: 315 kB
blog/assets/github-badges.png DELETED

Git LFS Details

  • SHA256: 2e0ada7bba65ac6f8545850314b205563237a3080b50e31f4ae5eae4ab31c112
  • Pointer size: 132 Bytes
  • Size of remote file: 1.19 MB
blog/assets/github-trending-tab/github-home.webp DELETED
Binary file (43.6 kB)
 
blog/assets/github-trending-tab/github-trending-tab.webp DELETED
Binary file (37.1 kB)
 
blog/assets/github-trending-tab/hn.webp DELETED
Binary file (7.42 kB)
 
blog/assets/github-trending-tab/star-history.webp DELETED
Binary file (17.9 kB)
 
blog/assets/github-trending-tab/throw.gif DELETED

Git LFS Details

  • SHA256: a671b5a0e4bee4bbb70fc6492957faaa64f38da381ef7c3a3c4d51a111fd0af6
  • Pointer size: 132 Bytes
  • Size of remote file: 1.38 MB
blog/assets/how-to-use-github-star-history/add-access-token.webp DELETED
Binary file (81.1 kB)
 
blog/assets/how-to-use-github-star-history/align-timeline.webp DELETED
Binary file (52.6 kB)
 
blog/assets/how-to-use-github-star-history/book.webp DELETED
Binary file (106 kB)
 
blog/assets/how-to-use-github-star-history/chrome-extension-working.webp DELETED
Binary file (135 kB)
 
blog/assets/how-to-use-github-star-history/chrome-extension.webp DELETED
Binary file (54.2 kB)
 
blog/assets/how-to-use-github-star-history/classic-form.webp DELETED
Binary file (72.4 kB)
 
blog/assets/how-to-use-github-star-history/copy-iframe-readme.webp DELETED
Binary file (72.3 kB)
 
blog/assets/how-to-use-github-star-history/edit-gh-access-token.webp DELETED
Binary file (43.3 kB)
 
blog/assets/how-to-use-github-star-history/embed.webp DELETED
Binary file (27.3 kB)
 
blog/assets/how-to-use-github-star-history/generate-new-token.webp DELETED
Binary file (53 kB)
 
blog/assets/how-to-use-github-star-history/gh-readme.webp DELETED
Binary file (46.1 kB)
 
blog/assets/how-to-use-github-star-history/hide-show.webp DELETED
Binary file (45.7 kB)
 
blog/assets/how-to-use-github-star-history/home-chrome-extension.webp DELETED
Binary file (27.2 kB)
 
blog/assets/how-to-use-github-star-history/how-to-use-github-star-history.webp DELETED
Binary file (18.4 kB)
 
blog/assets/how-to-use-github-star-history/multiple-repos.webp DELETED
Binary file (52.4 kB)
 
blog/assets/how-to-use-github-star-history/new-token-classic.webp DELETED
Binary file (12.2 kB)
 
blog/assets/how-to-use-github-star-history/personal-token-copy.webp DELETED
Binary file (24.6 kB)
 
blog/assets/how-to-use-github-star-history/search-bar.webp DELETED
Binary file (6.76 kB)
 
blog/assets/how-to-use-github-star-history/user-manual.webp DELETED
Binary file (8.05 kB)
 
blog/assets/ockam/banner.webp DELETED
Binary file (9.6 kB)
 
blog/assets/ockam/build-trust.webp DELETED
Binary file (26.5 kB)
 
blog/assets/ockam/ockam.webp DELETED
Binary file (79 kB)
 
blog/assets/old-embed-issue.png DELETED

Git LFS Details

  • SHA256: cac82b73f1ad7855726bbe87eb9bc51a029270ac96c817d067272347c9d6a995
  • Pointer size: 131 Bytes
  • Size of remote file: 100 kB