A Hugo-based personal website with integrated note-taking system that features both a chronological timeline for shorter thoughts and a separate section for longer articles.
- Dual Content Structure: Separate sections for timeline entries (short thoughts, resources) and longer articles
- Chronological Timeline: A visually appealing timeline view for shorter notes and resources
- Article Repository: Organized collection of longer, more structured content
- Custom Homepage: Showcases both timeline entries and articles
- Note Creation Tools: Command-line tools for quickly creating different types of content
- One-Step Publishing: Create content and deploy your site with a single command
Creates new notes of different types with proper formatting and metadata.
# Using the Python script directly
python new_note.py [--type TYPE] "Note Title"
# Using the shell script
./new_note.sh [--type TYPE] "Note Title"
# Using aliases (after setup)
note "Your Atomic Note Title" # Creates a note in the notes/ directory
tnote "Your Timeline Note Title" # Creates a note in the content/timeline/ directory
article "Your Article Title" # Creates an article in the content/posts/ directory
Types:
atomic
: Personal knowledge notes (default)timeline
: Short thoughts and resources for the timelinearticle
: Longer, structured content for the articles section
Automates the process of building and deploying your Hugo site to your hosting provider.
# Using the script directly
./deploy.sh [commit message]
# Using the alias
deploy "Update site with new content"
Combines note creation and site deployment into a single workflow.
# Using the script directly
./publish.sh -t [type] -m [commit message] "Note Title"
./publish.sh --deploy-only -m "Commit message"
# Using aliases
publish "Your Note Title" # Creates an article note and deploys the site
publish-article "Your Article Title" # Creates an article and deploys the site
publish-timeline "Your Timeline Note" # Creates a timeline note and deploys the site
Options:
-t, --type
: Note type (atomic, timeline, article)-m, --message
: Git commit message--deploy-only
: Only deploy the site without creating a note--no-deploy
: Only create a note without deploying the site
Formats raw text into a structured markdown note with proper metadata.
python format_transcript.py <input_file>
Splits a long text file into multiple atomic notes based on headers.
python plan_to_split_atomic.py <input_file>
Performs multi-modal search across notes using exact, fuzzy, and semantic matching.
python enhanced_search.py <query> [mode]
Modes: all, exact, fuzzy, semantic
A user-friendly command-line interface for searching through notes.
python search_cli.py [query] [-m MODE] [--preview]
Options:
-m, --mode
: Search mode (all, exact, fuzzy, semantic)--preview
: Show preview of matched files- Without query: enters interactive mode
Converts YouTube videos into searchable notes.
python youtube_to_notes.py <youtube_url>
Converts webpages into structured notes using Firecrawl.
python webpage_to_notes.py <webpage_url>
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
- Set up the note creation aliases:
chmod +x setup_note_alias.sh
./setup_note_alias.sh
source ~/.zshrc # or ~/.bashrc
- Stored in the
/notes
directory - Simple format with title and content
- Used for personal knowledge management
- Stored in the
/content/timeline
directory - Displayed in a chronological timeline on the website
- Used for shorter thoughts, resources, and discoveries
- Created with:
new_note.py --type timeline "Note Title"
ortnote "Note Title"
- Stored in the
/content/posts/{category}
directory - Used for longer, more structured content
- Displayed in the articles section of the website
- Created with:
new_note.py --type article "Article Title"
orarticle "Article Title"
Notes are stored in markdown format with appropriate frontmatter based on type:
# Note Title
Created: YYYY-MM-DD HH:MM:SS
## Content
---
title: "Note Title"
date: YYYY-MM-DD HH:MM:SS
type: "timeline"
layout: "timeline"
draft: false
tags: []
---
# Content
---
author: "Sangy"
title: "Article Title"
draft: true
date: "YYYY-MM-DD"
description: ""
tags: []
categories: []
series: []
aliases: []
cover:
image:
caption:
---
# Content
.
├── notes/ # Atomic notes directory
├── content/ # Hugo content directory
│ ├── timeline/ # Timeline notes
│ └── posts/ # Articles by category
├── layouts/ # Custom Hugo layouts
│ └── _default/ # Layout templates
├── assets/ # CSS and other assets
│ └── css/extended/ # Custom CSS
├── new_note.py # Note creation script
├── new_note.sh # Shell wrapper for note creation
├── setup_note_alias.sh # Script to set up aliases
└── other tools... # Other note management tools
- Custom Homepage: Shows both timeline entries and articles
- Timeline View: Chronological display of shorter notes
- Article Section: Organized by categories
- Responsive Design: Works well on all devices
- Tag Support: Content organized by tags
- Search Functionality: Find content easily
- Keep notes atomic - one main concept per note
- Use consistent formatting
- Add appropriate metadata and tags
- Use headers for structure
- Link related notes when possible
- Maintain regular backups
- Use the appropriate note type for your content:
- Use timeline notes for shorter thoughts and resources
- Use articles for longer, more structured content
- Use atomic notes for personal knowledge management