Skip to content

Demo 说明

See It Before You Ship It

一个好用的 Demo,不只是“给别人看看”,也是团队内部确认能力边界、联调文件样本和复现问题的最快入口。 当前仓库已经为所有已注册格式准备了可切换入口,适合在本地开发、依赖升级和上线前做完整回归。

本地可用的两个入口

入口地址适合做什么
主示例页/切换预置文件、上传本地文件、快速确认各类格式表现
iframe 示例页/example/embedded.html验证独立部署与二进制推送协议

主示例页

主示例页内置了完整示例列表,包括 Word、Excel、PPT、PDF、OFD、DXF、Excalidraw、draw.io、EPUB、Markdown、代码/文本、图片、音频与视频。示例选择器按文件类型分组展示,每个样例都提供图标、格式名和文件名,点击后会立即打开并自动收起选择器。它适合做三件事:

  • 快速演示当前项目支持哪些文件类型
  • 用本地上传验证 file 方案
  • 在修改渲染逻辑后做肉眼回归检查
主示例页截图

主示例页提供分组样例文件盒子、URL 预览和上传预览,是最直接的联调入口。

Word 页面效果

Word 示例被单独拿出来说明,因为它已经不只是“能打开”,而是具备更明确的页面感。.doc.docx 都会尽量保留灰色页面底、白色纸张、页面居中和宽度自适应的阅读体验。

DOC 文件渲染截图

Word 文件会显示在灰色工作台中的白色纸张上,页面居中,阅读体验更接近真实文档。

iframe 示例页

public/example/embedded.html 演示了宿主页面如何下载文件,再把 Blob 推送给预览器。

Iframe 示例页截图

iframe 示例适合验证跨系统集成路径,尤其适合做带鉴权文件的联调。

示例文件清单

仓库中当前提供的示例文件位于 public/example/:

代码、配置和日志类样本已经按真实集成场景扩充,不再只是几行占位内容;它们会覆盖注释、函数、类型、嵌套配置、SQL CTE、Shell 参数、diff 块和长内容滚动,适合验证代码高亮的实际可读性。CAD、绘图和 UMD 样本使用公开仓库中的真实文件,来源记录在 public/example/SOURCES.md

文件用途对应能力
test.doc验证老 Word 文档链路doc + Word 风格页面容器
word.docx验证现代 Word 文档docx
excel.xlsx验证表格样式链路xlsx
excel.xlsm验证宏工作簿扩展名映射xlsm
excel.xlsb验证二进制工作簿扩展名映射xlsb
excel.xls验证老 Excel 扩展名映射xls
table.csv验证轻量数据表格链路csv
excel.ods验证 OpenDocument 表格扩展名映射ods
excel.fods验证 Flat ODS 扩展名映射fods
excel.numbers验证 Numbers 扩展名映射numbers
ppt.pptx验证演示文稿渲染、组合图形、主题背景和图片资源pptx
pdf.pdf验证 PDF 阅读体验、缩放工具栏和页面导航窗格pdf
ofd.ofd验证 OFD 在线预览ofd
drawing.dxf使用公开 DXF 样例验证 CAD 图纸预览、平移、缩放和图层控制dxf
sample.dwg使用公开 DWG 样例验证 DWG 兼容提示dwg
flow.excalidraw使用公开 Excalidraw 图纸验证官方恢复与 SVG 导出预览excalidraw
process.drawio使用官方 draw.io 示例验证 diagrams.net Viewer 预览drawio
book.epub使用 Project Gutenberg 公开 EPUB 验证电子书目录和滚动阅读epub
markdown.md验证 Markdown 阅读样式md
notes.markdown验证 Markdown 长扩展名markdown
text.txt验证纯文本展示txt
data.json验证 JSON 高亮json
code.js验证 JavaScript 高亮js
code.mjs验证 ES Module JavaScript 高亮mjs
code.cjs验证 CommonJS JavaScript 高亮cjs
code.ts验证 TypeScript 高亮ts
code.tsx验证 TSX 高亮tsx
code.jsx验证 JSX 高亮jsx
code.css验证 CSS 高亮css
page.html验证 HTML 源码展示,不作为网页执行html
page.htm验证 HTM 源码展示,不作为网页执行htm
data.xml验证 XML 高亮xml
component.vue验证 Vue 单文件组件高亮vue
config.yaml验证 YAML 高亮yaml
config.yml验证 YML 高亮yml
settings.ini验证 INI 高亮ini
bundle.umd使用公开 UMD 构建产物验证 JavaScript 包源码高亮umd
script.sh验证 Shell 脚本高亮sh
script.bash验证 Bash 脚本高亮bash
query.sql验证 SQL 高亮sql
main.go验证 Go 高亮go
main.rs验证 Rust 高亮rs
index.php验证 PHP 高亮php
main.c验证 C 高亮c
main.cpp验证 C++ 高亮cpp
module.cc验证 C++ 兼容扩展名高亮cc
main.h验证 C/C++ 头文件高亮h
main.hpp验证 C++ 头文件高亮hpp
program.cs验证 C# 高亮cs
change.diff验证 diff 高亮diff
code.java验证 Java 高亮java
code.py验证 Python 高亮py
app.log验证日志文本展示log
pic.png验证 PNG 图片预览png
pic.jpg验证 JPG 图片预览jpg
pic.jpeg验证 JPEG 图片预览jpeg
pic.gif验证 GIF 图片预览gif
pic.bmp验证 BMP 图片预览bmp
pic.tiff验证 TIFF 图片预览tiff
pic.tif验证 TIF 图片预览tif
vector.svg验证 SVG 图片预览svg
pic.webp验证 WEBP 图片预览webp
audio.mp3使用 MDN CC0 音频验证 MP3 原生播放mp3
audio.ogg使用 Wikimedia Commons 音频验证 OGG 原生播放ogg
video.mp4验证视频播放mp4
部分兼容格式示例复用了同一份可解析内容来覆盖扩展名入口,例如表格兼容格式和图片兼容格式。上线前仍建议使用业务真实文件补一轮回归。

