Design preview
draftMinecraft 1.21.1 · Fabric + NeoForge · Tasked 0.1.0
Every element these docs can render, on one page. It exists so the design can be judged against real content rather than against the two short documents that happened to exist first, and it is disposable — delete it once the authoring guide covers the same ground.
Linking between mods#
The thing that makes several mods read as one manual rather than several websites. A link names the mod and the page, never a URL:
[Armature documentation](/docs/armature/) renders as Armature documentation — the target's own title, taken at build time.
That matters more than it looks. Rename Armature's page and every link to it updates itself, because the text is read from the index rather than typed. And a link to a page that does not exist fails the build, with the file it was found in — which is the only way a cross-mod link can be kept honest, since the author cannot see the target while writing.
Your own text, if the title does not fit the sentence: [the Armature manual](/docs/armature/) becomes
the Armature manual.
An anchor works the same way: [Tasked documentation](/docs/tasked/#where-to-start) points at
Tasked documentation.
Glossary terms#
Write a term in double brackets with no colon and it picks up its definition. Hover one, or tab to it: this paragraph is about the CanvasCanvasThe pannable, zoomable surface quests are drawn on. A quest's x/y are its position on it, in canvas units rather than pixels, so the layout survives a window resize., where a QuestQuestOne objective with a title, an icon, a position on the canvas, and the tasks that complete it. The unit a player sees and ticks off. sits at its own coordinates and a ChapterChapterA row of related quests on the canvas, with its own icon and its own progression rules. Belongs to exactly one chapter group. frames it. Hover over ValidatorValidatorThe pass that reads a quest file before anything tries to decode it. It reports file, line and column, and a file that fails is skipped rather than fatal — the other files still load. to see what happens when a file is wrong.
Terms are defined once, in glossary.json at the site root, and every use of one is listed on the
glossary page. The definition is always in the page for a screen reader, not
injected on hover — which is the difference between a tooltip that works and one that does not.
Callouts#
Four kinds, each with a different weight. Use them sparingly: a page where everything is highlighted has highlighted nothing.
An ordinary blockquote is not a callout — it is a quotation, and it renders as one:
Quest definitions are data. Nothing about a quest lives in code, so a modpack author can change everything a player sees without a recompile.
Code#
Blocks carry a copy button. The language is only a label here — there is no syntax highlighting yet, and the design does not depend on it.
{
"id": "punch_a_tree",
"title": "Punch a Tree",
"tasks": [{ "type": "tasked:item", "item": "minecraft:oak_log", "count": 8 }]
}Commands are the same block, and the copy button is the point:
gradlew deployAllProperties, because a mod's config is where people actually get stuck:
testModsDirFabric=C:/Users/Ellio/AppData/Roaming/ModrinthApp/profiles/Tasked Fabric/modsLoader tabs#
One command per loader, without repeating the page for each. The first tab is shown by default and the choice is remembered while you read.
Drop the jar in mods/ alongside Fabric API:
copy fabric\build\libs\tasked-fabric-1.21.1-0.1.0.jar "%APPDATA%\.minecraft\mods\"Drop the jar in mods/. NeoForge needs no companion API mod:
copy neoforge\build\libs\tasked-neoforge-1.21.1-0.1.0.jar "%APPDATA%\.minecraft\mods\"Tables#
Tables are the workhorse. A two-column key/value table should have a real header or none at all — an empty header row renders two sunken cells with nothing in them, which is a styling bug that looks like a mistake in the content.
| Field | What it does |
|---|---|
id | The quest's identifier. Unique across every file. |
title | What the player sees. |
tasks 0.1.0 | What has to be done. All of them, unless minRequired says otherwise. |
dimension 0.2.0 | A destination the player has to reach. Arrives with the full task set. |
dependsOn | Quest ids that must be complete first. |
Steps#
For a sequence where the order matters and each step needs more than one line.
gradlew buildgradlew deployFabricThis deletes any previous copy first, so you never end up with two jars and no idea which one the game loaded.
The first launch logs the quest files it read. A file that failed validation is named and skipped rather than taking the whole book down with it.
Lists and inline text#
An unordered list, an ordered one, and the inline styles that carry most of the meaning in technical
writing: code for an identifier, bold for the thing that matters, italic for emphasis, and a
link that stays visibly a link.
- A bullet, for things that have no order.
- A second bullet.
- A third, because three is where a list starts to look like a list.
- An ordered item.
- A second.
- A third.
A line with tasked:item inline, a required field, a subtle distinction, and a
0.2.0 chip sitting in the middle of a sentence without disturbing the line height.
Collapsed detail#
An aside for the reader who needs it and nobody else. This one costs no JavaScript at all.
If your profiles are named something else
Edit these two lines in gradle.properties, and the deploy tasks follow:
testModsDirFabric=C:/path/to/your/fabric/profile/mods
testModsDirNeoForge=C:/path/to/your/neoforge/profile/modsHeadings below this line#
The contents rail on the right is generated from the headings on the page, so the rest of this section exists to give it something to list.
A third-level heading#
Subsections nest one level in the rail and no further. A page needing four levels of heading is usually two pages.
Another third-level heading#
Placed so the rail shows a nested level rather than a flat run of two items.
Links between pages#
Documentation links point at the site, not at GitHub, because the reader is here. Tasked's
own overview is the front page of this section.