···11---
22name: Bug report
33about: Something about Quartz isn't working the way you expect
44-title: ''
44+title: ""
55labels: bug
66-assignees: ''
77-66+assignees: ""
87---
98109**Describe the bug**
···12111312**To Reproduce**
1413Steps to reproduce the behavior:
1414+15151. Go to '...'
16162. Click on '....'
17173. Scroll down to '....'
···2424If applicable, add screenshots to help explain your problem.
25252626**Desktop (please complete the following information):**
2727- - Device: [e.g. iPhone6]
2828- - OS: [e.g. iOS]
2929- - Browser [e.g. chrome, safari]
2727+2828+- Device: [e.g. iPhone6]
2929+- OS: [e.g. iOS]
3030+- Browser [e.g. chrome, safari]
30313132**Additional context**
3233Add any other context about the problem here.
+2-3
.github/ISSUE_TEMPLATE/feature_request.md
···11---
22name: Feature request
33about: Suggest an idea or improvement for Quartz
44-title: ''
44+title: ""
55labels: enhancement
66-assignees: ''
77-66+assignees: ""
87---
98109**Is your feature request related to a problem? Please describe.**
+2-2
.github/workflows/ci.yaml
···11-name: Build and Test
11+name: Build and Test
2233on:
44 push:
···3434 run: npm test
35353636 - name: Ensure Quartz builds
3737- run: npx quartz build
3737+ run: npx quartz build
+19-22
CODE_OF_CONDUCT.md
···20202121The following behaviors are expected and requested of all community members:
22222323- * Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
2424- * Exercise consideration and respect in your speech and actions.
2525- * Attempt collaboration before conflict.
2626- * Refrain from demeaning, discriminatory, or harassing behavior and speech.
2727- * Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
2828- * Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
2323+- Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
2424+- Exercise consideration and respect in your speech and actions.
2525+- Attempt collaboration before conflict.
2626+- Refrain from demeaning, discriminatory, or harassing behavior and speech.
2727+- Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
2828+- Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
29293030## 4. Unacceptable Behavior
31313232The following behaviors are considered harassment and are unacceptable within our community:
33333434- * Violence, threats of violence or violent language directed against another person.
3535- * Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
3636- * Posting or displaying sexually explicit or violent material.
3737- * Posting or threatening to post other people's personally identifying information ("doxing").
3838- * Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
3939- * Inappropriate photography or recording.
4040- * Inappropriate physical contact. You should have someone's consent before touching them.
4141- * Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
4242- * Deliberate intimidation, stalking or following (online or in person).
4343- * Advocating for, or encouraging, any of the above behavior.
4444- * Sustained disruption of community events, including talks and presentations.
3434+- Violence, threats of violence or violent language directed against another person.
3535+- Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
3636+- Posting or displaying sexually explicit or violent material.
3737+- Posting or threatening to post other people's personally identifying information ("doxing").
3838+- Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
3939+- Inappropriate photography or recording.
4040+- Inappropriate physical contact. You should have someone's consent before touching them.
4141+- Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
4242+- Deliberate intimidation, stalking or following (online or in person).
4343+- Advocating for, or encouraging, any of the above behavior.
4444+- Sustained disruption of community events, including talks and presentations.
45454646## 5. Weapons Policy
4747···5858## 7. Reporting Guidelines
59596060If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. j.zhao2k19@gmail.com.
6161-6262-63616462Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
65636664## 8. Addressing Grievances
67656868-If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify @jackyzha0 with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
6969-6666+If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify @jackyzha0 with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
70677168## 9. Scope
7269···80778178## 11. License and attribution
82798383-The Citizen Code of Conduct is distributed by [Stumptown Syndicate](http://stumptownsyndicate.org) under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
8080+The Citizen Code of Conduct is distributed by [Stumptown Syndicate](http://stumptownsyndicate.org) under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
84818582Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
8683
+1-1
content/advanced/creating components.md
···22title: Creating your own Quartz components
33---
4455-See the [component listing](/tags/component) for a full-list of the Quartz built-in components.55+See the [component listing](/tags/component) for a full-list of the Quartz built-in components.
+2-1
content/advanced/making plugins.md
···55This part of the documentation will assume you have some basic coding knowledge and will include code snippets that describe the interface of what Quartz plugins should look like.
6677## Transformers
88+89```ts
910export type QuartzTransformerPluginInstance = {
1011 name: string
···17181819## Filters
19202020-## Emitters2121+## Emitters
+27-24
content/configuration.md
···22title: Configuration
33---
4455-Quartz is meant to be extremely configurable, even if you don't know any coding. Most of the configuration you should need can be done by just editing `quartz.config.ts`.
55+Quartz is meant to be extremely configurable, even if you don't know any coding. Most of the configuration you should need can be done by just editing `quartz.config.ts`.
6677If you edit this file using a text-editor that has TypeScript language support like VSCode, it will warn you when you you've made an error in your configuration.
88···1616```
17171818## General Configuration
1919+1920This part of the configuration concerns anything that can affect the whole site. The following is a list breaking down all the things you can configure:
20212122- `pageTitle`: used as an anchor to return to the home page. This is also used when generating the [[RSS Feed]] for your site.
2223- `enableSPA`: whether to enable [[SPA Routing]] on your site.
2324- `enablePopovers`: whether to enable [[popover previews]] on your site.
2424-- `analytics`: what to use for analytics on your site. Values can be
2525- - `null`: don't use analytics;
2626- - `{ provider: 'plausible' }`: use [Plausible](https://plausible.io/), a privacy-friendly alternative to Google Analytics; or
2727- - `{ provider: 'google', tagId: <your-google-tag> }`: use Google Analytics
2828-- `caononicalUrl`: sometimes called `baseURL` in other site generators. 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. `https://quartz.jzhao.xyz/` for this site). 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.
2929-- `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.
2525+- `analytics`: what to use for analytics on your site. Values can be
2626+ - `null`: don't use analytics;
2727+ - `{ provider: 'plausible' }`: use [Plausible](https://plausible.io/), a privacy-friendly alternative to Google Analytics; or
2828+ - `{ provider: 'google', tagId: <your-google-tag> }`: use Google Analytics
2929+- `caononicalUrl`: sometimes called `baseURL` in other site generators. 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. `https://quartz.jzhao.xyz/` for this site). 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.
3030+- `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.
3031- `theme`: configure how the site looks.
3131- - `typography`: what fonts to use. Any font available on [Google Fonts](https://fonts.google.com/) works here.
3232- - `header`: Font to use for headers
3333- - `code`: Font for inline and block quotes.
3434- - `body`: Font for everything
3535- - `colors`: controls the theming of the site.
3636- - `light`: page background
3737- - `lightgray`: borders
3838- - `gray`: graph links, heavier borders
3939- - `darkgray`: body text
4040- - `dark`: header text and icons
4141- - `secondary`: link colour, current [[graph view|graph]] node
4242- - `tertiary`: hover states and visited [[graph view|graph]] nodes
4343- - `highlight`: internal link background, highlighted text, [[syntax highlighting|highlighted lines of code]]
3232+ - `typography`: what fonts to use. Any font available on [Google Fonts](https://fonts.google.com/) works here.
3333+ - `header`: Font to use for headers
3434+ - `code`: Font for inline and block quotes.
3535+ - `body`: Font for everything
3636+ - `colors`: controls the theming of the site.
3737+ - `light`: page background
3838+ - `lightgray`: borders
3939+ - `gray`: graph links, heavier borders
4040+ - `darkgray`: body text
4141+ - `dark`: header text and icons
4242+ - `secondary`: link colour, current [[graph view|graph]] node
4343+ - `tertiary`: hover states and visited [[graph view|graph]] nodes
4444+ - `highlight`: internal link background, highlighted text, [[syntax highlighting|highlighted lines of code]]
44454546## Plugins
4747+4648You can think of Quartz plugins as a series of transformations over content.
47494850![[quartz-transform-pipeline.png]]
···6264By adding, removing, and reordering plugins from the `tranformers`, `filters`, and `emitters` fields, you can customize the behaviour of Quartz.
63656466> [!note]
6565-> 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.
6767+> 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.
66686769Additionally, 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.
68706971```ts
7072transformers: [
7171- Plugin.FrontMatter(), // uses default options
7272- Plugin.Latex({ renderEngine: 'katex' }) // specify some options
7373+ Plugin.FrontMatter(), // uses default options
7474+ Plugin.Latex({ renderEngine: "katex" }), // specify some options
7375]
7476```
75777678### Layout
7777-Certain emitters may also output [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) files. To make sure that
7979+8080+Certain emitters may also output [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) files. To make sure that
78817982### Components
+8-2
content/features/Latex.md
···33## Formatting
4455### Block Math
66+67Block math can be rendered by delimiting math expression with `$$`.
7889```
···2021$$
21222223### Inline Math
2424+2325Similarly, inline math can be rendered by delimiting math expression with a single `$`. For example, `$e^{i\pi} = -1$` produces $e^{i\pi} = -1$
24262527### Escaping symbols
2626-There will be cases where you may have more than one `$` in a paragraph at once which may accidentally trigger MathJax/Katex.
2828+2929+There will be cases where you may have more than one `$` in a paragraph at once which may accidentally trigger MathJax/Katex.
27302831To get around this, you can escape the dollar sign by doing `\$` instead.
29323033For example:
3434+3135- Incorrect: `I have $1 and you have $2` produces I have $1 and you have $2
3236- Correct: `I have \$1 and you have \$2` produces I have \$1 and you have \$2
33373438## MathJax
3939+3540In `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' })`
36413742## Customization
4343+3844- Removing Latex support: remove all instances of `Plugin.Latex()` from `quartz.config.ts`.
3939-- Plugin: `quartz/plugins/transformers/latex.ts`4545+- Plugin: `quartz/plugins/transformers/latex.ts`
+1-1
content/features/Mermaid diagrams.md
···11> [!warning]
22-> 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()`.
22+> 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()`.
3344```mermaid
55sequenceDiagram
+1-1
content/features/SPA Routing.md
···11-Single-page-app style rendering. This prevents flashes of unstyled content and improves smoothness of Quartz11+Single-page-app style rendering. This prevents flashes of unstyled content and improves smoothness of Quartz
+3-2
content/features/backlinks.md
···11---
22title: Backlinks
33tags:
44-- component
44+ - component
55---
6677A backlink for a note is a link from another note to that note. Links in the backlink pane also feature rich [[popover previews]] if you have that feature enabled.
8899## Customization
1010+1011- Removing backlinks: delete all usages of `Component.Backlinks()` from `quartz.config.ts`.
1112- Component: `quartz/components/Backlinks.tsx`
1213- Style: `quartz/components/styles/backlinks.scss`
1313-- Script: `quartz/components/scripts/search.inline.ts`1414+- Script: `quartz/components/scripts/search.inline.ts`
+11-10
content/features/callouts.md
···33---
4455> [!warning]
66-> Wondering why callouts 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()`.
77-66+> Wondering why callouts 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()`.
8798> [!info]
109> Default title
11101211> [!question]+ Can callouts be nested?
1212+>
1313> > [!todo]- Yes!, they can.
1414-> > > [!example] You can even use multiple layers of nesting.
1414+> >
1515+> > > [!example] You can even use multiple layers of nesting.
15161617> [!EXAMPLE] Examples
1718>
···2122>
2223> Aliases: note
23242424-> [!abstract] Summaries
2525+> [!abstract] Summaries
2526>
2627> Aliases: abstract, summary, tldr
27282828-> [!info] Info
2929+> [!info] Info
2930>
3031> Aliases: info, todo
31323232-> [!tip] Hint
3333+> [!tip] Hint
3334>
3435> Aliases: tip, hint, important
35363636-> [!success] Success
3737+> [!success] Success
3738>
3839> Aliases: success, check, done
39404040-> [!question] Question
4141+> [!question] Question
4142>
4243> Aliases: question, help, faq
43444444-> [!warning] Warning
4545+> [!warning] Warning
4546>
4647> Aliases: warning, caution, attention
47484848-> [!failure] Failure
4949+> [!failure] Failure
4950>
5051> Aliases: failure, fail, missing
5152
+6-4
content/features/full-text search.md
···11---
22title: Full-text Search
33-tags:
44-- component
33+tags:
44+ - component
55---
6677Full-text search in Quartz is powered by [Flexsearch](https://github.com/nextapps-de/flexsearch). It's fast enough to return search results in under 10ms for Quartzs as large as half a million words.
8899-It can be opened by either clicking on the search bar or pressing ⌘+K. The top 5 search results are shown on each query. Matching subterms are highlighted and the most relevant 30 words are excerpted. Clicking on a search result will navigate to that page.
99+It can be opened by either clicking on the search bar or pressing ⌘+K. The top 5 search results are shown on each query. Matching subterms are highlighted and the most relevant 30 words are excerpted. Clicking on a search result will navigate to that page.
10101111This component is also keyboard accessible: Tab and Shift+Tab will cycle forward and backward through search results and Enter will navigate to the highlighted result (first result by default).
1212···1414> Search requires the `ContentIndex` emitter plugin to be present in the [[configuration]].
15151616### Indexing Behaviour
1717+1718By default, it indexes every page on the site with **Markdown syntax removed**. This means link URLs for instance are not indexed.
18191920It properly tokenizes Chinese, Korean, and Japenese characters and constructs separate indexes for the title and content, weighing title matches above content matches.
20212122## Customization
2323+2224- Removing search: delete all usages of `Component.Search()` from `quartz.config.ts`.
2325- Component: `quartz/components/Search.tsx`
2426- Style: `quartz/components/styles/search.scss`
2527- Script: `quartz/components/scripts/search.inline.ts`
2626- - You can edit `contextWindowWords` or `numSearchResults` to suit your needs
2828+ - You can edit `contextWindowWords` or `numSearchResults` to suit your needs
+12-11
content/features/graph view.md
···11---
22title: "Graph View"
33tags:
44-- component
44+ - component
55---
6677-Quartz features a graph-view that can show both a local graph view and a global graph view.
77+Quartz features a graph-view that can show both a local graph view and a global graph view.
8899-- The local graph view shows files that either link to the current file or are linked from the current file. In other words, it shows all notes that are *at most* one hop away.
1010-- The global graph view can be toggled by clicking the graph icon on the top-right of the local graph view. It shows *all* the notes in your graph and how they connect to each other.
99+- The local graph view shows files that either link to the current file or are linked from the current file. In other words, it shows all notes that are _at most_ one hop away.
1010+- The global graph view can be toggled by clicking the graph icon on the top-right of the local graph view. It shows _all_ the notes in your graph and how they connect to each other.
11111212By default, the node radius is proportional to the total number of incoming and outgoing internal links from that file.
1313···1717> Graph View requires the `ContentIndex` emitter plugin to be present in the [[configuration]].
18181919## Customization
2020+2021Most configuration can be done by passing in options to `Component.Graph()`.
21222223For example, here's what the default configuration looks like:
···2627 localGraph: {
2728 drag: true, // whether to allow panning the view around
2829 zoom: true, // whether to allow zooming in and out
2929- depth: 1, // how many hops of notes to display
3030+ depth: 1, // how many hops of notes to display
3031 scale: 1.1, // default view scale
3131- repelForce: 0.5, // how much nodes should repel each other
3232+ repelForce: 0.5, // how much nodes should repel each other
3233 centerForce: 0.3, // how much force to use when trying to center the nodes
3334 linkDistance: 30, // how long should the links be by default?
3434- fontSize: 0.6, // what size should the node labels be?
3535- opacityScale: 1 // how quickly do we fade out the labels when zooming out?
3535+ fontSize: 0.6, // what size should the node labels be?
3636+ opacityScale: 1, // how quickly do we fade out the labels when zooming out?
3637 },
3738 globalGraph: {
3839 drag: true,
···4344 centerForce: 0.3,
4445 linkDistance: 30,
4546 fontSize: 0.6,
4646- opacityScale: 1
4747- }
4747+ opacityScale: 1,
4848+ },
4849})
4950```
5051···5556- Removing graph view: delete all usages of `Component.Graph()` from `quartz.config.ts`.
5657- Component: `quartz/components/Graph.tsx`
5758- Style: `quartz/components/styles/graph.scss`
5858-- Script: `quartz/components/scripts/graph.inline.ts`5959+- Script: `quartz/components/scripts/graph.inline.ts`
···99When [[creating components|creating your own components]], you can include this `popover-hint` class to also include it in the popover.
10101111## Configuration
1212+1213- Remove popovers: set the `enablePopovers` field in `quartz.config.ts` to be `false`.
1314- Style: `quartz/components/styles/popover.scss`
1414-- Script: `quartz/components/scripts/popover.inline.ts`1515+- Script: `quartz/components/scripts/popover.inline.ts`
+13-6
content/features/syntax highlighting.md
···1212> Syntax highlighting does have an impact on build speed if you have a lot of code snippets in your notes.
13131414## Formatting
1515+1516Text inside `backticks` on a line will be formatted like code.
16171718````
···3738```
38393940### Titles
4141+4042Add a file title to your code block, with text inside double quotes (`""`):
41434244````
4345```js title="..."
4444-4646+4547```
4648````
4749···5658```
57595860### Line highlighting
6161+5962Place a numeric range inside `{}`.
60636164````
6265```js {1-3,4}
6363-6666+6467```
6568````
6669···7578```
76797780### Word highlighting
8181+7882A series of characters, like a literal regex.
79838084````
···8589````
86908791```js /useState/
8888-const [age, setAge] = useState(50);
8989-const [name, setName] = useState('Taylor');
9292+const [age, setAge] = useState(50)
9393+const [name, setName] = useState("Taylor")
9094```
91959296### Line numbers
9797+9398Syntax highlighting has line numbers configured automatically. If you want to start line numbers at a specific number, use `showLineNumbers{number}`:
949995100````
96101```js showLineNumbers{number}
9797-102102+98103```
99104````
100105···109114```
110115111116### Escaping code blocks
117117+112118You can format a codeblock inside of a codeblock by wrapping it with another level of backtick fences that has one more backtick than the previous fence.
113119114120`````
···121127`````
122128123129## Customization
130130+124131- Removing syntax highlighting: delete all usages of `Plugin.SyntaxHighlighting()` from `quartz.config.ts`.
125132- Style: By default, Quartz uses derivatives of the GitHub light and dark themes. You can customize the colours in the `quartz/styles/syntax.scss` file.
126126-- Plugin: `quartz/plugins/transformers/syntax.ts`133133+- Plugin: `quartz/plugins/transformers/syntax.ts`
···1212- custom md blocks (e.g. for poetry)
1313- sidenotes? [https://github.com/capnfabs/paperesque](https://github.com/capnfabs/paperesque)
1414- watch mode
1515- - watch for markdown changes and quartz config changes
1616- - markdown changes only involve processing that single markdown file (at least for parsing) and then rerunning the filter and emitters
1717- - config changes rebuild the whole thing
1515+ - watch for markdown changes and quartz config changes
1616+ - markdown changes only involve processing that single markdown file (at least for parsing) and then rerunning the filter and emitters
1717+ - config changes rebuild the whole thing
1818- direct match in search using double quotes
1919- attachments path
2020- [https://help.obsidian.md/Advanced+topics/Using+Obsidian+URI](https://help.obsidian.md/Advanced+topics/Using+Obsidian+URI)
···2626- audio/video embed styling
2727- Canvas
2828- mermaid styling: [https://mermaid.js.org/config/theming.html#theme-variables-reference-table](https://mermaid.js.org/config/theming.html#theme-variables-reference-table)
2929- - [https://github.com/jackyzha0/quartz/issues/331](https://github.com/jackyzha0/quartz/issues/331)
2929+ - [https://github.com/jackyzha0/quartz/issues/331](https://github.com/jackyzha0/quartz/issues/331)
3030- block links: [https://help.obsidian.md/Linking+notes+and+files/Internal+links#Link+to+a+block+in+a+note](https://help.obsidian.md/Linking+notes+and+files/Internal+links#Link+to+a+block+in+a+note)
3131- note/header/block transcludes: [https://help.obsidian.md/Linking+notes+and+files/Embedding+files](https://help.obsidian.md/Linking+notes+and+files/Embedding+files)
3232- parse all images in page: use this for page lists if applicable?
3333-- CV mode? with print stylesheet3333+- CV mode? with print stylesheet
+3-1
content/index.md
···55Quartz is a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites. Thousands of students, developers, and teachers are [[showcase|already using Quartz]] to publish personal notes, wikis, and [digital gardens](https://jzhao.xyz/posts/networked-thought/) to the web.
6677## 🪴 Get Started
88+89Quartz requires **at least [Node](https://nodejs.org/) v16** to function correctly. In your terminal of choice, enter the following commands line by line:
9101011```shell
···2627- [[SPA Routing|Ridiculously fast page loads]] and tiny bundle sizes
2728- Fully-customizable parsing, filtering, and page generation through [[making plugins|plugins]]
28292929-For a comprehensive list of features, visit the [features page](/features). You can read more the *why* behind these features on the [[philosophy]] page.
3030+For a comprehensive list of features, visit the [features page](/features). You can read more the _why_ behind these features on the [[philosophy]] page.
30313132### 🚧 Troubleshooting
3333+3234Having trouble with Quartz? Try searching for your issue using the search feature. If you're still having trouble, feel free to [submit an issue](https://github.com/jackyzha0/quartz/issues) if you feel you found a bug or ask for help in our [Discord Community](https://discord.gg/cRFFHYye7t).
+2-2
content/philosophy.md
···55## A garden should be a true hypertext
6677> The garden is the web as topology. Every walk through the garden creates new paths, new meanings, and when we add things to the garden we add them in a way that allows many future, unpredicted relationships.
88->
88+>
99> (The Garden and the Stream)
10101111The problem with the file cabinet is that it focuses on efficiency of access and interoperability rather than generativity and creativity. Thinking is not linear, nor is it hierarchical. In fact, not many things are linear or hierarchical at all. Then why is it that most tools and thinking strategies assume a nice chronological or hierarchical order for my thought processes? The ideal tool for thought for me would embrace the messiness of my mind, and organically help insights emerge from chaos instead of forcing an artificial order. A rhizomatic, not arboresecent, form of note taking.
···20202121The goal of digital gardening should be to tap into your network’s collective intelligence to create constructive feedback loops. If done well, I have a shareable representation of my thoughts that I can send out into the world and people can respond. Even for my most half-baked thoughts, this helps me create a feedback cycle to strengthen and fully flesh out that idea.
22222323-Quartz is designed first and foremost as a tool for publishing [digital gardens](https://jzhao.xyz/posts/networked-thought/) to the web. To me, digital gardening is not just passive knowledge collection. It’s a form of expression and sharing.
2323+Quartz is designed first and foremost as a tool for publishing [digital gardens](https://jzhao.xyz/posts/networked-thought/) to the web. To me, digital gardening is not just passive knowledge collection. It’s a form of expression and sharing.
24242525> “[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
2626
+1-1
content/tags/component.md
···22title: Components
33---
4455-Want to create your own custom component? Check out the advanced guide on [[creating components]] for more information.55+Want to create your own custom component? Check out the advanced guide on [[creating components]] for more information.