Commit Graph

1462 Commits

Author SHA1 Message Date
kennethreitz e2a2812939 Add folder icon to directory page H1 headings
Display a folder icon next to the H1 heading on directory listing pages
(like /photography) that don't have an index.md file. The icon is
generated based on the directory title with a unique color.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 20:14:42 -04:00
kennethreitz e7bcde2788 Add section headers for Music and Software projects 2025-10-01 20:09:10 -04:00
kennethreitz 171d2120b1 Fix shutter speed display to show fractions instead of decimals
Convert decimal shutter speeds (like 0.0333...) to proper fractions
(1/30s) for better readability in image gallery EXIF display.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:58:27 -04:00
kennethreitz 5c05d7e016 Add new photography images L1006303.jpg and L1006379.jpg to the collection 2025-10-01 15:48:28 -04:00
kennethreitz 022fc7194f Add new photography images to the collection 2025-10-01 15:47:02 -04:00
kennethreitz 2abf552386 Remove DSC00905.jpg from the photography collection 2025-10-01 15:40:25 -04:00
kennethreitz 5387f5d158 Add multiple new photography images to the repository 2025-10-01 15:39:20 -04:00
kennethreitz 71d4db055e Add PDF generation support and improve documentation
- Add WeasyPrint dependencies to Dockerfile for server-side PDF generation
- Update README with Quick Start guide for Docker and local development
- Add PDF template for article rendering
- Add error template for better error handling
- Reorganize photography into top-12 subdirectory
- Update pyproject.toml with PDF generation dependencies
- Enhance content.py with PDF rendering capabilities
- Improve directory template with gallery features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:17:43 -04:00
kennethreitz 4a6e471e78 Remove 'Formats:' label from article pages
The format badges (PDF, Markdown) are self-explanatory and don't need
an explicit label.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:16:31 -04:00
kennethreitz 527549caf8 Use folder icons for index.md directory pages
When rendering index.md files (directory pages), use
generate_folder_icon() instead of generate_unique_svg_icon() so that
directory pages like /artificial-intelligence display with folder icons
rather than regular post icons.

This creates visual consistency - directories show folder icons
everywhere they appear on the site.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:13:03 -04:00
kennethreitz 088939c475 Extract titles from index.md for folder icon generation
Updated get_directory_structure() to:
- Check for index.md in directories
- Extract H1 title from index.md when present
- Use that title for generate_folder_icon() to create unique folder
  icons based on actual directory content
- Maintain existing behavior for files

This ensures directory listings show folder icons that reflect the
actual directory title rather than just the folder name.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:12:54 -04:00
kennethreitz 2656614e75 Update API endpoints to use folder icons for directories
- /api/directory-tree now uses generate_folder_icon() for directories
- /api/icon/<path> detects directories with index.md and generates
  folder icons based on the H1 title from index.md
- Files continue to use generate_unique_svg_icon()

This ensures consistent folder icon representation across the site.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:12:42 -04:00
kennethreitz c4411e566a Fix browse dropdown by adding missing renderItems function
The browse dropdown was showing "Error loading content" because the
renderItems() function was missing. Added the function to properly
render directory tree items with icons.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 15:12:29 -04:00
kennethreitz fc030818ef Reorder themes page to prioritize algorithmic critique
Move 'The Dark Side' section (Algorithm Eats and Mental Health & Technology) to the top of the themes page for greater prominence. The urgent critique of algorithmic exploitation now leads the page before the theoretical frameworks.

New order:
1. The Dark Side (Algorithm Eats, Mental Health & Technology)
2. Consciousness & Technology
3. Human-Centered Design
4. Community & Patterns

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 11:32:35 -04:00
kennethreitz bd34eef979 Add 'Beyond Algorithm Eats' essay and integrate with theme
New essay exploring how LLMs inject cognitive patterns through conversational imprinting - the flip side of algorithmic consumption. Instead of extracting/corrupting values like social media, LLMs install new cognitive architectures at conversational speed.

Key concepts:
- Mirror neurons and conversational imprinting
- Cultural software evolution acceleration (oral → written → AI)
- Bidirectional weight transfer between human and AI cognition
- The question of who controls cognitive updates

