MkDocs Website Content Guide¶
Status: Normative
Scope: MkDocs website content
Last Updated: January 4, 2026 16:11:00
Created: December 11, 2025 14:02:42
This document explains which content is NOT included in the MkDocs-generated website and how to properly link to these resources in README.md.
π Table of Contents¶
- Content Included in Website
- Content NOT Included in Website
- Linking Strategy Guide
- Frequently Asked Questions
Content Included in Website¶
Based on the nav configuration in mkdocs.yml, the following content is included in the MkDocs website:
β Included Pages¶
| Path | Description | Website URL |
|---|---|---|
docs/index.md | Homepage (includes README.md content) | https://lufftw.github.io/neetcode/ |
docs/index_zh-TW.md | Traditional Chinese homepage | https://lufftw.github.io/neetcode/index_zh-TW/ |
docs/patterns/*.md | Pattern documentation overview | https://lufftw.github.io/neetcode/patterns/ |
docs/patterns/*/intuition.md | Pattern intuition guides | https://lufftw.github.io/neetcode/patterns/.../intuition/ |
docs/patterns/*/templates.md | Pattern template guides | https://lufftw.github.io/neetcode/patterns/.../templates/ |
docs/mindmaps/*.md | All mind map Markdown files | https://lufftw.github.io/neetcode/mindmaps/... |
docs/pages/mindmaps/*.html | Interactive mind map HTML files | https://lufftw.github.io/neetcode/pages/mindmaps/... |
docs/contracts/solution-contract.md | Solution file specification | https://lufftw.github.io/neetcode/contracts/solution-contract/ |
docs/contracts/generator-contract.md | Generator file specification | https://lufftw.github.io/neetcode/contracts/generator-contract/ |
docs/architecture/architecture-migration.md | Architecture migration guide | https://lufftw.github.io/neetcode/architecture/architecture-migration/ |
docs/guides/github-pages-setup.md | GitHub Pages deployment guide | https://lufftw.github.io/neetcode/guides/github-pages-setup/ |
docs/guides/build-docs-manual.md | Local documentation build (manual method) | https://lufftw.github.io/neetcode/guides/build-docs-manual/ |
docs/guides/local-docs-build.md | Local docs build options | https://lufftw.github.io/neetcode/guides/local-docs-build/ |
docs/guides/act-local-github-actions.md | Run GitHub Actions locally with act | https://lufftw.github.io/neetcode/guides/act-local-github-actions/ |
docs/reference/ontology-design.md | Ontology design documentation | https://lufftw.github.io/neetcode/reference/ontology-design/ |
docs/guides/mkdocs-content-guide.md | MkDocs content guide (this file) | https://lufftw.github.io/neetcode/guides/mkdocs-content-guide/ |
π Special Notes¶
- README.md and README_zh-TW.md: These files do NOT appear as separate pages on the website. Instead, they are included in
docs/index.mdanddocs/index_zh-TW.mdvia theinclude-markdownplugin. - docs/patterns/: β
Now configured in
navand available on the website. - docs/github-pages-setup.md: β
Now configured in
navand available on the website. - Local build guides: β
build-docs-manual.md(recommended),local-docs-build.md, andact-local-github-actions.md(optional) are now configured innav. - Reference docs: β
solution-contract.md,generator-contract.md,architecture-migration.md, andontology-design.mdare now configured innav. - Guides: β
MKDOCS_CONTENT_GUIDE.mdis now configured innav. - Patterns: β
backtracking_explorationpattern is now available innavalongsidesliding_windowandtwo_pointers. - Contributors docs: β
Maintainer documentation is now in
docs/contributors/and available on the website. - Tools docs: β
Developer tools documentation is now in
docs/tools/and available on the website.
Content NOT Included in Website¶
The following directories and files do NOT appear in the MkDocs website and can only be accessed via the GitHub repository:
π Code Directories¶
| Directory/File | Description | GitHub Link Format |
|---|---|---|
solutions/ | Solution code files | https://github.com/lufftw/neetcode/blob/main/solutions/... |
tests/ | Test case files | https://github.com/lufftw/neetcode/blob/main/tests/... |
generators/ | Random test generators | https://github.com/lufftw/neetcode/blob/main/generators/... |
runner/ | Test execution engine | https://github.com/lufftw/neetcode/blob/main/runner/... |
templates/ | Problem templates | https://github.com/lufftw/neetcode/blob/main/templates/... |
π οΈ Tools and Configuration¶
| Directory/File | Description | GitHub Link Format |
|---|---|---|
tools/*.py | Tool scripts (code only) | https://github.com/lufftw/neetcode/blob/main/tools/... |
ontology/ | Algorithm ontology data (TOML) | https://github.com/lufftw/neetcode/blob/main/ontology/... |
meta/ | Problem and pattern metadata | https://github.com/lufftw/neetcode/blob/main/meta/... |
roadmaps/ | Learning path definitions | https://github.com/lufftw/neetcode/blob/main/roadmaps/... |
.vscode/ | VS Code configuration | https://github.com/lufftw/neetcode/blob/main/.vscode/... |
.github/ | GitHub Actions configuration | https://github.com/lufftw/neetcode/blob/main/.github/... |
Note: Tools documentation (tools/README.md and module-specific READMEs) has been moved to docs/tools/ and is now available on the website. See Content Included in Website section above.
π Documentation (Not in nav)¶
Note: All major documentation files are now configured in nav and available on the website. See Content Included in Website section above for the complete list.
The following files are intentionally NOT in the website navigation (GitHub only): - Internal development notes and drafts - Temporary documentation files
π§ Maintainer Documentation¶
| Directory/File | Description | GitHub Link Format |
|---|---|---|
.dev/ | Maintainer zone (unit tests, test scripts) | https://github.com/lufftw/neetcode/blob/main/.dev/... |
.dev/README.md | Maintainer guide (shortened version, links to full docs) | https://github.com/lufftw/neetcode/blob/main/.dev/README.md |
tools/README.md | Tools overview (shortened version, links to full docs) | https://github.com/lufftw/neetcode/blob/main/tools/README.md |
Note: Full maintainer documentation (.dev/README.md, .dev/TESTING.md, .dev/DOCUMENTATION_ARCHITECTURE.md, .dev/VIRTUAL_ENV_SETUP.md) has been moved to docs/contributors/ and is now available on the website. The original .dev/README.md and tools/README.md now contain shortened versions with links to the full documentation on the website.
Note: Full maintainer and tools documentation has been moved to docs/contributors/ and docs/tools/ respectively, and is now available on the website under the "Contributors" and "Tools" navigation sections. The original .dev/README.md and tools/README.md contain shortened versions for GitHub repository browsing convenience, with links to the full documentation on the website. - Badge links (e.g., .dev/tests/) should use GitHub absolute URLs since they point to code directories, not documentation pages
π Environment Files¶
| Directory/File | Description | Status |
|---|---|---|
leetcode/ | Python virtual environment | Gitignored, not in repository |
site/ | MkDocs build output | Gitignored, not in repository |
*.pyc, __pycache__/ | Python cache files | Gitignored |
Linking Strategy Guide¶
When linking to content in documentation files, follow these strategies:
π Core Linking Rules¶
General Principle: - β
Files inside docs/ directory: Use relative paths (MkDocs automatically handles these) - β
Files outside docs/ directory: Use GitHub absolute URLs
This ensures links work correctly in both GitHub repository browsing and the MkDocs website.
β Recommended Practices¶
1. For Maintainer Documentation (Now in docs/contributors/)¶
Full documentation has been moved to docs/contributors/ and is available on the website. Use relative paths:
- [Contributors Overview](docs/contributors/README.md) β Maintainer guide
- [Testing Documentation](docs/contributors/testing.md) β Testing documentation
- [Documentation Architecture](docs/contributors/documentation-architecture.md) β Documentation structure
- [Virtual Environment Setup](docs/contributors/virtual-env-setup.md) β Environment setup guide
Why relative paths work: All files in docs/contributors/ are configured in nav, so relative paths automatically work in both GitHub (points to repository) and website (points to website page).
Note: The original .dev/README.md now contains a shortened version with links to the full documentation on the website. This maintains GitHub browsing context while centralizing full content in docs/.
2. For Tools Documentation (Now in docs/tools/)¶
Full documentation has been moved to docs/tools/ and is available on the website. Use relative paths:
- [Tools Overview](docs/tools/README.md) β Complete tools reference
- [AI Markmap Agent](docs/tools/ai-markmap-agent/README.md) β AI-powered mind map generation
- [Mind Maps Generator](docs/tools/mindmaps/README.md) β Rule-based mind map generation
- [Pattern Docs Generator](docs/tools/patterndocs/README.md) β Pattern documentation generation
Why relative paths work: All files in docs/tools/ are configured in nav, so relative paths automatically work in both GitHub (points to repository) and website (points to website page).
Note: The original tools/README.md now contains a shortened version with links to the full documentation on the website. This maintains GitHub browsing context while centralizing full content in docs/.
3. For Other docs/ Directory Files (May Not Be in Website)¶
If the document IS configured in nav: - Use relative paths (MkDocs will automatically convert to website links) - Or use website URLs (more explicit)
If the document is NOT configured in nav: - Use full GitHub URLs
<!-- Document in nav - can use relative paths -->
- [π Patterns](docs/patterns/) β Pattern documentation overview
- [Sliding Window Intuition](docs/patterns/sliding_window/intuition.md) β Sliding window intuition guide
- [Sliding Window Templates](docs/patterns/sliding_window/templates.md) β Sliding window templates
- [Two Pointers Intuition](docs/patterns/two_pointers/intuition.md) β Two pointers intuition guide
- [Two Pointers Templates](docs/patterns/two_pointers/templates.md) β Two pointers templates
- [Backtracking Exploration Intuition](docs/patterns/backtracking_exploration/intuition.md) β Backtracking intuition guide
- [Backtracking Exploration Templates](docs/patterns/backtracking_exploration/templates.md) β Backtracking templates
- [GitHub Pages Setup](docs/guides/github-pages-setup.md) β Deployment guide
- [Build Documentation Locally](docs/guides/build-docs-manual.md) β Manual build method (recommended)
- [Local Docs Build Options](docs/guides/local-docs-build.md) β Build options guide
- [Run GitHub Actions Locally](docs/guides/act-local-github-actions.md) β Act method (optional, advanced)
- [Ontology Design](docs/reference/ontology-design.md) β Ontology design documentation
- [MkDocs Content Guide](docs/guides/mkdocs-content-guide.md) β Content guide (this file)
4. For Code Files (Not in Website)¶
Always use full GitHub URLs:
- [Solution Example](https://github.com/lufftw/neetcode/blob/main/solutions/0001_two_sum.py)
- [Test Generator](https://github.com/lufftw/neetcode/blob/main/generators/0001_two_sum.py)
- [Runner README](https://github.com/lufftw/neetcode/blob/main/runner/README.md)
- [LICENSE](https://github.com/lufftw/neetcode/blob/main/LICENSE)
- [pytest.ini](https://github.com/lufftw/neetcode/blob/main/pytest.ini)
- [requirements.txt](https://github.com/lufftw/neetcode/blob/main/requirements.txt)
Why: These files are not in docs/ and won't be accessible on the MkDocs website. GitHub URLs ensure they work in both GitHub and website contexts.
5. For Mind Maps (In Website)¶
Use relative paths for Static links (they're in nav), and website URLs for Interactive:
| Mind Map | Links |
|:---------|:------|
| Pattern Hierarchy | [Static](docs/mindmaps/pattern-hierarchy.md) Β· [Interactive β¨](https://lufftw.github.io/neetcode/pages/mindmaps/pattern-hierarchy.html) |
Why relative paths work: All docs/mindmaps/*.md files are configured in nav, so relative paths automatically work in both GitHub (points to repository) and website (points to website page).
π Document Migration Strategy¶
To ensure all documentation is accessible via MkDocs website while maintaining GitHub browsing context, we follow this migration pattern:
- Move full documentation to
docs/directory: - Maintainer documentation β
docs/contributors/ -
Tools documentation β
docs/tools/ -
Create shortened READMEs in original locations:
.dev/README.mdβ Brief overview + links to full docs on website-
tools/README.mdβ Brief overview + links to full docs on website -
Update navigation in
mkdocs.yml: -
Add new sections to
navfor migrated documentation -
Update all links to use relative paths:
- Since migrated files are in
docs/and innav, relative paths work in both GitHub and website
Benefits of this approach: - β All documentation accessible on MkDocs website - β Maintains GitHub browsing context with shortened READMEs - β Links work correctly in both GitHub and website - β Single source of truth for full documentation content
π Link Strategy Summary¶
| File Location | Link Type | Example |
|---|---|---|
Inside docs/ (in nav) | Relative path | [README](README.md) or [Tools](../tools/README.md) |
Inside docs/ (not in nav) | GitHub URL | [Internal Doc](https://github.com/lufftw/neetcode/blob/main/docs/internal.md) |
Outside docs/ (code/config) | GitHub URL | [Runner](https://github.com/lufftw/neetcode/blob/main/runner/README.md) |
Outside docs/ (root files) | GitHub URL | [LICENSE](https://github.com/lufftw/neetcode/blob/main/LICENSE) |
Quick Decision Tree: 1. Is the file in docs/ directory? - β
Yes β Check if it's in nav: - β
In nav β Use relative path - β Not in nav β Use GitHub URL - β No β Use GitHub URL
β Practices to Avoid¶
- Don't use relative paths for files outside
docs/directory (they won't work on the website) - Don't use relative paths like
../runner/README.mdor../../meta/patterns/README.md(these point outsidedocs/) - Don't assume all files in
docs/are on the website (checkmkdocs.ymlnavconfiguration) - Don't use
.mdextensions in website links (MkDocs handles this automatically) - Don't create duplicate documentation in multiple locations (use the migration strategy above)
- Don't mix relative paths and GitHub URLs inconsistently (follow the strategy above)
Frequently Asked Questions¶
Q: How do I check if a file is on the website?¶
A: Check the nav configuration in mkdocs.yml. Only files listed in nav appear in the website navigation.
Q: Is docs/patterns/ on the website?¶
A: β
Yes! docs/patterns/ is now configured in nav and available on the website at https://lufftw.github.io/neetcode/patterns/. You can use relative paths in README.md to link to it.
Q: Are Reference docs on the website?¶
A: β
Yes! The "π Reference" section is now configured in nav and includes:
- Solution Contract at
https://lufftw.github.io/neetcode/SOLUTION_CONTRACT/ - Generator Contract at
https://lufftw.github.io/neetcode/GENERATOR_CONTRACT/ - Architecture Migration at
https://lufftw.github.io/neetcode/ARCHITECTURE_MIGRATION/ - Ontology Design at
https://lufftw.github.io/neetcode/ONTOLOGY_DESIGN/
Note: Tools documentation has been moved to docs/tools/ and is now available on the website under the "Tools" navigation section. The original tools/README.md now contains a shortened version with links to the full documentation.
Q: What patterns are available on the website?¶
A: β
The following patterns are now configured in nav:
- Sliding Window
- Intuition:
https://lufftw.github.io/neetcode/patterns/sliding_window/intuition/ - Templates:
https://lufftw.github.io/neetcode/patterns/sliding_window/templates/ - Two Pointers
- Intuition:
https://lufftw.github.io/neetcode/patterns/two_pointers/intuition/ - Templates:
https://lufftw.github.io/neetcode/patterns/two_pointers/templates/ - Backtracking Exploration
- Intuition:
https://lufftw.github.io/neetcode/patterns/backtracking_exploration/intuition/ - Templates:
https://lufftw.github.io/neetcode/patterns/backtracking_exploration/templates/
Each pattern includes both Intuition and Templates documentation as separate pages in the navigation.
Q: Do links in README.md work in both GitHub and the website?¶
A: It depends on the link type: - GitHub absolute URLs: Work in both GitHub and website, but redirect to GitHub - Relative paths: Point to repository files on GitHub, point to website pages on the website - Website absolute URLs: Work correctly on the website, redirect to website from GitHub
Q: How do I make links work in both environments?¶
A: For content not on the website, use GitHub absolute URLs. For content on the website, you can: 1. Use relative paths (MkDocs handles this automatically) 2. Or provide both GitHub and website links
Q: Where are maintainer and tools documents now?¶
A: Full maintainer and tools documentation has been migrated to the website:
- Maintainer documentation β
docs/contributors/(available on website under "Contributors" section) docs/contributors/README.md- Full maintainer guidedocs/contributors/testing.md- Complete testing documentationdocs/contributors/documentation-architecture.md- Documentation structure-
docs/contributors/virtual-env-setup.md- Virtual environment setup -
Tools documentation β
docs/tools/(available on website under "Tools" section) docs/tools/README.md- Complete tools referencedocs/tools/ai-markmap-agent/README.md- AI Markmap Agent documentationdocs/tools/mindmaps/README.md- Mind Maps Generator documentationdocs/tools/patterndocs/README.md- Pattern Docs Generator documentation
Original locations now contain shortened versions: - .dev/README.md - Shortened version with links to full docs on website - tools/README.md - Shortened version with links to full docs on website
Why this migration? - β Makes all documentation accessible via MkDocs website - β Maintains GitHub browsing context with shortened READMEs - β Single source of truth for full documentation content - β Links work correctly in both GitHub and website using relative paths
How to link to these documents: Use relative paths (e.g., docs/contributors/README.md) since they're now in docs/ and configured in nav.
Q: How do I manually embed revision dates in Markdown files?¶
A: The git-revision-date-localized plugin provides template variables that you can use in your Markdown files. Here's how to use them:
Basic usage in .md files:
# My Page Title
Last updated: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="January 4, 2026 16:11:00 CST">January 4, 2026 16:11:00</span>
Created: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="December 11, 2025 14:02:42 CST">December 11, 2025 14:02:42</span>
Note: Both formats can be used in Markdown files and are compatible with each other: - Without page.meta. prefix: Simpler, follows plugin config format - With page.meta. prefix: Access to additional formats (raw ISO, timeago, etc.)
Example using both formats together:
Last updated: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="January 4, 2026 16:11:00 CST">January 4, 2026 16:11:00</span>
Raw ISO: {{ page.meta.git_revision_date_localized_raw_iso_datetime }}
Output example (assuming last commit on 2025-12-17):
Last updated: December 17, 2025 14:26
Created: January 1, 2024
(Raw ISO datetime: 2025-12-17T14:26:00+08:00)
Available template variables:
For direct use in Markdown files (without page.meta. prefix): | Variable | Description | |:---------|:------------| | <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="January 4, 2026 16:11:00 CST">January 4, 2026 16:11:00</span> | Last modified date (formatted according to plugin config) | | <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="December 11, 2025 14:02:42 CST">December 11, 2025 14:02:42</span> | Creation date (first commit) | | <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-datetime" title="January 9, 2026 19:05:52 CST">January 9, 2026 19:05:52</span> | Site-wide last update time (not per-page) |
Also available in Markdown files (with page.meta. prefix - provides more format options): | Variable | Description | |:---------|:------------| | {{ page.meta.git_revision_date_localized }} | Last modified date (same as above, but accessible in theme templates too) | | {{ page.meta.git_creation_date_localized }} | Creation date (same as above, but accessible in theme templates too) | | {{ page.meta.git_revision_date_localized_raw_iso_datetime }} | Raw ISO datetime format (e.g., "2025-12-17T14:26:00+08:00") | | {{ page.meta.git_revision_date_localized_timeago }} | Time ago format (e.g., "3 days ago") - requires timeago.js |
Key Points: - β
Both formats can be used together in the same Markdown file - β
Without page.meta. prefix: Simpler, follows plugin config (recommended for most cases) - β
With page.meta. prefix: Access to raw formats and timeago, also works in theme templates
Note: The plugin configuration in mkdocs.yml determines the format and locale of these dates. See mkdocs.yml for current settings (locale: en, timezone: Asia/Taipei, type: datetime).
Q: How do I customize the sitemap.xml to use Git commit dates for lastmod?¶
A: By default, MkDocs generates a sitemap.xml where all pages have the same lastmod date (the build date). To use individual Git commit dates for each page's lastmod, you can override the sitemap template.
Steps to override sitemap.xml:
-
Create the overrides directory:
-
Create the custom sitemap template: Create
docs/_mkdocs/overrides/sitemap.xmlwith the following content:<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> {%- for file in pages -%} {% if not file.page.is_link and (file.page.abs_url or file.page.canonical_url) %} <url> <loc>{% if file.page.canonical_url %}{{ file.page.canonical_url|e }}{% else %}{{ file.page.abs_url|e }}{% endif %}</loc> {%- if not file.page.meta.template and file.page.meta.git_revision_date_localized_raw_iso_datetime %} <lastmod>{{ (file.page.meta.git_revision_date_localized_raw_iso_datetime + "+00:00") | replace(" ", "T") }}</lastmod> {%- endif %} <changefreq>daily</changefreq> </url> {% endif -%} {% endfor %} </urlset> -
Enable custom_dir in mkdocs.yml: Add
custom_dir: docs/overridesto the theme configuration:
How it works: - The template uses git_revision_date_localized_raw_iso_datetime from the git-revision-date-localized plugin - Each page's lastmod will reflect its actual last Git commit date - The date format is converted to ISO 8601 (replacing spaces with "T" and adding timezone) - Only pages with Git dates will include the lastmod tag
Requirements: - The git-revision-date-localized plugin must be enabled in mkdocs.yml - The plugin must be configured to provide raw_iso_datetime format (this is the default)
After building the documentation, each page in sitemap.xml will have its own lastmod date based on when it was last committed to Git, rather than all pages sharing the same build date.
Q: How is the privacy plugin configured for external links?¶
A: The privacy plugin is configured in mkdocs.yml to enhance security and user experience for external links. The current configuration includes:
Configuration in mkdocs.yml:
What this configuration does:
links: true: Enables processing of external linkslinks_attr_map: target: _blank: Addstarget="_blank"attribute to all external links, causing them to open in a new tablinks_noopener: true: Automatically addsrel="noopener"to external links that open in a new window for improved security
Security benefits:
rel="noopener"prevents the new page from accessing thewindow.openerproperty, which protects against potential security vulnerabilities (e.g., tabnabbing attacks)
Additional notes:
- The privacy plugin is built into Material for MkDocs and doesn't require separate installation
- The plugin cache directory (
.cache/plugin/privacy) is excluded from version control via.gitignore - The plugin can also download and self-host external assets for GDPR compliance (currently not enabled)
External references:
- Material for MkDocs - Privacy Plugin Documentation
- Privacy Plugin - External Links Configuration
- Privacy Plugin - links_noopener Setting
π Update Log¶
- 2025-12-12: Initial version
- 2025-12-12: Updated - Added
docs/patterns/anddocs/github-pages-setup.mdto website navigation - 2025-12-12: Added "π Reference" section to nav with Solution Contract, Generator Contract, Architecture Migration
- 2025-12-12: Moved Tools documentation from
docs/TOOLS.mdtotools/README.md(developer docs belong with code) - 2025-12-13: Added local documentation build guides -
build-docs-manual.md(recommended) andact-local-github-actions.md(optional) to Guides section - 2025-12-14: Added
ontology-design.mdto Reference section - 2025-12-15: Added
mkdocs-content-guide.mdandlocal-docs-build.mdto Guides section - 2025-12-17: Added
backtracking_explorationpattern to Patterns section - 2025-12-20: Added FAQ section on manually embedding revision dates in Markdown files using git-revision-date-localized plugin template variables
- 2025-12-20: Added FAQ section on customizing sitemap.xml to use Git commit dates for lastmod
- 2025-12-24: Enhanced linking strategy guide with core rules, decision tree, and examples for files inside/outside
docs/directory - 2025-12-25: Added FAQ section on privacy plugin configuration for external links security (links_noopener)
- Check
mkdocs.ymlnavconfiguration for the latest list
π Quick Reference¶
Checklist¶
Before adding links in README.md, confirm:
- Is the file in
mkdocs.ymlnav? - β Yes β Can use relative paths or website URLs
- β No β Use GitHub absolute URLs
- Is the file in
.dev/,solutions/,tests/,tools/*.py, or other code directories? - β Yes β Use GitHub absolute URLs
- Is the file in
docs/directory but not innav? - β
Yes β Use GitHub absolute URLs, or add it to
navfirst
Tip: Regularly check the nav configuration in mkdocs.yml to ensure your documentation linking strategy stays consistent with the website structure.