Forgetful Notes is 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.
- β Fast Natural-Language Search
- β Bidirectional Backlinks
- β Floating Link Previews
- β Admonition-style Callouts
- β Markdown Links and Wikilinks Support
- β Latex Support
git clone https://github.com/semanticdata/forgetful-notes.git
pnpm install
pnpm start
npm run update
npm run sync
npx quartz <command> --help
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.
Used in: | Font Family | Previous Font |
---|---|---|
Headers | Bitter | Schibsted Grotesk |
Body | Poppins | Source Sans Pro |
Code | Fira Mono | IBM Plex Mono |
The site uses various technologies cobbled together. Here's a few of them:
- Quartz: a fast, batteries-included static-site generator.
- Prettier: an opinionated code formatter.
- Sass: makes CSS fun!
- TypeScript: superset of JavaScript that compiles to clean JavaScript output.
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.
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install Dependencies
run: npm i
- name: Build Quartz
run: npx quartz build
# Using npm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install Dependencies
run: npm i
- name: Build Quartz
run: npm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
# Using pnpm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PNPM
uses: pnpm/action-setup@v3
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build Quartz Site
run: pnpm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
id: deployment
# Using Bun (my preferred method)
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install Dependencies
run: bun install
- name: Build Quartz
run: npx quartz build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public
deploy:
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Source code in this repository is available under the MIT License.