Skill detail

essay-publishing-pipeline

Focuses on formatting, publishing, and distribution after an essay is drafted.

MatchPossibleReviewed for essay writing
Sourceorganvm-iv-taxis/a-i--skillsExternal source
Reported installs13Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from review. The external source remains the complete and most current version.

---
name: essay-publishing-pipeline
description: Publish essays and long-form content through a structured pipeline from draft to distribution. Covers markdown-to-HTML conversion, metadata management, cross-posting strategies, and RSS/Atom feed generation. Triggers on essay publishing, content pipeline, or blog deployment requests.
license: MIT
complexity: intermediate
time_to_learn: 30min
tags:
  - publishing
  - essays
  - content-pipeline
  - markdown
  - rss
governance_phases: [build, prove]
organ_affinity: [organ-v]
triggers: [user-asks-about-publishing, context:essay-publishing, context:blog-deployment, context:content-pipeline]
complements: [creative-writing-craft, content-distribution, technical-analytical-writing]
---

# Essay Publishing Pipeline

Move written content from draft through editing, formatting, and multi-platform distribution.

## Pipeline Architecture

```
Draft → Edit → Format → Metadata → Build → Publish → Distribute
  ↑                                                      │
  └──────────── Feedback Loop ───────────────────────────┘
```

### Stage Definitions

| Stage | Input | Output | Tools |
|-------|-------|--------|-------|
| Draft | Ideas, notes | Raw markdown | Editor, voice notes |
| Edit | Raw markdown | Polished markdown | Linter, peer review |
| Format | Polished markdown | Structured content | Frontmatter, templates |
| Metadata | Structured content | Enriched content | Tags, categories, SEO |
| Build | Enriched content | HTML/PDF output | SSG, Pandoc |
| Publish | Built output | Live content | Deploy, CMS API |
| Distribute | Published URL | Cross-posts | RSS, social, newsletter |

## Content Structure

### Markdown with Frontmatter

```markdown
---
title: "On the Architecture of Automated Systems"
subtitle: "Why eight organs beat one monolith"
author: "Author Name"
date: 2026-03-20
updated: 2026-03-20
status: published
tags: [architecture, automation, organvm]
category: systems-thinking
series: "Orchestration Essays"
series_order: 3
abstract: >
  A 2000-word exploration of why modular organ-based
  architecture outperforms monolithic automation.
canonical_url: "https://example.com/essays/architecture-of-automated-systems"
---

# On the Architecture of Automated Systems

Opening paragraph that hooks the reader...
```

### Essay Taxonomy

| Field | Purpose | Example |
|-------|---------|---------|
| `status` | Workflow state | draft, review, published, archived |
| `tags` | Topic classification | [architecture, automation] |
| `category` | Primary category | systems-thinking |
| `series` | Multi-part grouping | "Orchestration Essays" |
| `canonical_url` | SEO canonical | Primary publication URL |
| `abstract` | Summary for feeds/cards | 1-2 sentence summary |

## Markdown Processing

### Conversion Pipeline

```bash
# Markdown → HTML with Pandoc
pandoc essay.md \
  --from markdown+yaml_metadata_block \
  --to html5 \
  --template template.html \
  --highlight-style tango \
  --toc \
  --toc-depth=2 \
  --output essay.html

# Markdown → PDF
pandoc essay.md \
  --pdf-engine=weasyprint \
  --css style.css \
  --output essay.pdf
```

### Static Site Generator Integration

```python
# Build script for essay collection
from pathlib import Path
import yaml
import markdown

def build_essays(source_dir: str, output_dir: str):
    essays = []
    for md_file in sorted(Path(source_dir).glob("*.md")):
        text = md_file.read_text()
        frontmatter, content = text.split("---\n", 2)[1:]
        meta = yaml.safe_load(frontmatter)
        if meta.get("status") != "published":
            continue
        html = markdown.markdown(content, extensions=["fenced_code", "tables", "toc"])
        essays.append({"meta": meta, "html": html, "slug": md_file.stem})

    for essay in essays:
        output = Path(output_dir) / f"{essay['slug']}/index.html"
        output.parent.mkdir(parents=True, exist_ok=True)
        output.write_text(render_template(essay))

    build_index(essays, output_dir)
    build_rs
Read the full source on GitHub (opens external page)
Context

Related work