Commit a6c124b3cc
Verified · cmc
Layout: unified · split
README.md +9 −14
| @@ -31,7 +31,7 @@ cargo install --path . | |||
| 31 | That puts an `orgo` command on your `PATH`. Full notes, including how to run it without | 31 | That puts an `orgo` command on your `PATH`. Full notes, including how to run it without |
| 32 | installing anything: <https://krazywarez.github.io/orgo/install.html> | 32 | installing anything: <https://krazywarez.github.io/orgo/install.html> |
| 33 | 33 | ||
| 34 | ## Your first site | 34 | ## Your First Site |
| 35 | 35 | ||
| 36 | ```sh | 36 | ```sh |
| 37 | orgo init my-site | 37 | orgo init my-site |
| @@ -44,7 +44,7 @@ own — that is the loop you will spend your time in. | |||
| 44 | `init` writes a starter post, a page layout you can edit, and a config file with every | 44 | `init` writes a starter post, a page layout you can edit, and a config file with every |
| 45 | setting explained in comments. It never overwrites a file you already have. | 45 | setting explained in comments. It never overwrites a file you already have. |
| 46 | 46 | ||
| 47 | ## Or point it at writing you already have | 47 | ## Org-Mode, Anywhere |
| 48 | 48 | ||
| 49 | ```sh | 49 | ```sh |
| 50 | orgo build ~/notes -o _site | 50 | orgo build ~/notes -o _site |
| @@ -62,7 +62,7 @@ Want to know what orgo will make of your files before trusting it with them? | |||
| 62 | `orgo audit ~/notes` reports which org constructs you use and how each one lands, with | 62 | `orgo audit ~/notes` reports which org constructs you use and how each one lands, with |
| 63 | counts and line numbers — never the text of your writing, so the report is safe to share. | 63 | counts and line numbers — never the text of your writing, so the report is safe to share. |
| 64 | 64 | ||
| 65 | ## What you can add when you want it | 65 | ## Additional Features |
| 66 | 66 | ||
| 67 | Each of these is a few lines of config, and each has a page in the guide: | 67 | Each of these is a few lines of config, and each has a page in the guide: |
| 68 | 68 | ||
| @@ -82,21 +82,19 @@ hundreds of them stays instant. | |||
| 82 | 82 | ||
| 83 | ## Speed | 83 | ## Speed |
| 84 | 84 | ||
| 85 | Publishing one real site — 178 org files, ~180 pages — three ways. Median of three runs | 85 | Publishing one real site ([cleberg.net](https://cleberg.net)) — 178 org files, ~180 pages — three ways. Median of three runs |
| 86 | each, measured back to back on one machine: | 86 | each, measured back to back on one machine: |
| 87 | 87 | ||
| 88 | | | Time | | | 88 | | | Time | | |
| 89 | |---|---|---| | 89 | |---|---|---| |
| 90 | | weblorg (`emacs --script publish.el`) | 49.0s | | | 90 | | weblorg (`emacs --script publish.el`) | 49.0s | | |
| 91 | | the same, plus the build script wrapped around it | 50.3s | | | 91 | | weblorg + [build.py](https://github.com/ccleberg/cleberg.net/blob/8ec9cdfeae71068a8924dd9f61b9cc28c947ec31/build.py) | 50.3s | | |
| 92 | | orgo, cold build | **0.22s** | 223× faster | | 92 | | orgo, cold build | **0.22s** | 223× faster | |
| 93 | | orgo, nothing changed since last build | **0.13s** | 377× faster | | 93 | | orgo, nothing changed since last build | **0.13s** | 377× faster | |
| 94 | 94 | ||
| 95 | That middle row is the interesting one. weblorg alone does not group a blog index by year, | 95 | That middle row is the interesting one. weblorg alone does not group a blog index by year, |
| 96 | write a tags page, rewrite image URLs, minify CSS or emit a sitemap — so the site's owner | 96 | write a tags page, rewrite image URLs, minify CSS or emit a sitemap — so I |
| 97 | wrote ~600 lines of Python to do those on top of it, and pays for the whole publish again | 97 | wrote ~600 lines of Python to do those on top of it. orgo does the first three natively. |
| 98 | every time. orgo does the first three natively, minification is a build step either way, | ||
| 99 | and *it has no sitemap yet* — that one is a real gap, not a win. | ||
| 100 | 98 | ||
| 101 | Read the numbers with three things in mind. The weblorg figures include Emacs starting and | 99 | Read the numbers with three things in mind. The weblorg figures include Emacs starting and |
| 102 | loading its packages, which you pay on every publish and cannot avoid. orgo emits 13 pages | 100 | loading its packages, which you pay on every publish and cannot avoid. orgo emits 13 pages |
| @@ -104,12 +102,9 @@ weblorg does not, one per tag, so it is doing slightly more work. And the two do | |||
| 104 | produce byte-identical output — the differences are deliberate and listed under | 102 | produce byte-identical output — the differences are deliberate and listed under |
| 105 | [Org support](https://krazywarez.github.io/orgo/guide/05-org-support.html). | 103 | [Org support](https://krazywarez.github.io/orgo/guide/05-org-support.html). |
| 106 | 104 | ||
| 107 | Deployment is excluded from every row: it is an rsync over someone's network, which | ||
| 108 | measures the network. | ||
| 109 | |||
| 110 | Apple M2 Pro, 12 cores, macOS 26.6, Emacs 30.2, orgo built with `--release`. | 105 | Apple M2 Pro, 12 cores, macOS 26.6, Emacs 30.2, orgo built with `--release`. |
| 111 | 106 | ||
| 112 | ## The documentation | 107 | ## Docs |
| 113 | 108 | ||
| 114 | <https://krazywarez.github.io/orgo/> | 109 | <https://krazywarez.github.io/orgo/> |
| 115 | 110 | ||
| @@ -128,7 +123,7 @@ Apple M2 Pro, 12 cores, macOS 26.6, Emacs 30.2, orgo built with `--release`. | |||
| 128 | | [Auditing](https://krazywarez.github.io/orgo/guide/09-auditing.html) | Reading a corpus before trusting a tool with it. | | 123 | | [Auditing](https://krazywarez.github.io/orgo/guide/09-auditing.html) | Reading a corpus before trusting a tool with it. | |
| 129 | | [Deploying](https://krazywarez.github.io/orgo/guide/10-deploying.html) | Producing a production build, and putting it somewhere. | | 124 | | [Deploying](https://krazywarez.github.io/orgo/guide/10-deploying.html) | Producing a production build, and putting it somewhere. | |
| 130 | 125 | ||
| 131 | ## Building from a checkout | 126 | ## Building |
| 132 | 127 | ||
| 133 | ```sh | 128 | ```sh |
| 134 | cargo test # includes a differential check against Emacs, when present | 129 | cargo test # includes a differential check against Emacs, when present |