* fix(ogImage): update socialImage path to include base URL if defined
* feat(path): add function to check if a file path is absolute
* fix(ogImage): handle absolute paths for user defined og image paths
* docs(CustomOgImages): update socialImage property to accept full URLs
* fix(ogImage): typo
* fix(ogImage): improve user-defined OG image path handling
* Update docs/plugins/CustomOgImages.md
Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
* Update quartz/plugins/emitters/ogImage.tsx
Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
* refactor(path): remove isAbsoluteFilePath function
* fix(ogImage): update user-defined OG image path handling to support relative URLs
* feat(ogImage): enhance user-defined OG image path handling with absolute URL support
* refactor(ogImage): remove debug log for ogImagePath
* feat(path): add isAbsoluteURL function and corresponding tests
* refactor(path): remove unused URL import for isomorphic compatibility
---------
Co-authored-by: Karim H <karimh96@hotmail.com>
Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
* fix(explorer): vertically center the Explorer toggle under mobile view
* Added a separate title font configuration
* Added googleSubFontHref function
* Applied --titleFont to PageTitle
* Made googleFontHref return array of URLs
* Dealing with empty and undefined title
* Minor update
* Dealing with empty and undefined title
* Refined font inclusion logic
* Adopted the googleFontHref + googleFontSubsetHref method
* Adaptively include font subset for PageTitle
* Restored default config
* Minor changes on configuration docs
* Formatted source code
* checkpoint
* make emitters async generators
* fix
* custom font spec
* replace spinner, use disk cache for fonts
* use readline instead
* make og images look nice
* start work on client side explorer
* fix tests
* fmt
* generic test flag
* add prenav hook
* add highlight class
* make flex more consistent, remove transition
* open folders that are prefixes of current path
* make mobile look nice
* more style fixes
On the surface it seems that only google and plausible scripts handle
the SPA correctly - but I don't know if maybe others handle
window.history API themselves somehow or something like that.
However, I am trying out goatcounter and in it's docs I see that it
does no special SPA handling, so this has to be fixed.
Just doing the dynamic script thing on every nav seems to do the trick.
The script is not "spa-preserve" so they wouldn't accumulate - and when
I tried the "spa-preserve" + call goatcounter api route it didn't quite
work, they actually did accumulate
With markdownLinkResolution: "shortest", aka "+/- how Obsidian does it"
and given pages A and nested/B which has an alias Z, if you try to link
from A using [[Z]] it wouldn't work and get 404.
This is caused by alias slugs (nested/Z in this case, emitted by
AliasRedirects) not being present in the `allSlugs` list which is used
by the link transformer.
The fix is to compute the alias slugs in the frontmatter transformer
and add them to `allSlugs` there.
Also we store them in file data to avoid recomputing them when emitting
alias redirect pages.
Fixes#904
Note: given how currently the markdown/html transformers are ordered
this doesn't really work.
Given pages A and nested/B which has an alias Z, here's the order which
currently happens:
md-transformers(A) => html-transformers(A) =>
md-transformers(B) => html-transformers(B)
Since the nested/Z slug will get added when md-transformers(B) are run,
but the slugs are used by html-transformers(A) when resolving it's
links - the link [[Z]] in A will still 404
A fix for this is to split the parser into two stages - first apply the
md-transformers to all files, and only then apply html-transformers to
all files.
I did just that in a different commit, which is needed for this one to
work correctly.
* Stop mutating resources param in ComponentResources emitter
* Add done rebuilding log for fast rebuilds
* Move google font loading to Head component
* Simplify code and fix comment
* Add options to support goatcounter analytics
* goatcounter: support self-hosted
* Add to configuration docs for goatcounter settings
* use https instead of protocol-relative link for goatcounter js