forked from boos/BoosAPI
feat(desktop): embed BoosAPI Desktop client as a subproject
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# Cloudflare Pages 重定向规则
|
||||
# SPA 路由: 将所有请求重定向到 index.html
|
||||
# https://developers.cloudflare.com/pages/configuration/redirects/
|
||||
|
||||
/* /index.html 200
|
||||
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||
<style>
|
||||
path { fill: #222; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #ffffff; }
|
||||
}
|
||||
</style>
|
||||
<path d="M27.562 26L17.17 8.928l2.366-3.888L17.828 4L16 7.005L14.17 4l-1.708 1.04l2.366 3.888L4.438 26H2v2h28v-2zM16 10.85L25.22 26H17v-8h-2v8H6.78z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 347 B |
@@ -0,0 +1,33 @@
|
||||
<svg width="1200" height="630" viewBox="0 0 1200 630" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="1200" height="630" fill="#050B18"/>
|
||||
<rect x="44" y="44" width="1112" height="542" rx="34" fill="url(#bg)"/>
|
||||
<rect x="92" y="108" width="430" height="414" rx="30" fill="#020617" stroke="#1E293B" stroke-width="2"/>
|
||||
<rect x="128" y="148" width="132" height="36" rx="18" fill="#22C55E" fill-opacity="0.2" stroke="#22C55E"/>
|
||||
<text x="194" y="166" fill="#DCFCE7" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="700" text-anchor="middle" dominant-baseline="middle">Live demo</text>
|
||||
<rect x="128" y="214" width="320" height="18" rx="9" fill="#E2E8F0" fill-opacity="0.92"/>
|
||||
<rect x="128" y="246" width="270" height="18" rx="9" fill="#94A3B8" fill-opacity="0.8"/>
|
||||
<rect x="128" y="302" width="154" height="164" rx="26" fill="#111827"/>
|
||||
<rect x="304" y="302" width="178" height="164" rx="26" fill="#0F172A"/>
|
||||
<path d="M168 344H242" stroke="#38BDF8" stroke-width="20" stroke-linecap="round"/>
|
||||
<path d="M352 332C352 325.373 357.373 320 364 320H404C427.196 320 446 338.804 446 362C446 385.196 427.196 404 404 404H364C357.373 404 352 398.627 352 392V332Z" fill="#F59E0B"/>
|
||||
<path d="M352 434L430 434" stroke="#A78BFA" stroke-width="18" stroke-linecap="round"/>
|
||||
<rect x="550" y="118" width="558" height="394" rx="34" fill="#0B1120" stroke="#334155" stroke-width="2"/>
|
||||
<rect x="598" y="152" width="158" height="34" rx="17" fill="#38BDF8" fill-opacity="0.14" stroke="#38BDF8" stroke-opacity="0.7"/>
|
||||
<text x="677" y="169" fill="#BAE6FD" font-family="Arial, Helvetica, sans-serif" font-size="15" font-weight="700" text-anchor="middle" dominant-baseline="middle">PLAYGROUND</text>
|
||||
<text x="598" y="232" fill="#F8FAFC" font-family="Arial, Helvetica, sans-serif" font-size="48" font-weight="700">markstream-vue</text>
|
||||
<text x="598" y="288" fill="#C4B5FD" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="700">Interactive demos</text>
|
||||
<text x="598" y="342" fill="#CBD5E1" font-family="Arial, Helvetica, sans-serif" font-size="20">Streaming Markdown for AI chat</text>
|
||||
<text x="598" y="378" fill="#CBD5E1" font-family="Arial, Helvetica, sans-serif" font-size="20">Mermaid, KaTeX, CDN peers</text>
|
||||
<rect x="598" y="416" width="110" height="36" rx="18" fill="#0F1D33" stroke="#334155"/>
|
||||
<text x="653" y="434" fill="#E2E8F0" font-family="Arial, Helvetica, sans-serif" font-size="16" font-weight="700" text-anchor="middle" dominant-baseline="middle">AI chat</text>
|
||||
<rect x="720" y="416" width="120" height="36" rx="18" fill="#0F1D33" stroke="#334155"/>
|
||||
<text x="780" y="434" fill="#E2E8F0" font-family="Arial, Helvetica, sans-serif" font-size="16" font-weight="700" text-anchor="middle" dominant-baseline="middle">Mermaid</text>
|
||||
<rect x="852" y="416" width="100" height="36" rx="18" fill="#0F1D33" stroke="#334155"/>
|
||||
<text x="902" y="434" fill="#E2E8F0" font-family="Arial, Helvetica, sans-serif" font-size="16" font-weight="700" text-anchor="middle" dominant-baseline="middle">KaTeX</text>
|
||||
<defs>
|
||||
<linearGradient id="bg" x1="66" y1="62" x2="1124" y2="566" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#111827"/>
|
||||
<stop offset="1" stop-color="#312E81"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
@@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://markstream-vue.simonhe.me/sitemap.xml
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://markstream-vue.simonhe.me/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://markstream-vue.simonhe.me/markdown</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.85</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://markstream-vue.simonhe.me/test</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.75</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://markstream-vue.simonhe.me/cdn-peers</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://markstream-vue.simonhe.me/mermaid-export-demo</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.76</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Vue Markdown Renderer">
|
||||
<title>Vue Markdown Renderer</title>
|
||||
<defs>
|
||||
<linearGradient id="g-vue" x1="0" x2="1" y1="0" y2="1">
|
||||
<stop offset="0" stop-color="#41b883" />
|
||||
<stop offset="1" stop-color="#2c9f67" />
|
||||
</linearGradient>
|
||||
<linearGradient id="g-accent" x1="0" x2="1" y1="0" y2="1">
|
||||
<stop offset="0" stop-color="#3aa8ff" />
|
||||
<stop offset="1" stop-color="#5cc6ff" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- background card -->
|
||||
<rect x="6" y="6" width="116" height="116" rx="16" fill="#0b1220" />
|
||||
<rect x="12" y="12" width="104" height="104" rx="12" fill="#ffffff" />
|
||||
|
||||
<!-- folded corner -->
|
||||
<path d="M92 12 H108 V28" fill="#f6f7f8" opacity="0.9" />
|
||||
<path d="M92 12 L108 28" stroke="#e6e6e6" stroke-width="1.5" fill="none" />
|
||||
|
||||
<!-- document area -->
|
||||
<rect x="28" y="26" width="72" height="76" rx="6" fill="#ffffff" />
|
||||
|
||||
<!-- Vue chevron (simplified) -->
|
||||
<g transform="translate(34,30)">
|
||||
<path d="M10 0 L24 24 L0 24 Z" fill="url(#g-vue)" />
|
||||
<path d="M10 6 L24 30 L0 30 Z" fill="#063" opacity="0.95" />
|
||||
</g>
|
||||
|
||||
<!-- Markdown hash (#) drawn with strokes (reliable across renderers) -->
|
||||
<g transform="translate(64,46)" stroke="#0b1220" stroke-width="4" stroke-linecap="round">
|
||||
<line x1="-12" y1="-4" x2="12" y2="-4" />
|
||||
<line x1="-12" y1="8" x2="12" y2="8" />
|
||||
<line x1="-6" y1="-12" x2="-6" y2="20" />
|
||||
<line x1="6" y1="-12" x2="6" y2="20" />
|
||||
</g>
|
||||
|
||||
<!-- small code brackets to indicate renderer -->
|
||||
<g transform="translate(36,84)" stroke="#0b1220" stroke-width="3" fill="none" stroke-linecap="round">
|
||||
<path d="M0 0 L8 8 L0 16" />
|
||||
<path d="M56 0 L48 8 L56 16" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
Reference in New Issue
Block a user