dotfiles/modules/home/programs/nvim/NOTES.md

2 KiB

Notes authoring in Neovim

This module provides a Neovim interface for the personal website's public Notes workflow. It is a native Lua integration and does not add a third-party plugin.

The website repository remains the source of truth for Entry creation, validation, publication timestamps, media conversion, and builds. Neovim only calls the existing Bun scripts.

Requirements

  • The website repository is available at ~/Development/MyWeb/magnum-opus/main.
  • direnv is installed and the website .envrc is allowed.
  • The website development shell provides Bun.

Set RASYIDANAF_SITE_ROOT before starting Neovim to use another checkout:

export RASYIDANAF_SITE_ROOT=/path/to/rasyidan-personal-web

Commands and mappings

The Notes group uses the local leader (\).

Command Mapping Action
:NotesNewLog \nl Prompt for an optional title and tags, create a Log draft, and open it
:NotesNewNote \nn Prompt for a required title and optional tags, create a Note draft, and open it
:NotesPublish \np Save and publish the current Entry after confirmation
:NotesValidate \nv Validate public Notes metadata, routes, lifecycle, tags, and media
:NotesBuild \nb Run the complete production build

NotesPublish accepts only Markdown files inside vault/public-notes/. It does not commit, push, or deploy. Review the Jujutsu diff and push the website repository separately.

Normal workflow

  1. Press \nl for a Log or \nn for a titled Note.
  2. Write and save the Entry.
  3. Press \np and confirm publication.
  4. Press \nv, then \nb.
  5. Review, describe, and push the website change with Jujutsu.

The publication command reloads the current buffer after the repository script writes publishedAt and processes referenced images.

Apply the configuration

Home Manager owns the Neovim configuration. Apply dotfiles changes with:

cd ~/Development/dotfiles
sudo darwin-rebuild switch --flake .#macbook-pro