upload-chapter-slides
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseUpload Chapter Slides
上传章节幻灯片
Upload PDF teaching slides to CDN and update chapter README with proper metadata.
将PDF教学幻灯片上传至CDN,并使用正确的元数据更新章节README。
Usage
使用方法
/upload-chapter-slides <pdf-path> <chapter-number> [--title "Custom Title"] [--name custom-filename]/upload-chapter-slides <pdf-path> <chapter-number> [--title "自定义标题"] [--name 自定义文件名]Examples
示例
bash
undefinedbash
undefinedBasic usage - chapter number only
基础用法 - 仅指定章节号
/upload-chapter-slides /path/to/slides.pdf 4
/upload-chapter-slides /path/to/slides.pdf 4
With custom title
使用自定义标题
/upload-chapter-slides /path/to/slides.pdf 3 --title "Agentic AI - The Digital FTE"
/upload-chapter-slides /path/to/slides.pdf 3 --title "Agentic AI - 数字全职员工"
With custom filename (for CDN URL)
使用自定义文件名(用于CDN URL)
/upload-chapter-slides /path/to/slides.pdf 4 --name context-engineering-blueprint
undefined/upload-chapter-slides /path/to/slides.pdf 4 --name context-engineering-blueprint
undefinedWorkflow
工作流程
Step 1: Parse Arguments
步骤1:解析参数
Extract from user input:
- : Absolute path to PDF file (required)
pdf_path - : Chapter number (required)
chapter_num - : Optional custom title for slides
title - : Optional custom filename for CDN
name
从用户输入中提取以下信息:
- : PDF文件的绝对路径(必填)
pdf_path - : 章节号(必填)
chapter_num - : 可选的幻灯片自定义标题
title - : 可选的CDN自定义文件名
name
Step 2: Resolve Chapter Path
步骤2:解析章节路径
bash
undefinedbash
undefinedFind chapter folder by number
通过章节号查找章节文件夹
ls -d apps/learn-app/docs//[0-9][0-9]-/ | grep "/${CHAPTER_NUM}-|/${CHAPTER_NUM}[0-9]-"
Extract from path:
- Part number: First segment number (e.g., `01` from `01-General-Agents-Foundations`)
- Chapter folder: Full path to chapter directory
**Pattern**: `apps/learn-app/docs/{NN}-{PartName}/{NN}-{ChapterName}/`ls -d apps/learn-app/docs//[0-9][0-9]-/ | grep "/${CHAPTER_NUM}-|/${CHAPTER_NUM}[0-9]-"
从路径中提取:
- 部分编号:路径的第一段编号(例如,从`01-General-Agents-Foundations`中提取`01`)
- 章节文件夹:章节目录的完整路径
**路径格式**:`apps/learn-app/docs/{NN}-{PartName}/{NN}-{ChapterName}/`Step 3: Upload PDF
步骤3:上传PDF
Run from project root:
bash
cd apps/panaversity-fs-py && uv run python scripts/upload_asset.py \
--file "{pdf_path}" \
--type slides \
--part {part_num} \
--chapter {chapter_num} \
--name {name_or_default}Capture the CDN URL from output (format: )
https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-{N}/chapter-{NN}/{filename}.pdf从项目根目录执行以下命令:
bash
cd apps/panaversity-fs-py && uv run python scripts/upload_asset.py \
--file "{pdf_path}" \
--type slides \
--part {part_num} \
--chapter {chapter_num} \
--name {name_or_default}捕获输出中的CDN URL(格式为:)
https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-{N}/chapter-{NN}/{filename}.pdfStep 4: Update README Frontmatter
步骤4:更新README前置元数据
Read and update YAML frontmatter:
{chapter_path}/README.mdIf exists: Replace the entire slides block
If missing: Add after line
slides:slides:title:yaml
slides:
source: "{cdn_url}"
title: "{title_or_chapter_title}"
height: 700读取并更新YAML前置元数据:
{chapter_path}/README.md若已存在:替换整个slides块
若不存在:添加在行之后
slides:slides:title:yaml
slides:
source: "{cdn_url}"
title: "{title_or_chapter_title}"
height: 700Step 5: Ensure Teaching Aid Heading
步骤5:确保教学辅助标题存在
Check if exists in README.
## 📚 Teaching AidIf missing: Add before (or first heading if no What You'll Learn):
## What You'll Learn##markdown
undefined检查README中是否存在标题。
## 📚 Teaching Aid若不存在:添加在(如果没有该标题,则添加在第一个标题之前):
## What You'll Learn##markdown
undefined📚 Teaching Aid
📚 Teaching Aid
What You'll Learn
What You'll Learn
**If exists**: No change needed.
**若已存在**:无需修改。Step 6: Report Success
步骤6:反馈成功信息
✅ Chapter {N} slides uploaded
CDN URL: {cdn_url}
README: {chapter_path}/README.md
Title: {slides_title}✅ 章节{N}幻灯片上传完成
CDN URL: {cdn_url}
README: {chapter_path}/README.md
标题: {slides_title}Error Handling
错误处理
| Error | Resolution |
|---|---|
| PDF file not found | Verify path exists |
| Chapter not found | Run |
| Upload failed | Check |
| README missing | Chapter may not be initialized |
| 错误 | 解决方法 |
|---|---|
| PDF文件未找到 | 验证路径是否存在 |
| 章节未找到 | 运行 |
| 上传失败 | 检查 |
| README缺失 | 章节可能未初始化 |
Path Constants
路径常量
PROJECT_ROOT: /Users/mjs/Documents/code/panaversity-official/tutorsgpt/agentfactory
DOCS_PATH: apps/learn-app/docs
UPLOAD_SCRIPT: apps/panaversity-fs-py/scripts/upload_asset.pyPROJECT_ROOT: /Users/mjs/Documents/code/panaversity-official/tutorsgpt/agentfactory
DOCS_PATH: apps/learn-app/docs
UPLOAD_SCRIPT: apps/panaversity-fs-py/scripts/upload_asset.pyREADME Structure Reference
README结构参考
Correct structure after skill runs:
yaml
---
sidebar_position: N
title: "Chapter N: Title"
slides:
source: "https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-N/chapter-NN/filename.pdf"
title: "Slide Title"
height: 700
---技能执行后的正确结构如下:
yaml
---
sidebar_position: N
title: "Chapter N: Title"
slides:
source: "https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-N/chapter-NN/filename.pdf"
title: "幻灯片标题"
height: 700
---Chapter N: Title
Chapter N: Title
[intro paragraphs]
[介绍段落]
📚 Teaching Aid
📚 Teaching Aid
What You'll Learn
What You'll Learn
[content]
undefined[内容]
undefined