With the pending release of Aurelia 2 alpha, we need to ensure that the necessary parts for an alpha release exist in the documentation on docs.aurelia.io. While a lot of work has already been done on documentation, many sections are still empty.
This issue aims not to get all documentation written and completed for an alpha release, but rather determine what essential parts need to be documented for alpha.
The navigation structure for documentation is too flat. For some aspects which can get detailed in terms of documentation, I think we need to think smaller and break things up even more. Right now, the "App Basics" section is way too big.
I believe "App Basics" should explain the basics and answer the following questions:
I think for things like the router which could be quite detailed and have many subsections, we should take inspiration from the Vuejs documentation which treats the router as its own standalone documentation, as can be seen here.
We should also consider breaking localisation (Aurelia i18n) as well as validation (Aurelia Validation) into more of their own independent-style documentation as these aspects can be quite wordy and benefit from breaking them up.
Discussions and decisions regarding structure can be ongoing and are not essential for an alpha release. However, I do think it is worth keeping in the back of our minds that newcomers might find the current structure to be a massive wall of links which lacks visual separation and requires scanning a massive list to find what you need.
Migration documentation
Another important thing which I do think we should consider for alpha release is a migration section for those coming from v1. Many developers who try out the alpha will most likely already be working with Aurelia v1 or have experienced working with it in the past. This doesn't have to be definitive and can be an evolving document, but we do need to detail how you bootstrap and initialise an Aurelia application is different to v1, how things like PLATFORM.moduleName no longer needed for Webpack support and so on.
Other things like <import>, the changed lifecycle hook names and so on are also other important things to document. Largely, templating and other ways in which you create components and services are familiar and largely the same as v1. Convention plugins and bridges for final release will make migration easier, however, we probably want to encourage developers to use the new names and ways of doing things instead of relying on migration plugins.
There are some sections which are more complementary to Aurelia, but not essential for an alpha release. These sections in the documentation can be temporarily disabled. I think the important thing to note here is the alpha will primarily be used by developers already familiar with Aurelia v1 and that we won't be heavily marketing Aurelia 2 to new developers as certain things like AOT, the CLI and other aspects of the framework are still being worked on.
npx makes aurelia and everything else is standard Npm commands npm start and npm testSignificant documentation on routing has been completed and live on the docs site. A new router section has been created given the router is quite extensive in features and scope.
I finished a quick start by myself by rewriting the version from Aurelia v1 to Aurelia v2. I am not sure if you want to include more Aurelia 2 specific things in the Todo App, but IMHO it serves its purpose as a simple and quick intro to Aurelia.
I started working on a personal rewrite of the Contact Manager App of Aurelia v1 as well, but I quickly got blocked by missing/failing routing functionality, which is obviously still in development.
I also noticed that the code samples in the "Setting The Title" section of the Routing - Configuration and Setup page are not working. So I took the time and the liberty to check the history of the router.ts file in the @aurelia/router package, and it turns out that the IRouterOptions interface does not seem to have had a title property. Ever. (Well, not since J眉rgen Wenzel renamed property useBrowserFragmentHash to useUrlFragmentHash on 2019-08-26 09:12:40. Since you use the useUrlFragmentHash property in your sample code, I assume I do not have to search in earlier commits for the existence of the title property.) Also the INavigatorOptions interface (declared in file navigator.ts in package @aurelia/router), from which IRouterOptions inherits, never seemed to have had a title property at any time in history either. I understand that the Aurelia 2 project is still in alpha development phase, so perhaps the title property is not yet implemented. Nevertheless, I consider it to be somewhat strange that your documentation already seems to document such future features. It is very confusing at least. Can you please share your information about where your title property is described or proposed? Thank you very much in advance.
I just received an update from @jwx about the IRouterOptions' title property issue, which seems to be ready to merge in a PR for the upcoming alpha release. Thanks a lot. I am looking forward to it. :)
Most helpful comment
Significant documentation on routing has been completed and live on the docs site. A new router section has been created given the router is quite extensive in features and scope.