snapper-fmt 0.8.0

Semantic line break formatter for Org, LaTeX, Markdown, and plaintext
Documentation
<!DOCTYPE html>
<html lang="en" data-accent-color="teal" data-content_root="./">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>snapper 0.1.0 documentation</title><link rel="shortcut icon" href="_static/favicon.ico"/><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Quickstart" href="tutorials/quickstart.html" />
      <link rel="canonical" href="https://snapper.turtletech.us/docs/" /><script>
    function setColorMode(t){let e=document.documentElement;e.setAttribute("data-color-mode",t);let a=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,s=t;"auto"===t&&(s=a?"dark":"light"),"light"===s?(e.classList.remove("dark"),e.classList.add("light")):(e.classList.remove("light"),e.classList.add("dark"))}
    setColorMode(localStorage._theme||"auto");
  </script><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=e1a1ceaf" />
    <link rel="stylesheet" type="text/css" href="_static/shibuya.css?v=44020203" />
    <link media="print" rel="stylesheet" type="text/css" href="_static/print.css?v=20ff2c19" />
    <link rel="stylesheet" type="text/css" href="_static/custom.css?v=ae410d03" />
    <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
  --sy-f-text: "Inter", var(--sy-f-sys), var(--sy-f-cjk), sans-serif;
  --sy-f-heading: "Inter", var(--sy-f-sys), var(--sy-f-cjk), sans-serif;
}
</style>
    <meta property="og:type" content="website"/>
  <meta property="og:url" content="https://snapper.turtletech.us/docs/"/>
  <meta property="og:title" content="snapper"/>
    <meta name="twitter:card" content="summary"/>
  
    <link rel="alternate" hreflang="is" href="/docs/is/" />
    <link rel="alternate" hreflang="pl" href="/docs/pl/" />
<!-- Umami injection -->
<script
  defer
  data-website-id="af8c1286-06aa-414b-958c-e015bed1e569"
  src="https://analytics.turtletech.us/script.js"
></script>
<script>
  window.umami = window.umami || { track: function () {} };
  document.addEventListener("click", function (e) {
    var link = e.target.closest("a");
    if (link && link.hostname !== location.hostname) {
      umami.track("Outbound Link", { url: link.href });
    }
  });
</script></head>
<body><div class="sy-head">
  <div class="sy-head-blur"></div>
  <div class="sy-head-inner sy-container mx-auto">
    <a class="sy-head-brand" href="#">
      <img class="light-logo" src="_static/snapper_logo.png" alt="snapper" height="28" loading="lazy" />
      <img class="dark-logo" src="_static/snapper_logo.png" alt="snapper" height="28" loading="lazy" />
      <strong>snapper</strong>
    </a>
    <div class="sy-head-nav" id="head-nav">
      <nav class="sy-head-links"></nav>
      <div class="sy-head-extra flex items-center print:hidden"><form class="searchbox flex items-center" action="search.html" method="get">
  <input type="text" name="q" placeholder="Search" />
  <kbd>/</kbd>
</form><div class="nav-languages">
  <button type="button">
    <span class="md:hidden">Translations</span>
    <iconify-icon icon="lucide:languages"></iconify-icon>
  </button>
  <div class="nav-languages-choices">
    <ul><li><a href="/docs/">English</a></li><li><a href="/docs/is/">Islenska</a></li><li><a href="/docs/pl/">Polski</a></li></ul>
  </div>
</div><div class="sy-head-socials">
  <a href="https://github.com/TurtleTech-ehf/snapper" aria-label="GitHub">
    <iconify-icon icon="simple-icons:github"></iconify-icon>
  </a></div></div>
    </div>
    <div class="sy-head-actions flex items-center shrink-0 print:hidden"><button class="js-theme theme-switch flex items-center"
data-aria-auto="Switch to light color mode"
data-aria-light="Switch to dark color mode"
data-aria-dark="Switch to auto color mode">
<i class="i-lucide theme-icon"></i>
</button><button class="md:hidden flex items-center js-menu" aria-label="Menu" type="button" aria-controls="head-nav" aria-expanded="false">
        <div class="hamburger">
          <span class="hamburger_1"></span>
          <span class="hamburger_2"></span>
          <span class="hamburger_3"></span>
        </div>
      </button>
    </div>
  </div>
