Skip to main content

SlideMark

Thư viện Python giúp AI Agent tạo file PowerPoint (.pptx) native, chỉnh sửa được chỉ bằng cách viết văn bản theo cú pháp riêng của SlideMark: ngắn gọn, tốn ít token và hỗ trợ cả slide dày đặc kiểu Nhật.

Trạng thái: đang phát triển (đã xong 7 ngày nền móng, đang leo các cấp L2 → L4). Mục tiêu từng cấp L1 → L7: docs/TARGETS.md.

Cài đặt

pip install slidemark            # thư viện + CLI `slidemark`
pip install "slidemark[html]"    # thêm Playwright nếu dùng khối HTML (cần `playwright install chromium`)

Dùng nhanh: viết deck.md theo cú pháp bên dưới rồi chạy slidemark build deck.md -o deck.pptx. Xem trước ảnh PNG (slidemark preview) cần LibreOffice cài sẵn trên máy.

Ví dụ

theme: jp-business
lang: ja

# 新規事業の検討状況と今後の方針
> 3つの課題を解決し、2027年度の黒字化を目指す
@aab/aac
## 現状
- 売上:12.4億円(前年比 +8%)
## 課題
- 解約率が ==2.1%== に上昇
## 施策
1. 導入テンプレートの整備
※ 出所:社内CRMデータ
  • # mở slide mới, mỗi ## là một box, các box tự sắp xếp.
  • @aab/aac là layout lưới viết trong 1 dòng.
  • > dưới tiêu đề là thông điệp chính, dòng ※ là chú thích nguồn.

Cú pháp đầy đủ: docs/SYNTAX.md.

