Description
We are going to explore ways to create custom document markup, and how to publish websites and printed books from the same source documents. Our biggest lever for getting this done is the Pollen publishing system, which treats your documents as functional programs. Pollen is built on the Racket programming language.
Why would you want to dual-publish to the web and to print? Read my short essay, The Unbearable Lightness of Web Pages.
Example books published with Pollen:
Course Goals
- Understand common techniques for implementing design ideas in Pollen
- Understand how to start and build a Pollen project
- Gain some Racket programming knowledge and “functional programming” chops
- Build and produce a POD-ready PDF and a web site from the same source
Who This Course is For
- You enjoy publishing things digitally
- You’re at least somewhat familiar with HTML and CSS
- You’re not afraid to make things by writing code
- (You need not be an advanced programmer, but some familiarity in any programming language will help. There are no point-and-click applications in this course!)
Length / Commitment
There will be 4 weekly sessions of 1.5–2 hours each. There is some homework; it’s optional, but you’ll get more out of the course if you do it. You can do much of it before the course starts, if you wish.
Syllabus / Schedule
The course is in beta form, and the structure is still in flux! This, at least, is the initial plan of attack.
Before we begin
- Install Racket and Pollen on your computer (instructions)
- As much as you are able: read the Pollen documentation and do the first 3 tutorials (don’t just read them, do them, step by step). If you can’t do it all, no worries; if you can, but it doesn’t quite make sense, no worries. Whatever you can do will help you immensely with the course.
Week 1: Intro and Quick Tour
Group Call (1.5–2 hours)
- We’ll make sure everyone’s tech is up and running
- We’ll start and complete a simple Pollen-based website
Homework
- Tinker with the website you made
- Study an existing Pollen project on GitHub (links will be provided)
- Read up on X-expressions
Week 2: Designing Markup
Group call (1.5–2 hours)
- Focus: Designing and implementing a custom markup languages
- Some common markup needs
- As needed: Racket programming language explainers
Homework
- (optional) Develop your own tag functions
- (optional) Install LaTeX on your computer
- Read (and if possible, do) the fourth tutorial in the Pollen documentation
Week 3: Dual Web/Print PDF publishing
Group Call (1.5–2 hours)
- Multiple output target formats in Pollen
- Generating PDFs via LaTeX
- Print layout considerations
- Publishing those PDFs as print books via Kindle Direct Publishing
Homework
- Work on implementing multiple output targets in your project
Week 4: Closing the circle
Things have gone at a brisk pace by this point. There will be things we didn’t get to, questions I didn’t forsee for this first cohort. This week will be focused on filling in those gaps and making sure everyone has a working foundation for their projects.
Group call (1.5–2 hours)
- Anything crucial we postponed from earlier calls
- Sharing our projects
- Dealing with LaTeX
#lang bookcover
: A Racket language for making your book cover- Possibilities: Generating a podcast or an ebook with Pollen
Artifacts
You should come away from this with a working model of a Pollen project that can be published as a website or as a book.