Clojure has been in the "adopt" zone of the Thoughtworks tech radar since 2014. But companies face the challenge of how to prepare their staff to be productive using Clojure. Creating a structured enterprise style course material will enable more people to offer Clojure courses suitable for companies wanting to adopt Clojure.
Slides have Keyboard shortcuts.
If you have suggestions on how to improve this course, I would love to hear them. Issues welcome. Pull requests welcome.
The manual and slides source material are under the docs
directory.
The material is written in asciidoc (.adoc) format, which gets compiled to HTML and PDF.
They are built to HTML and PDF using Asciidoctor, and output to the site
directory.
Refer to the Writer’s Guide for syntax.
Asciidoctor provides excellent document producing features and allows slides to be generated as RevealJS slideshows.
When editing the material, there are many live preview tools to chooose from here.
I use the IntelliJ plugin as it is simple to install and works well.
There is also a ./watch.sh
command to build when the source file changes.
The Web (Epiphany) browser reloads from disk when the HTML file changes.
The easiest way to build is to run
./bb.sh
This script relies on bundler (See The Ruby way for more info). It will install dependencies and build the documents into html/pdf.
You can install asciidoctor, asciidoctor-pdf, and ascidoctor-revealjs locally and run
./build.sh
But installing these tools is a bit of a pain… so two ways to get the dependencies are provided:
Requires Ruby.
You don’t need to install Asciidoctor. Asciidoctor is a dependency specified in the Gemfile. However you will need Ruby and Bundler to pull down the Asciidoctor and RevealJS plugin dependencies.
Requires Bundler:
gem install bundler
Pull the dependencies:
bundle --path=.bundle/gems --binstubs=.bundle/.bin
Now you can call the build script:
bundle exec ./build.sh
The ./bb.sh
just does these two steps for you.
To have the build watch for file changes and rebuild automatically:
./watch.sh
You need entr
(Event Notify Test Runner) installed for watch to work, I highly recomend it.
brew install entr
Or
apt install entr