惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
S
Securelist
V
Vulnerabilities – Threatpost
C
Cyber Attacks, Cyber Crime and Cyber Security
Schneier on Security
Schneier on Security
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
Hacker News - Newest:
Hacker News - Newest: "LLM"
P
Palo Alto Networks Blog
T
Troy Hunt's Blog
SecWiki News
SecWiki News
Security Archives - TechRepublic
Security Archives - TechRepublic
T
The Blog of Author Tim Ferriss
Project Zero
Project Zero
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
F
Full Disclosure
阮一峰的网络日志
阮一峰的网络日志
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Attack and Defense Labs
Attack and Defense Labs
Know Your Adversary
Know Your Adversary
WordPress大学
WordPress大学
PCI Perspectives
PCI Perspectives
N
News | PayPal Newsroom
The Last Watchdog
The Last Watchdog
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
CERT Recently Published Vulnerability Notes
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
云风的 BLOG
云风的 BLOG
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
I
InfoQ
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
U
Unit 42
腾讯CDC
小众软件
小众软件
V2EX - 技术
V2EX - 技术
罗磊的独立博客
Cloudbric
Cloudbric
Recorded Future
Recorded Future
IT之家
IT之家
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com

Stonecharioteer on Tech

I Traced My Traffic Through a Home Tailscale Exit Node What Was I Reading Last? In Three Not-So-Easy Pieces Dogfooding Is Hard Code blocks in your books, finally GoForGo v0.9.0 Merrilin - We built an app to read books I use a Macbook now Data Structures & Algorithms - Preparing for Interviews Using a local DNS namespace for local service discovery Direction KOllector - Publishing KOReader Highlights gbt: branches touched in the last 24 hours A Soiree into Symbols in Ruby Some Smalltalk about Ruby Loops Ruby Blocks Returning from Ruby Blocks, Procs and Lambdas My Linux Laptop Finally Works: How Claude Helped Me Fix Years of Annoyances TIL: Watchexec - Modern File Watching for Development Workflows A Less Busy Mind GoForGo - Learn Go through live examples Migrating My Old Blog to Hugo with Claude The Qtile Window Manager: A Python-Powered Tiling Experience Read the RFCs that Built the Internet Py-x-Protobuf - Or How I Learned to Stop Worrying and Love Protocol Buffers Python Reverse a List New Beginnings Leaving ChainSafe Systems Screen Lock for Cinnamon Desktop using Zenity and Terminal Commands Crews Not Teams A System for Getting Better at LeetCode So Far So Rust Retrying HTTP Requests with Rust A Primer on Control Charts Learning Rust Explicit is Better than Implicit: Rust for Pythonistas Using Custom Delimiters in Jinja Templates TIL: Creating Fixed Length Iterables in Python Documentation Without Assumption Vagrant Python - A Reflection in 2022 Learning Golang No, A Virtual Machine Is Not Enough: Why Developers Need Native Linux Empathy in Tech For Those Who Came in Late A Weekend With PostgreSQL TIL: Gooey and Python Fire for Quick GUIs and CLIs TIL: 2ality - Dr. Axel Rauschmayer's JavaScript Blog TIL: MassDNS - High-Performance Bulk DNS Lookups TIL: Matomo Analytics, Google Tech Writing, Memory Programming, and NES TV Signals TIL: MontyDB - MongoDB Implemented in Python Returning to the Craft of Programming TIL: CPUFetch, OneFetch, and Learn CSS TIL: DNS Performance Testing and Pi-hole with Unbound TIL: Eli Bendersky's Blog, Awesome By Example, NoCoDB, and Martin Kleppmann TIL: CRDTs, Extreme HTTP Performance, and BYTEPATH Game TIL: AutoInvent, ASGI, Python Packaging, RAPIDS GPU Computing, and FlaskCon TIL: MangaDesk - Terminal Client for MangaDex TIL: McFly - Smart Shell History Search TIL: Siege Load Testing and Awesome FastAPI Resources TIL: Ventoy Bootable USB and Justniffer Network Analysis TIL: CLI Code Review, Git Split Diffs, and Internal Combustion Engine TIL: Benford's Law, Web Security Headers, Event Sourcing, and Mozilla Security Guidelines How to Write Documentation - The README.md File The Importance of Documentation TIL: NNgroup UX Research, SponsorBlock, and Labella Python Library TIL: The Little Book of Rust Macros and Rust Performance Book TIL: Git-Bug Distributed Issue Tracker and Omni Kubernetes Monitoring TIL: Zellij - Modern Terminal Multiplexer TIL: How Discord Handles 2.5 Million Concurrent Voice Users TIL: Volumio - The Audiophile Music Player TIL: Areopagitica - Milton's Defense of Free Speech TIL: Fast Node Manager, Zoxide Smart CD, Technical Writing, PyO3, and Qubes OS TIL: Slurm Workload Manager for HPC Clusters TIL: Data Visualization Guide and Oso Authorization Academy TIL: CORS Deep Dive, Piku Tiny PaaS, Rust Strings, and Deno Standard Library TIL: Raspberry Pi OS Development, Vim Beginner Guide, Password Management, and QueryBook TIL: uBlock Origin Performance Optimization on Firefox TIL: Breaking PostgreSQL at Scale and LeetCode Problem Patterns TIL: Awesome Tmux Resources for Terminal Multiplexing TIL: Grit - A Multitree-Based Personal Task Manager TIL: Lens 4.2 Kubernetes IDE, Shell Scripting Guide, and Dark HTTP Server Do The Job You Hate So You Won't Hate The Job You Love TIL: Innernet VPN Solution and NoteCalc Calculator App TIL: Argo CD for GitOps and Lens Kubernetes IDE TIL: Modern Rust CLI Tools - System Monitoring, HTTP Requests, and DNS TIL: tz - A Time Zone Helper Tool TIL: Distributed Systems Education, Fallacies, and Self-Hosted Internet Archiving TIL: Real-Time Voice Cloning Technology TIL: ChartMuseum for Helm, AMD's Corporate Journey, and Kubernetes Pod Scaling TIL: Docker and Kubernetes Tools - Whaler, Descheduler, and Dive TIL: Post-Mortem Collection, Terminal Plotting, and Technical Twitter TIL: Dark Mode Toggle Web Component by Google Chrome Labs TIL: Python eval(), exec(), and compile() Functions TIL: Camelot PDF Tables, PostgreSQL Row Level Security, Zerodha Varsity, and Write Yourself a Git TIL: fuser Command for Process and File Investigation TIL: i Hate Regex - The Ultimate Regex Cheat Sheet TIL: Dolt - Git for Data and Database Version Control TIL: x86 Assembly Programming and SafeEyes Break Reminder TIL: Comprehensive Distributed Systems Reading List TIL: Cosmopolitan C Library, Distributed Systems Book, High Performance Browser Networking, and Rust Roguelike Tutorial
TIL: ABlog for Sphinx - Documentation as a Blog Platform
2021-02-25 · via Stonecharioteer on Tech

