`:icons: font
This repository contains the source for the textbook Start Concurrent: A Gentle Introduction to Concurrent Programming. It is licensed under Apache License 2.0.
-
Git (and a GitHub account to access the Start Concurrent repository)
-
Asciidoctor Chunker (to convert to HTML chunks)
-
Asciidoctor Rouge (for syntax highlighting)
-
Asciidoctor PDF gem (to generate a PDF version)
Most (all?) “figures” in the book are Adobe Illustrator documents saved in PDF format, and are located in the figures
subdirectory of the chapter in which they appear. For each PDF file, there is a corresponding SVG file located in the images
subdirectory. The SVG file is what is imported into the AsciiDoc file.
To create a new figure or edit an existing one…
-
Create or edit the Illustrator file in the figures subdirectory.
-
Save changes using the default (PDF) format.
-
Temporarily, convert all text to outlines:
-
Select > Select All
-
Type > Create Outlines
-
-
Then,
Save a Copy As…
, using SVG format and deselecting the “Preserve Illustrator Editing Capability”, to create an .SVG file in theimages
subdirectory.
Note: Don’t save the outlined text version back to the original PDF file!
See the shell script update-html
and companion ruby script update-html.rb
. The shell script generates both the full book as a single-page html file and a "chunked" version that generates one chapter per html file (for faster downloading).
See the shell script update-pdf
and companion ruby script update-pdf.rb
.
Warning
|
This section has not been updated lately and a permanent fix may now be in place. |
There is a bug in the prawn-table code used by Asciidoctor-PDF when formatting certain tables. There is discussion and a (so-far incomplete) fix here.
Steps to fix the problem (simplified to not use a Gemfile):
-
Download the latest prawn-table code to a separate repository.
-
cd prawn-table
-
Build and install.
-
gem build prawn-table.gemspec
-
gem install prawn-table-0.2.3.gem
-
These steps do not fix all tables. Specifically, not all tables with autowidth will work. Advice from the Asciidoctor authority is to use column ratios and table width.
Warning
|
In progress. |
-
Update book sources to comply with required format. (One time; in progress.)
-
Install the AsciiDoctor EPUB3 gem.
-
Run Asciidoctor EPUB3 to do the conversion:
$ (cd full; asciidoctor-epub3 index.adoc -D ../epub3)
-
Additional steps (TBD) convert the document to Kindle format (KF8/MOBI).
Other gems needed (apparently):