feat: initial release of pengzhan.dev personal editorial blog platform
- Editorial web platform built with Node.js, Express, EJS, and Vanilla CSS - Markdown content engine with YAML frontmatter, bilingual variants, and hot-reload watcher - Unified SQLite with FTS5 search indexing, query logging, and schema filters - Centered editorial post layout with margin-docked left TOC and mobile bottom sheet - WordPress-grade comment system with moderation dashboard and bulk operations under /guanli - Complete SEO suite (JSON-LD structured data, RSS/Atom feeds, XML sitemap, robots.txt) - CI/CD workflows for linting, security audits (Gitleaks), automated tests, and Docker releases
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="kidBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#fed7aa"/>
|
||||
<stop offset="100%" stop-color="#fb923c"/>
|
||||
</linearGradient>
|
||||
<filter id="kidShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-opacity="0.15"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<rect width="600" height="600" fill="url(#kidBg)" rx="32"/>
|
||||
|
||||
<!-- Creative Building Blocks / Robot Icon -->
|
||||
<g transform="translate(300, 250)" filter="url(#kidShadow)">
|
||||
<rect x="-90" y="-80" width="180" height="150" rx="24" fill="#ffffff"/>
|
||||
<!-- Robot antenna -->
|
||||
<line x1="0" y1="-80" x2="0" y2="-120" stroke="#ffffff" stroke-width="8" stroke-linecap="round"/>
|
||||
<circle cx="0" cy="-125" r="14" fill="#ea580c"/>
|
||||
<!-- Eyes -->
|
||||
<circle cx="-40" cy="-15" r="16" fill="#0284c7"/>
|
||||
<circle cx="40" cy="-15" r="16" fill="#0284c7"/>
|
||||
<!-- Smile -->
|
||||
<path d="M -40 30 Q 0 60 40 30" stroke="#ea580c" stroke-width="8" stroke-linecap="round" fill="none"/>
|
||||
</g>
|
||||
|
||||
<!-- Educational Blocks -->
|
||||
<g transform="translate(180, 420)" filter="url(#kidShadow)">
|
||||
<rect x="0" y="0" width="60" height="60" rx="12" fill="#38bdf8"/>
|
||||
<text x="30" y="42" text-anchor="middle" fill="#ffffff" font-family="-apple-system, sans-serif" font-size="32" font-weight="900">A</text>
|
||||
</g>
|
||||
<g transform="translate(260, 400)" filter="url(#kidShadow)">
|
||||
<rect x="0" y="0" width="60" height="60" rx="12" fill="#ec4899"/>
|
||||
<text x="30" y="42" text-anchor="middle" fill="#ffffff" font-family="-apple-system, sans-serif" font-size="32" font-weight="900">I</text>
|
||||
</g>
|
||||
<g transform="translate(340, 420)" filter="url(#kidShadow)">
|
||||
<rect x="0" y="0" width="60" height="60" rx="12" fill="#10b981"/>
|
||||
<text x="30" y="42" text-anchor="middle" fill="#ffffff" font-family="-apple-system, sans-serif" font-size="32" font-weight="900"><></text>
|
||||
</g>
|
||||
|
||||
<text x="300" y="530" text-anchor="middle" fill="#7c2d12" font-family="-apple-system, sans-serif" font-size="28" font-weight="800">Coding for Kids</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
Reference in New Issue
Block a user