Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade #2

Merged
merged 296 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
296 commits
Select commit Hold shift + click to select a range
af3a4ff
docs: i can't type
jackyzha0 Jan 27, 2024
b211d49
feat: Handling cssclasses properties in Quartz (#711)
lucastucious Jan 28, 2024
42ee069
fix: generalize frontmatter parsing and coercing
jackyzha0 Jan 28, 2024
b11fefb
feat: enable dependabot
jackyzha0 Jan 28, 2024
0a2d746
chore(deps): bump rehype-pretty-code from 0.12.3 to 0.12.6 (#741)
dependabot[bot] Jan 28, 2024
bebd632
chore(deps-dev): bump tsx from 4.6.2 to 4.7.0 (#743)
dependabot[bot] Jan 28, 2024
319dec4
chore(deps): bump @napi-rs/simple-git from 0.1.9 to 0.1.11 (#746)
dependabot[bot] Jan 28, 2024
7695df6
chore(deps): bump rehype-mathjax from 5.0.0 to 6.0.0 (#745)
dependabot[bot] Jan 28, 2024
2739457
chore(deps): bump shikiji from 0.9.9 to 0.10.2 (#742)
dependabot[bot] Jan 28, 2024
efdce07
deps: bump flexsearch
jackyzha0 Jan 28, 2024
2b62e29
fix: revert bad tsconfig change
jackyzha0 Jan 28, 2024
a70078c
feat: Option to mask folder count (#734)
lucastucious Jan 28, 2024
ba40516
fix: fmt
jackyzha0 Jan 28, 2024
211f95c
fix: allow alt to be defined in wikilinks alongside dims
jackyzha0 Jan 28, 2024
c4b756c
style: remove redundant webkit prefix
jackyzha0 Jan 28, 2024
bf5a556
docs: improve first-time git setup
jackyzha0 Jan 28, 2024
85f05ea
fix: revert parsing dates in frontmatter
jackyzha0 Jan 29, 2024
b014d06
fix: content-disposition inline should apply to all resource types (c…
jackyzha0 Jan 29, 2024
16adbd3
fix: `cssclasses` was not applied on folder note (index) (#749)
Mara-Li Jan 29, 2024
603c181
feat: allow to config a translation for date (#739)
Mara-Li Jan 29, 2024
b7152f7
feat: div that encapsulate PageList component (#750)
Mara-Li Jan 29, 2024
f68872c
feat(icon): update content for gfm links (#751)
aarnphm Jan 29, 2024
76be137
fix: attempt to merge cached folder state between builds (closes #691)
jackyzha0 Jan 29, 2024
2d72744
fix: implement regex fix for alt in image wikilinks (closes #753)
jackyzha0 Jan 29, 2024
ebf429a
fix: fmt
jackyzha0 Jan 29, 2024
b85a354
chore(deps): bump @napi-rs/simple-git from 0.1.11 to 0.1.14 (#756)
dependabot[bot] Jan 29, 2024
b8ddf53
chore(deps): bump rfdc from 1.3.0 to 1.3.1 (#759)
dependabot[bot] Jan 29, 2024
5f624ed
chore(deps): bump remark-rehype from 11.0.0 to 11.1.0 (#758)
dependabot[bot] Jan 29, 2024
fbb4d7e
chore(deps): bump workerpool from 8.0.0 to 9.1.0 (#757)
dependabot[bot] Jan 29, 2024
9555407
fix(type): make sure dispatchEvent also accept UIEvent (#760)
aarnphm Jan 30, 2024
37c6231
fix(div): update class name to remove weird space afterwards (#763)
aarnphm Jan 30, 2024
8df7418
fix(type): annotate event for nav (#761)
aarnphm Jan 30, 2024
6ce754b
fix(css): improve wrapping when right sidebar has more than two items…
SomewhatJustin Jan 30, 2024
6ba138b
feat: support selfhost umami (#764)
rebron1900 Jan 30, 2024
ead7ee2
chore(deps-dev): bump prettier from 3.1.1 to 3.2.4 (#768)
dependabot[bot] Jan 31, 2024
f3c7211
chore(deps-dev): bump @types/node from 20.3.3 to 20.11.11 (#767)
dependabot[bot] Jan 31, 2024
e21d50c
chore(deps): bump @floating-ui/dom from 1.5.3 to 1.6.1 (#766)
dependabot[bot] Jan 31, 2024
90043cd
chore(deps): bump lightningcss from 1.22.1 to 1.23.0 (#765)
dependabot[bot] Jan 31, 2024
072ee64
feat: Feature/custom callout icon (#727)
lucastucious Jan 31, 2024
4e5643f
fix: properly parse tags in body
jackyzha0 Jan 31, 2024
a29fadb
feat(search): experimental telescope layout (closes #718) (#722)
aarnphm Jan 31, 2024
fee3ef9
chore(deps): bump katex to 0.16.9 (#772)
aarnphm Jan 31, 2024
50bb1ff
feat(usability): update functions for search (#774)
aarnphm Jan 31, 2024
e1f12e6
fix(style): search preview consistency
jackyzha0 Jan 31, 2024
22de92f
pkg: bump to 4.1.6
jackyzha0 Jan 31, 2024
7cb1c29
fix: allow formatting in callout titles
jackyzha0 Jan 31, 2024
355aa22
docs: fix outdated comment on rebuild debounce behaviour
jackyzha0 Jan 31, 2024
75d64ea
fix: fmt
jackyzha0 Jan 31, 2024
422986c
fix(search): remove background with mouseEvent (#775)
aarnphm Jan 31, 2024
bfd8771
fix: regression in formatted callout titles
jackyzha0 Jan 31, 2024
25e6869
deps: reduce dependabot frequency
jackyzha0 Jan 31, 2024
f2e93c3
chore(deps-dev): bump @types/node from 20.11.11 to 20.11.14 (#779)
dependabot[bot] Jan 31, 2024
7b2ce8b
chore(deps): bump async-mutex from 0.4.0 to 0.4.1 (#777)
dependabot[bot] Jan 31, 2024
1c175b2
chore(deps): bump mdast-util-to-hast from 13.0.2 to 13.1.0 (#776)
dependabot[bot] Jan 31, 2024
444e05e
chore(deps-dev): bump @types/hast from 3.0.3 to 3.0.4 (#780)
dependabot[bot] Feb 1, 2024
9aa6a18
fix(search): improve more general usability (closes #781) (#782)
aarnphm Feb 1, 2024
756acc7
feat(search): highlight on preview (#783)
aarnphm Feb 1, 2024
295b8fc
fix(search): increase size on fullPageWidth viewport (#784)
aarnphm Feb 2, 2024
f78b512
chore(search): check for input type and assignment of focus (#785)
aarnphm Feb 2, 2024
8a6ebd1
docs: clarity for `RecentNotes` (#786)
SomewhatJustin Feb 2, 2024
c00089b
chore: add window.addCleanup() for cleaning up handlers
jackyzha0 Feb 2, 2024
c0c0b24
feat: improve search preview styling and tokenization
jackyzha0 Feb 2, 2024
e9fb0ec
fix: border radius on search preview
jackyzha0 Feb 2, 2024
45b93a8
fix: index setup, styling fixes
jackyzha0 Feb 2, 2024
9b8e0c9
chore(cleanup): misc refactoring for cleanup, fix some search bugs
jackyzha0 Feb 2, 2024
dc62aeb
pkg: bump to 4.2.0
jackyzha0 Feb 2, 2024
970a30a
chore: fmt
jackyzha0 Feb 2, 2024
3b596c9
fix: flatmap children when highlighting rich preview to avoid body
jackyzha0 Feb 2, 2024
0416c03
fix: be more eager about constructing search index
jackyzha0 Feb 2, 2024
5a36e5b
fix(style): reasonable page width for rich search preview
jackyzha0 Feb 2, 2024
ee868b2
fix(search): set correct attribute on hover icon (#787)
aarnphm Feb 2, 2024
18cd586
fix: parallelize search indexing
jackyzha0 Feb 2, 2024
2b57a68
fix: font weight consistency
jackyzha0 Feb 2, 2024
d11a0e7
fix: font smoothing defaults
jackyzha0 Feb 2, 2024
5ab922f
fix(revert): font aliasing
jackyzha0 Feb 2, 2024
a0b927d
fix: use display instead of visibility for click handling pasthrough
jackyzha0 Feb 2, 2024
3231ce6
fix: search async ordering, scroll offset
jackyzha0 Feb 2, 2024
44da824
fix(style): remove redundant selector
jackyzha0 Feb 2, 2024
34a8dfc
pkg: bump to 4.2.1
jackyzha0 Feb 2, 2024
18745a9
fix(style): correctly collapse on mobile
jackyzha0 Feb 2, 2024
bece8fc
fix: properly handle absolute paths in `CreatedModifiedDate` (#790)
lmichaelis Feb 2, 2024
0a3379a
fix(search): null checks and focus fixes
jackyzha0 Feb 2, 2024
260498a
fix(style): prevent callout icon from shrinking on long titles (close…
jackyzha0 Feb 2, 2024
a2c46f4
fix(search): dont rely on mouse to manipulate focus
jackyzha0 Feb 2, 2024
9ff1fdd
fix(search): oops restore ability to preview on hover lol
jackyzha0 Feb 2, 2024
742b883
fix(search): flex basis and card highlighting
jackyzha0 Feb 2, 2024
3fb3930
fix: calculate heading after latex (closes #719)
jackyzha0 Feb 4, 2024
dbbc672
feat: Adding support for i18n (closes #462) (#738)
Mara-Li Feb 4, 2024
5b90fbd
feat(ofm): parsing all type of arrow (#797)
aarnphm Feb 4, 2024
dff4b06
fix(i18n): backlinks naming in mapping (#800)
MatsFangohr Feb 4, 2024
36e4cc4
chore(i18n): refactor and cleanup (#805)
jackyzha0 Feb 5, 2024
06ee73e
fix(path): properly path encode &
jackyzha0 Feb 5, 2024
c891ad8
pkg: bump to 4.2.2
jackyzha0 Feb 5, 2024
9072568
style(search): increase width on mobile view (#796)
aarnphm Feb 5, 2024
e58c217
feat: support checkbox (closes #646) (#799)
aarnphm Feb 5, 2024
b061b1b
feat(i18n): German translation (#808)
MatsFangohr Feb 5, 2024
ba836dd
feat(i18n): Add Japanese to i18n (#809)
tomoyanonymous Feb 5, 2024
b169a58
feat(i18n): Add Dutch to i18n (#813)
saberzero1 Feb 5, 2024
479cbb6
chore(deps): bump @napi-rs/simple-git from 0.1.14 to 0.1.16 (#810)
dependabot[bot] Feb 5, 2024
19fc538
chore(deps-dev): bump @types/node from 20.11.14 to 20.11.16 (#811)
dependabot[bot] Feb 5, 2024
2b9659a
fix(i18n): add default locale
jackyzha0 Feb 5, 2024
bec726b
fix(i18n): forgot a string
jackyzha0 Feb 6, 2024
34334ea
perf: don't load mermaid if its not on the page
jackyzha0 Feb 6, 2024
52ef6d1
fix(search): set background-color for icon within preview panel (#815)
aarnphm Feb 6, 2024
d2fb50b
fix(links): show backdrop on links highlighted in headers alias (#816)
aarnphm Feb 6, 2024
ce413b4
feat(i18n): add Romanian to i18n (#821)
Feb 7, 2024
2578597
chore(lang): lang element based on frontmatter or default locale (#819)
aarnphm Feb 7, 2024
ca28477
add Spanish translations (#822)
semanticdata Feb 7, 2024
330e322
feat(fonts): fetch before build (#817)
aarnphm Feb 8, 2024
51818ef
fix(umami): format correct string from custom hosts (#826)
aarnphm Feb 8, 2024
e186811
added Ukrainian to i18n (#829)
SerhiiStets Feb 8, 2024
fd785ad
feat(i18n): use Romanian translation for `ro-MD` locale (#828)
Feb 8, 2024
a87704c
fix: set default locale for lang attribute
jackyzha0 Feb 8, 2024
fe353d9
feat(experimental): partial rebuilds (#716)
kabirgh Feb 9, 2024
a0d6daa
feat(i18n): add Arabic translation (#837)
ahmedelq Feb 10, 2024
db5e701
feat(i18n): support parsing callouts (#834)
aarnphm Feb 10, 2024
6ae0bb0
chore: move fonts all into static folder (#835)
aarnphm Feb 10, 2024
ab80eba
chore(callouts): remove unnecessary whitespaces after class name (#833)
aarnphm Feb 10, 2024
3518ca9
feat(i18n): localize the min read string (#838)
ahmedelq Feb 11, 2024
af5f5ab
docs: add documentation for Umami analytics integration (#846)
Feb 11, 2024
ab0e20b
chore: refactor out and export endsWith
jackyzha0 Feb 11, 2024
b5295e0
fix: breadcrumbs displayName issue for file names ending with index (…
nilshah98 Feb 11, 2024
2b39bd9
feat(i18n): localize the `min read` string for the `ro-RO` locale (#847)
Feb 11, 2024
4a6a449
fix(breadcrumbs): folder index by full path rather than folder name (…
jackyzha0 Feb 11, 2024
998198c
chore(deps): bump esbuild-sass-plugin from 2.16.0 to 2.16.1 (#778)
dependabot[bot] Feb 11, 2024
389f2e8
fix(ofm): allow diacretic marks in tag regex (closes #830)
jackyzha0 Feb 11, 2024
226891b
fix(fast rebuild): call only required emitters, don't always copy ass…
kabirgh Feb 11, 2024
76f2956
feat: add transclude-src to transclude 'link to original'
jackyzha0 Feb 12, 2024
5dc4f21
feat(i18n): localize the min read string for the nl-NL locale (#850)
saberzero1 Feb 12, 2024
a7325ea
fix(analytics): umami custom host should be a string (closes #852)
jackyzha0 Feb 12, 2024
4a28d0e
chore(deps-dev): bump tsx from 4.7.0 to 4.7.1 (#859)
dependabot[bot] Feb 13, 2024
2c06e68
chore(deps): bump preact from 10.19.3 to 10.19.4 (#858)
dependabot[bot] Feb 13, 2024
a31e3f9
chore(deps): bump @floating-ui/dom from 1.6.1 to 1.6.3 (#857)
dependabot[bot] Feb 13, 2024
880a951
fix: incorrect link resolution for transclusion in root index file (#…
compilin Feb 13, 2024
b87a701
fix: base.com not being resolved properly with joinSegments
jackyzha0 Feb 13, 2024
21c6bbf
chore(types): add additional hint for LSP support (#864)
aarnphm Feb 14, 2024
2041341
docs: workaround for shallow clones on Cloudflare Pages (#868)
elasticdog Feb 14, 2024
6c80234
Add support for image popovers (#854)
konstfish Feb 14, 2024
78a408c
feat: implement getDependencyGraph for FolderPage (#849)
kabirgh Feb 16, 2024
823d952
feat: implement getDependencyGraph for AliasRedirects emitter (#860)
kabirgh Feb 16, 2024
5af707e
fix/feat(fast rebuild): re-render transclusions in normal and fastReb…
kabirgh Feb 17, 2024
fa2ea28
feat: add user-defined config for syntax highlighting plugin (#869)
Feb 17, 2024
06e3f8b
fix(style): introduce semiBoldWeight and various improvements to redu…
jackyzha0 Feb 17, 2024
a6690c6
fix(style): bold should use semibold
jackyzha0 Feb 17, 2024
aa24a62
fix(breadcrumbs): calculate trailing slash for tag hierarchies (close…
jackyzha0 Feb 17, 2024
8c5c5f9
feat(i18n): add Russian (#886)
makondratev Feb 18, 2024
b1a1053
feat(i18n): add Korean (#889)
JongDeug Feb 18, 2024
739c2e2
perf(cdn): CDNJS instead of JSDelivr (#891)
s-crypt Feb 19, 2024
efd46f8
fix(frontmatter): delimiters parameter was not passed (#885)
eikowagenknecht Feb 19, 2024
d9e8ffc
feat(i18n): Add Italian (#893)
LeddaZ Feb 19, 2024
3e09b05
docs: add self-hosting section (#883)
kon-foo Feb 19, 2024
e85ea49
feat(i18n): add Simplified Chinese (#896)
KylinDC Feb 19, 2024
a67a8d7
feat: implement getDependencyGraph for TagPage (#872)
kabirgh Feb 19, 2024
0493942
fix: remove assets via globs to avoid volume mount lock (#877)
kon-foo Feb 19, 2024
637e336
chore(deps-dev): bump @types/node from 20.11.16 to 20.11.19 (#899)
dependabot[bot] Feb 19, 2024
f161962
chore(deps): bump globby from 14.0.0 to 14.0.1 (#897)
dependabot[bot] Feb 19, 2024
779c501
chore(deps): bump preact from 10.19.4 to 10.19.5 (#898)
dependabot[bot] Feb 19, 2024
b6cf3df
fix: correctly parse falsy js as title (#900)
eikowagenknecht Feb 19, 2024
fc5fa48
feat(i18n): change itemsUnderFolder, itemsUnderTag translation of ko-…
JongDeug Feb 20, 2024
3b266ee
fix: add space and missing dot for listing pages (#907)
eikowagenknecht Feb 20, 2024
1c3f3d0
fix(toc): correct type for minEntries param (#909)
eikowagenknecht Feb 20, 2024
7dd596e
docs: Fix in explorer.md (#911)
kon-foo Feb 21, 2024
916aedc
docs: Add Aster's notebook to showcase.md (#912)
aster-hu Feb 22, 2024
345c347
chore: passing additional buildCtx to componentData (#914)
aarnphm Feb 23, 2024
96c7076
feat(popover): add support for PDF (#913)
aarnphm Feb 23, 2024
129e878
chore(img): return targetUrl as given href (#916)
aarnphm Feb 23, 2024
fb66ae2
deps(highlighting): migrate to shiki as shikiji has been archived (#918)
KylinDC Feb 23, 2024
be9b6b3
fix(docs): make docs accurate to callout behaviour (closes #920)
jackyzha0 Feb 23, 2024
4217189
fix(callouts): use user provided title instead of canonical for defau…
jackyzha0 Feb 23, 2024
1929241
docs: update plugin documentation (#888)
eikowagenknecht Feb 23, 2024
6be1ed1
docs(latex): mhchem
jackyzha0 Feb 24, 2024
a6417c4
fix(fast rebuild): handle added an deleted markdown correctly (#921)
kabirgh Feb 24, 2024
2c74b05
fix(ci): autotag
jackyzha0 Feb 24, 2024
ea7122d
pkg: bump to 4.2.3
jackyzha0 Feb 24, 2024
d0c0daa
ci: fix autotag
jackyzha0 Feb 24, 2024
c53fd5b
ci: tag as a separate step
jackyzha0 Feb 24, 2024
b88d3d2
ci: fix typo in runs-on
jackyzha0 Feb 24, 2024
67647d9
ci: also checkout and install node before tagging
jackyzha0 Feb 24, 2024
2f10da7
docs: fix tag page oops (#925)
aarnphm Feb 25, 2024
d6e79d1
chore(types): update correct annotations for pages (#928)
aarnphm Feb 26, 2024
6b90d03
chore(type): export attribute for theme key (#933)
aarnphm Feb 26, 2024
4957eaa
chore(deps): bump preact from 10.19.5 to 10.19.6 (#935)
dependabot[bot] Feb 26, 2024
66a5855
chore(deps): bump chokidar from 3.5.3 to 3.6.0 (#937)
dependabot[bot] Feb 26, 2024
b9dee07
docs: Clarifications in the Explorer Docs (#938)
kon-foo Feb 26, 2024
f200a0b
fix: correct umami host for self-hosted (#939)
kon-foo Feb 27, 2024
1c42b63
feat(i18n): add Vietnamese translation (#950)
HakuGuen Mar 1, 2024
018c635
fix(callout): reorder the plugins to render latex on callout title (c…
aarnphm Mar 3, 2024
566f3cf
chore(deps): bump remark-smartypants from 2.0.0 to 2.1.0 (#755)
dependabot[bot] Mar 3, 2024
2a7e61a
feat: support transcluding codeblocks and blockquotes (closes #940)
jackyzha0 Mar 3, 2024
bd05950
fix(docs): correct ExplicitPublish as filters instead of transformers…
sventec Mar 4, 2024
bcb5b2d
feat(frontmatter): configure max length for description (#946)
saberzero1 Mar 4, 2024
cec3662
feat(graph): focusOnHover (#954)
aarnphm Mar 4, 2024
a13d8e8
chore(deps): bump lightningcss from 1.23.0 to 1.24.0 (#961)
dependabot[bot] Mar 4, 2024
059dd12
chore(deps): bump preact-render-to-string from 6.3.1 to 6.4.0 (#960)
dependabot[bot] Mar 4, 2024
83ab39c
chore(deps): bump shiki from 1.1.6 to 1.1.7 (#959)
dependabot[bot] Mar 4, 2024
73a890a
revert: "fix(callout): reorder the plugins to render latex on callout…
aarnphm Mar 6, 2024
5163504
fix: transclude all subsections for embedded call (closes #963) (#964)
saberzero1 Mar 6, 2024
a506ced
chore(deps-dev): bump @types/node from 20.11.19 to 20.11.24 (#958)
dependabot[bot] Mar 6, 2024
0ca8a2a
chore: transclude subsection without dynamic regex construction
jackyzha0 Mar 6, 2024
e13cafe
feat: support youtube playlist iframe (#968)
saberzero1 Mar 6, 2024
001c166
fix(tag): move hash to sass styling only (#930)
8bitgentleman Mar 7, 2024
f44e4d2
fix(tag): remove hash on main page (#969)
aarnphm Mar 7, 2024
ba6c7a7
fix: remove extra # from tag content
jackyzha0 Mar 7, 2024
3d4a94d
feat(analytics): Goatcounter support (#956)
tcfunk Mar 7, 2024
141dd3b
fix(description): make sure to we join space correctly (#970)
aarnphm Mar 7, 2024
6d59aa8
fix(description): counts characters instead of words (#972)
saberzero1 Mar 8, 2024
b30a200
fix(i18n): make sure to use correct fileData for manual localization …
aarnphm Mar 8, 2024
2e9a0c2
fix(description): first sentence no longer repeats until max length (…
saberzero1 Mar 9, 2024
94a5469
fix(resources): Use full path to font when cdnCache is false (#976)
saberzero1 Mar 9, 2024
6e0c102
fix(transclusion): prevent duplicate transclusion if multiple transcl…
saberzero1 Mar 10, 2024
b4236e5
feat(perf:fast-rebuilds): Stop mutating resources param in ComponentR…
kabirgh Mar 10, 2024
0f5a9d7
feat: separated content meta (#929)
8bitgentleman Mar 10, 2024
9fff6d7
fix: spelling error (#987)
Mara-Li Mar 11, 2024
a00324d
chore(deps-dev): bump typescript from 5.3.3 to 5.4.2 (#989)
dependabot[bot] Mar 11, 2024
097abc3
chore(deps): bump async-mutex from 0.4.1 to 0.5.0 (#991)
dependabot[bot] Mar 11, 2024
92cc23d
feat(plugin): citations (#984)
linozen Mar 13, 2024
8be51a0
fix: wikiLink in table (#993)
CatCodeMe Mar 15, 2024
b98e4be
feat(i18n): Add French translation for reading time (#998)
Mara-Li Mar 15, 2024
4702402
chore(deps-dev): bump @types/node from 20.11.24 to 20.11.25 (#990)
dependabot[bot] Mar 15, 2024
7164857
chore(ofm): remove unused (#999)
aarnphm Mar 16, 2024
4691369
fix(wikilinks): only escape alias in wikilinks inside tables (#1000)
saberzero1 Mar 16, 2024
253497c
docs: add config for Caddy server (#1002)
ArchiDevil Mar 16, 2024
38d9d52
feat(search): add search by title/content index and tag at the same t…
makondratev Mar 18, 2024
91f0a2a
feat: support rich descriptions in tag listing page (closes #908)
jackyzha0 Mar 18, 2024
daa8796
fix: format
jackyzha0 Mar 18, 2024
7e22c38
fix(wikilinks): handle wikilinks inside tables seperately from other …
saberzero1 Mar 18, 2024
8007ec0
chore(deps): bump lightningcss from 1.24.0 to 1.24.1 (#1012)
dependabot[bot] Mar 19, 2024
668640d
chore(deps): bump shiki from 1.1.7 to 1.2.0 (#1011)
dependabot[bot] Mar 19, 2024
de6f469
chore(deps-dev): bump @types/node from 20.11.25 to 20.11.29 (#1010)
dependabot[bot] Mar 19, 2024
85a737b
docs: Update showcase.md (#1031)
xy-241 Mar 24, 2024
6efc4dd
i18n: add Hungarian translations (#1023)
kszkristof Mar 24, 2024
70d86ff
i18n: pt-BR translation (#1024)
jorgemrisco Mar 24, 2024
8437d9d
fix(style): LaTex/KaTeX overflow (#1027)
saberzero1 Mar 24, 2024
0a2b52f
simpler katex fix
jackyzha0 Mar 24, 2024
d75928a
fix(assets): pdf page linking support. (#1025)
saberzero1 Mar 24, 2024
8f13a38
chore(deps-dev): bump typescript from 5.4.2 to 5.4.3 (#1036)
dependabot[bot] Mar 26, 2024
fafe50b
chore(deps): bump preact from 10.19.6 to 10.20.1 (#1035)
dependabot[bot] Mar 26, 2024
aa4f529
fix: do not render <p> inside FolderContent article (#1044)
Hydrophobefireman Mar 31, 2024
5ec6146
fix(wikilinks): proper escaping of pipe character in wikilinks inside…
saberzero1 Mar 31, 2024
561dafc
chore(deps): bump shiki from 1.2.0 to 1.2.3 (#1048)
dependabot[bot] Apr 2, 2024
dd82ab8
fix: broken doc links on /plugins/* (#1053)
raquentin Apr 3, 2024
83bdcd5
chore(deps): bump d3 from 7.8.5 to 7.9.0 (#1047)
dependabot[bot] Apr 5, 2024
1f032f5
feat(analytics): PostHog support (#1072)
joeyscave Apr 9, 2024
8010093
chore(deps-dev): bump @types/node from 20.11.29 to 20.12.5 (#1074)
dependabot[bot] Apr 12, 2024
4d73b82
chore(deps): bump workerpool from 9.1.0 to 9.1.1 (#1073)
dependabot[bot] Apr 12, 2024
6a019da
fix: unnecessery 'm' letter removed in pt-BR (#1100)
Lucas-BRT Apr 17, 2024
e763e19
Allow pnpm quartz (#1078)
iacore Apr 19, 2024
a37c777
chore(deps): bump preact-render-to-string from 6.4.0 to 6.4.2 (#1094)
dependabot[bot] Apr 28, 2024
aee9145
fix: update link to hosting page (#1054)
emmanuel-ferdman Apr 28, 2024
d03fdc2
feat(analytics): Tinylytics support (#1118)
jbowdre May 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
24 changes: 21 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,26 @@ jobs:
- name: Ensure Quartz builds, check bundle info
run: npx quartz build --bundleInfo

publish-tag:
if: ${{ github.repository == 'jackyzha0/quartz' }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Get package version
run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV
- name: Create release tag
uses: Klemensas/action-autotag@stable
uses: pkgdeps/git-tag-action@v2
with:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
tag_prefix: "v"
github_token: ${{ secrets.GITHUB_TOKEN }}
github_repo: ${{ github.repository }}
version: ${{ env.PACKAGE_VERSION }}
git_commit_sha: ${{ github.sha }}
git_tag_prefix: "v"
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free.
Quartz v4 features a from-the-ground rewrite focusing on end-user extensibility and ease-of-use.

**If you are looking for Quartz v3, you can find it on the [`hugo` branch](https://github.com/jackyzha0/quartz/tree/hugo).**

🔗 Read the documentation and get started: https://quartz.jzhao.xyz/

[Join the Discord Community](https://discord.gg/cRFFHYye7t)
Expand Down
5 changes: 3 additions & 2 deletions docs/advanced/creating components.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,13 @@ document.addEventListener("nav", () => {
// do page specific logic here
// e.g. attach event listeners
const toggleSwitch = document.querySelector("#switch") as HTMLInputElement
toggleSwitch.removeEventListener("change", switchTheme)
toggleSwitch.addEventListener("change", switchTheme)
window.addCleanup(() => toggleSwitch.removeEventListener("change", switchTheme))
})
```

It is best practice to also unmount any existing event handlers to prevent memory leaks.
It is best practice to track any event handlers via `window.addCleanup` to prevent memory leaks.
This will get called on page navigation.

#### Importing Code

Expand Down
29 changes: 15 additions & 14 deletions docs/advanced/making plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ All transformer plugins must define at least a `name` field to register the plug

Normally for both `remark` and `rehype`, you can find existing plugins that you can use to . If you'd like to create your own `remark` or `rehype` plugin, checkout the [guide to creating a plugin](https://unifiedjs.com/learn/guide/create-a-plugin/) using `unified` (the underlying AST parser and transformer library).

A good example of a transformer plugin that borrows from the `remark` and `rehype` ecosystems is the [[Latex]] plugin:
A good example of a transformer plugin that borrows from the `remark` and `rehype` ecosystems is the [[plugins/Latex|Latex]] plugin:

```ts title="quartz/plugins/transformers/latex.ts"
import remarkMath from "remark-math"
import rehypeKatex from "rehype-katex"
import rehypeMathjax from "rehype-mathjax/svg.js"
import rehypeMathjax from "rehype-mathjax/svg"
import { QuartzTransformerPlugin } from "../types"

interface Options {
Expand All @@ -84,10 +84,14 @@ export const Latex: QuartzTransformerPlugin<Options> = (opts?: Options) => {
externalResources() {
if (engine === "katex") {
return {
css: ["https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css"],
css: [
// base css
"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css",
],
js: [
{
src: "https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js",
// fix copy behaviour: https://github.com/KaTeX/KaTeX/blob/main/contrib/copy-tex/README.md
src: "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/copy-tex.min.js",
loadTime: "afterDOMReady",
contentType: "external",
},
Expand Down Expand Up @@ -216,22 +220,19 @@ export type QuartzEmitterPlugin<Options extends OptionType = undefined> = (

export type QuartzEmitterPluginInstance = {
name: string
emit(
ctx: BuildCtx,
content: ProcessedContent[],
resources: StaticResources,
emitCallback: EmitCallback,
): Promise<FilePath[]>
emit(ctx: BuildCtx, content: ProcessedContent[], resources: StaticResources): Promise<FilePath[]>
getQuartzComponents(ctx: BuildCtx): QuartzComponent[]
}
```

An emitter plugin must define a `name` field an `emit` function and a `getQuartzComponents` function. `emit` is responsible for looking at all the parsed and filtered content and then appropriately creating files and returning a list of paths to files the plugin created.
An emitter plugin must define a `name` field, an `emit` function, and a `getQuartzComponents` function. `emit` is responsible for looking at all the parsed and filtered content and then appropriately creating files and returning a list of paths to files the plugin created.

Creating new files can be done via regular Node [fs module](https://nodejs.org/api/fs.html) (i.e. `fs.cp` or `fs.writeFile`) or via the `emitCallback` if you are creating files that contain text. The `emitCallback` function is the 4th argument of the emit function. Its interface looks something like this:
Creating new files can be done via regular Node [fs module](https://nodejs.org/api/fs.html) (i.e. `fs.cp` or `fs.writeFile`) or via the `write` function in `quartz/plugins/emitters/helpers.ts` if you are creating files that contain text. `write` has the following signature:

```ts
export type EmitCallback = (data: {
export type WriteOptions = (data: {
// the build context
ctx: BuildCtx
// the name of the file to emit (not including the file extension)
slug: ServerSlug
// the file extension
Expand Down Expand Up @@ -281,7 +282,7 @@ export const ContentPage: QuartzEmitterPlugin = () => {
allFiles,
}

const content = renderPage(slug, componentData, opts, externalResources)
const content = renderPage(cfg, slug, componentData, opts, externalResources)
const fp = await emit({
content,
slug: file.data.slug!,
Expand Down
22 changes: 9 additions & 13 deletions docs/authoring content.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Authoring Content
---

All of the content in your Quartz should go in the `/content` folder. The content for the home page of your Quartz lives in `content/index.md`. If you've [[index#🪴 Get Started|setup Quartz]] already, this folder should already be initailized. Any Markdown in this folder will get processed by Quartz.
All of the content in your Quartz should go in the `/content` folder. The content for the home page of your Quartz lives in `content/index.md`. If you've [[index#🪴 Get Started|setup Quartz]] already, this folder should already be initialized. Any Markdown in this folder will get processed by Quartz.

It is recommended that you use [Obsidian](https://obsidian.md/) as a way to edit and maintain your Quartz. It comes with a nice editor and graphical interface to preview, edit, and link your local files and attachments.

Expand All @@ -28,21 +28,17 @@ The rest of your content lives here. You can use **Markdown** here :)
Some common frontmatter fields that are natively supported by Quartz:

- `title`: Title of the page. If it isn't provided, Quartz will use the name of the file as the title.
- `description`: Description of the page used for link previews.
- `aliases`: Other names for this note. This is a list of strings.
- `tags`: Tags for this note.
- `draft`: Whether to publish the page or not. This is one way to make [[private pages|pages private]] in Quartz.
- `date`: A string representing the day the note was published. Normally uses `YYYY-MM-DD` format.

## Syncing your Content

When your Quartz is at a point you're happy with, you can save your changes to GitHub by doing `npx quartz sync`.

> [!hint] Flags and options
> For full help options, you can run `npx quartz sync --help`.
>
> Most of these have sensible defaults but you can override them if you have a custom setup:
>
> - `-d` or `--directory`: the content folder. This is normally just `content`
> - `-v` or `--verbose`: print out extra logging information
> - `--commit` or `--no-commit`: whether to make a `git` commit for your changes
> - `--push` or `--no-push`: whether to push updates to your GitHub fork of Quartz
> - `--pull` or `--no-pull`: whether to try and pull in any updates from your GitHub fork (i.e. from other devices) before pushing
When your Quartz is at a point you're happy with, you can save your changes to GitHub.
First, make sure you've [[setting up your GitHub repository|already setup your GitHub repository]] and then do `npx quartz sync`.

## Customization

Frontmatter parsing for `title`, `tags`, `aliases` and `cssclasses` is a functionality of the [[Frontmatter]] plugin, `date` is handled by the [[CreatedModifiedDate]] plugin and `description` by the [[Description]] plugin. See the plugin pages for customization options.
52 changes: 38 additions & 14 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,20 @@ This part of the configuration concerns anything that can affect the whole site.
- `enablePopovers`: whether to enable [[popover previews]] on your site.
- `analytics`: what to use for analytics on your site. Values can be
- `null`: don't use analytics;
- `{ provider: 'plausible' }`: use [Plausible](https://plausible.io/), a privacy-friendly alternative to Google Analytics; or
- `{ provider: 'google', tagId: <your-google-tag> }`: use Google Analytics
- `{ provider: 'google', tagId: '<your-google-tag>' }`: use Google Analytics;
- `{ provider: 'plausible' }` (managed) or `{ provider: 'plausible', host: '<your-plausible-host>' }` (self-hosted): use [Plausible](https://plausible.io/);
- `{ provider: 'umami', host: '<your-umami-host>', websiteId: '<your-umami-website-id>' }`: use [Umami](https://umami.is/);
- `{ provider: 'goatcounter', websiteId: 'my-goatcounter-id' }` (managed) or `{ provider: 'goatcounter', websiteId: 'my-goatcounter-id', host: 'my-goatcounter-domain.com', scriptSrc: 'https://my-url.to/counter.js' }` (self-hosted) use [GoatCounter](https://goatcounter.com);
- `{ provider: 'posthog', apiKey: '<your-posthog-project-apiKey>', host: '<your-posthog-host>' }`: use [Posthog](https://posthog.com/);
- `{ provider: 'tinylytics', siteId: '<your-site-id>' }`: use [Tinylytics](https://tinylytics.app/);
- `locale`: used for [[i18n]] and date formatting
- `baseUrl`: this is used for sitemaps and RSS feeds that require an absolute URL to know where the canonical 'home' of your site lives. This is normally the deployed URL of your site (e.g. `quartz.jzhao.xyz` for this site). Do not include the protocol (i.e. `https://`) or any leading or trailing slashes.
- This should also include the subpath if you are [[hosting]] on GitHub pages without a custom domain. For example, if my repository is `jackyzha0/quartz`, GitHub pages would deploy to `https://jackyzha0.github.io/quartz` and the `baseUrl` would be `jackyzha0.github.io/quartz`
- This should also include the subpath if you are [[hosting]] on GitHub pages without a custom domain. For example, if my repository is `jackyzha0/quartz`, GitHub pages would deploy to `https://jackyzha0.github.io/quartz` and the `baseUrl` would be `jackyzha0.github.io/quartz`.
- Note that Quartz 4 will avoid using this as much as possible and use relative URLs whenever it can to make sure your site works no matter _where_ you end up actually deploying it.
- `ignorePatterns`: a list of [glob](<https://en.wikipedia.org/wiki/Glob_(programming)>) patterns that Quartz should ignore and not search through when looking for files inside the `content` folder. See [[private pages]] for more details.
- `defaultDateType`: whether to use created, modified, or published as the default date to display on pages and page listings.
- `theme`: configure how the site looks.
- `cdnCaching`: If `true` (default), use Google CDN to cache the fonts. This will generally will be faster. Disable (`false`) this if you want Quartz to download the fonts to be self-contained.
- `typography`: what fonts to use. Any font available on [Google Fonts](https://fonts.google.com/) works here.
- `header`: Font to use for headers
- `code`: Font for inline and block quotes.
Expand All @@ -53,30 +59,48 @@ You can think of Quartz plugins as a series of transformations over content.

![[quartz transform pipeline.png]]

```ts
```ts title="quartz.config.ts"
plugins: {
transformers: [...],
filters: [...],
emitters: [...],
}
```

- [[making plugins#Transformers|Transformers]] **map** over content (e.g. parsing frontmatter, generating a description)
- [[making plugins#Filters|Filters]] **filter** content (e.g. filtering out drafts)
- [[making plugins#Emitters|Emitters]] **reduce** over content (e.g. creating an RSS feed or pages that list all files with a specific tag)
- [[tags/plugin/transformer|Transformers]] **map** over content (e.g. parsing frontmatter, generating a description)
- [[tags/plugin/filter|Filters]] **filter** content (e.g. filtering out drafts)
- [[tags/plugin/emitter|Emitters]] **reduce** over content (e.g. creating an RSS feed or pages that list all files with a specific tag)

By adding, removing, and reordering plugins from the `tranformers`, `filters`, and `emitters` fields, you can customize the behaviour of Quartz.
You can customize the behaviour of Quartz by adding, removing and reordering plugins in the `transformers`, `filters` and `emitters` fields.

> [!note]
> Each node is modified by every transformer _in order_. Some transformers are position-sensitive so you may need to take special note of whether it needs come before or after any other particular plugins.
> Each node is modified by every transformer _in order_. Some transformers are position sensitive, so you may need to pay particular attention to whether they need to come before or after certain other plugins.

You should take care to add the plugin to the right entry corresponding to its plugin type. For example, to add the [[ExplicitPublish]] plugin (a [[tags/plugin/filter|Filter]]), you would add the following line:

```ts title="quartz.config.ts"
filters: [
...
Plugin.ExplicitPublish(),
...
],
```

Additionally, plugins may also have their own configuration settings that you can pass in. For example, the [[Latex]] plugin allows you to pass in a field specifying the `renderEngine` to choose between Katex and MathJax.
To remove a plugin, you should remove all occurrences of it in the `quartz.config.ts`.

```ts
To customize plugins further, some plugins may also have their own configuration settings that you can pass in. If you do not pass in a configuration, the plugin will use its default settings.

For example, the [[plugins/Latex|Latex]] plugin allows you to pass in a field specifying the `renderEngine` to choose between Katex and MathJax.

```ts title="quartz.config.ts"
transformers: [
Plugin.FrontMatter(), // uses default options
Plugin.Latex({ renderEngine: "katex" }), // specify some options
Plugin.FrontMatter(), // use default options
Plugin.Latex({ renderEngine: "katex" }), // set some custom options
]
```

If you'd like to make your own plugins, read the guide on [[making plugins]] for more information.
Some plugins are included by default in the[ `quartz.config.ts`](https://github.com/jackyzha0/quartz/blob/v4/quartz.config.ts), but there are more available.

You can see a list of all plugins and their configuration options [[tags/plugin|here]].

If you'd like to make your own plugins, see the [[making plugins|making custom plugins]] guide.
29 changes: 24 additions & 5 deletions docs/features/Latex.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: LaTeX
tags:
- plugin/transformer
- feature/transformer
---

Quartz uses [Katex](https://katex.org/) by default to typeset both inline and block math expressions at build time.
Expand Down Expand Up @@ -38,6 +39,20 @@ a & b & c
\end{bmatrix}
$$

$$
\begin{array}{rll}
E \psi &= H\psi & \text{Expanding the Hamiltonian Operator} \\
&= -\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2} \psi + \frac{1}{2}m\omega x^2 \psi & \text{Using the ansatz $\psi(x) = e^{-kx^2}f(x)$, hoping to cancel the $x^2$ term} \\
&= -\frac{\hbar^2}{2m} [4k^2x^2f(x)+2(-2kx)f'(x) + f''(x)]e^{-kx^2} + \frac{1}{2}m\omega x^2 f(x)e^{-kx^2} &\text{Removing the $e^{-kx^2}$ term from both sides} \\
& \Downarrow \\
Ef(x) &= -\frac{\hbar^2}{2m} [4k^2x^2f(x)-4kxf'(x) + f''(x)] + \frac{1}{2}m\omega x^2 f(x) & \text{Choosing $k=\frac{im}{2}\sqrt{\frac{\omega}{\hbar}}$ to cancel the $x^2$ term, via $-\frac{\hbar^2}{2m}4k^2=\frac{1}{2}m \omega$} \\
&= -\frac{\hbar^2}{2m} [-4kxf'(x) + f''(x)] \\
\end{array}
$$

> [!warn]
> Due to limitations in the [underlying parsing library](https://github.com/remarkjs/remark-math), block math in Quartz requires the `$$` delimiters to be on newlines like above.

### Inline Math

Similarly, inline math can be rendered by delimiting math expression with a single `$`. For example, `$e^{i\pi} = -1$` produces $e^{i\pi} = -1$
Expand All @@ -53,11 +68,15 @@ For example:
- Incorrect: `I have $1 and you have $2` produces I have $1 and you have $2
- Correct: `I have \$1 and you have \$2` produces I have \$1 and you have \$2

## MathJax
### Using mhchem

Add the following import to the top of `quartz/plugins/transformers/latex.ts` (before all the other
imports):

In `quartz.config.ts`, you can configure Quartz to use [MathJax SVG rendering](https://docs.mathjax.org/en/latest/output/svg.html) by replacing `Plugin.Latex({ renderEngine: 'katex' })` with `Plugin.Latex({ renderEngine: 'mathjax' })`
```ts title="quartz/plugins/transformers/latex.ts"
import "katex/contrib/mhchem"
```

## Customization

- Removing Latex support: remove all instances of `Plugin.Latex()` from `quartz.config.ts`.
- Plugin: `quartz/plugins/transformers/latex.ts`
Latex parsing is a functionality of the [[plugins/Latex|Latex]] plugin. See the plugin page for customization options.
8 changes: 7 additions & 1 deletion docs/features/Mermaid diagrams.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
title: "Mermaid Diagrams"
tags:
- feature/transformer
---

Quartz supports Mermaid which allows you to add diagrams and charts to your notes. Mermaid supports a range of diagrams, such as [flow charts](https://mermaid.js.org/syntax/flowchart.html), [sequence diagrams](https://mermaid.js.org/syntax/sequenceDiagram.html), and [timelines](https://mermaid.js.org/syntax/timeline.html). This is enabled as a part of [[Obsidian compatibility]] and can be configured and enabled/disabled from that plugin.

By default, Quartz will render Mermaid diagrams to match the site theme.

> [!warning]
> Wondering why Mermaid diagrams may not be showing up even if you have them enabled? You may need to reorder your plugins so that `Plugin.ObsidianFlavoredMarkdown()` is _after_ `Plugin.SyntaxHighlighting()`.
> Wondering why Mermaid diagrams may not be showing up even if you have them enabled? You may need to reorder your plugins so that [[ObsidianFlavoredMarkdown]] is _after_ [[SyntaxHighlighting]].

## Syntax

Expand Down
Loading