UNPKG

slidev-theme-oqtopus

Version:

Slidev theme for OQTOPUS presentations

11 lines (10 loc) 9.9 kB
import{d as V,e as P}from"../modules/unplugin-icons-hDCt11hI.js";import{d as H,f,i as _,o as p,n as A,r as M,O as q,E,L as z,z as m,aK as K,D as O,j as R,e as b,g as i,t as U,T as h,b as B,k as F,w as C,m as I,ad as n,v as W,x as J}from"../modules/vue-m8pkr6j7.js";import{v as L,ai as Q,C as X,aj as Y,ak as G}from"../index-rxBs4b9Q.js";import{u as N,f as Z}from"./context-DVBmw4Sk.js";import{I as ii}from"../default-BPZUhb-i.js";import"../modules/shiki-DLbbKDLo.js";import"../SlideLayout-Dz7TN6RJ.js";import"../OqtopusLogo-Dbu4SNa4.js";import"../OqtopusSymbol-dDKLCRNZ.js";const ei=H({__name:"TitleIcon",props:{title:{}},setup(a){const e={pnpm:"i-vscode-icons:file-type-light-pnpm",npm:"i-vscode-icons:file-type-npm",yarn:"i-vscode-icons:file-type-yarn",bun:"i-vscode-icons:file-type-bun",deno:"i-vscode-icons:file-type-deno",vue:"i-vscode-icons:file-type-vue",svelte:"i-vscode-icons:file-type-svelte",angular:"i-vscode-icons:file-type-angular",react:"i-vscode-icons:file-type-reactjs",next:"i-vscode-icons:file-type-light-next",nuxt:"i-vscode-icons:file-type-nuxt",solid:"logos:solidjs-icon",astro:"i-vscode-icons:file-type-light-astro",rollup:"i-vscode-icons:file-type-rollup",webpack:"i-vscode-icons:file-type-webpack",vite:"i-vscode-icons:file-type-vite",esbuild:"i-vscode-icons:file-type-esbuild","package.json":"i-vscode-icons:file-type-node","tsconfig.json":"i-vscode-icons:file-type-tsconfig",".npmrc":"i-vscode-icons:file-type-npm",".editorconfig":"i-vscode-icons:file-type-editorconfig",".eslintrc":"i-vscode-icons:file-type-eslint",".eslintignore":"i-vscode-icons:file-type-eslint","eslint.config":"i-vscode-icons:file-type-eslint",".gitignore":"i-vscode-icons:file-type-git",".gitattributes":"i-vscode-icons:file-type-git",".env":"i-vscode-icons:file-type-dotenv",".env.example":"i-vscode-icons:file-type-dotenv",".vscode":"i-vscode-icons:file-type-vscode","tailwind.config":"vscode-icons:file-type-tailwind","uno.config":"i-vscode-icons:file-type-unocss","unocss.config":"i-vscode-icons:file-type-unocss",".oxlintrc":"i-vscode-icons:file-type-oxlint","vue.config":"i-vscode-icons:file-type-vueconfig",".mts":"i-vscode-icons:file-type-typescript",".cts":"i-vscode-icons:file-type-typescript",".ts":"i-vscode-icons:file-type-typescript",".tsx":"i-vscode-icons:file-type-typescript",".mjs":"i-vscode-icons:file-type-js",".cjs":"i-vscode-icons:file-type-js",".json":"i-vscode-icons:file-type-json",".js":"i-vscode-icons:file-type-js",".jsx":"i-vscode-icons:file-type-js",".md":"i-vscode-icons:file-type-markdown",".py":"i-vscode-icons:file-type-python",".ico":"i-vscode-icons:file-type-favicon",".html":"i-vscode-icons:file-type-html",".css":"i-vscode-icons:file-type-css",".scss":"i-vscode-icons:file-type-scss",".yml":"i-vscode-icons:file-type-light-yaml",".yaml":"i-vscode-icons:file-type-light-yaml",".php":"i-vscode-icons:file-type-php"};function l(t){const s=t.match(/~([^~]+)~/g);if(s&&s.length>0)return s[0].slice(1,-1);const c=Object.keys(e).sort((r,v)=>v.length-r.length);for(const r of c)if(t.toLowerCase().includes(r.toLowerCase()))return e[r];return""}return(t,s)=>l(t.title)?(p(),f("div",{key:0,class:A(`${l(t.title)} w-3.5 h-3.5 relative`)},null,2)):_("v-if",!0)}}),si=["data-title"],ti={key:0,class:"slidev-code-block-title"},li={class:"leading-1em"},ni=["title"],oi=H({__name:"CodeBlockWrapper",props:{ranges:{type:Array,default:()=>[]},finally:{type:[String,Number],default:"last"},startLine:{type:Number,default:1},lines:{type:Boolean,default:L.lineNumbers},at:{type:[String,Number],default:"+1"},maxHeight:{type:String,default:void 0},title:{type:String,default:void 0}},setup(a){const e=a,{$clicksContext:l}=N(),t=M(),s=Q();q(()=>{l.unregister(s)}),E(()=>{t.value?.classList.toggle("slidev-code-line-numbers",e.lines)}),z(()=>{if(!l||!e.ranges?.length)return;const o=l.calculateSince(e.at,e.ranges.length-1);l.register(s,o);const k=m(()=>o?Math.max(0,l.current-o.start+1):X),g=m(()=>e.finally==="last"?e.ranges.at(-1):e.finally.toString());E(()=>{if(!t.value)return;let y=e.ranges[k.value]??g.value;const u=y==="hide";t.value.classList.toggle(Y,u),u&&(y=e.ranges[k.value+1]??g.value);const S=t.value.querySelector(".shiki"),w=Array.from(S.querySelectorAll("code > .line")),T=w.length;if(G(y,T,e.startLine,d=>[w[d]]),e.maxHeight){const d=Array.from(S.querySelectorAll(".line.highlighted"));d.reduce((j,$)=>$.offsetHeight+j,0)>t.value.offsetHeight?d[0].scrollIntoView({behavior:"smooth",block:"start"}):d.length>0&&d[Math.round((d.length-1)/2)].scrollIntoView({behavior:"smooth",block:"center"})}})});const{copied:c,copy:r}=K();function v(){const o=t.value?.querySelector(".slidev-code")?.textContent;o&&r(o)}const D=O("activeTitle",null),x=m(()=>D===null&&e.title);return(o,k)=>{const g=V,y=P;return p(),f("div",{ref_key:"el",ref:t,class:A(["slidev-code-wrapper relative group",{"slidev-code-line-numbers":e.lines,active:h(D)===a.title}]),style:F({"max-height":e.maxHeight,"overflow-y":e.maxHeight?"scroll":void 0,"--start":e.startLine}),"data-title":a.title},[x.value?(p(),f("div",ti,[b(ei,{title:a.title},null,8,["title"]),i("div",li,U(a.title.replace(/~([^~]+)~/g,"").trim()),1)])):_("v-if",!0),R(o.$slots,"default"),h(L).codeCopy?(p(),f("button",{key:1,class:A(["slidev-code-copy absolute right-0 transition opacity-0 group-hover:opacity-20 hover:!opacity-100",x.value?"top-10":"top-0"]),title:h(c)?"Copied":"Copy",onClick:k[0]||(k[0]=u=>v())},[h(c)?(p(),B(g,{key:0,class:"p-2 w-8 h-8"})):(p(),B(y,{key:1,class:"p-2 w-8 h-8"}))],10,ni)):_("v-if",!0)],14,si)}}}),vi={__name:"example.md__slidev_13",setup(a){const{$clicksContext:e,$frontmatter:l}=N();return e.setup(),(t,s)=>{const c=oi;return p(),B(ii,W(J(h(Z)(h(l),12))),{default:C(()=>[s[2]||(s[2]=i("h1",null,"Code Blocks",-1)),s[3]||(s[3]=i("h2",null,"Showcase Your Code",-1)),s[4]||(s[4]=i("p",null,"Easily embed and highlight code snippets in your slides.",-1)),b(c,I({},{title:"",ranges:[]}),{default:C(()=>s[0]||(s[0]=[i("pre",{class:"shiki shiki-themes vitesse-dark vitesse-light slidev-code",style:{"--shiki-dark":"#dbd7caee","--shiki-light":"#393a34","--shiki-dark-bg":"#121212","--shiki-light-bg":"#ffffff"}},[i("code",{class:"language-python"},[i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#758575DD","--shiki-light":"#A0ADA0"}},"# Python example")]),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#CB7676","--shiki-light":"#AB5959"}},"def"),i("span",{style:{"--shiki-dark":"#80A665","--shiki-light":"#59873A"}}," hello_world"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"():")]),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#B8A965","--shiki-light":"#998418"}}," print"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"("),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},'"'),i("span",{style:{"--shiki-dark":"#C98A7D","--shiki-light":"#B56959"}},"Hello, OQTOPUS Theme!"),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},'"'),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},")")]),n(` `),i("span",{class:"line"}),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#DBD7CAEE","--shiki-light":"#393A34"}},"hello_world"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"()")])])],-1)])),_:1,__:[0]},16),b(c,I({},{title:"",ranges:[]}),{default:C(()=>s[1]||(s[1]=[i("pre",{class:"shiki shiki-themes vitesse-dark vitesse-light slidev-code",style:{"--shiki-dark":"#dbd7caee","--shiki-light":"#393a34","--shiki-dark-bg":"#121212","--shiki-light-bg":"#ffffff"}},[i("code",{class:"language-js"},[i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#758575DD","--shiki-light":"#A0ADA0"}},"// JavaScript example")]),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#CB7676","--shiki-light":"#AB5959"}},"function"),i("span",{style:{"--shiki-dark":"#80A665","--shiki-light":"#59873A"}}," greet"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"("),i("span",{style:{"--shiki-dark":"#BD976A","--shiki-light":"#B07D48"}},"name"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},")"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}}," {")]),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#BD976A","--shiki-light":"#B07D48"}}," console"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"."),i("span",{style:{"--shiki-dark":"#80A665","--shiki-light":"#59873A"}},"log"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"("),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},"`"),i("span",{style:{"--shiki-dark":"#C98A7D","--shiki-light":"#B56959"}},"Hello, "),i("span",{style:{"--shiki-dark":"#4D9375","--shiki-light":"#1E754F"}},"${"),i("span",{style:{"--shiki-dark":"#C98A7D","--shiki-light":"#B56959"}},"name"),i("span",{style:{"--shiki-dark":"#4D9375","--shiki-light":"#1E754F"}},"}"),i("span",{style:{"--shiki-dark":"#C98A7D","--shiki-light":"#B56959"}},"!"),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},"`"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},");")]),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"}")]),n(` `),i("span",{class:"line"}),n(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-dark":"#80A665","--shiki-light":"#59873A"}},"greet"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},"("),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},"'"),i("span",{style:{"--shiki-dark":"#C98A7D","--shiki-light":"#B56959"}},"Slidev User"),i("span",{style:{"--shiki-dark":"#C98A7D77","--shiki-light":"#B5695977"}},"'"),i("span",{style:{"--shiki-dark":"#666666","--shiki-light":"#999999"}},");")])])],-1)])),_:1,__:[1]},16)]),_:1,__:[2,3,4]},16)}}};export{vi as default};