Convert the DocC source for The Swift Programming Language book into polished PDF and EPUB editions.
Jump to: Features · Installation · Usage · Customization · Wiki
|
|
The Swift Programming Language, optimized for e-readers. Open the EPUB file in Apple Books to sync across all your devices. |
For versioned archives of the EPUB edition, see swift-book-archive.
|
|
|
|
|
|
For versioned archives of the PDF editions, see swift-book-archive.
- Generate a PDF edition of The Swift Programming Language, optimized for offline reading or printing.
- Choose from one of two rendering modes:
- Digital mode with hyperlinks for cross-references between chapters and external links.
- Print mode with page numbers accompanying cross-references between chapters and full URLs shown in footnotes for external links.
- Both versions follow the DocC rendering style used in docs.swift.org, including code highlighting.
- Generate an EPUB edition of The Swift Programming Language, ideal for e-readers and mobile devices.
- The generated EPUB file follows the rendering style used by TSPL editions up to Swift 5.7 published on Apple Books and retains all internal references and external links.
- Python 3.10+
- Git
- Specifically for generating PDF editions with
swift-book-pdf:- LuaTeX. If you don't have an existing LaTeX installation, see MacTeX, TeX Live, or MiKTeX.
- Fonts for typesetting. Learn which fonts are required to typeset the TSPL book.
pip install swift-book-pdf
Call swift-book-pdf without any arguments to save the resulting PDF as swift_book.pdf in the current directory. The package defaults to the digital rendering mode in Letter paper size.
$ swift-book-pdf
[INFO]: Downloading TSPL files...
[INFO]: Creating PDF in digital (light) mode...
[INFO]: PDF saved to ./swift-book.pdf
When invoked, swift-book-pdf will:
- Clone the
swift-bookrepository - Convert all Markdown source files into a single LaTeX document
- Render the LaTeX document into the final PDF document
Call swift-book-epub without any arguments to save the resulting EPUB as swift_book.epub in the current directory.
$ swift-book-epub
[INFO]: Downloading TSPL files...
[INFO]: Creating EPUB...
[INFO]: EPUB saved to ./swift_book.epub
swift-book-pdf and swift-book-epub offer a range of options to customize your rendering of The Swift Programming Language book. Learn how to make the TSPL book your own.
Copyright © 2025–2026 Evangelos Kassos. swift-book-pdf is distributed under the Apache License, Version 2.0.
When you don't provide an input path, swift-book-pdf temporarily clones the swift-book repository for processing at runtime, but no part of the repository is directly redistributed here.
Editions generated by swift-book-pdf are derived from the swift-book source and are modified versions of the original work, converted and formatted for distribution. See the Acknowledgments chapter in each edition for more details. Passing --dangerously-skip-legal-notices suppresses the Acknowledgments chapter. Use of this option does not waive, limit, or satisfy any otherwise applicable legal obligations. Any person distributing an edition generated with this option remains solely responsible for compliance with all applicable attribution, licensing, trademark, notice, and non-affiliation requirements.
chapter-icon.png and chapter-icon~dark.png are derived from the ArticleIcon.vue component in the swift-docc-render repository. The swift-docc-render repository is part of the Swift.org open source project, which is licensed under the Apache License, Version 2.0 with Runtime Library Exception. See https://swift.org/LICENSE.txt for more details. Copyright © 2021–2025 Apple Inc. and the Swift project authors. The Swift project authors are credited at https://swift.org/CONTRIBUTORS.txt.
Swift is a trademark of Apple Inc. Neither this project nor output generated by swift-book-pdf is published by, endorsed by, or affiliated with Apple Inc. or the Swift.org open source project.
EPUB editions generated by swift-book-epub use IBM Plex Sans and IBM Plex Serif, Copyright © 2017 IBM Corp. with Reserved Font Name "Plex", licensed under the SIL Open Font License 1.1.
See THIRD-PARTY-NOTICES.txt for more details.
