Slidev CLI Skilld
skilld-dev/vue-ecosystem-skills
Build, present, and ship Slidev decks with @slidev/cli. An agent skill from skilld-dev/vue-ecosystem-skills.
即页(jpage)统一技能:生成 HTML/Markdown 内容、制作 reveal.js 幻灯片、使用内容模板市场风格、上传到即页并管理文件。所有内容生产与文件管理操作都通过本技能完成。
$ npx skills add code2rich/jpage --skill jpage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install code2rich/jpage jpage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/jpage .claude/skills/jpage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .claude/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/code2rich/jpage/tree/main/skills/jpageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add code2rich/jpage --skill jpage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install code2rich/jpage jpage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/jpage .agents/skills/jpage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .agents/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code2rich/jpage --skill jpage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install code2rich/jpage jpage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/jpage .cursor/skills/jpage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .cursor/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/code2rich/jpage.git --path skills/jpage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add code2rich/jpage --skill jpage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install code2rich/jpage jpage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/jpage .gemini/skills/jpage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .gemini/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install code2rich/jpage jpageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add code2rich/jpage --skill jpage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/jpage .github/skills/jpage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .github/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code2rich/jpage --skill jpage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install code2rich/jpage jpage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code2rich/jpage.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/jpage .opencode/skills/jpage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "jpage" agent skill from https://github.com/code2rich/jpage/tree/main/skills/jpage into .opencode/skills/jpage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jpage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
jpage即页(jpage)统一技能:生成 HTML/Markdown 内容、制作 reveal.js 幻灯片、使用内容模板市场风格、上传到即页并管理文件。所有内容生产与文件管理操作都通过本技能完成。
Jpage is an agent skill from code2rich/jpage. 即页(jpage)统一技能:生成 HTML/Markdown 内容、制作 reveal.js 幻灯片、使用内容模板市场风格、上传到即页并管理文件。所有内容生产与文件管理操作都通过本技能完成。
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including assets (for example `assets/plugin/highlight/plugin.js`, `assets/plugin/notes/notes.js` and `assets/reveal.js`).
It sits in Documents & Office, covering Markdown. It works with Model Context Protocol and npm. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 68e16e3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npmcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MCP_TOKENJPAGE_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Jpage loads about 3.2k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 644 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
# 2. 当前目录 .envN=jp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' > .env> token 三选一:`.env` 里的 `MCP_TOKEN`、`.mcp.json` 里的 Bearer、用户给的 `jp_` 用户 token。Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from code2rich/jpage at commit 68e16e3, republished under its MIT licence (© code2rich). 644 words, ~3,216 tokens.
.claude/skills/jpage/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.当用户要求:
统一走本技能的工作流。
内容生成后必须调用
upload_file上传到即页,返回预览链接;不要只输出代码块让用户自己复制。 大段 base64 上传很慢且费 token,本地已有的大文件 / ZIP 优先用 CLI 或 curl multipart 上传。
本 Skill 推荐配合 jpage CLI 使用。只要当前环境有 Node.js ≥ 20,就可以全局安装:
npm install -g @code2rich/jpage安装后验证:
jpage --version配置 Token(三选一即可):
# 1. 环境变量
export JPAGE_TOKEN="jp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 2. 当前目录 .env
# echo 'JPAGE_TOKEN=jp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' > .env
# 3. 临时命令参数
jpage whoami --token jp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx没有 npm / 无法安装 CLI / 没有 Bash 能力的纯 MCP 客户端,直接调用下方的 MCP 工具即可,无需安装。
CLI 安装好后,把本 Skill 同步到 Claude Code / Desktop 的 skills 目录:
# 自动安装到默认 skills 目录(按 ~/.claude/skills → ~/.claude-code/skills → ~/.agents/skills 顺序检测)
jpage skill install
# 或指定目录
jpage skill install --dir ~/.claude/skills/jpage后续升级 jpage 后,用同一条命令覆盖更新:
jpage skill update该命令会把 npm 包内置的
skills/jpage/完整复制到目标目录,包括 SKILL.md 和 assets/ 资源。
本 Skill 同时对应 jpage CLI(命令行) 与 MCP 工具 两套入口。执行上传、模板实例化、批量管理等任何操作时:
jpage 命令(或可通过 npm/pnpm 安装),就先走 CLI:二进制流式上传、base64 不进模型、速度最快、token 消耗最少。upload_file、instantiate_content_template 等 tool 完成。判断标准:能否在当前环境执行
jpage --version并成功返回版本号?能 → CLI;不能 → MCP。
除非用户要的是幻灯片 / PPT / 演示文稿(必须走 Bundle 模式),否则一律生成单个自包含 HTML 文件:
<style> 内联<script> 内联.html 里不要把普通页面拆成 index.html + style.css + app.js 再打 ZIP——单文件在即页里预览最稳、分享最简单。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标题</title>
<style>
/* 内联 CSS */
</style>
</head>
<body>
<!-- 内容 -->
<script>
// 内联 JS
</script>
</body>
</html>-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif即页 Markdown 渲染引擎支持:
$...$,块级 $$...$$(KaTeX)```mermaidreveal.js 引擎 ~85KB,单文件内联会让每个 PPT 膨胀。即页有 Bundle 机制(ZIP 解压成目录,资源共用),必须走这条路。
常见结构:
结构语法:1 = 单张水平页,N = N 张垂直堆叠,d = 居中大字分隔页。
例:1,d,3,d,2,d,1 = 封面 / 分隔 / 3 页内容 / 分隔 / 2 页内容 / 分隔 / 总结。
| 用户说 | 主题 | 主色 |
|---|---|---|
| 商务 / 汇报 / 正式 / 提案 / 季度 / 年终 | business | 深蓝 #0a4d8c + 白底 |
| 学术 / 论文 / 答辩 / 研究 | academic | 深灰 + 米白,衬线标题 |
| 创意 / 产品 / 发布 / 活泼 / 设计 | creative | 高饱和渐变 |
| 极简 / 简约 / keynote 风 / 苹果风 | minimal | 黑白 + 一个强调色 |
用户没指定时默认 business。
目录结构(推荐 flat,根级直接是 index.html + assets/):
deck/
├── index.html
├── assets/
│ ├── reveal.js # reveal.js 引擎
│ ├── reveal-base.css # 基础布局(必须)
│ ├── theme.css # 选定的主题 CSS
│ └── plugin/
│ ├── highlight/
│ │ ├── plugin.js
│ │ └── monokai.css
│ └── notes/notes.js<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>幻灯片标题</title>
<link rel="stylesheet" href="assets/reveal-base.css">
<link rel="stylesheet" href="assets/theme.css">
<link rel="stylesheet" href="assets/plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section><h1>标题</h1><p>副标题</p></section>
<section>水平页</section>
<section>
<section>垂直堆叠页 1</section>
<section>垂直堆叠页 2</section>
</section>
</div>
</div>
<script src="assets/reveal.js"></script>
<script src="assets/plugin/highlight/plugin.js"></script>
<script>
Reveal.initialize({
embedded: true, // ★ iframe 内兼容,必须 true
hash: true,
controls: true,
progress: true,
slideNumber: true,
transition: 'slide',
plugins: [RevealHighlight]
});
</script>
</body>
</html>关键约束:
Reveal.initialize 必须设 embedded: true,避免 iframe 父页面抢方向键。assets/。<section> 内容精简;reveal.js 不自动滚动,溢出会被裁切。reveal.js 引擎 + 基础 CSS + 4 套主题 + notes/highlight 插件骨架已随本 Skill 包下发(assets/ 目录)。生成幻灯片时直接复制:
SKILL=~/.claude/skills/jpage
mkdir -p deck/assets/plugin/notes deck/assets/plugin/highlight
cp "$SKILL/assets/reveal.js" deck/assets/
cp "$SKILL/assets/reveal-base.css" deck/assets/
cp "$SKILL/assets/themes/business.css" deck/assets/theme.css # 按需换主题
cp "$SKILL/assets/plugin/notes/notes.js" deck/assets/plugin/notes/
cp "$SKILL/assets/plugin/highlight/plugin.js" deck/assets/plugin/highlight/
cp "$SKILL/assets/plugin/highlight/monokai.css" deck/assets/plugin/highlight/必须引入的两个 CSS:reveal-base.css(基础布局)+ theme.css(主题变量)。顺序:base 在前,theme 在后。
本 Skill 默认不含 highlight.js 全量文件(940KB,太重)。若幻灯片需要代码高亮:
npm pack highlight.js@11 && tar -xzf highlight.js-*.tgz --strip-components=1 -C deck/assets/plugin/highlight package/es/highlight.min.js package/styles/monokai.css不需要代码高亮时,不要引入。
若运行环境没有本 Skill 的 assets/(如只贴了 SKILL.md),从 npm 拿稳定版:
npm pack reveal.js@5
tar -xzf reveal.js-5.*.tgz --strip-components=1 -C deck/assets package/dist/reveal.js package/dist/reveal.css package/plugin/
mv deck/assets/reveal.css deck/assets/reveal-base.css
# 主题用本 SKILL.md 里 CSS 变量自定义,或手写 theme.css有 Bash 能力时,优先用 CLI 或 curl multipart 上传 ZIP,二进制流式上传、不进模型 token 流:
# 打 ZIP(flat 结构)
cd deck && zip -rq ../deck.zip index.html assets/ && cd ..
# 用 jpage CLI 上传(推荐)
jpage upload deck.zip --public
# 或 curl multipart
curl -sS -X POST "$BASE/api/files/upload" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@deck.zip" \
-F "isPublic=true"纯 MCP 客户端(无 Bash)才退回 upload_file:
upload_file(
name="ai-trends-deck.zip",
content="<ZIP 的 base64>",
isPublic=True
)体积提示:reveal.js ~85KB 经 base64 约 113KB,作为 tool 参数流经模型 token 流,比 curl multipart 慢且费 token。有 Bash 就别走这条。
上传成功后向用户展示 /s/<share_key> 链接,并提示:
幻灯片打开后,点击幻灯片区域聚焦,再用 ← → 翻页(或点右下角控件)。若键盘不响应,点预览页右上角「新窗口打开」按钮全屏查看。
当用户要求生成 HTML/Markdown 内容时,先判断是否需要风格参考。如果用户指定了风格或类型,先查询模板市场获取样例。
1. 调 list_content_templates 查询模板市场
- 如果用户指定了分类类型(如「PPT」「书稿」),设置 category 参数
- 如果用户指定了风格关键词,设置 keyword 参数
2. 向用户展示匹配的模板列表(标题、分类、描述)
3. 用户选择一个模板后,调 get_content_template(id=选择的模板id) 获取完整样例
4. 学习样例的以下特征:
- 整体布局结构(header/main/footer/sidebar 等区域划分)
- 色彩方案(主色、辅色、背景色、文字色)
- 排版风格(字体大小、间距、对齐方式)
- 交互元素(按钮样式、卡片样式、表格样式)
- 使用的 CSS 技术(Grid/Flexbox/absolute 等)
- 特殊效果(渐变、阴影、动画等)
5. 根据用户的具体内容需求,生成风格一致但内容全新的 HTML/Markdown
6. 调 upload_file 上传到即页,返回预览链接1. 根据用户需求判断可能的分类类型
2. 调 list_content_templates(category=分类, sort="use_count", limit=3)
3. 如果有匹配模板,向用户推荐:
「我找到了几个相关模板,是否参照某个模板的风格?还是直接生成?」
4. 用户选择后,按场景一的流程继续
5. 如果用户选择直接生成,则不使用模板,正常生成用户有一个好看的 HTML/Markdown 文件,想上架到市场供以后参考。
1. 告知用户:上架后会快照文件当前内容,进入审核,管理员审核通过且设为展示后才出现在市场
2. 调 POST /api/content-templates/from-file
- fileId: 源文件 ID(必填)
- title: 模板名称(可选,默认用文件名)
- categoryId: 分类 ID(必填,先用 GET /api/content-templates/categories 获取)
- description: 风格描述(可选,建议包含:链接、风格关键词、适合内容、借鉴模块)
3. 一文件一模板:同文件再次上架会更新现有模板并重新进入审核
4. 告知用户已提交,等待审核当用户说「使用这个模板」「按这个模板生成一份」「把这个模板给我用」时,表示要在当前账户下创建一份基于模板内容的文件。该操作必须通过 Token 完成,Web 端按钮只能查看命令引导。
有 CLI 时优先走 CLI(速度最快、token 消耗最少):
# 查看市场模板列表
jpage template ls --category html-book --limit 5
# 使用指定模板实例化(默认私有)
jpage template use 42 --name "我的报告.html" --publicCLI 不可用时,再调用 MCP 工具:
instantiate_content_template(
id=42,
originalName="我的报告.html",
isPublic=True
)注意:
instantiate_content_template需要有效的 API Token(jp_...)或MCP_TOKEN,Session Cookie 会被拒绝。- 实例化成功后会在用户账户下创建一个真实文件,返回
url可直接分享。
| 用户可能说的 | category 参数 | 说明 |
|---|---|---|
| PPT、演示、幻灯片、路演、商务演示 | html-ppt | 适合演示型 HTML |
| 书稿、文档、教程、手册、协议规范、开发者文档 | html-book | 适合阅读型 HTML |
旧 scene 参数(dashboard/report/resume/landing/note/presentation/card/email/other)仍可传入作为兼容,工具会自动映射到对应分类。建议改用 category 参数。
AI 拿到样例后应学习的维度(按优先级):
重要:学习风格,不复制内容。生成的必须是全新的原创内容,仅保持视觉风格一致。
1. 根据用户需求生成完整的 HTML 或 Markdown 内容
2. 调用 upload_file:
- name: 带扩展名的文件名(如 "data-report.html"、"meeting-notes.md")
- content: 完整正文(UTF-8 字符串)
- isPublic: 默认 true(除非用户明确要求私有)
3. 向用户展示返回的 url 链接upload_file 返回结构:
{
"id": 42,
"original_name": "data-report.html",
"file_type": "html",
"size": 12345,
"is_public": 1,
"share_key": "abc12345",
"url": "http://jpage.example.com/s/abc12345"
}1. 调 list_files 查看文件列表,找到目标文件 id
2. 调 get_file_content(id=目标id) 读取当前内容
3. 根据用户要求修改内容
4. 调 upload_file(name=原文件名, content=修改后内容, overwriteFileId=目标id)
5. 告知用户已更新使用
overwriteFileId会自动将旧版本存入版本历史,无需先删除再上传。
1. 调 list_files 返回文件列表
2. 向用户展示文件摘要(文件名、类型、大小、公开/私有)# 查看现有标签/分类
调 list_tags → 展示所有标签及文件数
调 list_categories → 展示所有分类及文件数
# 上传时直接打标签
upload_file(name="Q3报告.html", content=..., tags=["报告", "Q3", "财务"])
# 给已有文件设置标签
add_tags_to_file(fileId=42, tags=["重要", "待审核"])
# 创建分类并归档文件
create_category(name="2026年报告") → 拿到 categoryId
set_file_category(fileId=42, categoryId=分类id)# 查看版本历史
list_file_versions(fileId=42)
→ 返回当前版本信息 + 所有历史版本列表
# 恢复到指定版本
restore_file_version(fileId=42, version=3)
→ 当前版本自动备份,版本3的内容成为新当前版本调 get_file_url(id=42)
→ 返回 { id: 42, url: "http://jpage.example.com/s/abc12345" }短链接格式 /s/:key 是最佳分享方式,公开文件无需登录即可访问。
调 delete_file(id=42)必须先向用户确认再执行删除,此操作不可撤销。
upload_file 的 content 是字符串参数,ZIP 时是整包 base64。把大段 base64 当 tool 参数传会流经模型 token 流,极慢且昂贵。按内容来源选上传方式:
有 Bash 时,直接走 REST multipart,二进制流式上传,base64 完全不进模型:
# 推荐:jpage CLI
jpage upload ./site.zip --public
jpage upload ./report.html --public
jpage upload ./x.html --overwrite 42
# 或 curl multipart
curl -sS -X POST "$BASE/api/files/upload" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@./site.zip" \
-F "isPublic=true"token 三选一:
.env里的MCP_TOKEN、.mcp.json里的 Bearer、用户给的jp_用户 token。
不要把每个资源 base64 塞进 upload_file。先用 Write 工具把文件写到磁盘、Bash 打包,再上传:
zip -r site.zip index.html assets/
jpage upload site.zip --public内容本就在模型输出里,upload_file 让这些 token 只发一遍——返回值不含 content,不会回灌进上下文。
判断标准:内容是「此刻生成、已在上下文」还是「磁盘上已存在的文件」——前者用 upload_file,后者用 CLI / curl。
| 错误信息 | 原因 | 处理方式 |
|---|---|---|
不支持的文件扩展名 | 文件名后缀不在允许列表中 | 确保文件名为 .html、.htm、.md 或 .markdown |
文件过大 | 内容超过 50MB | 拆分内容或压缩 |
文件不存在 | 使用了无效的文件 ID | 重新 list_files 获取有效 ID |
无权操作此文件 | 非所有者且非 admin | 告知用户权限不足 |
| 上传后被当成多个独立文件(batch)而非一个幻灯片包 | ZIP 里没有 index.html,或有多个并列 HTML 且无共享资源目录 | 确保根级有 index.html + assets/ 子目录 |
| 幻灯片打开是空白 | 引用了 CDN 的 reveal.js | 所有资源必须本地 assets/,禁止 CDN URL |
| 翻页键不响应 | iframe 父页面抢键 | 已用 embedded:true 规避;提示用户先点击聚焦,或用新窗口打开 |
| 文字被裁切 | 一页内容太多 | 拆页,每页一个要点 |
| 主题样式没生效 | 只引入了 theme.css 没引入 reveal-base.css,或顺序反了 | base 在前,theme 在后 |
upload_file — 上传 HTML/Markdown/ZIP 文件list_files — 列出文件get_file_content — 读取文件内容delete_file — 删除文件rename_file — 改名 / 改公开性get_file_url — 获取分享链接star_file / unstar_file — 收藏list_file_versions / restore_file_version — 版本历史list_tags / add_tags_to_file — 标签list_categories / create_category / set_file_category — 分类list_content_templates — 查询内容模板市场get_content_template — 获取模板完整内容(学习风格用)instantiate_content_template — 用模板实例化文件(CLI 不可用时兜底)© code2rich, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (assets) in skills/jpage of code2rich/jpage.
Open the folder on GitHubat commit 68e16e3
Jpage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Jpage this skillcode2rich/jpage | 175 | — | ~3.2k | Automated safety check: Notes | MIT | |
| Slidev CLI Skilldskilld-dev/vue-ecosystem-skills | 181 | — | ~1.1k | Automated safety check: Pass | MIT | |
| PullmdAeternaLabsHQ/pullmd | 486 | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| MineruNebutra/MinerU-Skill | 122 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Rebuild Launcherspiculedata/saiku | 1.3k | — | ~467 | Automated safety check: Pass | Apache-2.0 | |
| Web Article Extractordongbeixiaohuo/writing-agent | 435 | — | ~740 | Automated safety check: Pass | MIT |
skilld-dev/vue-ecosystem-skills
Build, present, and ship Slidev decks with @slidev/cli. An agent skill from skilld-dev/vue-ecosystem-skills.
AeternaLabsHQ/pullmd
Read any web page, document, or YouTube video as clean Markdown using PullMD.
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.
spiculedata/saiku
Rebuild and restart the Saiku launcher fat-JAR after changing saiku-ui or Java code, without shipping stale UI bundles or breaking the running JVM.
dongbeixiaohuo/writing-agent
使用隔离的 Chrome DevTools MCP 从博客、新闻、公众号等网页提取正文,返回结构化内容,或保存 Markdown 和远程图片。用户要求提取文章、抓取网页正文、保存为 Markdown、下载文章图片或排查正文选择器时调用。
maypaz/md.page
Turn any markdown into a shareable web page via md.page. An agent skill from maypaz/md.page.
Works with
Categories
即页(jpage)统一技能:生成 HTML/Markdown 内容、制作 reveal.js 幻灯片、使用内容模板市场风格、上传到即页并管理文件。所有内容生产与文件管理操作都通过本技能完成。. Jpage is an agent skill from code2rich/jpage.
Jpage fits situations like: tasks that involve Markdown.
Run `npx skills add code2rich/jpage --skill jpage -a claude-code`. Or copy the skill folder (skills/jpage in code2rich/jpage) into .claude/skills/jpage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add code2rich/jpage --skill jpage -a codex`. Or copy the skill folder (skills/jpage in code2rich/jpage) into .agents/skills/jpage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add code2rich/jpage --skill jpage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jpage, .gemini/skills/jpage, .github/skills/jpage and .opencode/skills/jpage in your project.
Going by SKILL.md and its folder, Jpage needs JavaScript for the scripts in its folder, the command-line tools its instructions call (npm and curl) and credentials named MCP_TOKEN and JPAGE_TOKEN. Our summary lists: Python 3; Node.js; A credential in JPAGE_TOKEN.
SKILL.md contains no URLs. Its commands use npm and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Jpage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Jpage: Slidev CLI Skilld (skilld-dev/vue-ecosystem-skills, 181 stars), Pullmd (AeternaLabsHQ/pullmd, 486 stars), Mineru (Nebutra/MinerU-Skill, 122 stars) and Rebuild Launcher (spiculedata/saiku, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
code2rich (a GitHub user) maintains it in code2rich/jpage, which has 175 GitHub stars. The repository was last updated on July 30, 2026.
Source: code2rich/jpage on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.