A tool to visualize org-mode ownership boundaries when parsing.
Go to file
Tom Alexander c4762510f4
Handle unicode.
Turns out javascript iterates over strings by character, but all the string functions like slicing, lastIndexOf, and indexing with [] are all based on codepoints without taking into account surrogate pairs like orange heart. It would have been nice if that was mentioned in the documentation...
2023-08-18 23:32:21 -04:00
docker Add a print to announce the server is running. 2023-08-18 22:32:01 -04:00
readme Add a README. 2023-08-18 21:35:39 -04:00
src Add a print to announce the server is running. 2023-08-18 22:32:01 -04:00
static Handle unicode. 2023-08-18 23:32:21 -04:00
.dockerignore Add docker. 2023-08-18 22:26: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 Set cache control headers for the static files. 2023-08-18 15:50:22 -04:00
LICENSE Add axum, nom, and tokio. 2023-08-17 02:55:59 -04:00
README.md Add a print to announce the server is running. 2023-08-18 22:32:01 -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 --rm --publish 3000:3000/tcp 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.

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.