Jacky Zhao
2021-10-25 22a9c0ddfcb38a15d4340f532faca7733349702b
docs updates, add search to main page, fix redir bug
4 files modified
59 ■■■■■ changed files
README.md 2 ●●● patch | view | raw | blame | history
content/_index.md 15 ●●●● patch | view | raw | blame | history
layouts/index.html 32 ●●●●● patch | view | raw | blame | history
layouts/partials/search.html 10 ●●●●● patch | view | raw | blame | history
README.md
@@ -1,5 +1,5 @@
# Quartz
Simple second brain and digital garden.
Host your own second brain and digital garden for free.
> β€œ[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
content/_index.md
@@ -1,7 +1,10 @@
# πŸŒ± Quartz
## v2.0
---
title: πŸͺ΄ Quartz v2.1
---
Simple second brain and [digital garden](https://jzhao.xyz/posts/digital-gardening).
Host your second brain and [digital garden](https://jzhao.xyz/posts/digital-gardening) for free.
Curious what it can do? You're on it right now! The entire Quartz documentation is fully hosted using Quartz.
## Why Quartz?
Hosting a public digital garden isn't easy. There are an overwhelming number of tutorials, resources, and guides for tools like [Notion](https://www.notion.so/), [Roam](https://roamresearch.com/), and [Obsidian](https://obsidian.md/), yet none of them have super easy to use *free* tools to publish that garden to the world.
@@ -11,17 +14,13 @@
2. Having a public digital garden invites open conversations
3. It makes keeping personal notes and knowledge *playful and fun*
> β€œHe who works with the door open gets all kinds of interruptions, but he also occasionally gets clues as to what the world is and what might be important.” β€” Richard Hamming
> β€œ[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
I was really inspired by [Bianca](https://garden.bianca.digital/) and [Joel](https://joelhooks.com/digital-garden)'s digital gardens and wanted to try making my own.
**The goal of Quartz is to make hosting your own public digital garden free and simple.** You don't even need your own website. Quartz does all of that for you and gives your own little corner of the internet.
## Get Started
The entire Quartz documentation is fully hosted using Quartz! Whether you're setting up a website and project for the first time or a seasoned digital gardener, I hope that you'll find something useful about this project.
Let's get to business and get you started!
> πŸ“š [Setup your own digital garden using Quartz](notes/setup.md)
Not convinced yet? Look at some [community digital gardens](moc/showcase) built with Quartz!
layouts/index.html
@@ -1,16 +1,28 @@
{{define "head"}}
<!DOCTYPE html>
<html lang="en">
{{ partial "head.html" . }}
{{end}}
{{define "main"}}
<!-- Main Page -->
<body>
{{partial "search.html" .}}
<div class="singlePage">
    <!-- Begin actual content -->
    <header>
        {{if .Title}}<h1>{{ .Title }}</h1>{{end}}
        <svg tabindex="0" id="search-icon" aria-labelledby="title desc" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title id="title">Search Icon</title><desc id="desc">Icon to open search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"/><circle cx="8" cy="8" r="7"/></g></svg>
        <div class="spacer"></div>
    {{partial "darkmode.html" .}}
    {{.Content}}
    <!-- Contact Info -->
    <div>
    </header>
    <article>
        {{if $.Site.Data.config.enableToc}}
        <aside class="mainTOC">
            <h3>Table of Contents</h3>
            {{ .TableOfContents }}
        </aside>
        {{end}}
        {{- .Content -}}
    </article>
        {{partial "footer.html" .}}
    </div>
</div>
{{end}}
</body>
</html>
layouts/partials/search.html
@@ -126,13 +126,17 @@
    </button>`
    }
    const redir = (id, term) => {
        window.location.href = {{.Site.BaseURL}} + `${id}#:~:text=${encodeURIComponent(term)}`
    }
    const source = document.getElementById('search-bar')
    const results = document.getElementById("results-container")
    let term
    source.addEventListener("keyup", (e) => {
        if (e.key === "Enter") {
            const anchor = document.getElementsByClassName("result-card")[0]
            window.location.href = `${anchor.id}#:~:text=${encodeURIComponent(term)}`
            redir(anchor.id, term)
        }
    })
    source.addEventListener('input', (e) => {
@@ -163,9 +167,7 @@
                    .join("\n")
                const anchors = document.getElementsByClassName("result-card");
                [...anchors].forEach(anchor => {
                    anchor.onclick = () => {
                        window.location.href = `${anchor.id}#:~:text=${encodeURIComponent(term)}`
                    }
                    anchor.onclick = () => redir(anchor.id, term)
                })
            }
        })