sub-document rework

This commit is contained in:
David Allemang
2026-06-19 12:47:04 -04:00
parent 50b6578364
commit 50895cc79d
18 changed files with 122 additions and 148 deletions

19
content/00-index.typ Normal file
View File

@@ -0,0 +1,19 @@
#import "/docs.typ": docs-page, note, warn
#show: docs-page("index.html", footer: none, header: none)
#title()
Everything I know about Entity ID Wireless Redstone (EID Wireless) for Minecraft Java Edition 1.14+.
#warn[
In versions 1.14 - 26.1, only multiplayer servers are supported.
Singleplayer is supported in 26.2+. See @singleplayer for details.
It works on most (but not all) versions of Paper servers. See @paper for details.
It does not work with any version of Bedrock Edition.
]
#outline(title: [Outline], depth: 2)

View File

@@ -1,21 +1,9 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Core Mechanics])
#show: docs-page("/core.html")
#tip[
Until version 26.2, this only works on multiplayer servers. See @singleplayer.
]
#note[
Until version 26.2, this only works on multiplayer servers. See @singleplayer.
]
#warn[
Until version 26.2, this only works on multiplayer servers. See @singleplayer.
]
= Entity IDs
= Stationary Item Optimization
= Observable Drop Delay
= Core Mechanics
== Entity IDs
== Stationary Item Optimization
== Observable Drop Delay

View File

@@ -1,10 +1,12 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Interference])
#show: docs-page("interference.html")
= Entity Spawns
= Single-Player (before 26.2) <singleplayer>
= Mixed Diode
= Lazy chunks
= Reloading Chunks
= Interference
== Entity Spawns
== Single-Player (before 26.2) <singleplayer>
== Paper, Spigot, and Bukkit Servers <paper>
== Lazy chunks
== Reloading Chunks

View File

@@ -1,15 +0,0 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Design Considerations])
#show: docs-page("/design-tips.html")
= Tilesets
== Binary vs Lexicographic
= Block Event Delay
= Synchronization
== Daylight Detector
== Geyser
== Ender Pearl
== Synchronization Protocols
= Settling time
= Horizontal vs Vertical Arrangement

10
content/03-tileset.typ Normal file
View File

@@ -0,0 +1,10 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/tilesets.html")
= Global Ticking Order
== Tilesets
=== Binary vs Lexicographic
=== Mixed Diode Interference
== Block Event Delay

View File

@@ -1,8 +0,0 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Channels])
#show: docs-page("/channels.html")
= Static Channel Allocation
= Dynamic Channel Selectors
= Looped Connections

13
content/04-design.typ Normal file
View File

@@ -0,0 +1,13 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/design-tips.html")
= Design Tips
== Synchronization
=== Daylight Detector
=== Geyser
=== Ender Pearls
=== Synchronization Protocols
== Settling time
== Horizontal vs Vertical Arrangement

9
content/05-channels.typ Normal file
View File

@@ -0,0 +1,9 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/channels.html")
= Channels
== Static Channel Allocation
== Dynamic Channel Selectors
== Looped Connections

View File

@@ -1,12 +0,0 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Transport Protocols])
#show: docs-page("/transport-protocols.html")
= Mod 4 Binary
= Mod 2 Binary
= Mod 4 Quaternary
= Transceivers
= Logical Operations
= Transport Protocol Catalog

View File

@@ -1,11 +0,0 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Bulk Transport])
#show: docs-page("/bulk-transport.html")
= Tileable Receivers
= Interleaved vs Sequential Channels
= Chained vs Shared Reference
= Broadcast and Multicast
= Entity Batching

13
content/06-transport.typ Normal file
View File

@@ -0,0 +1,13 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/transport-protocols.html")
= Transport Protocols
== Mod 4 Binary
== Mod 2 Binary
== Mod 4 Quaternary
== Transceivers
== Logical Operations
== Transport Protocol Catalog

12
content/07-bulk.typ Normal file
View File