Added to Algorithmic Critique theme as 'Beyond Extraction: Cognitive Injection' section, positioning it as the crucial pivot from understanding consumption to understanding installation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 17:05:53 -04:00
kennethreitz 8e25fa6b18 Fix code formatting in The Future of Python HTTP essay
- Add proper Python syntax highlighting
- Format code blocks with correct indentation and line breaks
- Fix typo: DevNullAdpater → DevNullAdapter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 16:59:02 -04:00
kennethreitz f5ecfc85a7 Improve post header hierarchy by moving title above metadata
Move h1 title out of post-subtitle container so it appears above the date, reading time, and theme badges for clearer visual hierarchy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 10:57:41 -04:00
kennethreitz af7ee14d0f Add dark mode enhancements and UI improvements
- Add dark mode support for text selection highlights (bright yellow with black text)
- Implement golden glow effect for sidenote highlights in dark mode
- Fix article icons appearing on sidenote links (exclude sidenote elements)
- Add dark mode styling for mobile sidenote popups
- Reduce tooltip hover delay from 800ms to 500ms
- Make sidenote highlights persistent instead of fading

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 09:43:53 -04:00
kennethreitz 456e9486bc Add Acts, Revelation, and 1 Corinthians to biblical anthology
Three major biblical books adapted for programmers:
- Acts: The spreading of clean code from localhost to production
- Revelation: Apocalyptic visions of frameworks, technical debt, and the New Jerusalem
- 1 Corinthians: Paul's letters on team divisions, love chapter for developers, and the body of the dev team

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 19:10:35 -04:00
kennethreitz d59cef2dab Refactor archive title and clean up whitespace in themes archive function 2025-09-29 16:43:16 -04:00
kennethreitz b42be29601 Add dark mode support to archive pages and new recursion essay
- Added comprehensive dark mode styling to outlines, connections, and terms archive pages
- New essay: "Conscious Recursion: When Programmers Realize They're in the Loop" exploring how code shapes consciousness and the responsibility of recognizing you're in the recursive feedback loop

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 16:27:52 -04:00
kennethreitz 56fbe7e72d Refine link preview tooltip with slide-up animation
Removed connector arrow and switched to clean slide-up animation from bottom. Faster transitions (0.08s) for snappier feel. Supports both internal and external links with fixed bottom-right positioning.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 16:16:06 -04:00
kennethreitz 5578020368 Add site-wide link preview tooltips for internal links
Hovering over internal article links now shows a preview tooltip with:
- Article icon (SVG)
- Title
- Reading time and word count
- Publication date
- First paragraph excerpt (200 chars)

Features:
- 300ms hover delay before showing
- Cached fetches for performance
- Smart positioning to stay on screen
- Dark mode support
- Excludes nav/breadcrumb links and anchor links

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 16:03:19 -04:00
kennethreitz 486182f848 Add comprehensive dark mode styling for search page
Fixed search results, metadata, snippets, and highlights being hard
to read in dark mode. Added proper styling for all search result
elements including borders, text colors, and highlighted matches.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 16:01:04 -04:00
kennethreitz a3a7de8bbe Add dark mode styling for quotes page
Fixed article links and blockquotes being hard to read in dark mode
by adding proper dark mode styles for titles, metadata, and quote blocks.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 16:00:17 -04:00
kennethreitz abde37a181 Fix Themes nav link to use /themes instead of /archive/themes
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:57:53 -04:00
kennethreitz e089f9c8f0 Add Themes link to main navigation
Added /archive/themes to the main nav alongside Home and Archive
since the themes page provides valuable content organization.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:57:35 -04:00
kennethreitz 9d4ea505b1 Add dark mode styling for Contents section in post pages
Fixed Contents section links and parent navigation being hard to read
in dark mode by adding proper dark mode styles for headers, links,
borders, and hover states.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:56:57 -04:00
kennethreitz cc6ba10a74 Add dark mode styling for article links in themes page
Fixed article links in the Contents section being hard to read in dark mode
by adding proper styling for links, link hover states, and theme counts.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:55:56 -04:00
kennethreitz 40ffbdc0a0 Add dark mode support for directory page
Fixed directory links being nearly invisible in dark mode by adding
proper dark mode styles for links, dates, borders, and navigation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:55:07 -04:00
kennethreitz 194bbe4f4e Fix dark mode toggle to properly activate light mode on dark-mode phones
Added body.light-mode class selectors with !important to override
@media (prefers-color-scheme: dark) styles when user manually toggles
to light mode on a device with dark system preference.

