macana

Static site generator for Obsidian Vault

Commits at 12cd1eb883cee000ab5570d79b274bb319cbe932

  1. 12cd1eb8 404 page Tailored Not Found page is far better than hosting platforms' provided one. This consistency and ease of navigation can't be archived without custom Not Found page mechanism. Shota FUJI authored at Shota FUJI comitted at
  2. 663b0d50 Move components under /internal In order to make public API more obvious. Shota FUJI authored at Shota FUJI comitted at
  3. 4cad800a User provided CSS Now user can configure optimal fonts for each their languages. Shota FUJI authored at Shota FUJI comitted at
  4. bcd17ace Remove unused styles Shota FUJI authored at Shota FUJI comitted at
  5. aeb36913 OpenGraph attributes Yet another essential feature for websites in modern era. Shota FUJI authored at Shota FUJI comitted at
  6. 40fee3c4 Add "description" to document metadata This is essential for websites. Shota FUJI authored at Shota FUJI comitted at
  7. bc8e53d5 v0.1.2 Shota FUJI authored at Shota FUJI comitted at
  8. a389bf96 Update Roadmap Shota FUJI authored at Shota FUJI comitted at
  9. b245e8af Base URL option This is essential for implementing OpenGraph support and 404 pages. Shota FUJI authored at Shota FUJI comitted at
  10. 715cf0de Docs for YAML frontmatter fields I myself searched codebase for which field to use. Shota FUJI authored at Shota FUJI comitted at
  11. ceda7cb0 Resolve inner page anchor hash link (#foo) Shota FUJI authored at Shota FUJI comitted at
  12. e4a0d0fd Mark default document in YAML frontmatter Shota FUJI authored at Shota FUJI comitted at
  13. c915c6ce Update Roadmap Shota FUJI authored at Shota FUJI comitted at
  14. 28409460 CLI usage document Naming convention is nearly non-existent and there is a bunch of missing options such as default document path and ignoring dotfiles, but at least this is better than nothing. Shota FUJI authored at Shota FUJI comitted at
  15. 03fa7ba4 Update Roadmap Shota FUJI authored at Shota FUJI comitted at
  16. b2faf5a7 CLI I thought library-first design would be great but turned out it's difficult and time-consuming to tidy APIs and documents. CLI-first would be far more simple and also user-friendly. Shota FUJI authored at Shota FUJI comitted at
  17. a51a05d7 v0.1.1 Shota FUJI authored at Shota FUJI comitted at
  18. c6eae1bc Update Roadmap version numbers No breaking changes since v0.1.0. Shota FUJI authored at Shota FUJI comitted at
  19. d61de598 Client-side JavaScript to mark current ToC entry It's useful, actually. While some people call it eye-candy or something, I personally find it an essential for text-heavy documents. Shota FUJI authored at Shota FUJI comitted at
  20. 8a6b9a37 Minify and Highlight client-side JavaScript code The size of JSONCanvas related code became unexpectedly big. The overall minification shrinks around 4kB (28.17kB -> 24.47kB). This `javascript` tagged template literal function also enables my Neovim tree-sitter to highlight the template string as a JavaScript code. Shota FUJI authored at Shota FUJI comitted at
  21. a1ae91e6 JSONCanvas viewport controls UI Shota FUJI authored at Shota FUJI comitted at
  22. d4b1f851 Keyboard navigation for JSONCanvas documents Shota FUJI authored at Shota FUJI comitted at
  23. f9ab2af8 Hide summary marker on Safari Shota FUJI authored at Shota FUJI comitted at
  24. 09fc08b2 JSONCanvas gestures for touch inputs Shota FUJI authored at Shota FUJI comitted at
  25. 8b30cba6 JSONCanvas gestures for pointer devices Shota FUJI authored at Shota FUJI comitted at
  26. 415efba0 Delete unused views (embeds) Since I have changed document embeds to directly embed the HTML, these embeds HTML are no longer used. Shota FUJI authored at Shota FUJI comitted at
  27. 85264c80 Render JSONCanvas in HTML While SVG renderer works well on sane browsers, it does not on Safari. It's looong ignored `<foreignObject>` overflow bug ruins even fairly straightforward usages. Shota FUJI authored at Shota FUJI comitted at
  28. a935aa6b Update Roadmap "Resolve document internal wikilink" was duplicated entry. Shota FUJI authored at Shota FUJI comitted at
  29. f39cd4b4 Client-side script to close menu on navigation (back/forward) On menu-layout, navigating back/forward is confusing due to menu appears after the navigation. Shota FUJI authored at Shota FUJI comitted at
  30. 76923e83 Minify CSS Before: raw=16kB, gzip=3.63kB After: raw=12.44kB, gzip=3.27kB Added build time (Mac mini M1): 15ms~25ms To be honest, I don't think this compression result is not worth the added build time. However, the reduced 3.5kB could reduce consuming memory and CPU times... few micro seconds? I commit this since the journey to find a CSS minify library that was compatible with Deno is extremely tiresome... * `cssnano` imports `caniuse` even though related optimizations are disabled. It statically loads the module hence the access to `<CWD>` (and probably more places like `~/.config` idk), which requires completely unnecessary broad permissions. * `esbuild` is simple and great tool, but WASM is second-class citizen in Deno: requires `--allow-net=deno.land` (or `esm.sh`) or `--allow-read=<vendored path>`. One can embed WASM binary as a base64 or `JSON.parse("Uint8Array")`, but WASM binary of ESBuild weighs 30MB. I tried to open the generated file using the latter method and my nvim froze for minutes, which I had to `kill`. * `lightningcss` looks great, but this is WASM too and weighs 10MB. Better than ESBuild though. * `clean-css` declares itself as in maintenance mode. I tested it but it loads environment variables at init time and access to `cwd`. In the end, CSSO is the only ESM compatible library that works on web platform. Shota FUJI authored at Shota FUJI comitted at