☂ [Tracking] Site information architecture restructure #4565
Description
WIP
The site architecture needs to be restructured.
- There's no obvious progression of concepts evident from the landing page, the left nav, etc.
- When it's time to update content or add new information, it's a nightmare deciding where it should go/where to look for potential areas to update.
The sections below are the major chunks of work that will go into the site restructure (each will have it's own issue or PR to further elaborate on):
1. Disassemble the Language tour
Dedicated issue: #4588
The first undertaking will be taking apart the language tour by section/topic, and moving those sections directly under "Language" (in the left nav) as separate pages. An "umbrella" topic (e.g. Classes, Types, Concurrency, etc.) can have multiple other concepts under it (e.g. Classes: Constructors, Methods, etc.).
Why?
The language tour contains basically all the information on the site. It's problematic though.
- set up like something that's supposed to be read end to end, but really shouldn't be
- hides content, topics
- forces longer explanations to be broken out into separate pages, so there's duplicated information, "extra" content floating around
- What's the language tour actually for? How to do things? Is it a Dart overview? A reference? It's a mix of everything, so it's not really anything.
- Suspicion that it negatively affects SEO because it's just a huge page with everything in it.
2. Restructure the left nav
Restructuring at least the Language section of the left nav will have to happen in conjunction with breaking down the language tour, since everything will go there.
New left nav will be something like:
├─ Get Started # see "Getting started" section
├─ _Dart Tutorials_ # see "Samples & tutorials" section
├─ Language # eliminate the `/guides` folder and have everything under `/language` directly
├─ Every
├─ Major
├─ Language
├─ Concept # see Define content types section
├─ Conceptual overview
├─ Guide(s)
├─ Full reference
├─ Libraries # probably also take apart the Library tour
├─ Page
├─ per
├─ Library
├─ _Development_
├─ _Packages_
├─ _Tools & Techniques_
├─ Reference
├─ _Effective Dart_ # tbd, I think it's a reference. I could also be top level (in-line with Language, Packages, etc)
├─ Glossary # see "Site-wide Glossary" section
├─ Language Evolution
├─ Dart Specification
├─ FAQ
├─ Related Sites
As we decide what the rules are, we need to clearly define those somewhere and stick to them.
Define content types
Solution in progress
Clearly defined content types does a couple things:
- let's users know exactly what they're looking at and where to look for different kinds of information
- let's writers fill in preset templates for new content and know exactly where to update different kinds of information
Create a "Getting Started" guide
Solution in progress
"Getting started" is a single page that points to the most important introductory resources to learn and start using Dart, laid out in the logical, sequential progression of topics, with a short summary about each.
Samples and tutorials overhaul
Solution in progress
This overhaul is less about restructuring in the context of the entire site, and more about cleaning up/ organizing the pages within the section.
Site-wide "Glossary"
Redirects
Solution in progress
- Redirects will be a big issue,
- Maaaybe use javascript to redirect
Other top level sections
Solution in progress
Haven't really analyzed Packages, Development, Tools & techniques sections yet, but at the very least their contents should be scrutinized to ensure they're under the appropriate heading. E.g.:
- "Futures, async, await" and "Streams" don't need to be under Development header
- "Tools & techniques" has some widely varying topics under it, maybe some of those should be separated into top level sections?