完整覆盖与绘图说明

上面的清单已经覆盖当前注册的全部扩展名。DWG 当前作为 CAD 兼容入口保留,打开 .dwg 时会提示转换为 DXF 后预览,不会把 GPL 授权的 DWG 解析运行时打进组件包。

Excalidraw 使用官方 @excalidraw/excalidrawrestore 补齐真实公开文件中常见的精简字段,再通过 exportToSvg 生成只读 SVG;draw.io / diagrams.net 文件使用官方 GraphViewer 渲染 mxGraphModel / mxfile。组件不自行实现绘图格式解析,只做按需加载、容器挂载和错误提示。

公开样例来源

示例来源许可
drawing.dxfmozman/ezdxfexamples_dxf/wipeout_door.dxfMIT
sample.dwgdshn06/cad-webviewer-unitybaseline-sample.dwgMIT
flow.excalidrawneo4j-labs/agent-memorypoleo-model.excalidrawApache-2.0
process.drawiojgraph/drawio-diagramsblog/data-flow.drawioApache-2.0
bundle.umdtaylorhakes/promise-polyfill v8.2.2 的 dist/polyfill.jsMIT
audio.mp3MDN interactive examples 的 t-rex-roar.mp3CC0
audio.oggWikimedia Commons 的 Example.oggCC BY-SA 3.0
book.epubProject Gutenberg 的 Alice's Adventures in Wonderland EPUBPublic domain in the USA

这些样例的作用是验证预览器兼容性,不承诺覆盖你业务中所有 CAD 图元、绘图插件或打包器输出。上线前仍建议把自己的高频文件加入回归清单。

建议保留一套自己的回归样本

如果你要把这个项目接进正式业务,建议你把下面这几类文件各留一份,形成自己的最小回归集:

  • 一份版式复杂的 docx
  • 一份历史 .doc
  • 一份带合并单元格和颜色的 xlsx
  • 一份兼容格式表格,比如 xlscsv
  • 一份业务里最常见的 pdf
  • 一份真实 OFD 发票或归档件
  • 一份 DXF 图纸
  • 一份 Excalidraw 或 draw.io 图纸
  • 一份 EPUB 电子书
  • 一份 Markdown 说明文档
  • 一份日志或配置文件,比如 log / json
  • 一份源码文件,比如 ts / py / java
  • 一份 svgwebp 图片
  • 一份业务常用音频,比如 mp3ogg

这样每次升级预览器、调整依赖或准备发版时,都能快速知道“这次有没有把关键能力碰坏”。

建议你先用仓库内置样本确认主链路,再用自己的真实文件补一轮回归。前者帮你判断“项目本身能不能跑”,后者帮你判断“它能不能真正接住你的业务”。

Released under the Apache-2.0 License.