5.7 KiB
🌱 Forgetful Notes
This repository holds the source code for Forgetful Notes—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 and Obsidian. You can read the Documentation, and join the Discord Community.
Contents
Show/Hide
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, hosted on GitHub, deployed with GitHub Pages, and facilitated by the GitHub Publisher plugin for Obsidian.
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, Hugo, MkDocs, Zola, and most recently 11ty.
Technology
All content for the site is written in Markdown within Obsidian—an extensible, flexible note-taking app. To export the notes from Obsidian, I rely on the GitHub Publisher plugin.
The source code is hosted in GitHub. From here we use GitHub Actions to build and deploy the site to GitHub Pages.
Useful Commands
# 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 <command> --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 | Schibsted Grotesk |
| Body | Bitter | Source Sans Pro |
| Code | Fira Mono | IBM Plex Mono |
Folder Structure
Show/Hide
.
├── .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.