Skip to main content

Markdown and MDX translation CLI with token estimation

Project description

mdtomd

用于 Markdown / MDX 文档翻译的命令行工具,支持翻译前 token 估算、批量处理和结构化 JSON 输出。

默认会读取当前目录的 config.yaml,支持:

  • 单文件翻译
  • 目录批量翻译
  • .md / .markdown / .mdx
  • 翻译前 token 估算
  • 翻译后显示输入 / 输出 token

安装

发布版安装:

python3 -m pip install mdtomd

本地开发安装:

python3 -m pip install -e .

如果想尽量自动把 mdtomd 放进当前机器的可执行路径:

./scripts/install_cli.sh

Windows:

powershell -ExecutionPolicy Bypass -File .\scripts\install_cli.ps1

配置

直接改 config.yaml 即可。

常见方式:

  1. providers.<provider> 里写 model/base_url/api_key/max_tokens
  2. llm.provider 里选默认 provider
  3. translator.chunk_size 留空时,会默认跟当前模型的 max_tokens 一致
  4. 临时覆盖时再用命令行参数或环境变量

如果不想把 key 写进配置,可以用环境变量,例如:

export DEEPSEEK_API_KEY="your-key"

用法

快捷命令,先 estimate 再 translate:

mdtomd examples/doc1.md
mdtomd examples

单文件翻译:

mdtomd translate -i examples/doc1.md

目录翻译:

mdtomd translate -i examples

目录输入会自动递归处理,并默认把结果写回原目录,生成 *_zh.md / *_zh.mdx

如果想输出到别的目录:

mdtomd translate -i examples --output-dir out

先看 token:

mdtomd estimate -i examples/doc1.md
mdtomd estimate -i examples

给插件或脚本用结构化输出:

mdtomd estimate -i examples/doc1.md --json
mdtomd translate -i examples/doc1.md --json

查看 provider 和模型:

mdtomd providers
mdtomd models

输出说明

单文件翻译完成后会额外打印:

  • 原文 tokens
  • 请求输入 tokens
  • 回复输出 tokens

其中:

  • 请求输入 tokens 是按当前 prompt 和分块策略统计的输入 token
  • 回复输出 tokens 是模型接口实际返回的 completion token

测试

python3 -m unittest discover -s tests -v

CLI 发布

构建并检查产物:

./scripts/build_cli.sh

上传到 PyPI:

export TWINE_PASSWORD="pypi-***"
./scripts/publish_cli.sh

VS Code 插件

插件目录在 vscode-extension/

当前插件已支持:

  • 文件树右键翻译 Markdown 文件
  • 文件树右键翻译文件夹
  • 首次安装后自动检测 CLI,缺失时会从 PyPI 自动安装 mdtomd
  • 启动时可自动检查并升级 CLI,但已固定 mdtomd.cliPath 时不会自动升级
  • 先调用 estimate --json 弹确认框
  • config.yaml 已配模型里选择
  • 直接在 VS Code 设置面板里按“通用 + 厂商分组”填写模型参数,不需要手改 settings.json
  • 支持 DeepSeek、MiniMax、OpenAI、OpenAI Codex、OpenRouter、Anthropic、Gemini、Z.ai、Kimi、Alibaba、OpenAI Compatible
  • 状态栏显示完成结果

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdtomd-0.1.5.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mdtomd-0.1.5-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file mdtomd-0.1.5.tar.gz.

File metadata

  • Download URL: mdtomd-0.1.5.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mdtomd-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e24644ce974dd777d4193faecb4d4e1fbdadea730b23b79ebbd591104741e3a0
MD5 ade166578d9c2abcdfdf10f2a06e887c
BLAKE2b-256 2c1764ef046cea12ce1f83bbba44795cfb9cae91ea952cfc8f9a49bff67241c9

See more details on using hashes here.

File details

Details for the file mdtomd-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: mdtomd-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mdtomd-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 82328b2bec08b4c52c1e5b562d241b1cd906fc375332ecb7d7bc0a094caf6724
MD5 e568f647a212356426abab9cbc4f77af
BLAKE2b-256 5108a4be399c6b7ae2341c3aef2ae22449ddd6852d27f1299fc821bd74e25424

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page