Skip to content

🌱 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.

License

Notifications You must be signed in to change notification settings

semanticdata/forgetful-notes

Β 
Β 

Repository files navigation

🌱 Forgetful Notes

code size repository size commits last commit is website up?

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.

Github Pages Vercel

✨ Features

  • βœ… Fast Natural-Language Search
  • βœ… Bidirectional Backlinks
  • βœ… Floating Link Previews
  • βœ… Admonition-style Callouts
  • βœ… Markdown Links and Wikilinks Support
  • βœ… Latex Support

⚑ Quick start

1. Clone repo

git clone https://github.com/semanticdata/forgetful-notes.git

2. Install dependencies

pnpm install

3. Run the project locally

pnpm start

πŸ‘¨πŸΌβ€πŸ’» Useful Commands

Update Quartz

npm run update

Sync changes

npm run sync

Read about a command

npx quartz <command> --help

🎨 Customization

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

πŸ› οΈ Technology

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.

πŸ”€ Workflows

πŸ”¨ Build only

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

πŸš€ Build and Deploy

# 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

Β© License

Source code in this repository is available under the MIT License.

About

🌱 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.

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • TypeScript 55.2%
  • Markdown 35.5%
  • SCSS 5.6%
  • JavaScript 3.7%