<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Redaction-technique.org</title><description>Technical writing, docs-as-code, DITA, and AI-assisted documentation by Olivier Carrère.</description><link>https://redaction-technique.org/</link><language>en</language><atom:link href="https://redaction-technique.org/rss.xml" rel="self" type="application/rss+xml"/><item><title>You Probably Don’t Need a CMS: Building a Lightweight Admin with Git and Astro</title><link>https://redaction-technique.org/blog/lightweight-cms-git-astro/</link><guid isPermaLink="true">https://redaction-technique.org/blog/lightweight-cms-git-astro/</guid><description>Most of a small organization’s website barely changes. This is an argument for building the smallest editing interface it actually needs, using Astro, Git, YAML, and a small admin layer instead of a full CMS.</description><pubDate>Tue, 08 Sep 2026 08:00:00 GMT</pubDate><category>astro</category><category>wordpress</category><category>cms</category><category>git</category><category>headless-cms</category><category>vercel</category></item><item><title>AI will soon replace GUIs: rebuilding an InDesign leaflet through conversation, not clicks</title><link>https://redaction-technique.org/blog/ai-will-soon-replace-guis/</link><guid isPermaLink="true">https://redaction-technique.org/blog/ai-will-soon-replace-guis/</guid><description>A GUI hides complex code behind menus and drag handles you operate by hand. AI hides the same complexity behind a conversation. Recreating a hand-built InDesign leaflet as a YAML-to-LaTeX pipeline: abandoned in 2025 as beyond the time I could afford: is what made the difference concrete.</description><pubDate>Tue, 01 Sep 2026 10:00:00 GMT</pubDate><category>ai</category><category>docs-as-code</category><category>latex</category><category>yaml</category><category>claude</category><category>human-in-the-loop</category></item><item><title>Structured authoring’s hidden bill: when DITA XML pays off, and when it doesn’t</title><link>https://redaction-technique.org/blog/structured-authoring-hidden-bill-dita/</link><guid isPermaLink="true">https://redaction-technique.org/blog/structured-authoring-hidden-bill-dita/</guid><description>DITA XML can shrink the volume a technical writer creates, translates, and maintains: and a firewall vendor once got its documentation praised by the press because of it. But the productivity comes with a complexity bill. Here’s where structured authoring earns its keep, and where it’s overkill.</description><pubDate>Tue, 25 Aug 2026 10:00:00 GMT</pubDate><category>dita-xml</category><category>structured-authoring</category><category>single-source-of-truth</category><category>technical-writing</category><category>i18n</category><category>structured-content</category><category>content-reuse</category></item><item><title>Three levels of technical documentation: wasteland, English garden, French garden</title><link>https://redaction-technique.org/blog/three-levels-of-technical-documentation/</link><guid isPermaLink="true">https://redaction-technique.org/blog/three-levels-of-technical-documentation/</guid><description>Technical documentation is like a garden, and it grows in three stages. The wasteland has no process and no owner. The English garden is cultivated but informal. The French garden is structured and deliberate. Knowing which one you’re standing in tells you what to fix next: and what not to.</description><pubDate>Tue, 18 Aug 2026 10:00:00 GMT</pubDate><category>technical-writing</category><category>structured-authoring</category><category>docs-as-code</category><category>content-strategy</category></item><item><title>RGB to CMYK in Python: Pillow, LittleCMS, and the principle of checking without faking</title><link>https://redaction-technique.org/blog/rgb-to-cmyk-python/</link><guid isPermaLink="true">https://redaction-technique.org/blog/rgb-to-cmyk-python/</guid><description>The prepare_images.py walkthrough: converting every source image to CMYK using the FOGRA39 ICC profile via Pillow and LittleCMS, with black-point compensation. Resolution is checked at placed size: never faked, never upscaled.</description><pubDate>Tue, 11 Aug 2026 10:00:00 GMT</pubDate><category>docs-as-code</category><category>latex</category><category>automation</category></item><item><title>The soft hyphen (U+00AD): the invisible character that breaks PDF text extraction</title><link>https://redaction-technique.org/blog/soft-hyphen-u00ad/</link><guid isPermaLink="true">https://redaction-technique.org/blog/soft-hyphen-u00ad/</guid><description>It’s invisible on screen. It prints correctly. But when text is extracted from the PDF — by an accessibility checker, a search engine, or a copy-paste — U+00AD surfaces as a garbage character between syllables. Here’s what it is, where it comes from, and how to find it.</description><pubDate>Tue, 04 Aug 2026 10:00:00 GMT</pubDate><category>typography</category><category>latex</category><category>docs-as-code</category><category>accessibility</category><category>pdf-ua</category></item><item><title>One source, three languages: the strict facts-vs-display-strings split</title><link>https://redaction-technique.org/blog/one-source-three-languages/</link><guid isPermaLink="true">https://redaction-technique.org/blog/one-source-three-languages/</guid><description>events.yaml holds no labels. traduction.yaml holds no facts. The generator resolves them at build time with --lang fr, --lang en, or --lang es. What enforcing this constraint looks like in practice, and why the discipline is worth the friction it creates.</description><pubDate>Tue, 28 Jul 2026 10:00:00 GMT</pubDate><category>docs-as-code</category><category>yaml</category><category>single-source-of-truth</category><category>automation</category><category>structured-content</category></item><item><title>Reliability vs. latency: running Claude through the CLI so it can fix its own mistakes</title><link>https://redaction-technique.org/blog/reliability-vs-latency-claude-cli/</link><guid isPermaLink="true">https://redaction-technique.org/blog/reliability-vs-latency-claude-cli/</guid><description>Claude’s LaTeX output frequently didn’t compile. The fix wasn’t to prompt better — it was to close the feedback loop. What looked like a reliability problem turned out to be a latency problem.</description><pubDate>Tue, 21 Jul 2026 10:00:00 GMT</pubDate><category>ai</category><category>latex</category><category>automation</category><category>claude</category><category>human-in-the-loop</category></item><item><title>Persona prompting: you’re an experienced typographer, check this before printing</title><link>https://redaction-technique.org/blog/persona-prompting-typographer/</link><guid isPermaLink="true">https://redaction-technique.org/blog/persona-prompting-typographer/</guid><description>The same PDF, two different prompts. &apos;Is this well laid out?&apos; returned vague positivity. &apos;You’re an experienced typographer, check this before printing’ returned a structured technical review. The before/after register change is a clean, demonstrable lesson.</description><pubDate>Tue, 14 Jul 2026 10:00:00 GMT</pubDate><category>ai</category><category>prompting</category><category>typography</category><category>human-in-the-loop</category></item><item><title>PDF/X-4 from LuaLaTeX without Ghostscript: TrimBox, BleedBox, FOGRA39, and the pdfx package</title><link>https://redaction-technique.org/blog/pdfx4-lualatex-without-ghostscript/</link><guid isPermaLink="true">https://redaction-technique.org/blog/pdfx4-lualatex-without-ghostscript/</guid><description>Producing a PDF/X-4 press-ready file from LuaLaTeX without touching Ghostscript: the pdfx package, TrimBox/BleedBox geometry in points, FOGRA39 OutputIntent, CMYK-only color discipline, and XMP metadata — everything a print shop will verify.</description><pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate><category>latex</category><category>docs-as-code</category><category>typography</category><category>accessibility</category></item><item><title>Non-blocking preflight, or: a build that always produces a PDF</title><link>https://redaction-technique.org/blog/non-blocking-preflight-build-always-produces-pdf/</link><guid isPermaLink="true">https://redaction-technique.org/blog/non-blocking-preflight-build-always-produces-pdf/</guid><description>One hard stop, five soft failures, a renamed file, and a report alongside it. The design philosophy behind a preflight that never aborts — plus the pikepdf/PyMuPDF six-check implementation and the --strict flag for CI.</description><pubDate>Tue, 30 Jun 2026 10:00:00 GMT</pubDate><category>docs-as-code</category><category>latex</category><category>automation</category></item><item><title>Why hand-maintained InDesign files rot — and what docs-as-code does instead</title><link>https://redaction-technique.org/blog/indesign-vs-docs-as-code/</link><guid isPermaLink="true">https://redaction-technique.org/blog/indesign-vs-docs-as-code/</guid><description>A 370-cell calendar that shifts every year. A lead’s name in three places. An IBAN in an invisible text box. These are not unusual InDesign problems — they are what InDesign files become when they accumulate facts with no single home. Two projects show what the alternative looks like — and where InDesign’s own global tools stop short.</description><pubDate>Tue, 23 Jun 2026 10:00:00 GMT</pubDate><category>docs-as-code</category><category>latex</category><category>git</category><category>automation</category><category>single-source-of-truth</category></item><item><title>Transforming a corpus of 7,000 pages into living knowledge</title><link>https://redaction-technique.org/blog/transforming-corpus-ai-living-knowledge/</link><guid isPermaLink="true">https://redaction-technique.org/blog/transforming-corpus-ai-living-knowledge/</guid><description>From a massive archive of 7,000 pages to daily insights, quote retrieval, and AI-powered thematic digests: this project turns static content into a living flow of clarity, focus, and well-being.</description><pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate><category>AI</category><category>Knowledge</category><category>Curation</category><category>Discovery</category></item><item><title>1.8 million words, freed from Word 97 and made searchable</title><link>https://redaction-technique.org/blog/transforming-meditation-classes-ai-discovery/</link><guid isPermaLink="true">https://redaction-technique.org/blog/transforming-meditation-classes-ai-discovery/</guid><description>1,800 lecture transcripts — 1.8 million words once trapped in Word 97 files — converted to Markdown, scored and tagged by AI, and turned into a searchable discovery platform that also generates print-ready LaTeX anthologies.</description><pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate><category>AI</category><category>LaTeX</category><category>Discovery</category><category>Content</category></item><item><title>Less is more: from psychology to technical writing</title><link>https://redaction-technique.org/blog/less-is-more-layering/</link><guid isPermaLink="true">https://redaction-technique.org/blog/less-is-more-layering/</guid><description>How Kahneman’s idea of &apos;less is more’ connects with minimalist documentation — and how layering keeps clarity from becoming oversimplification.</description><pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate><category>Minimalism</category><category>Documentation</category><category>UX Writing</category><category>Kahneman</category><category>Layering</category></item><item><title>Slow food for fast thinking: designing with cognitive ease in mind</title><link>https://redaction-technique.org/blog/systems-1-2-affordance-minimalism-technical-writing/</link><guid isPermaLink="true">https://redaction-technique.org/blog/systems-1-2-affordance-minimalism-technical-writing/</guid><description>What can Kahneman’s Systems 1 and 2 teach us about technical writing? This post explores how minimalism and DITA structure align with cognitive systems to make documentation more intuitive and human-centered.</description><pubDate>Sat, 04 Oct 2025 00:00:00 GMT</pubDate><category>Cognitive Psychology</category><category>Technical Writing</category><category>DITA</category><category>Minimalism</category></item><item><title>What YAML gives technical docs that XML and Markdown can’t</title><link>https://redaction-technique.org/blog/scalable-maintainable-technical-docs-with-yaml/</link><guid isPermaLink="true">https://redaction-technique.org/blog/scalable-maintainable-technical-docs-with-yaml/</guid><description>A growing engine-oil catalog — brands, viscosities, prices — becomes a maintenance nightmare as a Markdown table and a verbose tangle as DITA XML. One YAML file holds each fact once and generates every table, doc page, and app view from it.</description><pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate><category>YAML</category><category>OpenAPI</category><category>Schema</category><category>Structured Data</category><category>Technical Writing</category><category>Content Reuse</category><category>Validation</category></item><item><title>One YAML file, three outputs: API docs, web, and mobile</title><link>https://redaction-technique.org/blog/experimental-astro-api-docs/</link><guid isPermaLink="true">https://redaction-technique.org/blog/experimental-astro-api-docs/</guid><description>Learn how one YAML file can serve as a single source of truth for APIs, powering docs, HTML documentation, and even mobile apps.</description><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate><category>Astro</category><category>API</category><category>OpenAPI</category><category>YAML</category><category>Documentation</category></item><item><title>Translating legacy French docs to English with DeepL and GPT-4o</title><link>https://redaction-technique.org/blog/ai-translation-legacy-technical-docs/</link><guid isPermaLink="true">https://redaction-technique.org/blog/ai-translation-legacy-technical-docs/</guid><description>Professionally translating hundreds of legacy French Markdown files would have cost a fortune. Instead, a DeepL-then-GPT-4o pipeline with Git diffs as a safety net: keep the good translations file by file, discard the rest, rebuild.</description><pubDate>Mon, 22 Sep 2025 01:00:00 GMT</pubDate><category>AI</category><category>Translation</category><category>Technical Writing</category><category>Markdown</category><category>DeepL</category><category>GPT-4o</category></item><item><title>Manage content in files, not databases</title><link>https://redaction-technique.org/blog/manage-content-in-files-not-databases/</link><guid isPermaLink="true">https://redaction-technique.org/blog/manage-content-in-files-not-databases/</guid><description>Databases are not always the best place for your content. By storing it in plain files, you gain speed, security, Git-based workflows, and a simpler, more reliable publishing stack.</description><pubDate>Thu, 18 Sep 2025 10:12:00 GMT</pubDate><category>Static Sites</category><category>Linux Philosophy</category><category>Docs-as-Code</category><category>Content Management</category><category>Git</category></item><item><title>Strong information typing without the XML overhead</title><link>https://redaction-technique.org/blog/strong-information-typing-without-xml-overhead/</link><guid isPermaLink="true">https://redaction-technique.org/blog/strong-information-typing-without-xml-overhead/</guid><description>You don’t need the complexity of DITA XML to benefit from its discipline. With Markdown and modern docs-as-code workflows, technical writers can apply strong information typing-tasks, concepts, and references-using lightweight, open tools.</description><pubDate>Wed, 17 Sep 2025 11:39:00 GMT</pubDate><category>DITA</category><category>Markdown</category><category>Information Typing</category><category>Content Model</category><category>Docs-as-Code</category></item><item><title>A decade of Word 97 conference files, rebuilt for the web for $30</title><link>https://redaction-technique.org/blog/turn-word-files-seo-optimized-web-pages-ai/</link><guid isPermaLink="true">https://redaction-technique.org/blog/turn-word-files-seo-optimized-web-pages-ai/</guid><description>How we transformed unstructured Word 97/2000 files into a decade-long web publication of conferences-using Markdown, Python, and GPT-powered automation for just $30.</description><pubDate>Mon, 01 Sep 2025 11:39:00 GMT</pubDate><category>DITA</category><category>Markdown</category><category>Information Typing</category><category>AI</category><category>Python</category><category>Digital Archives</category><category>Automation</category><category>SEO</category></item><item><title>From DITA XML to Markdown: lightweight information typing</title><link>https://redaction-technique.org/blog/dita-xml-to-markdown-lightweight-information-typing/</link><guid isPermaLink="true">https://redaction-technique.org/blog/dita-xml-to-markdown-lightweight-information-typing/</guid><description>DITA brought structure through XML, but its complexity often felt heavy. Markdown offers a lightweight alternative where technical writers can still apply DITA’s information typing principles — using open, freely available tools and without the XML overhead.</description><pubDate>Fri, 01 Aug 2025 11:39:00 GMT</pubDate><category>DITA</category><category>Markdown</category><category>Information Typing</category></item><item><title>A web journey: from HTML to Git-based Markdown workflows</title><link>https://redaction-technique.org/blog/web-journey-html-to-git-markdown/</link><guid isPermaLink="true">https://redaction-technique.org/blog/web-journey-html-to-git-markdown/</guid><description>Tracing over two decades of web publishing, from raw HTML and Dreamweaver to CMSes, structured content, static site generators, and modern Git-based Markdown workflows. Lessons for solo and team content developers on maintainability, collaboration, and performance.</description><pubDate>Thu, 10 Jul 2025 10:00:00 GMT</pubDate><category>HTML</category><category>WordPress</category><category>DITA</category><category>Markdown</category><category>Sphinx</category><category>Static Sites</category><category>Docs-as-Code</category><category>Git</category><category>Content Management</category></item></channel></rss>