@@ -0,0 +1,12 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/bulk-transport.html")
= Bulk Transport
== Tileable Receivers
== Interleaved vs Sequential Channels
== Chained vs Shared Reference
== Broadcast and Multicast
== Entity Batching

View File

@@ -1,12 +0,0 @@
#import "/docs.typ": docs-page, note, tip, warn
#set document(title: [Network Protocols])
#show: docs-page("/network-protocols.html")
= Collision Prevention
== Checkbit
== Queue
= Load Balancing
= Private Channels
= Self Syncing Protocol

12
content/08-network.typ Normal file
View File

@@ -0,0 +1,12 @@
#import "/docs.typ": docs-page, note, tip, warn
#show: docs-page("/network-protocols.html")
= Network Protocols
== Collision Prevention
=== Checkbit
=== Queue
== Load Balancing
== Private Channels
== Self Syncing Protocol

View File

@@ -2,9 +2,16 @@
#import "/static/index.typ": stylesheets
#let chapter-title = state("chapter-title", context document.title)
#let docs-page(path, header: auto, footer: auto) = main => document(path, html.html(
lang: "en_US",
{
context chapter-title.update(old => context {
let head = query(heading.where(level: 1).after(here())).first(default: none)
return head.body
})
html.head({
html.meta(charset: "utf-8")
html.meta(name: "viewport", content: "width=device-width, initial-scale=1")
@@ -18,10 +25,9 @@
context {
let doc = query(document).first()
link(doc.location(), doc.title)
title(chapter-title.get())
}
title()
context {
let doc = query(selector(document).before(here())).last()
outline(title: none, target: selector(heading).within(doc.location()))
@@ -47,8 +53,6 @@
} else {
header
})
divider()
}
html.main(main)
if (footer != none) {

View File

@@ -1,26 +0,0 @@
#import "/docs.typ": docs-page, note
#set document(title: [The Wireless Masterclass])
#show: docs-page("index.html", footer: none, header: none)
#title()
Everything I know about Entity ID based wireless redstone (EID Wireless) for Minecraft Java Edition 1.14+.
#note[ Until version 26.2, this only works on multiplayer servers. See @singleplayer. ]
#context {
heading(numbering: none, outlined: false)[Outline]
html.nav({
html.ol(style: "list-style-type: none", {
for doc in query(selector(document).after(here())) {
show html.elem.where(tag: "nav"): it => it.body
html.li({
html.div(link(doc.location(), doc.title))
outline(title: none, depth: 1, target: selector(heading).within(doc.location()))
})
}
})
})
}

View File

@@ -1,32 +1,14 @@
#set heading(numbering: "1.")
// #import "docs.typ": docs-page
// #show: it => document("/index.html", it)
// #include "static/index.typ"
// #docs-page(include "index.typ") <index>
// #docs-page(include "content/00-intro.typ")
// #let docs-page(it) = document("index.html", {
// context {
// repr(query(selector(metadata).before(<front-matter>)))
// }
// it
// })
// #let docs-page(it) = context {
// }
#set heading(numbering: "1.1 -")
#set document(title: [The EID Wireless Masterclass])
#include "static/index.typ"
#include "index.typ"
#include "content/00-index.typ"
#include "content/01-core.typ"
#include "content/02-interference.typ"
#include "content/03-design.typ"
#include "content/04-channels.typ"
#include "content/05-transport.typ"
#include "content/06-bulk.typ"
#include "content/07-network.typ"
#include "content/03-tileset.typ"
#include "content/04-design.typ"
#include "content/05-channels.typ"
#include "content/06-transport.typ"
#include "content/07-bulk.typ"
#include "content/08-network.typ"

View File

@@ -14,12 +14,10 @@
color: mediumblue;
}
a {
color: inherit;
}
a:hover {
color: LinkText;
@media print {
:root {
font: 10pt / 1.5 serif
}
}
@media (prefers-color-scheme: dark) {
@@ -48,12 +46,8 @@ nav > ol {
padding-inline-start: 0;
}
ol ol {
margin-block-end: 1em;
}
body {
max-width: 800px;
max-width: 88ch;
margin: 40px auto;
padding: 0 10px;
}