magazine-layout
npx skills add https://github.com/isjiamu/jiamu-skills --skill magazine-layout
Agent 安装分布
Skill 文档
æå¿æç设计å¸
å°çº¯ææ¬è½¬æ¢ä¸ºä¸ä¸è®¾è®¡çæå¿é£æ ¼HTML页é¢ï¼ä½¿ç¨Tailwind CSSå®ç°ç²¾ç¾æçã
å¿«éå¼å§
- ç¨æ·æä¾ææ¬å 容
- ä¸ç¨æ·è®¨è®ºå¹¶éæ©åéç飿 ¼
- æ ¹æ®éå®é£æ ¼çæå®æ´HTML
- å¯éï¼å¯¼åºä¸ºPDF
工使µç¨
ç¬¬ä¸æ¥ï¼åæå å®¹ç»æ
è¯å«ææ¬çç»æå ç´ ï¼
- æ é¢å坿 é¢
- ç« èåå°æ é¢
- éè¦å¼è¨æéå¥
- åè¡¨åæ°æ®è¦ç¹
- ä½è /æ¥æä¿¡æ¯
ç¬¬äºæ¥ï¼é£æ ¼éæ©ï¼ä¸ç¨æ·ååï¼
éè¦ï¼å¿ é¡»åç¨æ·å±ç¤ºé£æ ¼é项ï¼ä¸ç¨æ·è®¨è®ºååç¡®å®ãä½¿ç¨ AskUserQuestion å·¥å ·è®©ç¨æ·éæ©ã
é 读 references/styles.md è·å宿´æ¨¡æ¿ã
å¯é飿 ¼ä¸è§ï¼
| ç¼å· | 飿 ¼åç§° | éç¨åºæ¯ | è§è§ç¹ç¹ |
|---|---|---|---|
| 1 | ç»å ¸ä¼é (Classic Elegance) | æå¦ãæ£æãåå¿å½ | 衬线åä½ãæè²è°ãé¦å䏿²ãè£ é¥°æ§åé线 |
| 2 | ç°ä»£æç® (Modern Minimalist) | ç§æå客ãç°ä»£æç« | æ 衬线åä½ã大éçç½ãç®æ´çº¿æ¡ |
| 3 | ç§ææå¿ (Tech Magazine) | ç¼ç¨ãææ¯å 容 | æ¸åè²å½©ã代ç åæ ·å¼ãæªæ¥æè®¾è®¡ |
| 4 | èªç¶çæ´» (Nature & Lifestyle) | çæ´»æ¹å¼ãæ è¡ãç¾é£ | èªç¶ç»¿è²è°ãææºé åãæå飿 ¼ç¹ç¼ |
| 5 | 大è社论 (Bold Editorial) | è§ç¹ãè¯è®ºæç« | è¶ å¤§æ é¢ãé«å¯¹æ¯é»ç½ã红è²å¼ºè° |
| 6 | å¤å¤ææ§ (Vintage Retro) | åå²ãææ§å 容 | å¤å¤è¾¹æ¡ãæåæºåä½ãç¾ç®çº¸è´¨æ |
| 7 | åå¡ä¸ä¸ (Corporate Professional) | å䏿¥åãä¼ä¸ææ¡£ | æµ·åèé è²ãæ¸ æ°å±çº§ãä¸ä¸ä¸¥è°¨ |
| 8 | åæèºæ¯ (Creative Art) | 设计ãèºæ¯åä½ | ä¸å¯¹ç§°å¸å±ãè²åè£ é¥°ãæç»é£æ ¼ |
| 9 | 妿¯æå (Academic Journal) | 妿¯è®ºæãç ç©¶æ¥å | åæ å¸å±ãæè¦æ ·å¼ãå¼ç¨æ ¼å¼ |
| 10 | æ¶å°å¥¢å (Fashion Luxe) | æ¶å°ã奢ä¾åå 容 | éè²ç¹ç¼ãä¼é 衬线ãç²¾è´çç½ |
| 11 | æ°é»æ¥é (News & Report) | æ°é»ãæ°é»æ¥é | æ¥çº¸é£æ ¼ãå¤çº§æ é¢ãçªåæ ç¾ |
| 12 | æé»ç§æ (Dark Mode Tech) | å¼åè å 容 | æ·±è²èæ¯ãè§å é è²ãç»ç«¯é£æ ¼ |
飿 ¼æ¨èé»è¾ï¼
- æå¦/æ£æç±» â æ¨èï¼ç»å ¸ä¼é ãå¤å¤ææ§
- ææ¯/ç¼ç¨ç±» â æ¨èï¼ç§ææå¿ãæé»ç§æãç°ä»£æç®
- åä¸/æ¥åç±» â æ¨èï¼åå¡ä¸ä¸ãæ°é»æ¥é
- çæ´»/æ è¡ç±» â æ¨èï¼èªç¶çæ´»ãæ¶å°å¥¢å
- è§ç¹/è¯è®ºç±» â æ¨èï¼å¤§è社论ãåæèºæ¯
- 妿¯/ç ç©¶ç±» â æ¨èï¼å¦æ¯æå
ç¨æ·ä¹å¯ä»¥ï¼
- æ··åå¤ç§é£æ ¼å ç´
- èªå®ä¹é¢è²ãåä½
- è°æ´é¡µé¢å°ºå¯¸åé´è·
ç¬¬ä¸æ¥ï¼çæHTML
ä» references/styles.md 读åéå®é£æ ¼ç模æ¿ï¼çæå®æ´HTMLã
çæè§åï¼
- ä¸¥æ ¼ä½¿ç¨éå®é£æ ¼ç模æ¿ç»æ
- ä¿çç¨æ·åæçå ¨é¨å 容 – ç»ä¸å åææ»ç»
- åºç¨åéçæçç»ä»¶ï¼
- 馿®µä½¿ç¨
drop-capé¦å䏿² - éè¦è¯å¥ä½¿ç¨
blockquoteå¼è¨æ ·å¼ - ç« èé´ä½¿ç¨é£æ ¼ä¸å±çåé线
- æ£ç¡®çæ é¢å±çº§ (h1 > h2 > h3)
- 馿®µä½¿ç¨
- å¿ é¡»å 嫿ºè½å页CSSï¼è§ä¸æ¹è¯´æï¼
- å å®¹å¿ é¡»éåºé¡µé¢å°ºå¯¸
- å 嫿æCSSï¼å èæéè¿CDNå¼å ¥TailwindãGoogle Fontsï¼
- è¾åºå®æ´ãèªå å«çHTMLæä»¶
æ ¸å¿æçç»ä»¶ï¼
<!-- é¦å䏿²æ®µè½ -->
<p class="drop-cap">馿®µæåå
容...</p>
<!-- å¼è¨/å¼ç¨å -->
<blockquote>
<p>"éè¦å¼è¨å
容"</p>
<cite>â æ¥æº</cite>
</blockquote>
<!-- ç« èåé线 -->
<div class="elegant-divider"><span>â»</span></div>
<!-- æ é¢åºå -->
<header>
<h1>主æ é¢</h1>
<p class="subtitle">坿 颿坼è¯</p>
</header>
æºè½å页CSSï¼å¿ é¡»å å«ï¼ï¼
ç¡®ä¿PDFå¯¼åºæ¶å 容ä¸ä¼å¨å ç´ ä¸é´è¢«åæãæ¯ä¸ªæ¨¡æ¿å·²å ç½®æ¤CSSï¼çæHTMLæ¶å¿ é¡»ä¿çï¼
/* æå°/PDFæ¨¡å¼ */
@media print {
/* æ é¢åç¦æ¢å页 */
h1, h2, h3, .chapter-number, .chapter-title {
page-break-after: avoid; break-after: avoid;
}
/* å级å
ç´ å
é¨ç¦æ¢å页 */
blockquote, .highlight-box, .stage-item, .question-item,
.code-block, .terminal, figure, img, table {
page-break-inside: avoid; break-inside: avoid;
}
/* åè¡¨ä¿æå®æ´ */
ul, ol, .numbered-list, .stage-list {
page-break-inside: avoid; break-inside: avoid;
}
/* åé线åç¦æ¢å页 */
.elegant-divider, .divider, hr {
page-break-after: avoid; break-after: avoid;
}
/* 段è½å¤è¡å¯¡è¡æ§å¶ */
p { orphans: 3; widows: 3; }
}
/* éæå°æ¶ä¹åºç¨ï¼ç¡®ä¿PDF渲æä¸è´ */
blockquote, .highlight-box, .code-block, .terminal, figure, img, table {
page-break-inside: avoid; break-inside: avoid;
}
| CSS屿§ | ææ | éç¨å ç´ |
|---|---|---|
page-break-inside: avoid |
å ç´ å é¨ç¦æ¢å页 | å¼è¨ãå¡çãå表 |
page-break-after: avoid |
å ç´ åç¦æ¢å页 | æ é¢ãåé线 |
orphans: 3 |
页åºè³å°ä¿ç3è¡ | æ®µè½ |
widows: 3 |
页顶è³å°ä¿ç3è¡ | æ®µè½ |
ç¬¬åæ¥ï¼PDF导åºï¼å¯éï¼
ä½¿ç¨ scripts/html_to_pdf.py èæ¬ï¼
# æ£æ¥å¯ç¨å¼æ
python scripts/html_to_pdf.py --check
# 转æ¢ï¼èªå¨æ£æµæä½³å¼æï¼
python scripts/html_to_pdf.py magazine.html
# æå®è¾åºæä»¶å
python scripts/html_to_pdf.py magazine.html output.pdf
# 使ç¨ç¹å®å¼æ
python scripts/html_to_pdf.py magazine.html --engine playwright
弿å®è£ æ¹æ³ï¼
- Playwrightï¼æ¨èï¼:
pip install playwright && playwright install chromium - WeasyPrint:
pip install weasyprint - wkhtmltopdf:
brew install wkhtmltopdf(macOS)
é¿æå页å¤ç
æºè½åé¡µï¼æææ¨¡æ¿å·²å ç½®å页æ§å¶CSSï¼PDFå¯¼åºæ¶èªå¨é¿å å¨ä»¥ä¸ä½ç½®å页ï¼
- æ é¢ä¸æ£æä¹é´
- å¼ç¨åãé«äº®æ¡ãå表å é¨
- åé线ä¸ä¸æ¹å 容ä¹é´
对äºè¶ é¿å 容ï¼éæå¨å岿¶ï¼ï¼
- å¨èªç¶æç¹å¤åé¡µï¼æ¯é¡µçº¦800-1000åï¼
- çæç¬ç«HTMLæä»¶ï¼
æç« _第1页.htmlãæç« _第2页.html - æ¯é¡µé½æ¯å®æ´èªå å«çHTMLï¼å«å®æ´CSSåå页æ§å¶ï¼
è¾åºæ ¼å¼
## æ¨çæå¿é¡µé¢
å°ä»¥ä¸ä»£ç ä¿å为 `æç« .html`ï¼
\`\`\`html
<!DOCTYPE html>
...宿´HTML代ç ...
\`\`\`
**æ¥çæ¹å¼ï¼** ç¨æµè§å¨æå¼ `æç« .html`
**导åºPDFï¼** `python scripts/html_to_pdf.py æç« .html`
飿 ¼å®å¶
ç¨æ·å¯è½è¦æ±ä¿®æ¹ï¼
- é¢è²ï¼ä¿®æ¹CSSåéæTailwindç±»
- åä½ï¼æ´æ°Google Fontså¯¼å ¥
- é´è·ï¼è°æ´paddingãmarginãline-height
- å¸å±ï¼ä¿®æ¹é¡µé¢å®½é«å°ºå¯¸
å¨ä¿ææ´ä½é£æ ¼åè°çåæä¸åºç¨ä¿®æ¹ã
èµæºæä»¶
scripts/
html_to_pdf.py– HTML转PDFèæ¬ï¼æ¯æå¤ç§æ¸²æå¼æï¼Playwright/WeasyPrint/wkhtmltopdfï¼
references/
styles.md– å ¨é¨12ç§é£æ ¼ç宿´æ¨¡æ¿ï¼å å«é è²æ¹æ¡ãåä½è®¾ç½®ãæºè½å页CSSåHTML模æ¿ä»£ç