Changes:
- Added body.light-mode base styles in base.html
- Added light mode overrides in post.html for article titles and badges
- Added light mode overrides in archive.html and archive-by-length.html
- Added light mode overrides in search.html for input and autocomplete
- Added light mode overrides in themes.html

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:53:22 -04:00
kennethreitz a32fdc6738 Fix article titles in dark mode with manual toggle
Added body.dark-mode selectors alongside @media queries to ensure
article h1 titles display correctly when using the manual dark mode toggle.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:51:01 -04:00
kennethreitz ae25acb805 Fix homepage index links to use correct /archive/ prefix
Updated all index links (sidenotes, outlines, quotes, connections, terms, graph)
at the bottom of the homepage to point to /archive/* URLs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:50:25 -04:00
kennethreitz 087bff91d0 Add comprehensive dark mode support with manual toggle
- Added sun/moon toggle button in bottom right with 0.15 opacity when idle
- Implemented body.dark-mode class-based theming with localStorage persistence
- Added dark mode styles for archive navigation boxes and colored buttons
- Fixed themes page typography with better spacing and hierarchy
- Ensured all dropdowns and navigation elements work in dark mode
- Supports both manual toggle and system preference detection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:49:24 -04:00
kennethreitz 59e7b7c895 Enable dark mode with comprehensive styling support
- Remove forced light mode enforcement to allow system dark mode preference
- Add meta tag for proper color-scheme support (light and dark)
- Implement dark mode styles for all interactive elements:
  * Archive navigation with dark-friendly colored buttons
  * Reading time and theme badges with appropriate dark backgrounds
  * Dropdown menus (year jump, themes) with proper dark backgrounds
  * Search interface including input, autocomplete, and results
  * Fix article titles to be visible in dark mode
- Fix dropdown z-index issues and transparent backgrounds with !important
- Update colophon with accurate TufteCMS technical details
- Rename navigation from "Archives" to "Archive"
- Ensure all colored elements maintain visual hierarchy in dark mode

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:24:00 -04:00
kennethreitz 77cfa1e424 Add theme detection, reading time badges, and mobile responsiveness
- Add reading time badges to post headers with proper spacing
- Implement theme detection for articles with dropdown navigation
- Add "Jump to Year" dropdown button on archive page
- Enable auto-expansion of themes when navigating via anchor links
- Rename "Archive" to "Archives" in main navigation
- Apply colored navigation styling to archive-by-length page
- Add comprehensive mobile responsiveness for iPhone:
  * Responsive badges and dropdowns
  * Proper touch targets and spacing
  * Mobile-optimized autocomplete and search results
  * Adjusted font sizes and padding for mobile
- Fix theme detection to work with both index.md and direct .md files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 15:13:10 -04:00
kennethreitz 9061a6e10b Enhance theme handling and navigation: calculate article themes, update theme links with styles, and add smooth scrolling for theme sections. 2025-09-29 15:09:47 -04:00
kennethreitz 120a78cf0c Add unique IDs to theme sections for improved accessibility and navigation 2025-09-29 15:04:32 -04:00
kennethreitz b74ec4a6e8 Add themes dropdown functionality with click event handling 2025-09-29 15:04:28 -04:00
kennethreitz e05a1b8a37 Add theme calculation and dropdown for articles; enhance archive navigation 2025-09-29 15:04:25 -04:00
kennethreitz c6d25c9773 Enhance archive navigation and search functionality
- Add colored navigation buttons (purple Random, red Directory, yellow Search, green Themes)
- Implement autocomplete in search with SVG icons and keyboard navigation
- Add search term highlighting in results and autocomplete
- Include SVG icons in search results
- Add theme descriptions with collapsible article lists
- Improve archive title and navigation visibility
- Clean up Flask-Sockets essay code formatting
- Move sort toggle below navigation on archive pages
- Add /api/blog endpoint for autocomplete data

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:59:42 -04:00
kennethreitz 0612601037 Add directory listings to index pages and update navigation
- Show directory contents below rendered index.md on pages like /software/
- Add /directory link to archive navigation
- Remove SVG icons from archive-by-length (handled by JS)
- Add generated icons to directory listings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:35:37 -04:00
kennethreitz d9fcb7d073 Add archive by reading time/length
Add /archive/by-length route that groups essays by reading time (Quick/Short/Medium/Long reads). Shows reading time, word count, and date for each essay. Update archive navigation to include new sorting option.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:23:38 -04:00
kennethreitz bd5b59601c Add note about hybrid repository structure
Clarify that repo contains both TufteCMS framework and personal website content.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:20:30 -04:00
kennethreitz a04f2ea95f Fix Dockerfile to copy tuftecms package before install
Copy tuftecms directory before install step since pyproject.toml force-includes templates and static directories.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:14:55 -04:00
kennethreitz 6dcad31440 Remove /games easter egg
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:12:24 -04:00
kennethreitz 64194a020c Add hidden /games easter egg and fix Dockerfile
Add /games route with three inline JavaScript games (Snake, Pong, Breakout). Fix Dockerfile to copy README.md before install step since pyproject.toml references it.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:11:14 -04:00
kennethreitz f27ed11b2c Rebrand as TufteCMS and prepare for PyPI distribution
Rewrite README to focus on TufteCMS as a standalone CMS package. Update pyproject.toml with proper metadata, classifiers, and build configuration to include templates and static files in distribution.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 14:07:00 -04:00
kennethreitz 5421724013 Complete TODO items in TufteCMS
Implement HTML sitemap generation with clean template design, add cache debugging endpoint with comprehensive stats, and implement themes functionality with pattern-based content categorization.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 13:58:09 -04:00
kennethreitz 2ee4b57d77 Clean up dependencies and move docs to root directory
- Reduced dependencies from 13 to 5 packages (66% reduction)
- Removed unused packages: pydantic, fastapi, uvicorn, pygments, boto3, pillow, background, markdown
- Kept essential packages: flask, gunicorn, gevent, mistune, pyyaml
- Moved docs/ from data/docs/ to root directory for better organization
- Updated all internal documentation links to reflect new location

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 04:54:57 -04:00