A tool to visualize org-mode ownership boundaries when parsing.
Go to file
2023-09-16 14:46:02 -04:00
docker Update org-mode version. 2023-09-16 14:46:02 -04:00
notes Add notes from plain list ownership investigation. 2023-08-19 01:10:42 -04:00
readme Add a README. 2023-08-18 21:35:39 -04:00
scripts Use read-only root for docker containers. 2023-08-31 21:21:14 -04:00
src Update org-mode version. 2023-08-25 04:58:45 -04:00
static Remove log statement. 2023-08-18 23:33:48 -04:00
.dockerignore Add notes from plain list ownership investigation. 2023-08-19 01:10:42 -04:00
.gitignore Initial commit. 2023-08-17 02:52:58 -04:00
Cargo.lock Set cache control headers for the static files. 2023-08-18 15:50:22 -04:00
Cargo.toml Get the versions of emacs and org-mode and write them to stdout. 2023-08-25 02:30:52 -04:00
LICENSE Add axum, nom, and tokio. 2023-08-17 02:55:59 -04:00
README.md Use read-only root for docker containers. 2023-08-31 21:21:14 -04:00

Org-Mode AST Investigation Tool

This repository contains a slapdash tool to make visualizing the abstract syntax tree of an org-mode document easier. Write your org-mode source into the top text box, and below on the right it will create a clickable tree of the AST. When you click on a node, the contents of that node will be highlighted on the left.

Screenshot showing the interface to the org-mode abstract syntax tree investigation tool.

Running

Running in docker is the recommended way to run this. It creates a consistent working environment, without impacting (or requiring you to install) emacs, org-mode, or rust.

Docker

First we need to build the docker container. On the first run, this will pull the emacs and org-mode source code so this build will take a while the first time. After that, subsequent builds should be fast because docker caches the layers.

# from the root of this repository:
make --directory=docker

Next we need to launch the server:

docker run --init --rm --publish 3000:3000/tcp --read-only --mount type=tmpfs,destination=/tmp org-investigation

This launches a server listening on port 3000, so pop open your browser to http://127.0.0.1:3000/ to access the web interface.

(alternatively, you can run the scripts/launch_docker.bash script which performs these two steps.)

No docker

You will need a fully functional rust setup with nightly installed (due to the use of exit_status_error). Then from the root of this repo you can launch the server by running:

cargo run --release

It will use your installed version of emacs and org-mode which may differ from what the docker users are using.

This launches a server listening on port 3000, so pop open your browser to http://127.0.0.1:3000/ to access the web interface.