ABlog for Sphinx — ABlog

Sphinx extension that adds blogging capabilities to documentation sites:

What is ABlog:

  • Sphinx Extension: Extends Sphinx documentation generator with blog features
  • Documentation + Blog: Combine technical documentation with blog posts
  • Static Site Generation: Creates fast, secure static websites
  • reStructuredText: Uses Sphinx’s native markup for content creation

Core Features:

Blog Functionality:

  • Post Organization: Chronological organization with archives
  • Categorization: Tags and categories for content organization
  • RSS/Atom Feeds: Automatic feed generation for subscribers
  • Archive Pages: Automatic generation of date-based archives

Sphinx Integration:

  • Cross-References: Link between blog posts and documentation
  • Extensions: Use other Sphinx extensions (math, diagrams, code highlighting)
  • Themes: Compatible with existing Sphinx themes
  • Search: Built-in search functionality

Content Creation:

Blog Post Structure:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
My First Blog Post
==================

:date: 2021-02-25
:tags: python, sphinx, blogging
:category: tutorials
:author: Your Name

This is the content of my blog post written in reStructuredText.

Code blocks work great:

.. code-block:: python

    def hello_world():
        print("Hello from ABlog!")

You can also include:

* Lists and tables
* Math equations via MathJax
* Cross-references to other posts
* Images and figures

