book-pdf-pagedjs SKILL.md skillB
book-pdf-pagedjs from bam-bam-2/solo-skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add bam-bam-2/solo-skills/book-pdf-pagedjs@git:20260913.d0d5788Pins git:20260913.d0d5788 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- bam-bam-2/solo-skills
- Path
skills/book-pdf/SKILL.md- Versions recorded
- 3
- Latest version
- git:20260913.d0d5788, committed Sep 13, 2026
- First version recorded
- Aug 22, 2026
- Size
- 16,502 bytes
- Repository stars
- 366
- License
- MIT
마크다운 원고를 실제 책처럼 보이는 PDF/EPUB 전자책으로 만들 때 사용. 표지, 타이틀 페이지, 판권(콜로폰) 페이지, 실제 쪽번호가 달린 목차, 장마다 러닝헤더가 붙는 본문까지 갖춘 '책스러운' 구성이 필요할 때 (단순 리포트/문서 PDF가 아니라 진짜 책 산출물을 요구할 때) 적용. 표지 디자인과 판매 플랫폼(만년필 등) 커버·썸네일 이미지를 겟백 브랜드로 뽑는 절차도 포함.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 마크다운 → 진짜 책 PDF/EPUB
일반 `page.pdf()` + 마크다운→HTML 변환만으로는 "리포트를 인쇄한 것"처럼 보인다.
실제 책이려면 최소 이 6가지가 있어야 한다: **표지(풀블리드) · 타이틀 페이지 · 판권 페이지 · 실제 쪽번호가 달린 목차 · 장 시작마다 새 페이지 · 쪽마다 러닝헤더/쪽번호**.
이 스킬은 [Paged.js](https://pagedjs.org)(MIT, `https://unpkg.com/pagedjs/dist/paged.polyfill.js`)를 브라우저에 스크립트 태그로 로드해 CSS Paged Media 기능(러닝헤더, 목차 쪽번호 자동생성)을 구현한다. Chromium이 네이티브로 지원 안 하는 기능이라 이 폴리필이 필요하다.
## 이 환경(Aside REPL)의 알려진 함정
1. **`page.pdf({width, height})` 파라미터가 무시된다.** 항상 US Letter로 나온다. 반드시 `preferCSSPageSize: true`를 주고 CSS `@page { size: 148mm 210mm; }`로 크기를 지정할 것. `format: 'A5'` 같은 심볼릭 사이즈도 마찬가지로 무시되니 쓰지 말 것.
2. **`page.setViewportSize()`가 없다.** 뷰포트 크기를 못 바꾸므로 표지 등 개별 이미지를 만들 때 `page.screenshot({fullPage:true})`로 큰 캔버스를 찍으면 타일링 버그가 난다. 대신 `page.pdf()` + `pdftoppm`으로 원하는 크기를 렌더링할 것.
3. **`page.addScriptTag()`가 없다.** 외부 스크립트(Paged.js 등)는 `document.write()`로 쓰는 HTML 문자열 안에 `<script src="https://unpkg.com/...">` 태그를 직접 넣어야 로드된다.
4. **구글 폰트 `@import`/`<link>`가 `document.write()` 직후엔 타이밍 문제로 반영 안 될 때가 있다.** 커스텀 세리프 폰트를 꼭 써야 하면 woff2를 직접 fetch해서 base64로 인라인 `@font-face`에 박아넣을 것. 급하면 시스템 폰트(`-apple-system`, `'Apple SD Gothic Neo'`)로 타협.
…Read the whole file at its exact version.
How to install
mdr add bam-bam-2/solo-skills/book-pdf-pagedjs@sha256:c3f5c27bdb447d62The line at the top of this page pins the label git:20260913.d0d5788, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_bmadmyawfoi4axif)
1 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, between Aug 22, 2026 and Sep 13, 2026, about one every 11 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260913.d0d5788 latest | 2026-09-13 | d0d5788 | 16,502 B | B | view · diff |
| git:20260823.7b8e5fd | 2026-08-23 | 7b8e5fd | 8,891 B | B | view · diff |
| git:20260822.50152a0 | 2026-08-22 | 50152a0 | 8,457 B | B | view |
Audit of the latest version
- fail: No script tag (matched: <script)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (16502 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
bam-bam-2/solo-skills · 366 stars · license MIT · pushed 2026-10-22 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_bmadmyawfoi4axif GET https://markdownregistry.com/api/v1/resolve?ref=bam-bam-2/solo-skills/book-pdf-pagedjs GET https://markdownregistry.com/api/v1/blob/c3f5c27bdb447d62786e7fe5e546011edc8a2bc881e176d3f08faefe7fe1e5ac
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.