1 unstable release
Uses new Rust 2024
| 0.1.0 | Feb 23, 2026 |
|---|
#1902 in Text processing
147 downloads per month
Used in 20 crates
(17 directly)
85KB
2K
SLoC
Configuration types for typub.
This crate provides the core configuration structures used by typub:
Config— main configuration fromtypub.tomlPlatformConfig— per-platform configurationStorageConfig— S3-compatible storage configuration per [[RFC-0004]]
Extracted per [[RFC-0007:C-SHARED-TYPES]] to enable adapter subcrates to depend on configuration without circular dependencies.
typub
English | 中文
typub is a Typst-first, multi-platform publishing tool.
User Basics
Prerequisites
Important: typub depends on typst CLI. You must have typst installed and available in your PATH.
Install typst CLI:
# Via cargo
cargo install typst
# Or via other package managers (see https://github.com/typst/typst for more options)
Install
cargo install typub
Minimal flow
typub init
typub new "My Post"
typub dev posts/my-post -p ghost
typub publish posts/my-post -p ghost
Key Features
🎯 Typst-first with Markdown-compatibility
Write content in Typst (content.typ) or Markdown (content.md). Typst is the primary format with powerful typesetting capabilities, while Markdown provides a familiar alternative. Both formats can be published to any supported platform.
🌐 Multiple-platform Compatibility
Publish to multiple platforms from a single content source:
- API-based: Dev.to, Ghost, HashNode, Confluence, Notion, WordPress
- Copy-paste (HTML): WeChat, Zhihu, Toutiao, Bilibili, Weibo, Baijiahao, Wangyihao, Sohu, Sspai, OSChina
- Copy-paste (Markdown): CSDN, Juejin, SegmentFault, Cnblogs, Medium, Jianshu, InfoQ, 51CTO, TencentCloud, Aliyun, HuaweiCloud, Elecfans, ModelScope, Volcengine
- Local output: Astro, Static, Xiaohongshu
👀 Dev Preview
Preview your content locally before publishing:
- Live reload: Auto-refresh on save with built-in dev server (
typub dev) - Platform-specific preview: See exactly how content renders on each platform
- Theme support: Choose from built-in themes (github, notion, minimal, tech, etc.) or create custom ones
- Math rendering: MathJax-powered LaTeX rendering
# Preview with auto-reload
typub dev posts/my-post -p ghost
# Preview for different platforms
typub dev posts/my-post -p confluence
Themes are configured in meta.toml or typub.toml, not via command-line arguments.
🖥️ Terminal User Interface (TUI)
Interactive terminal dashboard for content management:
- Post management: Browse, sort, and manage all your posts
- Platform overview: See publishing status across all platforms at a glance
- Preview content: Preview posts in terminal or browser for selected platform
- Publish control: Selectively publish to individual platforms or all at once
- Real-time progress: Track publishing progress and results
# Launch interactive TUI dashboard
typub tui
📦 4 Asset Strategies
Choose how images and other assets are handled:
- embed: Base64 encode inline — small images, no upload dependency
- upload: Upload to platform storage — platforms with native media APIs
- copy: Copy to local output — local/static outputs
- external: Upload to S3-compatible host — CDN, large assets, cross-platform URLs
📐 3 Math Rendering Strategies
Render mathematical expressions based on platform capabilities:
- SVG: Platform supports inline SVG — use Typst's native SVG rendering (default)
- LaTeX: Platform requires LaTeX math macros — preserve original LaTeX source
- PNG: Platform supports base64 images but not SVG — rasterize to PNG via resvg
⚙️ Layered Config System
Manage configuration with 5-level resolution priority (highest to lowest):
- Post-platform: Per-content platform-specific (
meta.toml→[platforms.<id>]) - Post: Per-content default (
meta.toml→ top level) - Global-platform: Global platform-specific (
typub.toml→[platforms.<id>]) - Global: Global default (
typub.toml→ top level) - Adapter default (fallback)
Showcases
Preview Examples
Documentation Map
For users (publishing content)
- Basic path:
docs/guide/getting-started.md - Platform setup:
docs/guide/adapters.md - Assets:
docs/guide/assets.md - Copy-paste profiles:
docs/guide/profiles.md - Advanced customization:
docs/guide/advanced-customization.md
For developers (contributing to typub)
- Development workflow:
DEVELOPING_GUIDE.md - Agent/contributor guardrails:
CLAUDE.md - Specifications and architecture:
docs/rfc/anddocs/adr/
User Advanced Features
- Per-platform asset strategy (
embed/upload/copy/external) - External storage integration for cross-platform asset URLs
- Copy-paste profile selection and customization
- Node policy override (
raw/unknown) via platform config
See docs/guide/advanced-customization.md for a platform-agnostic overview.
License
MIT
Dependencies
~5.5–9.5MB
~162K SLoC