1.0 Content Management
Site content is divided into nine Tracks: Site, Rust, C++, C#,
Python, WebDev, SWDev, Basics, and Code. Each track is a self-contained area
focused on a programming language, technology, or development practice. Each track
is viewed in a Track Explorer. Explorers provide two panels,
the left holding links for navigating track content, and a right panel that
displays a specific track page in an iframe. This page is an example.
Within each track, related pages are grouped into Threads -
doubly-linked sequences of pages. Each page loads a page list script the Explorer uses to drive forward and backward
navigation. A thread may be a story chapter series, a set of bites, or a
collection of repository pages.
Repositories are indexes into GitHub repositories linked from track
Explorers. They host compilable code described by stories and bites - libraries,
tools, and demo projects organized by language and topic. Each repository page
in the site is a local documentation page that links to its corresponding
GitHub repository.
5.0 Content Partitioned into Tracks
All content pages are grouped into tracks: Site,
Rust, C++, C#,
Python, WebDev, SWDev,
Basics, and Code. Each track has its own
Explorer, its own CSS theme file, and its own colour palette so that users
always have a visual cue about which track they are browsing.
If a content page is opened directly (not through its Explorer), its load
script detects that it is the top-level window and redirects to
ExploreCode.html?src=<page-url> so the full two-panel
view is always presented.
Most of the site pages belong to one of about two dozen theads, as shown in the
Site Map. A Thread is a doubly-linked set of pages that can be navigated with
Next and Prev buttons or via a page list.
Threads can show or hide a pages menu for navigating anywhere in the thread.
The pages menu visibility is controlled with pages list and Page buttons, as you see
in this page on the left and below, and That
state is persistant across page loads.
There is one exception to this behavior: when the first page of a track loads it automatically
displays the pages menu to give users a view of what is available in the thread.