</div>
<div class="sy-page sy-container flex mx-auto">
  <aside id="lside" class="sy-lside md:w-72 md:shrink-0 print:hidden">
    <div class="sy-lside-inner md:sticky">
      <div class="sy-scrollbar p-6">
        <div class="globaltoc" data-expand-depth="2"><p class="caption" role="heading" aria-level="3"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1 _expand"><a class="reference internal" href="tutorials/quickstart.html">Quickstart</a></li>
</ul>
<p class="caption" role="heading" aria-level="3"><span class="caption-text">How-to guides</span></p>
<ul>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/editor-integration.html">Editor Integration</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/ci-enforcement.html">CI Enforcement</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/git-filter.html">Git Smudge/Clean Filter</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/vale-integration.html">Vale Integration</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/neural-detection.html">Neural Sentence Detection</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/pragmas.html">Skip Regions with Pragmas</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="howto/pandoc-backend.html">Pandoc Backend</a></li>
</ul>
<p class="caption" role="heading" aria-level="3"><span class="caption-text">Reference</span></p>
<ul>
<li class="toctree-l1 _expand"><a class="reference internal" href="reference/cli.html">CLI Reference</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="reference/formats.html">Supported Formats</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="reference/abbreviations.html">Abbreviation Handling</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="reference/config.html">Configuration</a></li>
</ul>
<p class="caption" role="heading" aria-level="3"><span class="caption-text">Development</span></p>
<ul>
<li class="toctree-l1 _expand"><a class="reference internal" href="contributing/index.html">Contributing</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="faq/index.html">FAQ</a></li>
<li class="toctree-l1 _expand"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
        </div>
      </div>
    </div>
  </aside>
  <div class="lside-overlay js-menu" role="button" aria-label="Close left sidebar" aria-controls="lside" aria-expanded="false"></div>
  <aside id="rside" class="sy-rside pb-3 w-64 shrink-0 order-last">
    <button class="rside-close js-menu xl:hidden" aria-label="Close Table of Contents" type="button" aria-controls="rside" aria-expanded="false">
      <i class="i-lucide close"></i>
    </button>
    <div class="sy-scrollbar sy-rside-inner px-6 xl:top-16 xl:sticky xl:pl-0 pt-6 pb-4"><a class="js-repo-stats repo-stats flex items-center" href="https://github.com/TurtleTech-ehf/snapper"
  data-type="github" data-user="TurtleTech-ehf" data-repo="snapper">
  <span class="w-8 flex items-center justify-around shrink-0 text-3xl">
    <iconify-icon icon="simple-icons:github"></iconify-icon>
  </span>
  <span class="flex-grow px-2 break-all">
    
    
      <span>snapper</span>
    
    <span class="flex text-sm repo-stats-count">
      <span class="flex items-center pr-3">
        <iconify-icon icon="lucide:star"></iconify-icon>
        <strong class="js-repo-stars ml-1">0</strong>
      </span>
      <span class="flex items-center">
        <iconify-icon icon="lucide:git-fork"></iconify-icon>
        <strong class="js-repo-forks ml-1">0</strong>
      </span>
    </span>
  </span>
</a><div class="edit-this-page">
  <a href="https://github.com/TurtleTech-ehf/snapper/blob/main/docs/source/index.rst">Edit this page</a>
</div><div id="ethical-ad-placement" data-ea-publisher="readthedocs"></div></div>
  </aside>
  <div class="rside-overlay js-menu" role="button" aria-label="Close Table of Contents" aria-controls="rside" aria-expanded="false"></div>
  <main class="sy-main w-full max-sm:max-w-full print:pt-6">
<div class="sy-breadcrumbs" role="navigation">
  <div class="sy-breadcrumbs-inner flex items-center">
    <div class="md:hidden mr-3">
      <button class="js-menu" aria-label="Menu" type="button" aria-controls="lside" aria-expanded="false">
        <i class="i-lucide menu"></i>
      </button>
    </div>
    <ol class="flex-1" itemscope itemtype="https://schema.org/BreadcrumbList"><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
        <a itemprop="item" href="#"><span itemprop="name">snapper</span></a>
        <meta itemprop="position" content="1" />
      </li></ol>
    <div class="xl:hidden ml-1">
      <button class="js-menu" aria-label="Show table of contents" type="button" aria-controls="rside"
        aria-expanded="false">
        <i class="i-lucide outdent"></i>
      </button>
    </div>
  </div>
