# π± Forgetful Notes
    
This repository holds the source code for [Forgetful Notes](https://forgetfulnotes.com)βmy digital garden of knowledge. It serves as a platform for my learning and creative endeavours. A space for thinking through, building upon, and coming back to.
It is powered by [Quartz](https://github.com/jackyzha0/quartz/) and [Obsidian](https://obsidian.md). You can read the [Documentation](https://quartz.jzhao.xyz/), and join the [Discord Community](https://discord.gg/cRFFHYye7t).
## Contents
Show/Hide
- [π± Forgetful Notes](#-forgetful-notes)
- [Contents](#contents)
- [Features](#features)
- [Background](#background)
- [Technology](#technology)
- [Useful Commands](#useful-commands)
- [Customization](#customization)
- [Folder Structure](#folder-structure)
- [License](#license)
## Features
- Fast Natural-Language Search
- Bidirectional Backlinks
- Floating Link Previews
- Admonition-style Callouts
- Markdown Links and Wikilinks Support
- Latex Support
## Background
Forgetful Notes is created using [Quartz](https://github.com/jackyzha0/quartz), hosted on [GitHub](https://github.com/), deployed with [GitHub Pages](https://pages.github.com/), and facilitated by the GitHub [Publisher](https://github.com/ObsidianPublisher) plugin for [Obsidian](https://obsidian.md/).
The website has gone through many changes. I have not been shy about moving from technology to technology as I learn new things. Coming across the world of _Static Site Generators_ was a game changer. I have ran my notes through [Jekyll](https://jekyllrb.com/), [Hugo](https://gohugo.io/), [MkDocs](https://squidfunk.github.io/mkdocs-material/), [Zola](https://www.getzola.org/), and most recently [11ty](https://11ty.dev).
## Technology
All content for the site is written in _Markdown_ within [Obsidian](https://obsidian.md/)βan extensible, flexible note-taking app. To export the notes from Obsidian, I rely on the [GitHub Publisher](https://github.com/ObsidianPublisher) plugin.
The [source code](https://github.com/semanticdata/forgetful-notes) is hosted in [GitHub](https://github.com/). From here we use [GitHub Actions](https://github.com/features/actions) to build and deploy the site to [GitHub Pages](https://pages.github.com/).
## Useful Commands
```sh
# Install Dependencies
npm install
# Update Dependencies
npm update
# Start Local Server
npm start
# Update Quartz
npm run update
# Sync the Repo
npm run sync
# Build Only
npm run build
# Find Help
npx quartz --help
```
## Customization
### Stylesheets
You can add custom CSS code within `/quartz/styles/custom.scss`. You will then need to uncomment line 4 of `/quartz/styles/base.scss` to have it take effect.
### Fonts
| Used in: | Font Family | Previous Font |
| --- | :-: | :-: |
| Headers | [Bitter](https://fonts.google.com/specimen/Bitter) | [Schibsted Grotesk](https://fonts.google.com/specimen/Schibsted+Grotesk) |
| Body | [Bitter](https://fonts.google.com/specimen/Bitter) | [Source Sans Pro](https://fonts.google.com/specimen/Source+Sans+3) |
| Code | [Fira Mono](https://fonts.google.com/specimen/Fira+Mono) | [IBM Plex Mono](https://fonts.google.com/specimen/IBM+Plex+Mono) |
## Folder Structure
Show/Hide
```plaintext
.
βββ .github/
β βββ workflows/
β βββ build.yml
β βββ deploy.yml
βββ content/
β βββ notes.md
β βββ pages.md
β βββ ...
βββ docs/
β βββ documentation.md
β βββ ...
βββ quartz/
β βββ cli/
β β βββ args.js
β β βββ constants.js
β β βββ handlers.js
β β βββ helpers.js
β βββ components/
β β βββ pages/
β β βββ scripts/
β β βββ styles/
β β βββ Backlinks.tsx
β β βββ Explorer.tsx
β β βββ ...
β βββ plugins/
β β βββ emitters/
β β βββ filters/
β β βββ transformers/
β β βββ index.ts
β β βββ types.ts
β β βββ vfile.ts
β βββ processors/
β β βββ emit.ts
β β βββ filter.ts
β β βββ parse.ts
β βββ static/
β β βββ favicon.ico
β β βββ site.manifest
β β βββ ...
β βββ styles/
β β βββ base.scss
β β βββ callouts.scss
β β βββ custom.scss
β β βββ syntax.scss
β β βββ variables.scss
β βββ util/
β β βββ theme.ts
β β βββ jsx.tsx
β β βββ ...
β βββ bootstrp.cli.mjs
β βββ bootstrap-worker.njs
β βββ build.ts
β βββ cfg.ts
β βββ worker.ts
βββ .gitattributes
βββ .gitignore
βββ .npmrc
βββ .prettierignore
βββ .prettierrc
βββ Dockerfile
βββ LICENSE
βββ README.md
βββ globals.d.ts
βββ index.d.ts
βββ package-lock.json
βββ package.json
βββ quartz.config.ts
βββ quartz.layout.ts
βββ screenshot.png
βββ tsconfig.json
```
## License
Source code in this repository is available under the [MIT License](LICENSE).