Directive Usage:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
.. post:: 2021-02-25
   :tags: python, documentation
   :category: tutorials
   :author: Author Name

   Post content goes here...

.. postlist:: 5
   :category: tutorials
   :format: {title} - {date}

Configuration:

Blog Settings:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# conf.py
extensions = ['ablog']

# Blog settings
blog_title = 'My Technical Blog'
blog_baseurl = 'https://myblog.com'
blog_authors = {
    'author1': ('Full Name', 'https://example.com')
}
blog_default_author = 'author1'
blog_feed_fulltext = True  # Include full content in feeds

Post Templates:

1
2
3
4
# Automatic post templates
blog_post_pattern = 'posts/*/*'
post_auto_image = 1  # Auto-extract first image
post_auto_excerpt = 2  # Auto-generate excerpt

Advanced Features:

Archive Generation:

  • Year Archives: /2021/ shows all posts from 2021
  • Month Archives: /2021/02/ shows posts from February 2021
  • Tag Pages: /tag/python/ shows all Python-related posts
  • Category Pages: /category/tutorials/ shows tutorial posts
  • Disqus Integration: Add comments to blog posts
  • Social Sharing: Share buttons for popular platforms
  • Google Analytics: Track blog traffic and engagement
  • SEO Optimization: Meta tags and structured data

Use Cases:

Technical Blogs:

  • Developer Blogs: Personal or company technical blogs
  • Project Documentation: Combine API docs with tutorials and announcements
  • Research Journals: Academic or scientific content with proper citations
  • Open Source Projects: News, tutorials, and community updates

Content Types:

  • Tutorials: Step-by-step technical guides
  • Release Notes: Project updates and changelog posts
  • Technical Insights: Deep dives into technical topics
  • Community Content: User-contributed articles and guides

Advantages over Traditional Blogging:

Technical Content:

  • Code Syntax Highlighting: Superior code presentation
  • Mathematical Notation: LaTeX math rendering via MathJax
  • Cross-References: Link between different parts of documentation
  • Version Control: Blog content in Git with docs

Performance and Security:

  • Static Files: Fast loading, easy to cache
  • No Database: Reduced attack surface
  • CDN Friendly: Easy deployment to CDNs
  • Version Control: Track changes to blog content

Deployment Options:

Hosting Platforms:

  • GitHub Pages: Free hosting with automatic builds
  • Netlify: Advanced features like form handling
  • Read the Docs: Specialized for technical documentation
  • Custom Servers: Self-hosted solutions

Build Process:

1
2
3
4
5
6
# Local development
sphinx-build -b html . _build/html
ablog serve

# Automated deployment
ablog deploy --github-pages

Themes and Customization:

Theme Compatibility:

  • Alabaster: Clean, minimal theme
  • ReadTheDocs: Popular documentation theme
  • Bootstrap: Responsive, modern themes
  • Custom Themes: Create branded experiences

Template Customization:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!-- Custom post template -->
<article class="blog-post">
  <h1>{{ post.title }}</h1>
  <div class="post-meta">
    Posted on {{ post.date }} by {{ post.author }} in {{ post.category }}
  </div>
  <div class="post-content">{{ post.body }}</div>
  <div class="post-tags">
    {% for tag in post.tags %}
    <span class="tag">{{ tag }}</span>
    {% endfor %}
  </div>
</article>

ABlog bridges the gap between technical documentation and blogging, providing a powerful platform for developers and technical writers who want the best of both worlds - the rigor of documentation tools with the accessibility of blog platforms.