npx skills add smithery/tyrchen --skill site-slides
tyrchen/geektime-bootcamp-ai · Archived
site-slides
Generate presentation slides from images or PDF files. Use when user wants to create slides, generate presentations, or convert PDF to slides for the training camp website. Triggers on keywords like "slides", "presentation", "幻灯片", "演示文稿".
Installation
npx skills add tyrchen/geektime-bootcamp-ai --skill site-slides
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Generate safe, read-only PostgreSQL queries from natural language. Use when users need to query…
3 installsReference guide for using google-genai Python library to generate images with gemini-3-pro-imag…
3 installsExtract any website's design system into an agent-ready DESIGN.md using Firecrawl scrape eviden…
32.6K installsWebsite exploration for testing using Playwright MCP
14.7K installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybr…
568.2K installsUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or bot…
216.8K installsUse this skill whenever the user wants to do anything with PDF files. This includes reading or …
192.4K installsUse this skill whenever the user wants to create, read, edit, or manipulate Word documents (.do…
184.5K installsUse this skill any time a spreadsheet file is the primary input or output. This means any task …
165K installsAlso in this package
Other skills from tyrchen/geektime-bootcamp-ai.
npx skills add tyrchen/geektime-bootcamp-ai
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
master
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md5,009 B -
docs
SUMMARY.md272 B
History
- First seen on skills.sh
- First recorded snapshot · 2 installs
SKILL.md
Site Slides Generator
Generate presentation slides for the AI training camp website from a directory of images or a PDF file.
Usage
User provides a directory name (e.g., test1), and this skill will:
- Look for the directory in
./site/public/slides/<directory-name> - If not found, report an error
- If found, process the contents to generate slides
Workflow
Step 1: Validate Directory
Check if the directory exists:
ls ./site/public/slides/<directory-name>
If directory doesn't exist, inform the user and stop.
Step 2: Analyze Contents
Check what's in the directory:
- If there's exactly ONE
.pdffile and no image files → Go to Step 3 (PDF conversion) - If there are image files (
.jpg,.jpeg,.png,.gif,.webp) → Go to Step 4 (Generate slides)
Step 3: PDF to Images Conversion
If directory contains only a PDF file:
- Check if
pdf2jpgcommand exists:
``bash which pdf2jpg ``
- If not found, install swiss-knife:
``bash cargo install swiss-knife ``
- Convert PDF to JPG images:
``bash cd ./site/public/slides/<directory-name> && pdf2jpg <filename>.pdf ``
This generates 001.jpg, 002.jpg, etc. in the current directory.
- Delete the original PDF file after successful conversion (if it still exists).
Since we're still in the slides directory, use the filename directly: ``bash rm -f <filename>.pdf ` Note: Use -f flag in case pdf2jpg` already deleted the file.
- Proceed to Step 4.
Step 4: Generate Slides MDX File
- List all image files in sorted order:
``bash ls -1 ./site/public/slides/<directory-name>/*.{jpg,jpeg,png,gif,webp} 2>/dev/null | sort ``
- Read each image to understand its content and generate appropriate captions.
- Ask the user for:
- Title: The presentation title (e.g., "Werner Vogels - The Renaissance Developer") - Description: Brief description of the presentation - Category: Category for the presentation (e.g., "技术分享", "课程介绍")
- Create MDX file at
./site/src/pages/presentations/<directory-name>.mdxfollowing this template:
---
layout: ../../layouts/PresentationLayout.astro
title: <TITLE>
description: <DESCRIPTION>
category: <CATEGORY>
---
import PresentationCarousel from '../../components/presentations/PresentationCarousel';
import { getUrl } from '../../utils/url';
# <TITLE>
<BRIEF_INTRO>
<PresentationCarousel
client:load
title="<TITLE>"
slides={[
{
image: "/slides/<directory-name>/<image-filename>",
alt: "<alt-text>",
caption: "<caption>"
},
// ... more slides
]}
/>
## 核心要点
<KEY_POINTS_BASED_ON_CONTENT>
## 延伸阅读
- [查看课程大纲](/curriculum) - 了解 AI 编程训练营完整内容
- [探索工具生态](/tools) - 学习 AI 编程工具的使用
- [浏览学习资料](/materials) - 获取更多技术学习资源
Step 5: Update index.astro
- Read
./site/src/pages/presentations/index.astro
- Add a new entry to the
presentationsarray:
``javascript { title: "<TITLE>", description: "<DESCRIPTION>", href: getUrl("presentations/<directory-name>"), thumbnail: getUrl("slides/<directory-name>/<first-image>"), slideCount: <NUMBEROFSLIDES>, date: "<YYYY-MM-DD>", // Today's date category: "<CATEGORY>", }, ``
- Use the first image as the thumbnail (or ask the user to pick one).
Example
User: "Create slides from the vogels-keynote directory"
- Check
./site/public/slides/vogels-keynoteexists ✓ - Find 32 JPG images
- Ask user for title, description, category
- Read images to understand content
- Generate
./site/src/pages/presentations/vogels-keynote.mdx - Update
./site/src/pages/presentations/index.astro
Notes
- Always read a sample of images (first, middle, last) to understand the presentation content
- Generate meaningful alt text and captions based on image content
- Use today's date for the
datefield in index.astro - Image paths in the MDX should be absolute paths starting with
/slides/
Important: Avoiding MDX Syntax Errors
When generating captions and alt text, NEVER use Chinese quotation marks (" and ") inside JSX string attributes. These characters cause MDX parsing errors.
Bad example:
caption: "真正的问题不是"AI会取代我吗?"而是..."
Good example (use 「」 instead):
caption: "真正的问题不是「AI会取代我吗?」而是..."
Also avoid:
- Unescaped special characters in strings
- Line breaks within caption strings
- Using backticks or other quote characters that might conflict with JSX syntax