authoring
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProject Handover - Authoring
项目交接 - 内容创作
Generate a complete authoring guide for content authors and content managers. This skill analyzes the project and produces actionable documentation.
为内容作者和内容经理生成完整的创作指南。此技能会分析项目并生成可落地的文档。
When to Use This Skill
何时使用此技能
- Onboarding content authors to a new project
- Training content managers
- Project handover to client authoring team
- Creating author-focused documentation
- 为新项目的内容作者提供入职培训
- 培训内容经理
- 向客户创作团队交接项目
- 创建面向作者的文档
Step 0: Navigate to Project Root and Verify Edge Delivery Services Project (CONDITIONAL)
步骤0:导航至项目根目录并验证Edge Delivery Services项目(可选)
Skip this step if flag is set (orchestrator already validated and navigated).
allGuidesCRITICAL: If NOT skipped, you MUST execute the command. Do NOT use absolute paths — actually change directory.
cdbash
ALL_GUIDES=$(cat .claude-plugin/project-config.json 2>/dev/null | grep -o '"allGuides"[[:space:]]*:[[:space:]]*true')
if [ -z "$ALL_GUIDES" ]; then
# Navigate to git project root (works from any subdirectory)
cd "$(git rev-parse --show-toplevel)"
# Verify it's an Edge Delivery Services project
ls scripts/aem.js
fiIMPORTANT:
- You MUST run the command above using the Bash tool
cd - All subsequent steps operate from project root
- Do NOT use absolute paths to verify — actually navigate
- Guides will be created at
project-root/project-guides/
If NOT skipped AND does NOT exist, respond:
scripts/aem.js"This skill is designed for AEM Edge Delivery Services projects. The current directory does not appear to be an Edge Delivery Services project (not found).scripts/aem.jsPlease navigate to an Edge Delivery Services project and try again."
STOP if check fails. Otherwise proceed — you are now at project root.
如果已设置标志,则跳过此步骤(编排器已验证并导航)。
allGuides重要提示:如果未跳过,必须执行命令。请勿使用绝对路径——实际切换目录。
cdbash
ALL_GUIDES=$(cat .claude-plugin/project-config.json 2>/dev/null | grep -o '"allGuides"[[:space:]]*:[[:space:]]*true')
if [ -z "$ALL_GUIDES" ]; then
# 导航至Git项目根目录(从任何子目录均可生效)
cd "$(git rev-parse --show-toplevel)"
# 验证是否为Edge Delivery Services项目
ls scripts/aem.js
fi注意事项:
- 必须使用Bash工具运行上述命令
cd - 后续所有步骤均从项目根目录执行
- 请勿使用绝对路径进行验证——实际导航
- 指南将创建在目录下
project-root/project-guides/
如果未跳过且不存在,请回复:
scripts/aem.js"此技能专为AEM Edge Delivery Services项目设计。当前目录似乎不是Edge Delivery Services项目(未找到)。scripts/aem.js请导航至Edge Delivery Services项目后重试。"
如果检查失败,请停止操作。否则继续——您现在已处于项目根目录。
Communication Guidelines
沟通准则
- NEVER use "EDS" as an acronym for Edge Delivery Services in any generated documentation or chat responses
- Always use the full name "Edge Delivery Services" or "AEM Edge Delivery Services"
- This applies to all output files (PDF, HTML, markdown) and all communication with the user
- **切勿使用“EDS”**作为Edge Delivery Services的缩写,在任何生成的文档或聊天回复中均不可使用
- 始终使用全名“Edge Delivery Services”或“AEM Edge Delivery Services”
- 此规则适用于所有输出文件(PDF、HTML、Markdown)以及与用户的所有沟通
⚠️ CRITICAL PATH REQUIREMENT
⚠️ 关键路径要求
YOU MUST SAVE THE FILE TO THIS EXACT PATH:
project-guides/AUTHOR-GUIDE.mdBEFORE WRITING ANY FILE:
- First, create the directory:
mkdir -p project-guides - Then write to:
project-guides/AUTHOR-GUIDE.md
WHY THIS MATTERS: Files must be in for proper organization and PDF conversion.
project-guides/❌ WRONG: (root)
❌ WRONG:
❌ WRONG:
✅ CORRECT:
AUTHOR-GUIDE.mddocs/AUTHOR-GUIDE.md/workspace/AUTHOR-GUIDE.mdproject-guides/AUTHOR-GUIDE.md必须将文件保存至以下精确路径:
project-guides/AUTHOR-GUIDE.md在写入任何文件之前:
- 首先创建目录:
mkdir -p project-guides - 然后写入至:
project-guides/AUTHOR-GUIDE.md
为何如此重要: 文件必须位于目录下,以便进行合理组织和PDF转换。
project-guides/❌ 错误路径: (根目录)
❌ 错误路径:
❌ 错误路径:
✅ 正确路径:
AUTHOR-GUIDE.mddocs/AUTHOR-GUIDE.md/workspace/AUTHOR-GUIDE.mdproject-guides/AUTHOR-GUIDE.mdOutput Format
输出格式
MANDATORY OUTPUT:
project-guides/AUTHOR-GUIDE.pdfSTRICTLY FORBIDDEN:
- ❌ Do NOT read or analyze — it does NOT exist in most projects and does NOT show all sites
fstab.yaml - ❌ Do NOT create files
.plain.html - ❌ Do NOT use tool — this converts the FULL guide to HTML with raw frontmatter visible, which is NOT what we want
convert_markdown_to_html - ❌ Do NOT tell user to "convert markdown to PDF manually"
- ❌ Do NOT save markdown to root directory or any path other than
project-guides/ - ❌ Do NOT say "PDF will be generated later" or "at session end" — generate it NOW
REQUIRED WORKFLOW:
- Run to ensure directory exists
mkdir -p project-guides - Generate markdown content with YAML frontmatter (title, date)
- Save to (EXACT PATH - no exceptions)
project-guides/AUTHOR-GUIDE.md - IMMEDIATELY invoke PDF conversion (see Phase 5.2)
- Clean up all source files (only PDF remains)
- Final output:
project-guides/AUTHOR-GUIDE.pdf
强制输出:
project-guides/AUTHOR-GUIDE.pdf严格禁止:
- ❌ 请勿读取或分析——大多数项目中不存在该文件,且无法显示所有站点
fstab.yaml - ❌ 请勿创建文件
.plain.html - ❌ 请勿使用工具——此工具会将完整指南转换为HTML并显示原始前置内容,这并非我们所需
convert_markdown_to_html - ❌ 请勿告知用户“手动将Markdown转换为PDF”
- ❌ 请勿将Markdown保存至根目录或以外的任何路径
project-guides/ - ❌ 请勿说“PDF将稍后生成”或“在会话结束时生成”——立即生成
必需工作流:
- 运行确保目录存在
mkdir -p project-guides - 生成带有YAML前置内容(标题、日期)的Markdown内容
- 保存至(精确路径——无例外)
project-guides/AUTHOR-GUIDE.md - 立即调用PDF转换(见阶段5.2)
- 清理所有源文件(仅保留PDF)
- 最终输出:
project-guides/AUTHOR-GUIDE.pdf
Execution Checklist
执行清单
markdown
- [ ] Phase 1: Gather Project Information
- [ ] Phase 2: Analyze Content Structure
- [ ] Phase 3: Document Blocks and Templates
- [ ] Phase 4: Document Configuration Sheets
- [ ] Phase 5: Generate Professional PDFmarkdown
- [ ] 阶段1:收集项目信息
- [ ] 阶段2:分析内容结构
- [ ] 阶段3:记录区块与模板
- [ ] 阶段4:记录配置表
- [ ] 阶段5:生成专业PDFPhase 0: Get Organization Name (Required First)
阶段0:获取组织名称(必须首先完成)
Whenever this skill runs — whether the user triggered it directly (e.g. "generate authoring guide") or via the handover flow — you must have the Config Service organization name before doing anything else. Do not skip this phase.
无论何时运行此技能——无论是用户直接触发(例如“生成创作指南”)还是通过交接流程触发——都必须先获取Config Service组织名称,才能进行其他操作。请勿跳过此阶段。
0.1 Check for Saved Organization
0.1 检查已保存的组织信息
bash
undefinedbash
undefinedCheck if org name is already saved
检查是否已保存组织名称
cat .claude-plugin/project-config.json 2>/dev/null | grep -o '"org"[[:space:]]:[[:space:]]"[^"]*"' | head -1
undefinedcat .claude-plugin/project-config.json 2>/dev/null | grep -o '"org"[[:space:]]:[[:space:]]"[^"]*"' | head -1
undefined0.2 Prompt for Organization Name (If Not Saved)
0.2 提示输入组织名称(如果未保存)
If no org name is saved, you MUST pause and ask the user directly:
"What is your Config Service organization name? This is thepart of your Edge Delivery Services URLs (e.g.,{org}). The org name may differ from your GitHub organization."https://main--site--{org}.aem.page
IMPORTANT RULES:
- DO NOT use with predefined options — ask as a plain text question
AskUserQuestion - Organization name is MANDATORY — do not offer a "skip" option
- Wait for user to type the org name before proceeding
- If user doesn't provide a valid org name, ask again
如果未保存组织名称,必须暂停并直接询问用户:
"您的Config Service组织名称是什么?这是您Edge Delivery Services URL中的部分(例如{org})。组织名称可能与您的GitHub组织不同。"https://main--site--{org}.aem.page
重要规则:
- 请勿使用带有预定义选项的——以纯文本形式提问
AskUserQuestion - 组织名称是必填项——不提供“跳过”选项
- 等待用户输入组织名称后再继续
- 如果用户未提供有效的组织名称,请再次询问
0.3 Save Organization Name
0.3 保存组织名称
Once you have the org name (either from saved config or user input), save it for future use:
bash
undefined一旦获取组织名称(无论是从已保存的配置还是用户输入),将其保存以备将来使用:
bash
undefinedCreate config directory if needed
必要时创建配置目录
mkdir -p .claude-plugin
mkdir -p .claude-plugin
Ensure .claude-plugin is in .gitignore (contains auth tokens)
确保.claude-plugin在.gitignore中(包含身份验证令牌)
grep -qxF '.claude-plugin/' .gitignore 2>/dev/null || echo '.claude-plugin/' >> .gitignore
grep -qxF '.claude-plugin/' .gitignore 2>/dev/null || echo '.claude-plugin/' >> .gitignore
Save org name to config file (create or update)
将组织名称保存到配置文件(创建或更新)
if [ -f .claude-plugin/project-config.json ]; then
cat .claude-plugin/project-config.json | sed 's/"org"[[:space:]]:[[:space:]]"[^"]*"/"org": "{ORG_NAME}"/' > /tmp/project-config.json && mv /tmp/project-config.json .claude-plugin/project-config.json
else
echo '{"org": "{ORG_NAME}"}' > .claude-plugin/project-config.json
fi
Replace `{ORG_NAME}` with the actual organization name provided by the user.
---if [ -f .claude-plugin/project-config.json ]; then
cat .claude-plugin/project-config.json | sed 's/"org"[[:space:]]:[[:space:]]"[^"]*"/"org": "{ORG_NAME}"/' > /tmp/project-config.json && mv /tmp/project-config.json .claude-plugin/project-config.json
else
echo '{"org": "{ORG_NAME}"}' > .claude-plugin/project-config.json
fi
将`{ORG_NAME}`替换为用户提供的实际组织名称。
---Phase 1: Gather Project Information
阶段1:收集项目信息
1.1 Fetch Sites and Code Repo via Config Service API
1.1 通过Config Service API获取站点和代码仓库
⚠️ MANDATORY DATA SOURCE — NO ALTERNATIVES ALLOWED
You MUST call the Config Service API. This is the ONLY acceptable source for site information.
❌ PROHIBITED APPROACHES (will produce incorrect results):
- Analyzing — does NOT show all sites in repoless setups
fstab.yaml - Reading — may be outdated or incomplete
README.md - Inferring from codebase structure — misses CDN configs and additional sites
- Using git remote URLs — org name may differ from Config Service org
- Making assumptions based on project folder names
✅ REQUIRED: Execute and save response:
bash
ORG=$(cat .claude-plugin/project-config.json | grep -o '"org"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/"org"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')⚠️ 强制数据源——不允许替代方案
必须调用Config Service API。这是获取站点信息的唯一可接受来源。
❌ 禁止方法(会产生错误结果):
- 分析——无法显示无仓库设置中的所有站点
fstab.yaml - 阅读——可能过时或不完整
README.md - 从代码库结构推断——会遗漏CDN配置和其他站点
- 使用Git远程URL——组织名称可能与Config Service组织不同
- 根据项目文件夹名称做出假设
✅ 必需操作:执行并保存响应:
bash
ORG=$(cat .claude-plugin/project-config.json | grep -o '"org"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/"org"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')Save response to file - Phase 2 depends on this file
将响应保存到文件——阶段2依赖此文件
curl -s -H "Accept: application/json" "https://admin.hlx.page/config/${ORG}/sites.json" > .claude-plugin/sites-config.json
**📁 REQUIRED ARTIFACT:** `.claude-plugin/sites-config.json`
**API Reference:** https://www.aem.live/docs/admin.html#tag/siteConfig/operation/getConfigSites
---
The response is a JSON object with a `sites` array (each entry has a `name` field). Extract site names and construct per-site URLs:
- **Preview:** `https://main--{site-name}--{org}.aem.page/`
- **Live:** `https://main--{site-name}--{org}.aem.live/`
Multiple sites = **repoless** setup. Single site = **standard** setup.
**Then fetch individual site config for code and content details:**
```bash
AUTH_TOKEN=$(cat .claude-plugin/project-config.json | grep -o '"authToken"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/"authToken"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
curl -s -H "x-auth-token: ${AUTH_TOKEN}" "https://admin.hlx.page/config/${ORG}/sites/{site-name}.json"Example response:
json
{
"code": {
"owner": "github-owner",
"repo": "repo-name",
"source": { "type": "github", "url": "https://github.com/owner/repo" }
},
"content": {
"source": {
"url": "https://content.da.live/org-name/site-name/",
"type": "markup"
},
"contentBusId": "..."
}
}Extract from response:
- /
code.owner— GitHub repositorycode.repo - — Content mountpath (e.g.,
content.source.url)https://content.da.live/org/site/ - — Content source type (markup, onedrive, google)
content.source.type
Build URLs from content source:
- DA URL: (derived from
https://da.live/#/{org}/{site}/)content.source.url - Block Library:
https://da.live/#/{org}/{site}/.da/library
⚠️ Do NOT use — use Config Service API instead.
fstab.yamlcurl -s -H "Accept: application/json" "https://admin.hlx.page/config/${ORG}/sites.json" > .claude-plugin/sites-config.json
**📁 必需产物:** `.claude-plugin/sites-config.json`
**API参考:** https://www.aem.live/docs/admin.html#tag/siteConfig/operation/getConfigSites
---
响应是一个包含`sites`数组的JSON对象(每个条目都有`name`字段)。提取站点名称并构建每个站点的URL:
- **预览环境:** `https://main--{site-name}--{org}.aem.page/`
- **生产环境:** `https://main--{site-name}--{org}.aem.live/`
多个站点 = **无仓库**设置。单个站点 = **标准**设置。
**然后获取单个站点的配置以获取代码和内容详情:**
```bash
AUTH_TOKEN=$(cat .claude-plugin/project-config.json | grep -o '"authToken"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/"authToken"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
curl -s -H "x-auth-token: ${AUTH_TOKEN}" "https://admin.hlx.page/config/${ORG}/sites/{site-name}.json"示例响应:
json
{
"code": {
"owner": "github-owner",
"repo": "repo-name",
"source": { "type": "github", "url": "https://github.com/owner/repo" }
},
"content": {
"source": {
"url": "https://content.da.live/org-name/site-name/",
"type": "markup"
},
"contentBusId": "..."
}
}从响应中提取:
- /
code.owner—— GitHub仓库code.repo - —— 内容挂载路径(例如
content.source.url)https://content.da.live/org/site/ - —— 内容源类型(markup, onedrive, google)
content.source.type
从内容源构建URL:
- DA URL: (从
https://da.live/#/{org}/{site}/派生)content.source.url - 区块库:
https://da.live/#/{org}/{site}/.da/library
⚠️ 请勿使用——请改用Config Service API。
fstab.yaml1.2 Check Multi-Language Support
1.2 检查多语言支持
bash
undefinedbash
undefinedCheck for language folders in content structure
检查内容结构中的语言文件夹
ls -la /en /fr /de /es /it 2>/dev/null || echo "Check DA for language folders"
**Output:** Record whether project is multi-lingual and which languages are supported.
---ls -la /en /fr /de /es /it 2>/dev/null || echo "在DA中检查语言文件夹"
**输出:** 记录项目是否支持多语言以及支持哪些语言。
---Phase 2: Analyze Content Structure
阶段2:分析内容结构
Read site config from Phase 1:
bash
cat .claude-plugin/sites-config.json读取阶段1中的站点配置:
bash
cat .claude-plugin/sites-config.json2.1 Analyze Navigation and Footer
2.1 分析导航和页脚
bash
ls nav.md footer.md 2>/dev/null || echo "Nav/footer likely in DA"Document: Navigation and footer location (DA path or local file), menu structure, mobile behavior.
bash
ls nav.md footer.md 2>/dev/null || echo "导航/页脚可能在DA中"记录: 导航和页脚的位置(DA路径或本地文件)、菜单结构、移动端行为。
2.2 Identify Page Templates
2.2 识别页面模板
bash
ls -la templates/ 2>/dev/null && ls templates/If templates exist, document each: Template name, purpose, how to apply (metadata setting).
bash
ls -la templates/ 2>/dev/null && ls templates/如果模板存在,记录每个模板: 模板名称、用途、应用方式(元数据设置)。
2.3 Section Styles (for guide)
2.3 章节样式(用于指南)
bash
grep -E "\.section\." styles/styles.css 2>/dev/null | head -15Document available section styles (e.g. dark, highlight, narrow) for the "Available Section Styles" table in the guide.
bash
grep -E "\.section\." styles/styles.css 2>/dev/null | head -15记录可用的章节样式(例如dark、highlight、narrow),用于指南中的“可用章节样式”表格。
Phase 3: Document Blocks and Templates
阶段3:记录区块与模板
3.1 List and Analyze Blocks
3.1 列出并分析区块
bash
ls blocks/Run block analysis silently. For each block determine: purpose, variants (e.g. from CSS ), and when authors should use it. Document ALL blocks in the project so authors know what's available.
.blockname.variantbash
ls blocks/静默运行区块分析。 为每个区块确定:用途、变体(例如来自CSS )以及作者应在何时使用它。记录项目中的所有区块,以便作者了解可用资源。
.blockname.variant3.2 Document Templates
3.2 记录模板
For each template identified in Phase 2.2, document: name, purpose, required metadata fields, and how to apply ( in Metadata block).
template: name为阶段2.2中识别的每个模板记录:名称、用途、必填元数据字段以及应用方式(在元数据区块中设置)。
template: name3.3 DA and Block Library paths
3.3 DA和区块库路径
Get the content path from the Config Service site config (content source). Block Library URL is — the path varies by project. Note which blocks/templates appear in the library.
https://da.live/#/{content-owner}/{content-path}/.da/library从Config Service站点配置中获取内容路径(内容源)。区块库URL为——路径因项目而异。记录库中显示的区块/模板。
https://da.live/#/{content-owner}/{content-path}/.da/libraryPhase 4: Document Configuration Sheets
阶段4:记录配置表
4.1 Placeholders
4.1 占位符
Location: in DA (or )
/placeholders/placeholders.xlsxbash
ls placeholders.json 2>/dev/nullDocument:
| Field | Description |
|---|---|
| Location | Where to find placeholders in DA |
| Languages | Which language sheets exist (en, fr, etc.) |
| Key strings | Important placeholders authors might need to update |
位置: DA中的(或)
/placeholders/placeholders.xlsxbash
ls placeholders.json 2>/dev/null记录:
| 字段 | 描述 |
|---|---|
| 位置 | 在DA中何处找到占位符 |
| 语言 | 存在哪些语言表格(en、fr等) |
| 关键字符串 | 作者可能需要更新的重要占位符 |
4.2 Redirects
4.2 重定向
Location: in DA (or )
/redirects/redirects.xlsxbash
ls redirects.json 2>/dev/nullDocument:
| Field | Description |
|---|---|
| Location | Where to find redirects in DA |
| Format | Source column → Destination column |
| When to use | URL changes, deleted pages, renamed pages |
位置: DA中的(或)
/redirects/redirects.xlsxbash
ls redirects.json 2>/dev/null记录:
| 字段 | 描述 |
|---|---|
| 位置 | 在DA中何处找到重定向 |
| 格式 | 源列 → 目标列 |
| 使用场景 | URL更改、页面删除、页面重命名 |
4.3 Bulk Metadata
4.3 批量元数据
Location: in DA (or )
/metadata/metadata.xlsxbash
ls metadata.json 2>/dev/nullDocument:
| Field | Description |
|---|---|
| Location | Where to find bulk metadata in DA |
| Patterns | URL patterns used (e.g., |
| Properties | Which metadata properties are set in bulk |
位置: DA中的(或)
/metadata/metadata.xlsxbash
ls metadata.json 2>/dev/null记录:
| 字段 | 描述 |
|---|---|
| 位置 | 在DA中何处找到批量元数据 |
| 模式 | 使用的URL模式(例如 |
| 属性 | 批量设置的元数据属性 |
4.4 Other Configuration Sheets
4.4 其他配置表
Check for project-specific configuration sheets:
bash
undefined检查项目特定的配置表:
bash
undefinedLook for other Excel/JSON config files
查找其他Excel/JSON配置文件
ls -la *.xlsx *.json 2>/dev/null | grep -v package
---ls -la *.xlsx *.json 2>/dev/null | grep -v package
---Phase 5: Generate Author Guide
阶段5:生成作者指南
5.1 Output File: project-guides/AUTHOR-GUIDE.md
project-guides/AUTHOR-GUIDE.md5.1 输出文件:project-guides/AUTHOR-GUIDE.md
project-guides/AUTHOR-GUIDE.mdmarkdown
undefinedmarkdown
undefined[Project Name] - Author Guide
[项目名称] - 作者指南
Quick Reference
快速参考
| Resource | URL |
|---|---|
| Document Authoring | https://da.live/#/{content-owner}/{content-path}/ |
| Preview (per site) | https://main--{site}--{org}.aem.page/ |
| Live (per site) | https://main--{site}--{org}.aem.live/ |
| Block Library | https://da.live/#/{content-owner}/{content-path}/.da/library |
| Bulk Operations | https://da.live/apps/bulk |
(Content path comes from the Config Service site config — e.g. content source like → use for the path after . This can differ per project; do not use code.owner/code.repo unless the API explicitly maps them.)
content.da.live/org/site/org/site#/(内容路径来自Config Service站点配置——例如内容源如 → 在后使用作为路径。这可能因项目而异;除非API明确映射,否则请勿使用code.owner/code.repo。)
content.da.live/org/site/#/org/siteSites
站点
| Site | Content Source (DA) | Preview | Live |
|---|---|---|---|
| {site1} | [from site config] | https://main--{site1}--{org}.aem.page/ | https://main--{site1}--{org}.aem.live/ |
(One row per site from Config Service. Content Source (DA) is the content path for that site — use it to build DA and Block Library URLs: and . Path format varies by project, e.g. .)
https://da.live/#/{path-from-content-source}/.../.da/libraryaudemars-piguet/arbres-fondationsaudemarspiguet| 站点 | 内容源(DA) | 预览 | 生产 |
|---|---|---|---|
| {site1} | [来自站点配置] | https://main--{site1}--{org}.aem.page/ | https://main--{site1}--{org}.aem.live/ |
(每行对应Config Service中的一个站点。**内容源(DA)**是该站点的内容路径——使用它构建DA和区块库URL:和。路径格式因项目而异,例如。)
https://da.live/#/{path-from-content-source}/.../.da/libraryaudemars-piguet/arbres-fondationsaudemarspiguetGetting Started
入门指南
Access Requirements
访问要求
- DA access (request from admin)
- Preview/publish permissions
- DA访问权限(向管理员申请)
- 预览/发布权限
Your First Page
您的第一个页面
- Go to DA: [link]
- Navigate to the correct folder
- Create new document
- Use blocks from Library sidebar
- Add Metadata block at bottom
- Preview → Publish
- 前往DA:[链接]
- 导航至正确的文件夹
- 创建新文档
- 使用库侧边栏中的区块
- 在底部添加元数据区块
- 预览 → 发布
Content Organization
内容组织
Site Structure
站点结构
[Describe the folder structure in DA]
[描述DA中的文件夹结构]
Languages
语言
[List supported languages if multi-lingual]
[如果支持多语言,列出支持的语言]
Block Library
区块库
The Block Library is the sidebar in Document Authoring where you browse and insert blocks and templates into your document.
| What | Details |
|---|---|
| Open in DA | Use the Library icon in the DA editor sidebar, or go directly to the Block Library URL (from Config Service content path for this project): |
| What's in it | All blocks and templates listed in the "Available Blocks" and "Page Templates" sections below appear in the library |
| How to use | Click a block or template in the library to insert it at the cursor position in your document |
When creating or editing a page, use the Library sidebar to add blocks instead of typing block names manually.
区块库是文档创作工具(DA)中的侧边栏,您可以在其中浏览并将区块和模板插入文档。
| 项目 | 详情 |
|---|---|
| 在DA中打开 | 使用DA编辑器侧边栏中的库图标,或直接访问区块库URL(来自此项目的Config Service内容路径): |
| 包含内容 | 以下“可用区块”和“页面模板”部分中列出的所有区块和模板均会显示在库中 |
| 使用方法 | 点击库中的区块或模板,将其插入到文档中的光标位置 |
创建或编辑页面时,请使用库侧边栏添加区块,而非手动输入区块名称。
Available Blocks
可用区块
| Block | Purpose | Variants | Usage |
|---|---|---|---|
| [name] | [what it's for] | [variant1, variant2] | [when to use] |
[Generate table rows for all blocks]
| 区块 | 用途 | 变体 | 使用场景 |
|---|---|---|---|
| [名称] | [用途] | [变体1, 变体2] | [何时使用] |
[为所有区块生成表格行]
Page Templates
页面模板
| Template | Purpose | Required Metadata | How to Apply |
|---|---|---|---|
| [name] | [what type of pages] | [key fields] | |
[Generate table rows for all templates]
| 模板 | 用途 | 必填元数据 | 应用方式 |
|---|---|---|---|
| [名称] | [适用于何种页面] | [关键字段] | 在元数据中设置 |
[为所有模板生成表格行]
Configuration Sheets
配置表
| Sheet | Location | Purpose | When to Update |
|---|---|---|---|
| Placeholders | | Reusable text strings, translations | Changing labels, button text |
| Redirects | | Forward old URLs to new URLs | After deleting/moving pages |
| Bulk Metadata | | Apply metadata to multiple pages | Setting defaults by folder |
| 表格 | 位置 | 用途 | 更新场景 |
|---|---|---|---|
| 占位符 | | 可复用文本字符串、翻译内容 | 更改标签、按钮文本时 |
| 重定向 | | 将旧URL转发至新URL | 删除/移动页面后 |
| 批量元数据 | | 为多个页面应用元数据 | 按文件夹设置默认值时 |
Publishing Workflow
发布工作流
| Environment | Domain | Purpose |
|---|---|---|
| Preview | | Test changes before going live |
| Live | | Production site |
Workflow: Edit in DA → Preview → Publish → Live immediately
| 环境 | 域名 | 用途 |
|---|---|---|
| 预览 | | 上线前测试更改 |
| 生产 | | 生产站点 |
工作流: 在DA中编辑 → 预览 → 发布 → 立即上线
Common Tasks
常见任务
| Task | Steps |
|---|---|
| Create a Page | Navigate to folder → New → Document → Add content → Add Metadata → Preview → Publish |
| Edit a Page | Open in DA → Make changes → Preview → Publish |
| Delete a Page | Add redirect first → Delete document → Publish redirects |
| Update Navigation | Edit |
| Update Footer | Edit |
| 任务 | 步骤 |
|---|---|
| 创建页面 | 导航至文件夹 → 新建 → 文档 → 添加内容 → 添加元数据 → 预览 → 发布 |
| 编辑页面 | 在DA中打开 → 进行更改 → 预览 → 发布 |
| 删除页面 | 首先添加重定向 → 删除文档 → 发布重定向 |
| 更新导航 | 编辑 |
| 更新页脚 | 编辑 |
Sections and Section Metadata
章节与章节元数据
Sections group content together. Create sections with horizontal rules ().
---Add styles with Section Metadata block at end of section:
| Section Metadata | |
|---|---|
| style | [style-name] |
Available Section Styles:
| Style | Effect |
|---|---|
| [List project-specific styles in table format] |
章节用于将内容分组。使用水平分隔线()创建章节。
---在章节末尾添加章节元数据区块以设置样式:
| 章节元数据 | |
|---|---|
| style | [样式名称] |
可用章节样式:
| 样式 | 效果 |
|---|---|
| [以表格形式列出项目特定样式] |
Page Metadata
页面元数据
| Property | Required | Purpose | Example |
|---|---|---|---|
| Yes | Page title for SEO | "About Us" |
| Yes | SEO description | "Learn about..." |
| No | Social sharing image | /images/og.jpg |
| No | Apply page template | project-article |
| [Add project-specific fields] |
| 属性 | 是否必填 | 用途 | 示例 |
|---|---|---|---|
| 是 | 页面SEO标题 | "关于我们" |
| 是 | SEO描述 | "了解我们的..." |
| 否 | 社交分享图片 | /images/og.jpg |
| 否 | 应用页面模板 | project-article |
| [添加项目特定字段] |
Images and Media
图片与媒体
| Method | How |
|---|---|
| Drag & drop | Drag images directly into DA editor |
| AEM Assets | Use Assets sidebar in DA |
Best Practices: Descriptive filenames, always add alt text, images auto-optimized
| 方法 | 操作方式 |
|---|---|
| 拖放 | 将图片直接拖入DA编辑器 |
| AEM Assets | 使用DA中的资源侧边栏 |
最佳实践: 使用描述性文件名,始终添加替代文本,图片会自动优化
Troubleshooting
故障排除
| Issue | Solution |
|---|---|
| Page not updating after publish | Wait 1-2 min for cache, hard refresh (Cmd+Shift+R) |
| Block not displaying correctly | Check structure matches expected format, verify variant spelling |
| Images not showing | Verify image uploaded to DA, check path is correct |
| Wrong template styling | Check |
| 问题 | 解决方案 |
|---|---|
| 发布后页面未更新 | 等待1-2分钟缓存刷新,强制刷新页面(Cmd+Shift+R) |
| 区块显示不正确 | 检查结构是否符合预期格式,验证变体拼写 |
| 图片不显示 | 验证图片已上传至DA,检查路径是否正确 |
| 模板样式错误 | 检查元数据中的 |
Resources
资源
| Resource | URL |
|---|---|
| DA Documentation | https://docs.da.live/ |
| Authoring Guide | https://www.aem.live/docs/authoring |
| Placeholders Docs | https://www.aem.live/docs/placeholders |
| Redirects Docs | https://www.aem.live/docs/redirects |
Support Contacts
支持联系人
[Add project-specific contacts]
undefined[添加项目特定联系人]
undefined5.2 Convert to Professional PDF (MANDATORY)
5.2 转换为专业PDF(强制要求)
THIS STEP IS NOT OPTIONAL. YOU MUST GENERATE THE PDF NOW.
-
Save markdown to:
project-guides/AUTHOR-GUIDE.md- File MUST start with YAML frontmatter:
yaml
--- title: "[Project Name] - Author Guide" date: "[Full Date - e.g., February 17, 2026]" --- - Date format: Always use full date with day, month, and year (e.g., "February 17, 2026"), NOT just month and year
- File MUST start with YAML frontmatter:
-
IMMEDIATELY after saving the markdown, invoke the PDF conversion skill:
Skill({ skill: "project-management:whitepaper", args: "project-guides/AUTHOR-GUIDE.md project-guides/AUTHOR-GUIDE.pdf" }) -
Wait for PDF generation to complete (whitepaper skill auto-cleans source files)
DO NOT:
- Skip the PDF conversion step
- Tell user "PDF will be generated later" — generate it NOW
此步骤不可选。必须立即生成PDF。
-
将Markdown保存至:
project-guides/AUTHOR-GUIDE.md- 文件必须以YAML前置内容开头:
yaml
--- title: "[项目名称] - 作者指南" date: "[完整日期 - 例如:2026年2月17日]" --- - 日期格式: 始终使用包含日、月、年的完整日期(例如"2026年2月17日"),不可仅使用月和年
- 文件必须以YAML前置内容开头:
-
保存Markdown后立即调用PDF转换技能:
Skill({ skill: "project-management:whitepaper", args: "project-guides/AUTHOR-GUIDE.md project-guides/AUTHOR-GUIDE.pdf" }) -
等待PDF生成完成(白皮书技能会自动清理源文件)
请勿:
- 跳过PDF转换步骤
- 告知用户“PDF将稍后生成”——立即生成
5.3 Deliver to User
5.3 交付给用户
After PDF is generated, inform the user:
"✓ Author guide complete: project-guides/AUTHOR-GUIDE.pdf"PDF生成完成后,告知用户:
"✓ 作者指南已完成:project-guides/AUTHOR-GUIDE.pdf"Output
输出
FINAL OUTPUT:
project-guides/AUTHOR-GUIDE.pdfAll source files (.md, .html, .plain.html) are deleted after PDF generation. Only the PDF remains.
Location: folder
project-guides/最终输出:
project-guides/AUTHOR-GUIDE.pdfPDF生成后,所有源文件(.md、.html、.plain.html)将被删除。仅保留PDF。
位置: 文件夹
project-guides/Success Criteria
成功标准
Data Source Validation (CRITICAL):
- Config Service API was called ()
https://admin.hlx.page/config/{ORG}/sites.json - Site list came from API response, NOT from fstab.yaml or codebase analysis
- DA/Block Library URLs derived from Config Service content source, NOT assumed from code.owner/repo
Content Validation:
- Quick Reference table with all project URLs
- All blocks documented in table format
- All templates documented with required metadata
- Configuration sheets documented
- Publishing workflow explained
- Common tasks documented
- Section/page metadata options listed
- Troubleshooting included
Output Validation:
- PDF generated successfully
- All source files cleaned up (only PDF remains)
数据源验证(关键):
- 已调用Config Service API ()
https://admin.hlx.page/config/{ORG}/sites.json - 站点列表来自API响应,而非fstab.yaml或代码库分析
- DA/区块库URL派生自Config Service内容源,而非从code.owner/repo推断
内容验证:
- 包含所有项目URL的快速参考表格
- 所有区块均以表格形式记录
- 所有模板均记录了必填元数据
- 配置表已记录
- 发布工作流已说明
- 常见任务已记录
- 章节/页面元数据选项已列出
- 故障排除内容已包含
输出验证:
- PDF生成成功
- 所有源文件已清理(仅保留PDF)
Tips for Clear Documentation
清晰文档的提示
- Use tables for compact reference information
- Keep language simple - avoid technical jargon
- Use examples from actual project content
- Test procedures before documenting them
- 使用表格呈现紧凑的参考信息
- 语言简洁 - 避免技术术语
- 使用实际项目内容的示例
- 记录前测试流程