Author is my father, Jon Woodson. I'm the web guy who wanted to bring this to a wider audience with a more interactive way to pop-up the notes about esoteric content.
Author's blurb from Amazon self-publishing page:
F. Scott Fitzgerald’s novel, The Great Gatsby, is a manual for spiritual development. It is not a unique text, for many American modernist novels of canonical stature are similarly grounded in the occult. Fitzgerald was a follower of A. R. Orage who not only taught the Gurdjieff Work (the Fourth Way) but organized a vast literary network to further its goals.
The chief reason that this occult literary tendency has remained in the shadows is that the arbiter of the movement has been poorly understood and critically neglected.
The Great Gatsby belongs to a genre of the novel invented by Carl Van Vechten. Van Vechten’s novel, The Blind Bow-Boy (1923) was the model for The Great Gatsby and for many other modern masterpieces. My annotated presentation of Fitzgerald’s novel performs three functions. Since emblematic novels are all written using the same phonetic-syllabic code, the alchemical cabala, I have decoded the novel and presented a running account of the coded subtext in footnotes. The actual texts that have decrypted are presented in italics.
Rudoc is not a substitue of Pandoc, it supports limited set of formats (only txt, md, html, typ, docx, pdf, pptx, xml, json) and doesn't support advanced formatting. The most common workflow is just turn a markdown file to a html. PDF generation can work without Typst, but PDF input conversion requires Typst as a backend. It has no other runtime dependencies and can run as a single binary, by the way.
It is pretty easy to use, just use the format of rudoc input.file output.file One sample usage is like this: ```powershell rudoc OhPDF_ROADMAP.md.txt r.md [rudoc] OhPDF_ROADMAP.md.txt → r.md (txt→md) [rudoc] done in 52ms (6286 bytes) rudoc r.md r.html [rudoc] r.md → r.html (md→html) [rudoc] done in 4ms (7363 bytes) ```
Some complex formats (such as pptx) still have limited compatibility. I planned to add standard error messages and better format compatibilities. I'd be pleased to see feedback or issues on my project.
QA: Why not Pandoc? Pandoc is a great tool, but sometimes we only need a convenient little one to handle common conversion tasks.
How compatible is it to docx/pptx? Currently it supports basic text conversion, and I'm trying to make it be able to keep advanced formatting.
I tried my best to have the React "video" preview closely replicate the FFmpeg lavfi filtergraph output, but naturally this is not perfect (especially replicating the `eq` filter using SVG filters is quite inaccurate).
I've built this as a prototype for another project I'm working on, so I don't plan to actively maintain it, but I thought it'd be cool to share it.
Try it live: https://weave.salviano.xyz/
Recently I wasted several hours wrangling my dev environment only to find out that the browser frontend was talking to the wrong version of the backend. This got me thinking--why on earth are we still using simple numbers to describe which process to connect to? Why not use names instead? I thought of all the times a program wouldn't start because of port conflicts. The more I thought about it, the crazier it seemed.
Modern operating systems already offer no-conflict ports: if you make your TCP server listen on port 0, the OS assigns you a random available port. But that only solves half the problem.
I built the other half: PortZero. It's a GPLv3 program that watches for processes (and docker containers!) with a special PZ_TUNNEL environment variable:
PZ_TUNNEL=myapp-{branch}.portzero.local:80 npm run dev
When it sees such a process or container, PortZero does this:1. Create a virtual NIC (if it hasn't already)
2. Create a new virtual IP address
3. Create a DNS record that substitutes things like {branch} based on the working directory of the process, and points at that virtual IP address
4. Start listening on that virtual IP address on the port of your choice (e.g. port 80 for http, port 443 for https, port 5432 for postgresql)
5. Forward any TCP connections to that virtual IP address / virtual port to the random, OS-assigned port that your process or container is actually listening on
The result is you don't have to think about ports anymore, you just have to think about subdomains. You can have multiple services available on port 80 without conflicts, as long as they have different portzero.local subdomains.
It does some other cool stuff like:
- Enable HTTPS on local HTTP services by creating a local CA and registering it on your machine
- Enable cloud tunnels so you can access your apps on other devices (paid feature)
Links: