Just run Calva: Start a Project REPL and Connect (aka Jack-In)
.
If you wnat CLJS REPL, see md2x/README.md
REPL: (clojure.test/run-tests)
End to End: setup-dev-local.sh
, teardown-dev-local.sh
- Run
release.sh
to createrelease
directory with new version tag - Push
master
branch and new tag to Github repository (then Github action do the follow-ups) - Copy
release
directory to remote(Lightsail Instance) - run
deploy.sh
. It setups configs, start and enable publisher(nginx), updater services.
compile-md2x.sh
Compile md2x cljs src to generate md2x.js, then save it into src/js
release.sh <tag> <tag-message>
Release current version
- Build target from clj src
- Save version metadata to
release/version.yml
- Commit and set tag
setup-dev-local.sh
Deploy publisher and updater into local machine.
Differences between dev vs release:
dev-publisher/nginx.conf
- Comment out L5: user, L8: piddev-publisher/blog.conf
- Remove SSL codesdev-blog-updater.service
- Set user:gruop as kur:kur
teardown-dev-local.sh
Stop and Disable publisher/updater services
./script/copy-blog-contents.sh <obrain-md-path> <obrain-resource-path>
The updater needs non-empty /www/blog-base/md
, and
The ./release/deploy.sh
needs /www/blog/resource/site
.
This script copies <obrain-md-path> -> /www/blog-base/md
, <obrain-resource-path> -> /www/blog/resource/site
./script/init-ubuntu22.sh
Initiailize dev environment after git clone https://github.com/KUR-creative/kur-blog.git
.
Check $ tree src
.
kur.util project agnostic utility functions
kur.blog.main Entry point
kur.blog.state The only state of entire app
kur.blog.updater State update logic
kur.blog.monitor Monitor directory(md, ..) and call update-fn
to change state when an event occurs
kur.blog.policy My own rules
kur.blog.obsidian Imitation implementation of Obsidian features
kur.blog.page Data entity and logics for each page
kur.blog.look View of each page. It use src/js and src/css
Use singular (directory) names rather than plural ones