The website brings together all the content created for the Practicalli series on Functional programming with Clojure.
This web page was created with ClojureScript, reagent, figwheel-main and Bulma CSS framework.
The project was created with Leiningen build tool and using the figwheel-main template, with reagent option. A Clojure CLI tools configuration has also been added.
To get an interactive development environment run the following command in a terminal:
bin/replThis script runs the following Clojure command, which can be used if aliases are added or changed
clojure -M:env/figwheel:build/devOpen one of the ClojureScript source code files, e.g. src/practicalli/landing_page.cljs
, m s to run sesman-start and select the cider-jack-in-cljs option
The .dir-locals.el configuration file sets the build tool to be figwheel-main and the build profile to be dev (loading the dev.cljs.edn build file)
Open a terminal and run the following command to start a REPL
clojure -M:env/figwheel:build/dev
This will auto compile and send all changes to the browser without the need to reload. After the compilation process is complete, you will get a Browser Connected REPL. An easy way to try it is:
(js/alert "Am I connected?")
and you should see an alert in the browser window.
To clean all compiled files:
rm -rf target/public
Use the :build/minify for advanced compilation and a minified JavaScript file:
clojure -M:env/figwheel:build/minify
The :env/fig:build/live build will write the generated javascript code in the
/docs/js/practicalli-landing-page.jsfile.
TODO: add some tests
- check that the relevant sections are added
- check a section is returning the right form / structure
Copy any changes in the following files and directories to the /docs directory:
resources/public/index.htmlresources/public/cssresources/public/images
Committing these files in the /docs directory will update the test environment for this project, allowing deployed changes to be viewed before pushing to live.
.github/workflows/deploy.yml defines a GitHub Actions workflow to deploy on any commit to the live branch, including pull requests merged to that branch.
clojure -M:env/figwheel:build/live command is called to compile the ClojureScript code into an advanced compiled JavaScript file and written to the docs directory.
The GitHub Action deploys the contents of docs directory to the root of the gh-pages branch. The GitHub repository pages section is configured to serve content from the root of the gh-pages branch, enforcing https.
Copyright © 2022 Practicalli
Distributed under the Creative Commons Attribution Share-Alike 4.0 International