@web-ppt/viewer-core 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/README.zh-CN.md +0 -55
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
本文件记录对使用者可见的变化。版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## 0.4.5
|
|
6
|
+
|
|
7
|
+
### 修复
|
|
8
|
+
|
|
9
|
+
- **`@web-ppt/viewer-core` 与 `@web-ppt/fonts` 的 npm 页面在 0.4.4 里仍是中文**。
|
|
10
|
+
包内容是对的(tarball 里躺着英文版),错的是 npm 用来渲染页面的那份元数据。
|
|
11
|
+
|
|
12
|
+
原因是 npm 认哪个文件当 README 并不看「是不是叫 README.md」:
|
|
13
|
+
`@npmcli/package-json` 用 `{README,README.*}` 去 glob 再取第一个像 markdown
|
|
14
|
+
的命中,而 0.4.4 引入的 `README.zh-CN.md` 同样匹配 `README.*`,实测还排在
|
|
15
|
+
`README.md` 前面。`files` 只挡住了 tarball,挡不住元数据。
|
|
16
|
+
|
|
17
|
+
本地化 README 改用连字符(`README-zh-CN.md`),并在 `sync-package-docs.mjs`
|
|
18
|
+
里加了守卫:包目录里出现 `README.*` 旁支就直接让发布失败。
|
|
19
|
+
|
|
5
20
|
## 0.4.4
|
|
6
21
|
|
|
7
22
|
本版没有代码改动,只动文档——但 npm 上看到的东西全变了,所以值得单独发一版。
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @web-ppt/viewer-core
|
|
2
2
|
|
|
3
|
-
**English** · [简体中文](https://github.com/unStone/web-ppt/blob/master/packages/viewer-core/README
|
|
3
|
+
**English** · [简体中文](https://github.com/unStone/web-ppt/blob/master/packages/viewer-core/README-zh-CN.md)
|
|
4
4
|
|
|
5
5
|
The headless layer of [Web-PPT](https://github.com/unStone/web-ppt).
|
|
6
6
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web-ppt/viewer-core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "Headless presentation state machine for Web-PPT: navigation, zoom, search and click-batched animation playback, drivable from any UI framework.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pptx",
|
package/README.zh-CN.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# @web-ppt/viewer-core
|
|
2
|
-
|
|
3
|
-
[English](README.md) · **简体中文**
|
|
4
|
-
|
|
5
|
-
[Web-PPT](https://github.com/unStone/web-ppt) 查看器的 headless 层。
|
|
6
|
-
|
|
7
|
-
`PresentationState` 是零 DOM 的纯状态机——导航 / 缩放 / 搜索 / 动画批次 / 自动换片,
|
|
8
|
-
可被原生 DOM、React、Vue、Svelte 任意 UI 驱动,也能在 Node 里直接跑测试。
|
|
9
|
-
`Viewer` 是它之上最薄的一层 DOM 绑定(塞 SVG、设可见性、调播放,约 24 行)。
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm i @web-ppt/core @web-ppt/viewer-core
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## 开箱即用
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
import { parse } from '@web-ppt/core';
|
|
19
|
-
import { Viewer } from '@web-ppt/viewer-core';
|
|
20
|
-
|
|
21
|
-
const pres = await parse(file);
|
|
22
|
-
const v = new Viewer(container, pres, { animate: true, autoAdvance: true });
|
|
23
|
-
|
|
24
|
-
v.next(); // 有待播动画时先播动画,否则翻页
|
|
25
|
-
v.finishAnimations(); // 跳到本页动画终态
|
|
26
|
-
v.setZoom(1.5);
|
|
27
|
-
v.search('关键词'); // → 命中的页索引数组
|
|
28
|
-
await v.exportPng(2); // → Blob
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## 接自己的 UI
|
|
32
|
-
|
|
33
|
-
```ts
|
|
34
|
-
import { PresentationState, playGroup, playTransition } from '@web-ppt/viewer-core';
|
|
35
|
-
|
|
36
|
-
const st = new PresentationState(pres, { skipHidden: true, animate: true });
|
|
37
|
-
|
|
38
|
-
st.subscribe((change) => {
|
|
39
|
-
if (change.type === 'slide') {
|
|
40
|
-
render(change.index);
|
|
41
|
-
if (change.transition) playTransition(prevEl, nextEl, change.transition);
|
|
42
|
-
} else if (change.type === 'animation' && change.group) {
|
|
43
|
-
playGroup(container, change.group);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
st.next();
|
|
48
|
-
st.hiddenElementIds; // 当前批次下应隐藏的元素 id
|
|
49
|
-
st.resolveLink(href); // 'slide:3' → 2,外链 → null
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
状态机只决定「该显示什么」,实际播放由 UI 层调 `playGroup` / `playTransition` 完成——
|
|
53
|
-
所以换框架时不需要重写任何逻辑。
|
|
54
|
-
|
|
55
|
-
MIT
|