Description
Semi-related to #1982
Today, dartdoc generates a full HTML page for each class, member, method, library, etc.
As of right now on Flutter, that's nearly 35,000 files and totals nearly 1GB of space (we further add to it by preparing offline versions as zip archives).
It should be possible to reduce that size by not repeating common content. All pages share a common footer and header, and most pages have very similar left hand navigation. For instance, every property of the Icons
class has the same sidebar that lists all the other properties: https://master-api.flutter.dev/flutter/material/Icons/ac_unit-constant.html. Depending on how this is designed, it could have additional benefits such as not losing your scroll position in the left nav bar when jumping around class member definitions.
Managing this amount of content has introduced flakiness in our CI process, which tries to upload all of this data for master-api.flutter.dev on every merge commit. Some of that pain could be reduced if we had something like a common HTML shell, and scripts that defined (statically) the content to be placed on the page.
For what it's worth, I understand this is not an entirely trivial change :)