The Inverse Complexity Lab Manual
Authors: Tiago P. Peixoto1
Affiliations: 1Inverse Complexity Lab
License: CC-BY
This site documents essential technical knowledge with which lab members are encouraged and expected to familiarize themselves. It is also meant as a platform for lab members to share knowledge, and form a common technical language.
This site is built with myst and is available from its gitlab repository. To modify it locally just clone the repository with
git clone https://git.skewed.de/invcomplexity/lab-manual
After installing myst locally, the website can be previewed with:
cd lab-manual
myst start --execute
The content is written in Markdown, which has a very easy syntax. Changes made to the content files are reflected automatically, which makes editing a rather pleasant experience. For changes to be reflected online, fork the repository in gitlab, push your changes, and open a merge request. Once the request is accepted, the changes will go live.
Latex notation is supported for mathematics, e.g.
In fact myst supports very rich authoring features, including cross-references, bibliography, figures, equations, etc. Take a look at the documentation for more details.
In particular, it’s possible to run Python code very much like a jupyter notebook:
import graph_tool.all as gt
import matplotlib.cm
gt.seed_rng(47)
g = gt.collection.ns["foodweb_baywet"]
state = gt.minimize_nested_blockmodel_dl(g, state_args=dict(recs=[g.ep.weight],
rec_types=["real-exponential"]))
state.draw(edge_color=g.ep.weight,
ecmap=(matplotlib.cm.inferno, .6),
ecnorm=matplotlib.colors.LogNorm(g.ep.weight.fa.min(), g.ep.weight.fa.max()),
eorder=g.ep.weight,
edge_pen_width=gt.prop_to_size(g.ep.weight, 1, 4, power=1, log=True),
edge_gradient=[]);

Code results are automatically cached across runs, so it does not break with the interactivity. Indeed, this works as an interesting alternative to notebooks, since you can use your text editor, instead of the browser, and do not have to worry about cells, etc.