wiki.chronica

0 logs for 0 minutes

Status: Archived (The old wiki portion of this current site)

Hello, I'm Chris, and this is my digital playground of sorts. I wanted a place to display what I've been working on, and I wanted it to be a place fully built by me. No external tools, no build process, and no localhost. In some ways it's an experiment where I can learn, ignore the rules, and just create what I want. A place for me to both work and display my work in a raw way that will hopefully provide a glimpse into where I'm at with the state of development and also what I'm currently working and focusing on.

To provide a bit of context, wiki.chronica is built using gyul. There is no build process apart from adding my data into a json file. wiki.chronica is also tied directly into my time tracking system, ándaga. I use ándaga-cli to log entries about what I'm working on. An example of a log is located below:

andaga log code "Added in a new feature to andaga cli" 45 -l home -p andaga-cli -t andaga,javascript

This log is then sent to ándaga-core which is a serverless endpoint that is deployed with Vercel. They are then stored in a MongoDB database and nightly a cron job runs on my server to run the script placed below:

#!/bin/bash
. env

cd /wiki/directory &&
git fetch &&
git rebase origin master
mongoexport -u <user> -p <password> --db <database> --collection <collection> --jsonArray --authenticationDatabase <dbi> --out <outdir> &&
cat <logs file> | jq -r 'map(del(._id, .notest, .location)) | sort_by(.date) | reverse' > <log dir> &j
sed -i '1 \\const LOGS =' <log file> &&
cd <wiki directory> &&
git add . &&
git commit -m 'nightly auto-commit and push of logs' &&
git push origin master

This script exports my logs in a JSON array. I then cat the file and pipe it into jq to map through all of the values in the array and remove the _id, notes, and place fields since it won't be used in chronica, sort the logs by date, and then reverse them to have the newest logs first. I then save this new file. If that is successfully I then use sed to place const LOGS = on the first line turning the JSON array into a JS array. Following this I commit and use push this to my github repo. My github repo has the Now for Github integration that automatically deploys my site when something is pushed to master. Following the deployment it auto aliases my site to chris-kipp.io. This ensures that daily my wiki is up to date with my newest logs from the day before.

On just about every page you'll see the following three tabs:

There is already plenty I would change about the way I've done this and even more that I'd like to add. In the future I plan on basically doing all of the work gyul is doing on the server side and just serving up the html. This space will continually grow. There will also be a longer form blog portion of the chronica ecosystem that has not yet been created. Thanks for stopping by!

chronica

choo

typescript

dat

color

crate-builder

scala

html

ammonite

javascript

elm

css

gyul

mdoc