Ground-up docs rewrite: Docura theme, full content restructure, search, and FAQ#89
Ground-up docs rewrite: Docura theme, full content restructure, search, and FAQ#89nkbooth wants to merge 14 commits into
Conversation
Replace the legacy Wowchemy/Academic Hugo theme (last updated 2020) with the modern Hextra theme via git submodule. This rewrite consolidates the fragmented documentation structure into a clear, learner-centric hierarchy: getting-started, account-setup, teams, sessions, exam-day, paper-exams, remote-exams, about, applicants, reference, and troubleshooting. The old VEC-specific sections (arrl/, w5yi/, cve/, ve/) are consolidated into reusable how-to guides. Multi-file Hugo configuration (config/_default/) is replaced with a single, readable hugo.toml. Netlify build now uses Hugo 0.161.1 extended and properly initializes git submodules. This change positions the docs site for future maintainability, better mobile rendering, and faster iteration on content without template overhead. Breaking Change: Documentation URLs will change with the new theme structure. Refs: docs/rewrite-hextra
Complete rewrite of all end-user documentation using the Diátaxis framework (quickstarts, how-tos, reference, troubleshooting). New and restructured pages cover account setup, teams, sessions, exam day, paper exams, remote exams, and troubleshooting. Obsolete pages removed; new pages added (give-exam, complete-applicant, managing-applicants, add-ves-to-session, edit-team, manage-team-admins, callsign-change, faq). 52 screenshot markers placed throughout for future illustration. Replaces the Wowchemy-based site with Docura. Docura is customised via project-level layout overrides and examtools-custom.css — the theme itself is unmodified. Brand styling includes ExamTools navy header, gold/blue accent palette, ExamTools by SignalStuff logo, ExamTools favicon, and a dark hero landing page with classExam2.svg background and three quickstart callout cards.
- hugo.yaml: languageName→label, languageCode→locale - Project layout overrides: .Site.Data→hugo.Data (list, single, sidebar, article-footer), .Language.LanguageName→.Language.Label (site-header), .Site.LanguageCode→.Site.Language.Locale (baseof) - static/manifest.json: ExamTools name, navy theme color, brand icons
og:site_name, og:type (website/article), og:title, og:description, og:url, og:image; twitter:card summary with matching title/description/image. Image points to icon-180.png (best available — a dedicated 1200x630 OG image would improve previews).
Replace 180px placeholder with et_icon_512.png (navy rounded-square, gold antenna/A) in og:image, twitter:image, and manifest.json icons list.
- netlify.toml: chain 'npx pagefind --site public' after hugo in all three build contexts - head.html: load pagefind-ui.css/js and initialize PagefindUI on #site-header-search - .gitignore: exclude public/pagefind/ (generated artifact) - view.sh: prompt to build with Pagefind and serve statically, or fall back to hugo server - maintainer.md: document local search testing procedure
Three bugs fixed: 1. site-header.html was missing #site-header-search entirely — our earlier customization dropped the div, so no search container existed in the DOM. 2. Wrong Pagefind UI variant: the Default UI (pagefind-ui.js) renders an inline input field, unsuitable for a narrow header slot. The Component UI (pagefind-component-ui.js, introduced in Pagefind 1.5.0) renders a trigger button (search icon) that opens a full search modal — the correct pattern. 3. pagefind-modal must live in <body> separately from the trigger; added it to baseof.html just before the scripts partial. Result: search icon appears in the header; clicking it opens the Pagefind modal.
Covers finding a session, registration, PIN entry, exam interface navigation, and post-exam FCC application tracking. Primary message is to contact the VE team for anything session-specific. Wired into sidebar under "For Applicants" section.
New FAQ entries cover: team lead vs. owner/co-owner permissions, VEC credential sync timing, account requirement for paper-only VEs, delegate step explanation, session vs. applicant status, finalization prerequisites, 'You are not part of this session' alert, and recovering from accidental early finalization. Also corrects become-team-lead.md sync timing from 'a few hours' to the accurate 24-48 hour window with 4-hour polling cadence.
Update to match the accurate 24-48 hour / 4-hour polling language used in become-team-lead and the FAQ.
Pagefind uses optional chaining (?.) which requires Node 14+. Without an explicit NODE_VERSION, Netlify was defaulting to Node 12, causing the build to fail with "Unexpected token ?" when running npx pagefind.
Introduce sandbox environment documentation to guide VEs through practice workflows without affecting production records or VEC submissions. This includes a new "Sandbox and Training" section at weight 8, detailing how to create fake applicants, use dummy VEs (E/G prefix test accounts), interpret sandbox-specific visual indicators (sandcastle watermark, SandBox email prefix, beta CSCE URLs), and verify completed training sessions. Updates create-account.md with expanded sign-up form field details, a sandbox-specific callout with separate account and URL guidance, and a troubleshooting section addressing common verification and email issues. Links environments.md to the training-session guide. Adjusts nav weights (about +1, applicants +1, reference +1, troubleshooting +1) to accommodate sandbox at weight 8. The sandbox is now a first-class documented feature of the onboarding and training narrative, supporting both new VE ramp-up and ongoing practice for session managers.
Commits added since PR was openedThree commits have landed on the branch after the PR was created:
|
… docs - Hero: halve classExam2.svg opacity (0.10 → 0.05) to reduce busyness - Hero cards: opaque dark-navy background + backdrop blur replaces near-transparent wash; text is now clearly readable against the SVG background - Doc watermark: reduce sandcastle-drawing.svg opacity to 0.018 and add saturate/contrast filter so it reads as texture rather than image - Light mode: off-white --background (#f6f8fa) reduces screen glare; article container gets a semi-transparent white lift (rgba 0.82) with subtle shadow, suppressed in dark/night modes
Summary
This PR delivers a complete ground-up rewrite of the ExamTools end-user documentation, migrating from the legacy Wowchemy theme to a new Docura-based site with restructured content, a new information architecture, and significant content improvements.
Theme and infrastructure
classExam2.svgbackground, three callout cardslanguageCode→locale,languageName→label,.Site.Data→hugo.Data,.Language.LanguageName→.Language.Label)Search
SEO and PWA
head.htmlfor social/Slack link previewsmanifest.jsonwith ExamTools name and theme colorContent — new and rewritten pages
All content written from scratch following the Diátaxis framework (quickstarts, how-tos, concepts, reference, troubleshooting):
Content corrections
add-vec-accreditation.md,become-team-lead.md, andfaq.md: ExamTools reads VEC records every 4 hours; VECs update on their own schedule; allow up to 24–48 hours totalWhat's not in this PR