Commit graph

12 commits

Author SHA1 Message Date
b303f497fa fix: move random_article plugin into tracked lib/ directory
pelican-plugins/ lives in .gitignore so the random_article plugin
never reached the build server after cleanup. Moved to lib/ which
already serves as a PLUGIN_PATHS entry. Removed the os.path.exists
check that caused the plugin to skip all articles when the generator
ran before article directories existed in output.
2026-03-19 08:40:07 -04:00
e9e643243c Fix llms.txt: recent articles from blog.json, correct JSON Blog description 2026-01-26 08:35:11 -05:00
3f26393bce Add cover letter format, llms.txt enhancements & Phantom/Solflare applications
- CLAUDE.md: Add cover letter RST format guide
- Makefile: Use cover-letter.style for PDF generation
- lib/generate_llms_txt.py: Add contact, payment, software, ML expertise & commission sections
- New cover letters: Phantom Backend (Money Movement), Solflare Backend Developer
- cover-letter.style: rst2pdf styling for clean PDF output
2026-01-26 08:19:50 -05:00
e1fdae237e Generate index-slim.md without metadata for blog.json
- rst2md.py now creates both index.md (with metadata) and index-slim.md (clean)
- generate_jsonblog.py references index-slim.md for clean content
- Fixes "Error: No content found" in blog viewer
- strip_pelican_metadata() removes title and metadata fields
2026-01-20 06:47:11 -05:00
d8cf83e051 Switch blog.json from embedded content to content_url links
Changes blog.json generation to link to hosted markdown files instead of
embedding full content. Each post now includes a content_url field pointing
to {site_url}/{slug}/index.md. This significantly reduces blog.json file
size while maintaining full content access via standard HTTP requests.

Updated README.rst to document the new linking behavior & how blog.json works.
2026-01-20 03:21:19 -05:00
01b1c2056d Use Markdown content from index.md in blog.json instead of HTML
Updated generate_jsonblog.py to:
- Load Markdown content from output/<slug>/index.md files
- Set content_type: 'markdown' for each post
- Fall back to plain text if index.md not found

This ensures blog.json contains native Markdown content converted
from RST via pandoc, rather than stripped HTML from the Atom feed.

Works with the build order in make formats:
1. rst2md converts RST to Markdown
2. jsonblog reads the Markdown files
3. blog.json contains proper Markdown with content_type set

Result: 100/100 posts now have Markdown content with content_type field.
2026-01-19 15:05:20 -05:00
7c91647a55 Add lib/ format generation scripts for agent-friendly formats
- lib/rst2md.py - RST to Markdown converter using pandoc
- lib/generate_jsonfeed.py - JSON Feed v1.1 generator
- lib/generate_jsonblog.py - JSON Blog format (jsonblog.dev)
- lib/generate_plaintext.py - HTML to plain text converter
- lib/generate_llms_txt.py - AI agent onboarding file

These scripts generate multiple formats for AI/LLM consumption:
- blog.json at root (entire blog in one file)
- feeds/all.json (JSON Feed format)
- llms.txt (onboarding documentation)
- index.md (Markdown versions)
- index.txt (plain text versions)
2026-01-19 14:36:20 -05:00
71c8d78853 Move strip_toc_summary plugin to lib/ directory
The pelican-plugins/ directory is gitignored, so moved the plugin
to lib/ which is tracked. Updated PLUGIN_PATHS to include lib/.

This plugin provides the strip_anchors Jinja2 filter that removes
TOC divs and toc-backref anchor links from article summaries on
the homepage, preventing broken anchor links in excerpts.
2025-10-13 09:46:25 -04:00
35606a10b5 move some libs to python3
modified:   lib/liblinkpeek.py
	modified:   lib/rst_linkpeek.py
2020-09-01 21:36:36 -04:00
2e223efde9 modified: liblinkpeek.py
modified:   rst_linkpeek.py
2017-11-18 13:30:51 -05:00
31675ea1fb modified: .gitignore
modified:   content/pages/about.rst
	modified:   lib/rst_linkpeek.py
2016-06-09 19:16:54 -04:00
27ae7689b4 renamed: plugins/__init__.py -> lib/__init__.py
renamed:    plugins/liblinkpeek.py -> lib/liblinkpeek.py
	renamed:    plugins/rst_linkpeek.py -> lib/rst_linkpeek.py
	modified:   pelicanconf.py
2016-05-24 18:15:09 -04:00