Typst
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
*.pdf
|
||||
site
|
||||
.idea/
|
||||
12
content/bulk.typ
Normal file
12
content/bulk.typ
Normal file
@@ -0,0 +1,12 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/bulk/",
|
||||
title: [Bulk Transport],
|
||||
)
|
||||
|
||||
= Tileable Receivers
|
||||
= Interleaved vs Sequential Channels
|
||||
= Chained vs Shared Reference
|
||||
= Broadcast and Multicast
|
||||
|
||||
12
content/channels.typ
Normal file
12
content/channels.typ
Normal file
@@ -0,0 +1,12 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/channels/",
|
||||
title: [Channels],
|
||||
)
|
||||
|
||||
= Static Channel Allocation
|
||||
= Dynamic Channel Selectors
|
||||
= Looped Connections
|
||||
|
||||
|
||||
11
content/core.typ
Normal file
11
content/core.typ
Normal file
@@ -0,0 +1,11 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/core/",
|
||||
title: [Core Mechanics],
|
||||
)
|
||||
|
||||
= Entity IDs
|
||||
= Stationary Item Optimization
|
||||
= Observable Drop Delay
|
||||
|
||||
17
content/design.typ
Normal file
17
content/design.typ
Normal file
@@ -0,0 +1,17 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/design/",
|
||||
title: [Design Considerations],
|
||||
)
|
||||
|
||||
= Tilesets
|
||||
== Binary vs Lexicographic
|
||||
= Block Event Delay
|
||||
= Synchronization
|
||||
== Daylight Detector
|
||||
== Geyser
|
||||
== Ender Pearl
|
||||
== Synchronization Protocols
|
||||
= Settling time
|
||||
= Horizontal vs Vertical Arrangement
|
||||
12
content/interference.typ
Normal file
12
content/interference.typ
Normal file
@@ -0,0 +1,12 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/interference/",
|
||||
title: [Interference],
|
||||
)
|
||||
|
||||
= Entity Spawns
|
||||
= Single-Player (before 26.2) <singleplayer>
|
||||
= Mixed Diode Interference
|
||||
= Lazy chunks
|
||||
= Reloading Chunks
|
||||
14
content/network.typ
Normal file
14
content/network.typ
Normal file
@@ -0,0 +1,14 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/network/",
|
||||
title: [Network Protocols],
|
||||
)
|
||||
|
||||
= Collision Prevention
|
||||
== Checkbit
|
||||
== Queue
|
||||
= Load Balancing
|
||||
= Private Channels
|
||||
= Self Syncing Protocol
|
||||
|
||||
14
content/transport.typ
Normal file
14
content/transport.typ
Normal file
@@ -0,0 +1,14 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/transport/",
|
||||
title: [Transport Protocols],
|
||||
)
|
||||
|
||||
= Mod 4 Binary
|
||||
= Mod 2 Binary
|
||||
= Mod 4 Quaternary
|
||||
= Transceivers
|
||||
= Logical Operations
|
||||
= Transport Protocol Catalog
|
||||
|
||||
31
docs.typ
Normal file
31
docs.typ
Normal file
@@ -0,0 +1,31 @@
|
||||
#import "/static/index.typ": stylesheets
|
||||
|
||||
#let docs-page(title: none, route: none, content) = {
|
||||
document(
|
||||
route + "index.html",
|
||||
title: title,
|
||||
html.html({
|
||||
html.head({
|
||||
html.meta(charset: "utf-8")
|
||||
html.meta(name: "viewport", content: "width=device-width, initial-scale=1")
|
||||
html.meta(name: "color-scheme", content: "dark light")
|
||||
for stylesheet in stylesheets {
|
||||
html.link(rel: "stylesheet", href: stylesheet)
|
||||
}
|
||||
html.title(context title)
|
||||
})
|
||||
html.body({
|
||||
html.header({
|
||||
html.h1(context title)
|
||||
})
|
||||
html.main(content)
|
||||
})
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
#let callout(kind: str, body) = html.div(class: "callout " + kind, body)
|
||||
|
||||
#let note = callout.with(kind: "note")
|
||||
#let warn = callout.with(kind: "caution")
|
||||
#let tip = callout.with(kind: "tip")
|
||||
40
index.typ
Normal file
40
index.typ
Normal file
@@ -0,0 +1,40 @@
|
||||
#import "/docs.typ": docs-page, note, tip, warn
|
||||
|
||||
#show: docs-page.with(
|
||||
route: "/",
|
||||
title: [The Wireless Masterclass],
|
||||
)
|
||||
|
||||
Welcome! Here, we will talk about Entity ID based wireless redstone for Minecraft Java Edition.
|
||||
|
||||
#warn[
|
||||
Until version 26.2, this only works on multiplayer servers. \
|
||||
Starting with version 26.2, singleplayer is also supported. See @singleplayer for details.
|
||||
]
|
||||
|
||||
#context {
|
||||
list(
|
||||
..query(document).map(
|
||||
it => {
|
||||
link(it.location(), it.title)
|
||||
list(..query(heading.where(level: 1).within(it.location())).map(it => link(it.location(), it.body)))
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
// for page in query(title) { page }
|
||||
// outline(target: selector.or(heading))
|
||||
|
||||
|
||||
// repr(query(selector(heading).within(locate(doc.location()))))
|
||||
|
||||
//for item in query(selector.or(heading.where(depth < 2), title)) {
|
||||
//str(item.body)
|
||||
//}
|
||||
}
|
||||
|
||||
// #outline(title: none, depth: 2)
|
||||
|
||||
= Objectives
|
||||
== Use Cases
|
||||
== Advantages and Limitations
|
||||
12
main.typ
Normal file
12
main.typ
Normal file
@@ -0,0 +1,12 @@
|
||||
#set heading(numbering: "1.")
|
||||
|
||||
#include "static/index.typ"
|
||||
#include "index.typ"
|
||||
|
||||
#include "content/core.typ"
|
||||
#include "content/interference.typ"
|
||||
#include "content/design.typ"
|
||||
#include "content/channels.typ"
|
||||
#include "content/transport.typ"
|
||||
#include "content/bulk.typ"
|
||||
#include "content/network.typ"
|
||||
6
mise.toml
Normal file
6
mise.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[tools]
|
||||
tinymist = "latest"
|
||||
typst = "0.15.0"
|
||||
|
||||
[tasks.watch]
|
||||
run = "typst watch main.typ site --format bundle --features bundle,html"
|
||||
BIN
static/font/LibertinusKeyboard-Regular.woff2
Normal file
BIN
static/font/LibertinusKeyboard-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusMath-Regular.woff2
Normal file
BIN
static/font/LibertinusMath-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusMono-Regular.woff2
Normal file
BIN
static/font/LibertinusMono-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSans-Bold.woff2
Normal file
BIN
static/font/LibertinusSans-Bold.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSans-Italic.woff2
Normal file
BIN
static/font/LibertinusSans-Italic.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSans-Regular.woff2
Normal file
BIN
static/font/LibertinusSans-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-Bold.woff2
Normal file
BIN
static/font/LibertinusSerif-Bold.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-BoldItalic.woff2
Normal file
BIN
static/font/LibertinusSerif-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-Italic.woff2
Normal file
BIN
static/font/LibertinusSerif-Italic.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-Regular.woff2
Normal file
BIN
static/font/LibertinusSerif-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-Semibold.woff2
Normal file
BIN
static/font/LibertinusSerif-Semibold.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerif-SemiboldItalic.woff2
Normal file
BIN
static/font/LibertinusSerif-SemiboldItalic.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerifDisplay-Regular.woff2
Normal file
BIN
static/font/LibertinusSerifDisplay-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/LibertinusSerifInitials-Regular.woff2
Normal file
BIN
static/font/LibertinusSerifInitials-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/Minecraft-Seven_v2.woff2
Normal file
BIN
static/font/Minecraft-Seven_v2.woff2
Normal file
Binary file not shown.
42
static/index.typ
Normal file
42
static/index.typ
Normal file
@@ -0,0 +1,42 @@
|
||||
#let fonts = (
|
||||
(src: "/font/Minecraft-Seven_v2.woff2", name: "Mojangles", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusKeyboard-Regular.woff2", name: "Libertinus Keyboard", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusMath-Regular.woff2", name: "Libertinus Math", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusMono-Regular.woff2", name: "Libertinus Mono", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusSans-Bold.woff2", name: "Libertinus Sans", style: "normal", weight: 700),
|
||||
(src: "/font/LibertinusSans-Italic.woff2", name: "Libertinus Sans", style: "italic", weight: 400),
|
||||
(src: "/font/LibertinusSans-Regular.woff2", name: "Libertinus Sans", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusSerif-Bold.woff2", name: "Libertinus Serif", style: "normal", weight: 700),
|
||||
(src: "/font/LibertinusSerif-BoldItalic.woff2", name: "Libertinus Serif", style: "italic", weight: 700),
|
||||
(src: "/font/LibertinusSerif-Italic.woff2", name: "Libertinus Serif", style: "italic", weight: 400),
|
||||
(src: "/font/LibertinusSerif-Regular.woff2", name: "Libertinus Serif", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusSerif-Semibold.woff2", name: "Libertinus Serif", style: "normal", weight: 600),
|
||||
(src: "/font/LibertinusSerif-SemiboldItalic.woff2", name: "Libertinus Serif", style: "italic", weight: 600),
|
||||
(src: "/font/LibertinusSerifDisplay-Regular.woff2", name: "Libertinus Display", style: "normal", weight: 400),
|
||||
(src: "/font/LibertinusSerifInitials-Regular.woff2", name: "Libertinus Initials", style: "normal", weight: 400),
|
||||
)
|
||||
|
||||
#asset(
|
||||
"font.css",
|
||||
fonts
|
||||
.map(it => {
|
||||
"@font-face{"
|
||||
"font-family:" + repr(it.name) + ";"
|
||||
"font-style:" + str(it.style) + ";"
|
||||
"font-weight:" + str(it.weight) + ";"
|
||||
"src: url(" + repr(it.src) + ");"
|
||||
"}"
|
||||
})
|
||||
.join(" "),
|
||||
)
|
||||
|
||||
#asset("./style.css", read("style.css", encoding: none))
|
||||
|
||||
#for font in fonts {
|
||||
asset(font.src, read("." + font.src, encoding: none))
|
||||
}
|
||||
|
||||
#let stylesheets = (
|
||||
"/font.css",
|
||||
"/style.css",
|
||||
)
|
||||
92
static/style.css
Normal file
92
static/style.css
Normal file
@@ -0,0 +1,92 @@
|
||||
html {
|
||||
font-family: "Libertinus Serif", serif;
|
||||
font-size: 18pt;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "Mojangles", "monospace";
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: "Libertinus Mono", monospace;
|
||||
}
|
||||
|
||||
math {
|
||||
font-family: "Libertinus Math", math;
|
||||
}
|
||||
|
||||
main, header, footer {
|
||||
max-width: 80ch;
|
||||
margin-inline: auto;
|
||||
}
|
||||
|
||||
li > * {
|
||||
margin-block: 0;
|
||||
}
|
||||
|
||||
.callout {
|
||||
display: block;
|
||||
margin-inline: -2ch;
|
||||
padding-inline: 2ch;
|
||||
padding-block: 1ch;
|
||||
border-radius: 4pt;
|
||||
border-width: 1pt;
|
||||
border-style: solid;
|
||||
|
||||
color: var(--mode-color);
|
||||
border-color: rgba(from var(--mode-color) r g b);
|
||||
background-color: rgba(from var(--mode-color) r g b / 5%);
|
||||
}
|
||||
|
||||
.callout::before {
|
||||
content: var(--mode-name);
|
||||
padding-inline-end: 1ch;
|
||||
font-family: "Mojangles", "monospace";
|
||||
display: inline-block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.callout > p:first-child {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.note {
|
||||
--mode-name: "Note";
|
||||
}
|
||||
|
||||
.caution {
|
||||
--mode-name: "Caution";
|
||||
}
|
||||
|
||||
.tip {
|
||||
--mode-name: "Tip";
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.note {
|
||||
--mode-color: cyan;
|
||||
}
|
||||
|
||||
.caution {
|
||||
--mode-color: coral;
|
||||
}
|
||||
|
||||
.tip {
|
||||
--mode-color: springgreen;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
.note {
|
||||
--mode-color: blue;
|
||||
}
|
||||
|
||||
.caution {
|
||||
--mode-color: orangered;
|
||||
}
|
||||
|
||||
.tip {
|
||||
--mode-color: seagreen;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user