Skip to content

practicalli/clojure

Practicalli Clojure

██████╗ ██████╗  █████╗  ██████╗████████╗██╗ ██████╗ █████╗ ██╗     ██╗     ██╗
██╔══██╗██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██║██╔════╝██╔══██╗██║     ██║     ██║
██████╔╝██████╔╝███████║██║        ██║   ██║██║     ███████║██║     ██║     ██║
██╔═══╝ ██╔══██╗██╔══██║██║        ██║   ██║██║     ██╔══██║██║     ██║     ██║
██║     ██║  ██║██║  ██║╚██████╗   ██║   ██║╚██████╗██║  ██║███████╗███████╗██║
╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝╚═╝  ╚═╝╚══════╝╚══════╝╚═╝

 ██████╗██╗      ██████╗      ██╗██╗   ██╗██████╗ ███████╗
██╔════╝██║     ██╔═══██╗     ██║██║   ██║██╔══██╗██╔════╝
██║     ██║     ██║   ██║     ██║██║   ██║██████╔╝█████╗
██║     ██║     ██║   ██║██   ██║██║   ██║██╔══██╗██╔══╝
╚██████╗███████╗╚██████╔╝╚█████╔╝╚██████╔╝██║  ██║███████╗
 ╚═════╝╚══════╝ ╚═════╝  ╚════╝  ╚═════╝ ╚═╝  ╚═╝╚══════╝

Book Overview

A guide to software development with the Clojure programming language, using Clojure CLI and a wide range of community tools for a REPL focused workflow.

The guide uses Practicalli Clojure CLI Config to provide aliases to run over 30 community tools that complement the workflow, including a REPL Reloaded workflow for a highly interactive and effective development experience.

Learning Clojure syntax and how to think in a functional design is also covered with code examples and challenge that help embed these concepts.

Book status

MegaLinterPublish Book Publish Book pages-build-deployment

Ideas & Issues Pull requests

GitHub commit activity GitHub contributors

Creative commons license

Creative Commons License This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License (including images & stylesheets).

Contributing

Issues and pull requests are most welcome although it is the maintainers discression as to if they are applicable. Please detail issues as much as you can. Pull requests are simpler to work with when they are specific to a page or at most a section. The smaller the change the quicker it is to review and merge.

Please read the detailed Practicalli contributing page before raising an issue or pull request to avoid disapointment.

Practicalli Clojure CLI Config provides a user level configuration providing aliases for community tools used throughout this guide. Issues and pull requests can also be made via its GitHub repository.

By submitting content ideas and corrections you are agreeing they can be used in any work by Practicalli under the Creative Commons Attribution ShareAlike 4.0 International license. Attribution will be detailed via GitHub contributors.

Sponsor Practicalli

Sponsor Practicalli via GitHub

All sponsorship funds are used to support the continued development of Practicalli series of books and videos, although most work is done at personal cost and time.

Thanks to Cognitect, Nubank and a wide range of other sponsors for your continued support

Star History

Star History Chart

GitHub Actions

The megalinter GitHub actions will run when a pull request is created,checking basic markdown syntax.

A review of the change will be carried out by the Practicalli team and the PR merged if the change is acceptable.

The Publish Book GitHub action will run when PR's are merged into main (or the Practicalli team pushes changes to the default branch).

Publish book workflow installs Material for MkDocs version 9

Local development

Install mkdocs version 9 using the Python pip package manager

pip install mkdocs-material=="9.5"

Install the plugins used by the Practicalli site using Pip (these are also installed in the GitHub Action workflow)

pip3 install mkdocs-material mkdocs-callouts mkdocs-glightbox mkdocs-git-revision-date-localized-plugin mkdocs-redirects pillow cairosvg

pillow and cairosvg python packages are required for Social Cards

Fork the GitHub repository and clone that fork to your computer,

git clone https://github.com/<your-github-account>/<repository>.git

Run a local server from the root of the cloned project

make docs

The website will open at http://localhost:8000

If making smaller changes, then only rebuild the content that changes, speeding up the local development process

make docs-changed

NOTE: navigation changes may not be correctly reflected without reloading the page in the web browser or carrying out a full make docs build