Commits at c3d0fbb737bf51316844cc8ef78826ad694dddce
c3d0fbb7Simplify architecture further
The "Asset" thing existed because initially both Tree Builder and Page Builder
produced assets. However, because of architecture changes I did earlier, Tree
Builder no longer produces assets. That change and this change increase the scope
of Page Builder massively, but I believe this is far better abstract compared to
the previous ones.
For instance, if I were to create an Asset Plugin for CSS postprocessing, what
I/F needed for that? Even with this simple case, the I/F would be messy because
a number of the resulting artifacts could be larger than the input, such as when
the source CSS file imports other files. And, more (probably) important plugin,
is image optimisation. However, that task requires caller (= Page Builder) to
know the result in advance: e.g. a plugin generates WebP and Avif from JPEG file
and optimises the JPEG file but Page Builder can't use the former two because
it needs to know the plugin produces those files and modify `<img>` tag to
`<picture>` tag with corresponding `<source>` tags and `<img>` tag. Considering
these, I concluded the "Asset Manager" and "Asset Plugin" system are useless at most.
Again, this make Page Builder more fat. But what kind of website assets are needed
and how to generate those are differs by websites, at all. Page Builder need to be fat.
Shota FUJI
authored at
Shota FUJI
comitted at
28fa1e76Unexpected overwrite guard for FileSystem Writer
This is better as a middleware, because otherwise every writer implementation
needs to write their own guard.
Shota FUJI
authored at
Shota FUJI
comitted at
6e191af6Disable require-await lint rule
The bloat and stupidity of the current JS/TS "recommended" lint ecosystem is astonishing.
Shota FUJI
authored at
Shota FUJI
comitted at
d7629394Simplify architecture data flow
"Who own the control?" was not clear.
Shota FUJI
authored at
Shota FUJI
comitted at
8ade6613Validate generated document tree
If Tree Builder does not check its output, then Page Builder has to verify the document tree
and abort, which is not only messing responsibility but error-prone.
Shota FUJI
authored at
Shota FUJI
comitted at
0ff591a1Move filesystem_reader to project root
To reflect the architecture change.
Shota FUJI
authored at
Shota FUJI
comitted at
3e52c72fChange architecture and Create glossary
The previous archtecture too focused on flexibility and that makes grapsing the whole
picture hard and designing interfaces very difficult. It also suffers from the absense
of control/data owner: one can't determine which module has the ownership of whole
generation process.
Shota FUJI
authored at
Shota FUJI
comitted at