</div><div class="flex flex-col break-words justify-between">
      <div class="relative min-w-0 max-w-6xl px-6 pb-6 pt-8 xl:px-12">
  <div class="copy-page-wrapper relative pb-4 lg:absolute lg:top-8 lg:right-6 xl:right-12">
  <div id="copy-page-trigger">
    <button
      type="button"
      class="js-copy px-3 py-1 inline-flex items-center gap-1"
      data-url="https://snapper.turtletech.us/docs/_sources/index.rst.txt"
    >
      <i class="i-lucide" data-icon="copy"></i>
      <span>Copy page</span>
    </button>
    <button class="js-menu px-2 py-1" type="button" aria-label="More actions"
      aria-haspopup="menu" aria-expanded="false" aria-controls="copy-page-content">
      <i class="i-lucide chevron-down"></i>
    </button>
  </div>
  <div id="copy-page-content" role="menu" aria-orientation="vertical" aria-hidden="true">
    <div role="presentation">
      <div class="flex flex-col" role="group">
        <button class="js-copy" type="button" role="menuitem"
          data-url="https://snapper.turtletech.us/docs/_sources/index.rst.txt">
          <span class="iconify-icon">
            <i class="i-lucide" data-icon="copy"></i>
          </span>
          <span>Copy page</span>
        </button>
        <a role="menuitem" href="https://snapper.turtletech.us/docs/_sources/index.rst.txt" target="_blank" rel="nofollow"><iconify-icon icon="bi:code-slash"></iconify-icon>
            <span>View Source</span></a><a role="menuitem" href="https://chatgpt.com/?hints=search&q=Read%20https%3A//snapper.turtletech.us/docs/_sources/index.rst.txt%20so%20I%20can%20ask%20questions%20about%20it." target="_blank" rel="nofollow">
          <iconify-icon icon="bi:openai"></iconify-icon>
          <span>Open in ChatGPT</span>
        </a><a role="menuitem" href="https://claude.ai/new?q=Read%20https%3A//snapper.turtletech.us/docs/_sources/index.rst.txt%20so%20I%20can%20ask%20questions%20about%20it." target="_blank" rel="nofollow">
          <iconify-icon icon="bi:claude"></iconify-icon>
          <span>Open in Claude</span>
        </a></div>
    </div>
  </div>
</div><article class="yue dark-code" role="main">
          <section id="snapper">
<h1>snapper<a class="headerlink" href="#snapper" title="Link to this heading">ΒΆ</a></h1>
<dl class="field-list simple">
<dt class="field-odd">Author<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference external" href="https://rgoswami.me">Rohit Goswami</a></p>
</dd>
</dl>
<img alt="_images/snapper_logo.png" src="_images/snapper_logo.png" />
<p>A fast, format-aware semantic line break formatter.
Reformats prose so each sentence occupies its own line, producing minimal and meaningful git diffs when collaborating on papers and documentation.</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="tutorials/quickstart.html">Quickstart</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">How-to guides</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="howto/editor-integration.html">Editor Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/ci-enforcement.html">CI Enforcement</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/git-filter.html">Git Smudge/Clean Filter</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/vale-integration.html">Vale Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/neural-detection.html">Neural Sentence Detection</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/pragmas.html">Skip Regions with Pragmas</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/pandoc-backend.html">Pandoc Backend</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Reference</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="reference/cli.html">CLI Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/formats.html">Supported Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/abbreviations.html">Abbreviation Handling</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/config.html">Configuration</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
</div>
</section>

        </article><button class="back-to-top" type="button">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
    <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
  </svg>
  <span>Back to top</span>
</button><div class="navigation flex print:hidden"><div class="navigation-next">
    <a href="tutorials/quickstart.html">
      <div class="page-info">
        <span>Next</span>
        <div class="title">Quickstart</div>
      </div>
      <i class="i-lucide chevron-right"></i>
    </a>
  </div></div></div>
    </div>
  </main>
