██████╗ ██████╗ █████╗ ██████╗████████╗██╗ ██████╗ █████╗ ██╗ ██╗ ██╗
██╔══██╗██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██║██╔════╝██╔══██╗██║ ██║ ██║
██████╔╝██████╔╝███████║██║ ██║ ██║██║ ███████║██║ ██║ ██║
██╔═══╝ ██╔══██╗██╔══██║██║ ██║ ██║██║ ██╔══██║██║ ██║ ██║
██║ ██║ ██║██║ ██║╚██████╗ ██║ ██║╚██████╗██║ ██║███████╗███████╗██║
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝
██████╗██╗ ██████╗ ██╗██╗ ██╗██████╗ ███████╗███████╗ ██████╗██████╗ ██╗██████╗ ████████╗
██╔════╝██║ ██╔═══██╗ ██║██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝██╔══██╗██║██╔══██╗╚══██╔══╝
██║ ██║ ██║ ██║ ██║██║ ██║██████╔╝█████╗ ███████╗██║ ██████╔╝██║██████╔╝ ██║
██║ ██║ ██║ ██║██ ██║██║ ██║██╔══██╗██╔══╝ ╚════██║██║ ██╔══██╗██║██╔═══╝ ██║
╚██████╗███████╗╚██████╔╝╚█████╔╝╚██████╔╝██║ ██║███████╗███████║╚██████╗██║ ██║██║██║ ██║
╚═════╝╚══════╝ ╚═════╝ ╚════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
Learn how to develop simple client-side web applications using the ClojureScript programming language, a functional programming language compiled to JavaScript.
ClojureScipt can be used for simple landing pages with CSS frameworks, Single Page Apps following a react.js approach or complex user interfaces with effective state management.
Figwheel-main is a build tool which provides a highly interactive development workflow, providing instant feedback on code changes. Figwheel also provides a test runner for continuous unit testing during development.
Reagent, a react-style library, is used for single page applications. Hiccup and Selma are used for managing content.
Clojure CLI provides an array of tools to support development, using project and user deps.edn
configuration files.
Issues and pull requests are most welcome. 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 see the detailed contributing section of the book before raising an issue or pull request
By submitting content ideas and corrections you are agreeing they can be used in this workshop under the Creative Commons Attribution ShareAlike 4.0 International license. Attribution will be detailed via GitHub contributors.
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
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
Install mkdocs version 9 using the Python pip package manager
pip install mkdocs-material=="9.*"
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
mkdocs serve
The website will open at http://localhost:8000