`isKnownRoute` exempted both families behind TODOs waiting on route extraction for those packages. That extraction had already landed when the TODOs were written in #66254: cdk pages since #60853 and aria pages since the cross-repo workflow. `defined-routes.json` carries 70 `api/cdk` and 39 `api/aria` routes today, and all 45 such link targets in the guides resolve, so the build stays green without the exemptions. The gap was not theoretical. `guide/aria/select.md` and `guide/aria/multiselect.md` linked `api/cdk/overlay/CdkConnectedOverlay`, which has never been a route, and it shipped as a 404 for six months. Link validation landed four months into that and said nothing, because of this exemption. It took a user filing #68914 and an outside contributor fixing it in #68915. Pointing an existing `api/cdk` link at a symbol that does not exist passes the build today and fails it with this change.
Angular.dev
This site is built with Angular.
The content is written primarily in Markdown format located in src/content. For simple edits, you can directly edit the file on GitHub and generate a Pull Request.
Local Development
For local development, pnpm is the preferred package manager. You can set up a local environment with the following commands :
# Clone Angular repo
git clone https://github.com/angular/angular.git
# Navigate to project directory
cd angular
# Install dependencies
pnpm install
# Build and run local dev server
# NOTE: Initial build will take some time
pnpm adev
If you are having issues with the docs building, see the FAQs section.
Contributing
Want to report a bug, contribute some code, or improve the documentation? Excellent!
Read through our contributing guidelines to learn about our submission process, coding rules, and more.
And if you're new, check out one of our issues labeled as help wanted or good first issue.
Code of Conduct
Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.
FAQs
The build is failing and I'm seeing bazel:bazel failed: missing input file messages.
This is most likely due to a bazel dependency / caching issue. To resolve this, run the following command:
# Try this first
pnpm bazel clean
# If that doesn't work, try it with the expunge flag
pnpm bazel clean --expunge
High level architecture
The angular.dev website is a modern Angular application that utilizes Static Site Generation (SSG) to deliver pre-rendered, high-performance content to users.
The architecture is designed for efficiency and maintainability:
Content Sources: The documentation is sourced from two main places within the monorepo. The guides and tutorials are written in Markdown files, while the API reference pages are automatically generated by extracting documentation directly from the TypeScript source code of the Angular framework packages.
Build Process: During the build process, the Markdown files are converted into HTML. Simultaneously, the API documentation is extracted from the code comments. This content is then integrated into the Angular application.