Commit Graph

18 Commits

Author SHA1 Message Date
dev 63c77aff69 web: read the formulas the documents already write, and take the crates from the manifest
The documents write their formulas as plain text in a fenced block,
`delta_v = v_e * ln (m_0 / m_f)`, which was shown as source. They were
written before the dollar form existed. A plain block holding equations
is now read as a formula: identifiers with subscripts and powers, roots,
functions, quotients, a group raised to a power, and a note set beside
the equation. A block that is not an equation, such as a matrix or a
worked example in prose, stays as it was written.

The interface catalog named fifteen crates in the generator, which was
written when only the foundation, physics and orbit crates existed. The
workspace has since grown to forty-one, and every network, radio and
operations crate was missing from the documentation without anything
saying so. The crates now come from the workspace manifest, so a crate
cannot be left out by omission again. The count went from 424 items to
1202, and the index now shows all seven layers.

A crate with no layer is the facade, which re-exports every layer. It is
left without one rather than filed under the foundation, and it is left
out of the crate structure diagram, where it would belong to no layer.
2026-10-01 23:24:56 +08:00
dev 50d6ecc9fd web: scroll to the top on navigation, organize the interface by layer, and set the formulas in the tool output
A page change did not move the scroll position, so following a link from
the bottom of a long document landed in the middle of the next one. The
scroll now follows the path rather than the fragment, so a filter applied
to the page a reader is on leaves them where they are. The browser fires
`popstate` for a fragment navigation as well as for a traversal, so
there is no event that means "this was a traversal" on its own, and going
back starts at the top rather than where the reader left.

The interface index listed fifteen crates in one grid. It is now grouped
by layer, with the title and order the concept documentation already
declares, and a card shows the opening sentence of the crate summary
rather than the whole of it, which is what made the cards four hundred
pixels tall.

A tool result showed its column headings, scalar labels and notes in the
reader's language, but left the table body in English. Text cells are now
looked up as well. Units are written with a power, and are set as one.

A tool description is Markdown, so it is now rendered as such, as are the
parameter help and the notes. A formula written between dollar signs is
set the same way in both places.
2026-10-01 22:46:56 +08:00
dev 17e99428de web: split the physics layer, render formulas, and fix the graph load
The graph took over three seconds to draw. The force layout ran four
hundred and twenty steps of repulsion between every pair of nodes, which
is quadratic in the node count and was doing that work through a reactive
proxy inside an effect that read the state it wrote, so it rescheduled
itself on every run. The repulsion now runs on a grid over neighbouring
cells, and the effect no longer tracks its own writes.

The physics layer covered two unrelated subjects, so it is presented as
two. Formulas are written between dollar signs and translated to MathML,
which the browser sets itself, so no script has to run. The palette is
now two sets of the same variables with a toggle between them, and below
a thousand pixels the sidebar is a drawer over the page.
2026-10-01 17:28:43 +08:00
dev 68eaaf6b20 web: restore the layout variables, align the sidebar rows, and name the layers 2026-10-01 15:55:19 +08:00
dev c726dd1ecc web: describe the field by layer and separate it from the implementation 2026-10-01 13:57:23 +08:00
dev 3a3caf5496 web: give a tool its own page instead of sharing the index 2026-10-01 11:31:26 +08:00
dev b4ed846f73 web: fix the outline anchors, level the outline, and fold the sidebar chapters 2026-10-01 11:00:09 +08:00
dev bc662bc492 web: cancel the sibling margin inside a card grid 2026-10-01 10:28:20 +08:00
dev 829825ac73 web: give every card on a page one size 2026-10-01 09:38:16 +08:00
dev 87dd6b78d0 web: name assets with a content hash so a stale bundle cannot be served 2026-10-01 09:06:10 +08:00
dev 839162dc3e web: align the interface layout and translate the remaining captions 2026-10-01 08:46:46 +08:00
dev 3d716469d1 web: correct the asset cache policy, serve the flow index, and drop a stray artifact 2026-10-01 07:35:56 +08:00
dev 65b0b690f7 web: fix the tool form, the search box, the toc anchors, and translate the interface 2026-09-27 10:29:10 +08:00
dev b4c9627cbb web: fix the interface layout and add Chinese search 2026-09-27 09:45:26 +08:00
dev b7e5222bcd web: add a bilingual interface with Chinese as the default 2026-09-27 09:13:52 +08:00
dev 0415a5fe6f web: bind with --host and --port 2026-09-27 09:13:47 +08:00
dev 25f9b28e9e web: register the hohmann transfer tool and check graph references 2026-09-27 00:54:28 +08:00
dev 2a14c59264 web: add the apsis-web service, content, and frontend 2026-09-27 00:53:20 +08:00