mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-27 00:19:36 -05:00
.. | ||
docker | ||
.gitignore | ||
generate-readme-svg.sh | ||
generate-screencasts.sh | ||
README.md | ||
window-frame.svg |
Screencast / Asciinema
Asciinema is used to automatically generate terminal session recordings for our documentation. To fully automate this we use scripts that utilize expect to interface with different CLI tools, and run them inside a container.
Usage
mkdir -p constellation
./generate-screencasts.sh
sudo chown -R $USER:$USER ./constellation
cd constellation && constellation iam destroy
cd .. && rm -rf ./constellation
This will:
- build the container
- run the expect based scripts
- copy recordings into the assets folder of our docs
To replay the output you can use asciinema play recordings/verify-cli.cast
.
Include the generated screencast into our docs using the AsciinemaWidget
:
import AsciinemaWidget from '../../src/components/AsciinemaWidget';
<AsciinemaWidget src="/constellation/assets/verify-cli.cast" fontSize={16} rows={20} cols={112} idleTimeLimit={3} preload={true} theme={'edgeless'} />
Then re-build and locally host the docs.
Styling
There are three different locations were styling is applied:
- The prompt is styled using ANSI escape codes. More explanation and the actual color codes can be found in Dockerfile.
- Player dimensions are passed to the
AsciinemaWidget
when it's embedded in the docs. Check theasciinema-player
for a full list of options. - Everything else is styled via CSS. This includes the option to build a custom player theme.
GitHub README.md
The GitHub README.md
doesn't support embedding the JavaScript asciinema-player
, therefore we generate an
svg
file for that use case.
# Make sure to install the converter.
# https://github.com/nbedos/termtosvg
pip3 install termtosvg
# Generate SVG. This takes ~10min, since it actually creates a cluster in GCP.
./generate-readme-svg.sh