docs updates, add search to main page, fix redir bug

This commit is contained in:
Jacky Zhao 2021-10-24 23:31:09 -07:00
parent c1c061fbea
commit 22a9c0ddfc
4 changed files with 38 additions and 25 deletions

View file

@ -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

View file

@ -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 @@ I've personally found that
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!

View file

@ -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">
{{partial "darkmode.html" .}}
{{.Content}}
<!-- Contact Info -->
<div>
{{partial "footer.html" .}}
</div>
<!-- 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" .}}
</header>
<article>
{{if $.Site.Data.config.enableToc}}
<aside class="mainTOC">
<h3>Table of Contents</h3>
{{ .TableOfContents }}
</aside>
{{end}}
{{- .Content -}}
</article>
{{partial "footer.html" .}}
</div>
{{end}}
</body>
</html>

View file

@ -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)
})
}
})