Site overhaul
The current documentation site is in need of a complete overhaul, to improve visuals, functionality and content.
This epic tracks the requirements and progress of the new site.
<details>
<summary>Requirements</summary>
* Work with static site hosting.
* Desktop first, but should work on mobile devices
* Handle high contrast mode as well as dark mode.
* Simple color scheme, few colors.
* Respect preferences such as `prefers-reduced-motion`
* Search index.
* Examples:
* Validatable examples functionally similar to the current `<validate>` tag.
* Validatable examples should be editable or link to `online.html-validate.org`.
* Preferably validation errors should use popovers
* All examples should have syntax highlighting (html, js/ts, etc)
* Configuration snippets should be toggleable json/cjs/esm
* All code snippets should be linted and compiled to ensure no regressions happen (with support to opt-out)
* SRI.
* Should be able to import typescript interfaces, function prototypes etc.
* Should be able to display generated API documentation.
* Should be able to display generated list of rules, presets.
* Categorization of pages:
* Articles/guides
* Rule
* API
* For articles/guides, should display estimated reading time.
* Should support linking to other documents based on id/name/etc (no hardcoded urls)
* Should support linking to repository source code:
* Rule implementation
* Edit markdown file
* API implementation
* Should generate all hrefs as relative urls, no base url.
* Including changelog
* Including package version
* Support including multiple parallel versions (major versions)
* Anchorlinks for headings
* Automatic table of contents (opt-out)
* Blog-like entries pulled from a separate source
* Support `%version%` placeholder
* Must handle adding the JSON schema files to the `scheme` directory.
* Link validation, all links must be valid (internal links should error out during build, external links has to be verified at some point)
* Diagrams and tables (including stylized red/green rows for support tables)
</details>
The site should prefer native solutions over javascript, progressive enhancements if needed but anything with javascript should be added with good reason. Native elements/techniques > CSS > Javascript.
epic