项目
项目
给自己的网站添几件趁手工具
六个公开项目,都从实际需要出发。可以读源码、试想法、报告问题,也一起把工具做得更好。欢迎 AI 辅助贡献。
写文建站<div class="project-demo" data-project-demo data-animation="/images/previews/3a976db66c5e69697203e74f54b124a51a6437690b22745820b3104958cf6b10.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/d7a464fe4a609a7001c697a692f76a7c3cb353e625ba01bd5264831e8ca59391.webp" alt="写文建站" loading="lazy" decoding="async" data-original="/images/previews/edgepress-workflow-zh.5f0ea06c8846d7e3.webp" srcset="/images/responsive/d7a464fe4a609a7001c697a692f76a7c3cb353e625ba01bd5264831e8ca59391.webp 400w, /images/responsive/72c7b080777a5f1ffaf7f1d31c759ef60e8d7cbdac9638a6f7a529c13c8bc792.webp 800w, /images/responsive/b18994517f00232699ec3d79e257044145178dc30cd0ba98d7b3765f0f913150.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="写文建站"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: 写文建站">播放演示</button><input name="edgepress-demo-seek-1" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: 写文建站"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
真实终端与 HTTP 响应<div class="project-demo" data-project-demo data-animation="/images/previews/8d5287fe4c29d960018b55025a499a44a7d7b0933b06e128618bf61432a229ab.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/28a731d9ca88a9404cec6f1dbf1c02e5879a01ccc46c062e60ae92d6aa6a9364.webp" alt="真实终端与 HTTP 响应" loading="lazy" decoding="async" data-original="/images/previews/edgeaegis-routing.b731526e1a9adb11.webp" srcset="/images/responsive/28a731d9ca88a9404cec6f1dbf1c02e5879a01ccc46c062e60ae92d6aa6a9364.webp 400w, /images/responsive/2ca680e4742e60d3bdf1dbbcfcc218fad064163e2b662731cdb9f68344072fc4.webp 800w, /images/responsive/7f7d99044fb6969dc06fc72de75aa48add40adda616b41600dadaa58b1dc81b6.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="EdgeAegis"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: EdgeAegis">播放演示</button><input name="edgepress-demo-seek-2" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: EdgeAegis"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
我提问<div class="project-demo" data-project-demo data-animation="/images/previews/016f32100391a301909ed044aeaef0f5edb44aad7aacdd0a896b727dea383798.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/1d69e54ff3172669c66f38c2e2e8c49e21f26c653ad3212c367b9e39b749febc.webp" alt="我提问" loading="lazy" decoding="async" data-original="/images/previews/iask-workflow-zh.2628ad2dbc587823.webp" srcset="/images/responsive/1d69e54ff3172669c66f38c2e2e8c49e21f26c653ad3212c367b9e39b749febc.webp 400w, /images/responsive/7fd52c390e638284cad88e7adf9bc10e81413e739e36d0de5c85aa3d4e402029.webp 800w, /images/responsive/d8734e29688eeaa69910944da744058da12c7176b6afe64603196d5da51e48e5.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="我提问"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: 我提问">播放演示</button><input name="edgepress-demo-seek-3" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: 我提问"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
爱分享<div class="project-demo" data-project-demo data-animation="/images/previews/aa71994b2a86c5d4ccf0462950aef1816a2e0fc6f548b34b4b01f5103d429919.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/e63280406b277ad8b325c43ea0c41e638a1162a102b568fa3a96dd00b97f3883.webp" alt="爱分享" loading="lazy" decoding="async" data-original="/images/previews/ishare-workflow-zh.919b349b8868e420.webp" srcset="/images/responsive/e63280406b277ad8b325c43ea0c41e638a1162a102b568fa3a96dd00b97f3883.webp 400w, /images/responsive/62d5396dbfff9be73677ac400c5ac0a899b4896c5d16cf8ce0484f60c0953610.webp 800w, /images/responsive/cf50de12e24e02fec70339a339bdeddcb39a6526d1cb1bc13e8256507883bb56.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="爱分享"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: 爱分享">播放演示</button><input name="edgepress-demo-seek-4" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: 爱分享"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
多媒体查看器<div class="project-demo" data-project-demo data-animation="/images/previews/07b26c7765f096d08d348075430c451e0776fb81039e2e71a09a7c5e76636949.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/a97b2887a179599df11bdf109af5fd5857e834473db10e3dd468a15a2c9f7e4a.webp" alt="多媒体查看器" loading="lazy" decoding="async" data-original="/images/previews/media-videojs10.6ae2ad98bbba3869.webp" srcset="/images/responsive/a97b2887a179599df11bdf109af5fd5857e834473db10e3dd468a15a2c9f7e4a.webp 400w, /images/responsive/893f77e5696e44a825552eb9418dceee32f9256e31fbe45cffed366b52559166.webp 800w, /images/responsive/77383b487348ecea893985f0eca289be9701b7b6cf83e4821299e998abf197bd.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="多媒体查看器"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: 多媒体查看器">播放演示</button><input name="edgepress-demo-seek-5" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: 多媒体查看器"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
文档查看器<div class="project-demo" data-project-demo data-animation="/images/previews/c5083728ae2e943e369c677c9efbdd1eb45751d03250aa100bcd0e7f91ef5958.mp4" data-play="播放演示" data-resume="继续播放" data-pause="暂停演示" data-replay="重新播放" data-loading="正在加载演示…" data-error="演示暂时无法加载,请重试。"><div class="project-demo-media"><img src="/images/responsive/5a473711c31b8f2819c7a6cc872beec579e6f7cb1249645054d786f6e609016d.webp" alt="文档查看器" loading="lazy" decoding="async" data-original="/images/previews/doc-views-zh-sg.6722d217e0dc0a53.webp" srcset="/images/responsive/5a473711c31b8f2819c7a6cc872beec579e6f7cb1249645054d786f6e609016d.webp 400w, /images/responsive/2f98aa0189f04a07105b8ec1e0c3a92713bef6632c9850d05a8b37e66ada9c45.webp 800w, /images/responsive/63d974005b854f077828ef249767fc2cd31e14d4369c004458f162cb817efbf7.webp 1200w" sizes="(max-width: 620px) calc(100vw - 32px), (max-width: 900px) calc((100vw - 72px) / 2), 560px" width="400" height="250"><video muted playsinline preload="none" hidden aria-label="文档查看器"></video></div><button type="button" data-demo-toggle aria-pressed="false" aria-label="播放演示: 文档查看器">播放演示</button><input name="edgepress-demo-seek-6" class="project-demo-seek" data-demo-seek type="range" min="0" max="1" value="0" step="0.1" disabled aria-label="演示进度: 文档查看器"><span class="project-demo-time" data-demo-time>0:00 / 0:00</span><span class="project-demo-status" role="status"></span></div>
文档查看器
Word、PDF、PowerPoint 和 Excel 文档在跟随网站主题、可展开的阅读工作区里显示。浏览器本地还原文档排版,提供连续分页与工作表导航,不需要 Office 软件或转换服务器。