
Ljg Present
Turn an existing orgmode or Markdown outline into a single-file, slogan-style HTML presentation without rewriting the source text.
Overview
ljg-present is an agent skill most often used in Validate (also Launch distribution, Build docs) that renders orgmode or Markdown outlines into ultra-bold slogan-style HTML without changing the source copy.
Install
npx skills add https://github.com/lijigang/ljg-skills --skill ljg-presentWhat is this skill?
- Outline-faithful renderer: titles, paragraphs, lists, and tables keep original wording and order
- Three whole-deck theme colors (black/red/yellow) with `-r/-b/-y` overrides and optional `--cyber` green-on-black
- Visual system: left-aligned ultra-bold lines, 70vmin single glyphs vs 11vmin long sentences, indent 0/1/2 by nesting
- Section beats: level-1 `*` → emphasis cover; deeper headings → theme pages with automatic pagination on long paragraphs
- Writes one self-contained HTML file to `~/Downloads/` (v3.0.0 skill)
- 3 deck theme colors: black, red, yellow (plus optional --cyber mode)
- List indent levels 0/1/2 by outline nesting depth
Adoption & trust: 2.3k installs on skills.sh; 5.5k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have a faithful outline but need a high-impact presentation fast, and template decks either rewrite your words or look like corporate PowerPoint.
Who is it for?
Speakers and founders with orgmode/Markdown specs who want Felipe Franco–style manifesto aesthetics while keeping every line from the source file.
Skip if: Automated copy tightening,高桥流 single-character slides, or multi-file slide decks with speaker-notes export to PowerPoint.
When should I use this skill?
User says 讲这个, present, 做成演讲, 呈现一下, 铸成演示, slides, 标语流, manifesto, slogan, or 按 outline 美化 for orgmode/Markdown input.
What do I get? / Deliverables
The agent produces one themed HTML file in Downloads that paginates your existing outline into left-aligned, ultra-bold slides ready to present or share.
- Single self-contained HTML presentation in ~/Downloads/
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
The first journey moment is often a pitch or prototype walkthrough from an outline—Validate is the canonical shelf before launch talks and internal doc reviews reuse the same renderer. Prototype covers presenting structured thinking visually before the product is finished, matching outline-faithful decks rather than polished marketing sites.
Where it fits
Cast a problem/solution org outline into red-theme HTML before showing investors or design partners.
Rehearse a launch manifesto from Markdown with yellow theme pages for a livestream or meetup.
Render an architecture `**` hierarchy as cyber-hacker HTML for a team walkthrough without editing the spec.
How it compares
Outline-faithful HTML generator—not a manifesto extractor, enterprise PPT template pack, or slide-deck SaaS.
Common Questions / FAQ
Who is ljg-present for?
Solo builders and presenters who maintain talks in orgmode or Markdown and want one-click visual casting to HTML via agent invocation (讲这个, present, slogan, manifesto styling).
When should I use ljg-present?
Use it in Validate to prototype a pitch from an outline, at Launch when rehearsing distribution talks, and during Build docs when you need a stylized readout of PM or architecture outlines—always when the outline is final and only presentation matters.
Is ljg-present safe to install?
It mainly writes HTML under your Downloads folder from local outline files; review the Security Audits panel on this page and inspect generated HTML before hosting publicly.
SKILL.md
READMESKILL.md - Ljg Present
# ljg-present: 演讲铸造器 把 outline 铸成色块——视觉化渲染器,把舞台还给讲的人。 ## 这不是什么 - **不是 manifesto 提炼器**——不抽"那句话",不写"完整断言句",不重组顺序 - **不是高桥流**——不削词到单字 - **不是 deck-style**——不是企业 PPT 那种规整版式 ## 这是什么 **Outline → 视觉化渲染器**: - 输入 = orgmode 文件(`*` `**` 层级 + 列表 + 表格 + 强调) - 输出 = 视觉美化的 slogan-style HTML,**1:1 保留 outline 结构** - 不抽提、不重写、不浓缩——只决定**怎么把这一行/这一节渲染为页面** 视觉语言(参考审美:Felipe Franco / BIG STUDIOS 的 manifesto 美学): - **整篇一个主题色**——red/black/yellow 三选一 - **left-aligned 舞台美学**——文字左对齐,超大字号自然撑屏 - **超大字 ultra-bold**——单字 70vmin、长句 11vmin - **多行错位**——按 outline 嵌套深度自动 indent 0/1/2 - **关键词自动换色**——`*强调*` `~code~` 自动 hl - **章节切换打节拍**——一级标题 `*` → emphasis 封面页,其余 → theme 页 ## 核心哲学 **Outline 是真理。Skill 是渲染器。** 不动内容是一条铁律: - **标题不改字** - **段落不改字** - **列表项不改字** - **表格不改结构** - **顺序不重排** 唯一允许的"动"是:**物理分页**(一段太长拆成多页),并保持视觉一致性。 ## Orgmode → 页面映射规则 ### 标题层级 | 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:` | 忽略 | ### Theme 推断 **优先级**:显式参数 > 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 开场页(如已是一级标题则合并) - 文件末页(最后一段或最后一项)→ emphasis 收束页 - `-----` 分隔符 → emphasis 休止页 - 其他全是 theme 页 不要为了凑节奏强行加 emphasis——一级标题就是天然的章节断点。 ### 自动 hl(高亮) - org `*强调*` → `hl: true` - org `~code~` `=verbatim=` → `hl: true` - emphasis 页内的 hl 自动忽略(CSS `color: inherit`) ## 映射举例 **输入**(org 节选): ```org #+title: 美团分享 #+filetags: :share: * AI ** 为什么说 AI 是一次革命? 人类革命:能力让渡的层级跃迁 - 「人之为人」重新定义 - 社会组织重排 ``` **映射结果**: | # | 类型 | 内容 | 来源 | |---|---|---|---| | 1 | emphasis | 「AI」 | `* AI`(一级标题封面) | | 2 | theme | 「为什么说 AI 是一次革命?」 | `** ...` 二级标题独占页 | | 3 | theme | 「人类革命:能力让渡的层级跃迁」 | 段落,单句 | | 4 | theme | 两行错位:「『人之为人』重新定义」/「社会组织重排」 | 列表 ≤4 项一页 | theme 自动选 `red`(filetags `:share:`),title=`美团分享`。 ## 视觉规范 ### 色板(仅 4 色) ``` --c-black: #1A1A1A --c-red: #E63956 --c-yellow: #FFD400 --c-white: #FFFFFF --c-gold: #FFE082 ``` ### 主题映射(一篇只用 ≤3 色) | theme | 默认页 | emphasis 页 | hl 色(仅 theme 页) | |---|---|---|---| | **black** 沉思 | 黑底白字 | 红底白字 | 红色 #E63956 | | **red** 宣言 | 红底白字 | 黑底白字