|
| 1 | +# python-substack 0.1.27 |
| 2 | + |
| 3 | +Version 0.1.27 turns a Markdown file into a rich Substack draft through the |
| 4 | +main CLI and strengthens package validation around that workflow. |
| 5 | + |
| 6 | +## Highlights |
| 7 | + |
| 8 | +- Create an unpublished draft with `substack drafts create post.md`. |
| 9 | +- Set title, subtitle, audience, comment permissions, SEO metadata, slug, |
| 10 | + section, and repeatable tags from the unified CLI. |
| 11 | +- Render inline and block LaTeX, superscript, subscript, pull quotes, and |
| 12 | + callouts from Markdown. |
| 13 | +- Handle both known subscriber-count response formats. |
| 14 | +- Restore draft scheduling and unscheduling against Substack's current endpoint. |
| 15 | +- Retry rate-limited reads and deletes with bounded backoff while avoiding unsafe POST retries. |
| 16 | +- Keep live Substack tests opt-in while validating offline tests on Python 3.10 |
| 17 | + through 3.14 and clean wheel installations on Python 3.10 and 3.14. |
| 18 | + |
| 19 | +Existing Python APIs, MCP tools, environment variables, standalone console |
| 20 | +commands, defaults, and CLI output contracts remain available. |
| 21 | + |
| 22 | +## Quick examples |
| 23 | + |
| 24 | +```bash |
| 25 | +substack drafts create post.md |
| 26 | +substack --json drafts create post.md --tag python --tag substack |
| 27 | +substack drafts publish 12345 --no-send |
| 28 | +``` |
| 29 | + |
| 30 | +Creation never publishes, schedules, sends, or deletes a draft. Publishing |
| 31 | +remains a separate command with the existing confirmation safeguards. If tag |
| 32 | +assignment fails after Substack creates the draft, the draft may remain in the |
| 33 | +publication and is not deleted automatically. |
| 34 | + |
| 35 | +## Observable Markdown changes |
| 36 | + |
| 37 | +Text matching the new `$...$`, `$$...$$`, `^...^`, `~...~`, `:::pullquote`, |
| 38 | +or `:::callout` syntax now produces corresponding Substack document nodes. |
| 39 | +Ordinary currency amounts remain text, and `~~...~~` remains strikethrough. |
| 40 | + |
| 41 | +## Announcement copy |
| 42 | + |
| 43 | +python-substack 0.1.27 can now turn a Markdown file directly into a rich, |
| 44 | +unpublished Substack draft with `substack drafts create post.md`. The release |
| 45 | +adds LaTeX, superscript, subscript, pull quotes, and callouts, while strengthening |
| 46 | +clean-install and release validation. Install it with |
| 47 | +`pip install -U python-substack`. |
0 commit comments