Tính năng chính

  • Box, lưới @, KPI {.kpi}, callout > [!warn], badge [x]{.badge}, mũi tên nối @ a>b, chevron/flow.
  • 10 loại biểu đồ native từ CSV (nhãn, legend, định dạng số), bảng có gộp ô, công thức toán (OMML), sơ đồ Mermaid → shape native, HTML → native (hoặc ảnh dự phòng qua Chromium).
  • Theme default, midnight, jp-business hoặc template .pptx/.potx của bạn; hiệu ứng xuất hiện, chuyển slide, section.
  • Thiết kế tự do: không có giao diện cố định. Theme chỉ là preset token (YAML); agent tự khai báo màu, font, cỡ chữ, bo góc, gradient, bóng đổ bằng vài dòng colors: / fonts: / sizes: / style:, bằng khối ```css (34 thuộc tính CSS → shape gốc), hoặc viết cả slide bằng HTML (@html, build deck.html) và vẫn ra shape sửa được.
  • slidemark check kiểm tra tràn chữ, chồng lấn, tương phản, alt ảnh… và gợi ý cách sửa trên 1 dòng (JSON được).
  • slidemark docs / skill install: tài liệu cho agent, SKILL.md ≤ 1.500 token.
pip install -e .
slidemark check deck.md && slidemark build deck.md -o deck.pptx
slidemark skill install      # cài skill cho Claude Code

Windows: slidemark preview / review --png tự tìm LibreOffice trong C:\Program Files\LibreOffice; nếu cài chỗ khác, đặt biến môi trường SLIDEMARK_SOFFICE trỏ tới soffice.exe. Build .pptx không cần LibreOffice.

So sánh với python-pptx (cùng đề, 5 / 15 / 25 slide)

Cùng một agent (Sonnet), cùng đề bài, mỗi bên chạy 1 lần, đo từ lúc nhận yêu cầu đến lúc có file .pptx đạt yêu cầu (2026-10-06). Chi tiết, mã nguồn hai bên đặt cạnh nhau và ảnh slide: docs/COMPARE.md.

Số slide Lần gọi model (SlideMark / python-pptx) Thời gian Token output Chi phí
5 4 / 8 18 s / 86 s 1,4k / 10,1k 32%
15 5 / 11 40 s / 140 s 6,7k / 18,2k 40%
25 7 / 10 70 s / 198 s 7,5k / 41,5k 32%

Thiết kế là quyết định của agent (2026-10-07)

SlideMark hỗ trợ quyết định thiết kế chứ không thay agent quyết định. Từ wave 3, SKILL.md yêu cầu agent nêu rõ lựa chọn của mình cho cả deck (colors: fonts: sizes: style: footer:) và từng slide (dạng, một điểm nhấn, ghi đè vị trí/cỡ/màu khi cần); build cảnh báo design-none / design-slide và in dòng design: colors fonts sizes style footer; 14/14 slides decided form+emphasis+values. Không có lựa chọn nào được coi là "đúng" (docs/DESIGN_REQUIRED.md, docs/DESIGN_FREEDOM.md).

Cùng đề 15 slide, giám khảo thiết kế chấm mù (Opus, cùng một vòng):

Deck Điểm Lần gọi Thời gian Chi phí Token mã nguồn
SlideMark sau AC7 (nêu quyết định, build in bản đồ fit từng slide) 3,5 / 3,0 (2 lần chạy) 4 / 5 29 s / 39 s 29% / 35% 1,5k / 1,4k
SlideMark wave 3 (nêu quyết định, chưa có bản đồ fit) 3,5 9 90 s 61% 1,6k
SlideMark wave 2 (chỉ nội dung) 3,0 5 36 s 34% 1,3k
python-pptx 2,5 / 3,0 11 140 s 100% 5,3k

Bản đồ fit: build in một dòng cho mỗi slide (slide 2: lead + 4 kpi cards 72% of body, value 48->29pt (shrunk to fit), free 16% below) nên agent biết quyết định của mình có hiệu lực không mà không cần mở ảnh; thuộc tính bị bỏ qua báo attr-ignored kèm dạng đúng. Mục tiêu AC7–AC9 (≤ 5 lần gọi, chi phí và thời gian ≤ 50% python-pptx) đã đạt.

Toàn bộ thiết kế mà agent python-pptx tự viết (64 quyết định) nêu lại được trong SlideMark với 43% token (bench/lengthbench/t2/slidemark-ported/REPORT.md, docs/DESIGN_COVERAGE.md).

Ảnh slide mẫu (cập nhật hằng ngày)

Cập nhật: 2026-10-07 · commit 2d3e402 · tạo tự động bởi scripts/gallery.py.

Cơ bản: tiêu đề, danh sách, box, bảng, biểu đồ

Nguồn: examples/01-basics.md

01-basics slide 1 01-basics slide 2 01-basics slide 3 01-basics slide 4

Slide dày đặc kiểu Nhật (jp-business)

Nguồn: examples/02-jp-dense.md

02-jp-dense slide 1 02-jp-dense slide 2

Báo cáo tiếng Việt

Nguồn: examples/03-vi-report.md

03-vi-report slide 1 03-vi-report slide 2 03-vi-report slide 3

Tiếng Nhật: KPI, badge, bảng kết quả, mũi tên nối

Nguồn: examples/04-jp-kpi.md

04-jp-kpi slide 1 04-jp-kpi slide 2

Tiếng Nhật: quy trình chevron + bảng, luồng phê duyệt

Nguồn: examples/05-jp-process.md

05-jp-process slide 1 05-jp-process slide 2

Tiếng Nhật: biểu đồ thị trường, bảng so sánh đối thủ

Nguồn: examples/06-jp-market.md

06-jp-market slide 1 06-jp-market slide 2

Tiếng Nhật: sơ đồ tổ chức, ma trận rủi ro

Nguồn: examples/07-jp-org.md

07-jp-org slide 1 07-jp-org slide 2

Tiếng Nhật: kế hoạch trung hạn, lộ trình

Nguồn: examples/08-jp-roadmap.md

08-jp-roadmap slide 1 08-jp-roadmap slide 2 08-jp-roadmap slide 3

Theme tối (midnight): KPI, biểu đồ, Mermaid, công thức, code

Nguồn: examples/09-midnight-tech.md

09-midnight-tech slide 1 09-midnight-tech slide 2 09-midnight-tech slide 3 09-midnight-tech slide 4 09-midnight-tech slide 5 09-midnight-tech slide 6

Template .pptx của người dùng, ảnh (cover crop), biểu đồ, callout

Nguồn: examples/10-template.md

10-template slide 1 10-template slide 2 10-template slide 3

Tiếng Nhật: bộ 9 slide tư vấn dày đặc (tóm tắt, KPI, tổ chức, lộ trình, rủi ro)

Nguồn: examples/11-jp-consulting.md

11-jp-consulting slide 1 11-jp-consulting slide 2 11-jp-consulting slide 3 11-jp-consulting slide 4 11-jp-consulting slide 5 11-jp-consulting slide 6 11-jp-consulting slide 7 11-jp-consulting slide 8 11-jp-consulting slide 9

HTML/CSS → shape gốc (đo bằng Chromium), logo SVG, công thức

Nguồn: examples/12-html-svg-math.md

12-html-svg-math slide 1 12-html-svg-math slide 2

Thiết kế tự do: thương hiệu tối, gradient, bóng đổ (theme: none + token)

Nguồn: examples/13-brand-aurora.md

13-brand-aurora slide 1 13-brand-aurora slide 2 13-brand-aurora slide 3

Thiết kế tự do: thương hiệu sáng, font serif, màu đất nung (token)

Nguồn: examples/14-brand-terracotta.md

14-brand-terracotta slide 1

Slide HTML toàn trang (@html) + slide SlideMark dùng chung token

Nguồn: examples/15-html-mixed.md

15-html-mixed slide 1 15-html-mixed slide 2 15-html-mixed slide 3

Tiếng Nhật: chiến lược dịch vụ, Gantt, quyết định

Nguồn: examples/16-jp-strategy.md

16-jp-strategy slide 1 16-jp-strategy slide 2 16-jp-strategy slide 3 16-jp-strategy slide 4 16-jp-strategy slide 5 16-jp-strategy slide 6 16-jp-strategy slide 7 16-jp-strategy slide 8 16-jp-strategy slide 9 16-jp-strategy slide 10

Thiết kế tự do bằng CSS fence: phong cách tạp chí

Nguồn: examples/17-editorial-css.md

17-editorial-css slide 1 17-editorial-css slide 2 17-editorial-css slide 3 17-editorial-css slide 4 17-editorial-css slide 5

Thiết kế tự do: thương hiệu xanh chanh

Nguồn: examples/18-brand-lime.md

18-brand-lime slide 1 18-brand-lime slide 2 18-brand-lime slide 3 18-brand-lime slide 4

Tiếng Việt: bộ tư vấn theo thương hiệu (theme: none)

Nguồn: examples/19-vi-consulting-brand.md

19-vi-consulting-brand slide 1 19-vi-consulting-brand slide 2 19-vi-consulting-brand slide 3 19-vi-consulting-brand slide 4 19-vi-consulting-brand slide 5

Tiếng Nhật: bộ 11 slide dày đặc (biểu đồ cầu, Gantt, ghi chú biểu đồ)

Nguồn: examples/20-jp-retail-dense.md

20-jp-retail-dense slide 1 20-jp-retail-dense slide 2 20-jp-retail-dense slide 3 20-jp-retail-dense slide 4 20-jp-retail-dense slide 5 20-jp-retail-dense slide 6 20-jp-retail-dense slide 7 20-jp-retail-dense slide 8 20-jp-retail-dense slide 9 20-jp-retail-dense slide 10 20-jp-retail-dense slide 11

Tiếng Nhật: pitch tối thiết kế bằng CSS/HTML

Nguồn: examples/21-jp-dark-pitch.md

21-jp-dark-pitch slide 1 21-jp-dark-pitch slide 2 21-jp-dark-pitch slide 3 21-jp-dark-pitch slide 4

Tiếng Anh: kế hoạch ra mắt, chevron khớp cột bảng, ghi chú biểu đồ (hl=, note=)

Nguồn: examples/22-en-launch-plan.md

22-en-launch-plan slide 1 22-en-launch-plan slide 2 22-en-launch-plan slide 3 22-en-launch-plan slide 4 22-en-launch-plan slide 5 22-en-launch-plan slide 6 22-en-launch-plan slide 7

Từ vựng bố cục: @timeline, @vs, @matrix, @funnel, @pyramid, @cycle, @agenda, @statement

Nguồn: examples/23-vocabulary.md

23-vocabulary slide 1 23-vocabulary slide 2 23-vocabulary slide 3 23-vocabulary slide 4 23-vocabulary slide 5 23-vocabulary slide 6 23-vocabulary slide 7 23-vocabulary slide 8 23-vocabulary slide 9 23-vocabulary slide 10

Từ vựng bố cục 2: iconlist, quote, split, proscons, progress, harvey, heatmap, pins

Nguồn: examples/24-vocabulary-2.md

24-vocabulary-2 slide 1 24-vocabulary-2 slide 2 24-vocabulary-2 slide 3 24-vocabulary-2 slide 4 24-vocabulary-2 slide 5 24-vocabulary-2 slide 6 24-vocabulary-2 slide 7 24-vocabulary-2 slide 8 24-vocabulary-2 slide 9

25-roundtrip-forms

Nguồn: examples/25-roundtrip-forms.md

25-roundtrip-forms slide 1 25-roundtrip-forms slide 2 25-roundtrip-forms slide 3 25-roundtrip-forms slide 4 25-roundtrip-forms slide 5 25-roundtrip-forms slide 6 25-roundtrip-forms slide 7

Tài liệu

File Nội dung
docs/SYNTAX.md Cú pháp
docs/PLAN.md Kế hoạch 7 ngày và quy trình chạy hằng ngày
docs/TARGETS.md Mục tiêu L1–L7
docs/AGENT_TIPS.md Mẹo cho Agent khi dùng thư viện
docs/LESSONS.md Lỗi đã gặp và cách giải quyết
docs/DAILY_LOG.md Nhật ký hằng ngày

Metadata

Release files for slidemark 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slidemark 0.1.0
File Size Uploaded
slidemark-0.1.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for slidemark 0.1.0
File Interpreter ABI Platform
slidemark-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / slidemark-0.1.0.tar.gz

Download URL slidemark-0.1.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a7c25dccc29c528d58e19cfddfc507fa75295a401aec2f486e9dc9480b5e27ea
BLAKE2b-256 checksum
How to use checksums
e85d25299bf8f88af5f2d09d714c55af905e35f004d0ea75399bb7386d736f41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / slidemark-0.1.0-py3-none-any.whl

Download URL slidemark-0.1.0-py3-none-any.whl
Size 667.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
11aad7fc3d2202df74400d4371cbc9670ec0e712658baf08c3923ad12a9402fb
BLAKE2b-256 checksum
How to use checksums
ab26066f21c92818c61a1ddc3941e67fb1e5803e5ba83bf3fd444aaf0509be46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page