</div>
<footer class="sy-foot">
  <div class="sy-foot-inner sy-container mx-auto">
    
    <div
      style="
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        margin-bottom: 1.5rem;
        color: var(--sy-c-text-weak);
        font-size: 0.9em;
      "
    >
      <div
        style="
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          gap: 1rem;
          align-items: center;
        "
      >

        
        <span style="display: inline-flex; align-items: center; gap: 0.3em">
          <svg
            xmlns="http://www.w3.org/2000/svg"
            width="1em"
            height="1em"
            viewBox="0 0 24 24"
            fill="currentColor"
            aria-hidden="true"
          >
            <path d="M7,20H4V4h3V20z M14,20h-3V12h3V20z M21,20h-3V8h3V20z" />
          </svg>
          <span
            >Analytics by
            <a
              href="https://umami.is/"
              target="_blank"
              rel="noopener noreferrer"
              style="color: inherit; text-decoration: underline"
              >Umami</a
            ></span
          >
        </span>

        
        <span style="display: inline-flex; align-items: center; gap: 0.3em">
          <span>provided by</span>
          <span style="display: inline-flex; align-items: center; gap: 0.3em">
            <svg xmlns="http://www.w3.org/2000/svg" width="1.4em" height="1.4em" viewBox="0 0 64 64" aria-hidden="true"><g fill-rule="evenodd"><ellipse cx="32" cy="11" fill="#80D25B" rx="7" ry="9"/><path fill="#80D25B" d="M20.3,46c0,0-3.2,9.9.3,13.8c3.5,3.9 6.1,3.4 6.1-6C26.8,44.3 20.3,46 20.3,46Z"/><path fill="#80D25B" d="M38.3,46c0,0-3.2,9.9.4,13.8c3.5,3.9 6.1,3.4 6.1-6C44.8,44.3 38.3,46 38.3,46Z" transform="matrix(-1 0 0 1 81.8 0)"/><path fill="#80D25B" d="M20.6,21.2c0,0-6.7-5.8-10.5-5.2C6.2,16.7 6,22.2 6,24c0,1.8 1.8,13.3 3.8,12.5c2-0.8 4-8.5 4-8.5c1.9,2.3 4.8,2.5 4.8,2.5L20.6,21.2Z"/><path fill="#80D25B" d="M57.6,21.2c0,0-6.6-5.8-10.5-5.2C43.2,16.7 43,22.2 43,24c0,1.8 1.8,13.3 3.8,12.5c2-0.8 4-8.5 4-8.5c1.9,2.3 4.8,2.5 4.8,2.5L57.6,21.2Z" transform="matrix(-1 0 0 1 100.623 0)"/><path fill="#BD7575" stroke="#595959" stroke-linecap="round" stroke-width="2" d="M32,53C40.8,53 48,44.5 48,34C48,23.5 46.7,17 32,17C17.3,17 16,23.5 16,34C16,44.5 23.2,53 32,53Z"/><polygon fill="#BD7575" stroke="#595959" stroke-linecap="round" stroke-width="2" points="32 22 38.9 26 38.9 34 32 38 25.1 34 25.1 26"/><path stroke="#595959" stroke-linecap="round" stroke-width="2" d="M30,8C28.9,8 28,8.9 28,10"/><path stroke="#595959" stroke-linecap="round" stroke-width="2" d="M36,8C34.9,8 34,8.9 34,10" transform="matrix(-1 0 0 1 70 0)"/><path stroke="#595959" stroke-linecap="round" stroke-width="2" d="M32.1,38.2L32.1,52.4M32,21.7L32,17M25.2,26L17.7,23.1M25.1,34.2L16.8,38.9"/><path stroke="#595959" stroke-linecap="round" stroke-width="2" d="M46.2,26L38.7,23.1" transform="matrix(-1 0 0 1 84.951 0)"/><path stroke="#595959" stroke-linecap="round" stroke-width="2" d="M47.1,34.2L38.8,38.9" transform="matrix(-1 0 0 1 85.891 0)"/></g></svg>
            <a
              href="https://turtletech.us/"
              target="_blank"
              rel="noopener noreferrer"
              style="color: inherit; text-decoration: underline"
              >TurtleTech ehf</a
            >
          </span>
        </span>
      </div>
    </div>

    
    <div class="sy-foot-reserved md:flex justify-between items-center">
      <div class="sy-foot-copyright"><p>2026--present, <a href="https://rgoswami.me">Rohit Goswami</a></p>
  
  <p>
    Made with
    
    <a href="https://www.sphinx-doc.org/">Sphinx</a> and
    
    <a href="https://shibuya.lepture.com">Shibuya theme</a>.
  </p>
</div> <div class="sy-foot-socials">
<a href="https://github.com/TurtleTech-ehf/snapper" aria-label="GitHub">
  <iconify-icon icon="simple-icons:github"></iconify-icon>
</a></div>
    </div>
  </div>
</footer>
      <script src="_static/documentation_options.js?v=01f34227"></script>
      <script src="_static/doctools.js?v=fd6eb6e6"></script>
      <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
      <script src="_static/shibuya.js?v=cac61aee"></script></body>
</html>