macana

Static site generator for Obsidian Vault

Commits at c3d0fbb737bf51316844cc8ef78826ad694dddce

  1. c3d0fbb7 Simplify 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
  2. f310ec87 Precompress middleware for FileSystem Writer Shota FUJI authored at Shota FUJI comitted at
  3. 28fa1e76 Unexpected 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
  4. a6b0d629 Tree validator for FileSystem Writer Shota FUJI authored at Shota FUJI comitted at
  5. 6e191af6 Disable 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
  6. 43aa0901 In-memory FileSystem Writer Necessary for testings. Shota FUJI authored at Shota FUJI comitted at
  7. 7d43e235 Deno native FileSystem Writer Shota FUJI authored at Shota FUJI comitted at
  8. d7629394 Simplify architecture data flow "Who own the control?" was not clear. Shota FUJI authored at Shota FUJI comitted at
  9. 8ade6613 Validate 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
  10. e3542c60 Multi locale tree builder Shota FUJI authored at Shota FUJI comitted at
  11. 26de357b Single locale tree builder Shota FUJI authored at Shota FUJI comitted at
  12. 940c4074 Metadata parser for Obsidian Vault directory Shota FUJI authored at Shota FUJI comitted at
  13. 0ff591a1 Move filesystem_reader to project root To reflect the architecture change. Shota FUJI authored at Shota FUJI comitted at
  14. 3e52c72f Change 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
  15. 3ac6118c In-memory filesystem reader Shota FUJI authored at Shota FUJI comitted at
  16. 34e2e20d Document for running unit tests As it requires a permission. Shota FUJI authored at Shota FUJI comitted at
  17. c860affc Rename internal document This doc is no longer guideline, but tutorial like guide. Shota FUJI authored at Shota FUJI comitted at
  18. b12244ae Basic FileSystem Reader implementation Shota FUJI authored at Shota FUJI comitted at
  19. c623c111 Remove unnecessary EditorConfig ruleset I don't think Zig is benefitical for this project. Shota FUJI authored at Shota FUJI comitted at
  20. 8d90e0ea Deno CLI application foundation Shota FUJI authored at Shota FUJI comitted at
  21. 04733780 Docs Shota FUJI authored at Shota FUJI comitted at