From ljg-skills
Renders orgmode/markdown outlines into ultra-bold, slogan-style HTML slides with red/black/yellow or cyber-hacker themes. Preserves original text verbatim; only adds visual formatting. Invoke with '讲这个', 'present', '做成演讲', '呈现一下', '铸成演示', '做个 slides', '标语流', '宣言体', 'slogan', 'manifesto', or '按 outline 美化'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ljg-skills:ljg-presentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
把 outline 铸成色块——视觉化渲染器,把舞台还给讲的人。
把 outline 铸成色块——视觉化渲染器,把舞台还给讲的人。
Outline → 视觉化渲染器:
* ** 层级 + 列表 + 表格 + 强调)视觉语言(参考审美:Felipe Franco / BIG STUDIOS 的 manifesto 美学):
*强调* ~code~ 自动 hl* → emphasis 封面页,其余 → theme 页Outline 是真理。Skill 是渲染器。
不动内容是一条铁律:
唯一允许的"动"是:物理分页(一段太长拆成多页),并保持视觉一致性。
| Org 元素 | 页面 |
|---|---|
* 一级标题 | 独占 emphasis 封面页(accent 底色) |
** 二级标题 | 独占 theme 页(大字标题独占一页) |
*** 三级标题+ | 独占 theme 页(字号降一档) |
| Org 元素 | 页面行为 |
|---|---|
| 段落 | theme 页,按句号/换行/字数分页 |
- 列表项 | theme 页,每项一行,indent 按嵌套深度(0/1/2) |
1. 编号列表 | 同上,保留序号前缀 |
| 嵌套列表 | 子项 indent +1(最多 indent=2) |
| 表格 | | 单页或多页,保留表格结构(首行加粗) |
*强调* | 自动 hl: true |
~code~ 或 =verbatim= | 自动 hl: true |
「」 内的关键词 | 视觉单元(保留括号,不强制 hl) |
引用 > ... | theme 页,indent 1 显示 |
分隔符 ----- | 独立 emphasis 休止页(无内容,纯色块) |
#+begin_example 块 | 独立 pre 页(monospace 渲染 ASCII art) |
| Org 元素 | 用途 |
|---|---|
#+title: | → JSON title(浏览器 tab) |
#+author: 或 #+date: | → JSON subtitle(页脚右下) |
#+filetags: | 用于推断 theme(见下) |
#+identifier: | 忽略 |
优先级:显式参数 > filetags 推断 > 默认 black
显式覆盖(参数):
-r / --theme=red → red-b / --theme=black → black-y / --theme=yellow → yellow--cyber → cyber-hacker(黑底绿字 + CRT 扫描线 + HUD + 终端光标)filetags 自动推断:
| filetags 含 | theme | 调性 |
|---|---|---|
:share: :talk: :manifesto: :keynote: | red | 宣言、号召 |
:essay: :think: :learn: :note: | black | 沉思、论证 |
:critique: :warn: :rant: | yellow | 反讽、警觉 |
| 都没有 | black | 默认沉思调 |
铁律:拆分后保持视觉一致性。同一逻辑块的页用同样的字号档位/底色/缩进规则。
| 情形 | 拆法 |
|---|---|
| 段落 ≤ 30 字 | 单页 |
| 段落 30-80 字,含多句号 | 每句一页(每页 medium 档字号) |
| 段落 > 80 字 | 按 ~30 字一页拆,加 ⋯ 续标 |
| 列表 ≤ 4 项 | 单页全部展示(错位 indent) |
| 列表 5-8 项 | 拆 2 页,每页 3-4 项(保持每页项数接近) |
| 列表 > 8 项 | 拆多页,每页 4 项 |
| 嵌套列表(如 4 革命×4 属性) | 父项 1 页 + 每个子项独立成组(标题 1 页 + 子项 1 页) |
| 表格 ≤ 6 行 | 单页 |
| 表格 > 6 行 | 拆多页,每页保留表头 |
一致性检查:拆完后扫一遍——同源拆分的页要长得像同一种东西,字号/缩进/底色都对齐。
* 一级标题 → emphasis 封面页----- 分隔符 → emphasis 休止页不要为了凑节奏强行加 emphasis——一级标题就是天然的章节断点。
*强调* → hl: true~code~ =verbatim= → hl: truecolor: inherit)输入(org 节选):
#+title: 美团分享
#+filetags: :share:
* AI
** 为什么说 AI 是一次革命?
人类革命:能力让渡的层级跃迁
- 「人之为人」重新定义
- 社会组织重排
映射结果:
| # | 类型 | 内容 | 来源 |
|---|---|---|---|
| 1 | emphasis | 「AI」 | * AI(一级标题封面) |
| 2 | theme | 「为什么说 AI 是一次革命?」 | ** ... 二级标题独占页 |
| 3 | theme | 「人类革命:能力让渡的层级跃迁」 | 段落,单句 |
| 4 | theme | 两行错位:「『人之为人』重新定义」/「社会组织重排」 | 列表 ≤4 项一页 |
theme 自动选 red(filetags :share:),title=美团分享。
--c-black: #1A1A1A
--c-red: #E63956
--c-yellow: #FFD400
--c-white: #FFFFFF
--c-gold: #FFE082
| theme | 默认页 | emphasis 页 | hl 色(仅 theme 页) |
|---|---|---|---|
| black 沉思 | 黑底白字 | 红底白字 | 红色 #E63956 |
| red 宣言 | 红底白字 | 黑底白字 | 柔金黄 #FFE082 |
| yellow 反讽 | 黄底黑字 | 黑底白字 | 红色 #E63956 |
| cyber 终端 | 黑底矩阵绿 | 绿底黑字 | 白色 #FFFFFF(带绿光 + CRT 扫描线 + 顶部 HUD) |
"Helvetica Neue", "Arial Black", "Inter", "PingFang SC", "Heiti SC", -apple-system, sans-serif
font-weight: 900
letter-spacing: -0.05em
cyber 主题额外字体(用于 HUD/footer/pre):
"JetBrains Mono", "Fira Code", "IBM Plex Mono", "Source Code Pro", "Menlo", monospace
按本页"最长那一行"的字符数(CJK 字符按 1.8 计权)自动分档:
| 档位 | 字符数 | 字号 |
|---|---|---|
| single | ≤ 2 | 70vmin |
| short | 3-6 | 48vmin |
| medium | 7-14 | 28vmin |
| long | 15-26 | 16vmin |
| xlong | 27+ | 10vmin |
多行页自动降一档。
align-items: center 让 lines 块整体在屏幕水平居中(消除 16:9 右侧空白),但每一行的文字仍是 left-aligned 起始,indent 0/1/2 在块内制造错位-0.05em——ultra-bold 应有的字字挤压感1.05、行间 gap 0.15em——多行折行也有呼吸空间{
"theme": "black|red|yellow|cyber", // 主题色(必选,决定整篇调性)
"title": "演讲标题(浏览器 tab)",
"subtitle": "副标题/品牌(页脚右下,可选)",
"slides": [
// 默认 theme 页
{
"lines": [ // 1-N 行
{
"indent": 0, // 0/1/2 缩进档(按 outline 嵌套深度)
"align": "left|center|right", // 可选,默认 left
"chunks": [ // 行内片段
{"t": "句子前段"},
{"t": "高亮词", "hl": true}, // 仅 theme 页生效
{"t": "句子后段"}
]
}
]
},
// emphasis 页(accent 底色,整页就是高亮,不允许 inline hl)
{ "emphasis": true, "lines": [...] },
// pre 页(ASCII art / 预格式化块)
{ "preTitle": "diagram_name", "pre": "...preformatted text..." }
]
}
字段省略约定:
emphasis = 默认 theme 页chunks[].hl: true 会被忽略pre 字段则该页为 ASCII art 页(monospace 渲染)* ** 标题层级、- 1. 列表、|...| 表格、*强调* / ~code~、#+begin_example 块# ## 标题、- * 列表、| 表格、**强调**、``` 代码块#+filetags: > 默认 black* 标题 → emphasis 封面**+ 标题 → theme 独占页assets/slogan_template.html(cyber 主题需在模板基础上注入扫描线/HUD/光标 CSS){{TITLE}} → 文件 #+title: 或显式参数{{SUBTITLE}} → #+author: #+date: 拼接,或留空{{THEME}} → 推断或显式参数(black|red|yellow|cyber){{SLIDES_JSON}} → JSON.stringify(slides)~/Downloads/{name}.html({name} 取自 #+title: 或文件名,去标点,≤ 20 字)→ ← Space F Home End*强调* 自动 hl——尊重作者的标记意图----- 是 emphasis,别的不要默认输出中文。除非原文是英文且用户要求保留英文。
→ Space Enter j PageDown:下一页(含蓝牙翻页笔)← k PageUp:上一页(含蓝牙翻页笔)Home/End:跳首末f/F:全屏切换npx claudepluginhub lijigang/ljg-skills --plugin ljg-skillsCreates slide presentations from topics, URLs, PDFs, git repos, or vault notes. Handles research, synthesis, outlining, and editing existing decks. Default output is reveal.js HTML; pptx available on request.
Creates reveal.js presentations with themes, multi-column layouts, code highlighting, animations, speaker notes, and custom styling. Generates HTML + CSS with no build step. Use for slides, decks, or slideshows.
Converts documents, outlines, or notes into self-contained HTML slide decks with horizontal (Reveal.js) or vertical scroll navigation and multiple themes.