Skip to main content

A CLI tool to fix mathematical equations in markdown files and convert between formats

Project description

Markdown Equations Fixer and Converter

PyPI version Python 3.7+ License: MIT

A versatile command-line tool to standardize and fix mathematical equations in Markdown files and convert documents between various formats like Markdown, LaTeX, DOCX, and PDF.

Table of Contents

Key Features

  • Fix Markdown Equations: Standardizes common LaTeX-style equations to a consistent Markdown format.
    • Converts block equations from \[...\] to the widely supported $$...$$.
    • Converts inline equations from \(...\) to $..$.
    • Handles both single-line and multi-line equations gracefully.
  • Document Conversion: Leverages Pandoc to convert files between a variety of formats, including:
    • markdown, gfm (GitHub-Flavored Markdown), commonmark
    • latex
    • org
    • docx
    • pdf
  • User-Friendly CLI:
    • Process multiple files or entire directories at once.
    • --recursive flag to scan through subdirectories.
    • --dry-run mode to preview changes without modifying files.
    • Rich console output with progress bars and status indicators.

Installation

You can install the package directly from PyPI:

pip install markdown-equations-fixer

Or, to install the latest development version from GitHub:

pip install git+https://github.com/dynstat/markdown-equations-fixer.git

Usage

The tool provides two main commands: fix and convert.

Command: fix

Use the fix command to standardize mathematical equations within your Markdown files (.md, .markdown).

Syntax:

meq-fixer fix [OPTIONS] [PATHS]...

Examples:

  1. Fix a single file:

    meq-fixer fix document.md
    
  2. Fix multiple files and directories:

    meq-fixer fix file1.md ./docs/
    
  3. Recursively fix all markdown files in a directory:

    meq-fixer fix -r ./my-project/
    
  4. Preview changes without saving them (dry run):

    meq-fixer fix --dry-run thesis.md
    

Options:

  • --dry-run: Preview changes without modifying files.
  • --verbose, -v: Show detailed, file-by-file progress.
  • --recursive, -r: Process directories recursively.

Command: convert

Use the convert command to translate documents between different formats.

Syntax:

meq-fixer convert [OPTIONS] <INPUT_FILE> <OUTPUT_FILE>

Examples:

  1. Convert Markdown to a DOCX document:

    meq-fixer convert my-paper.md my-paper.docx --to-format docx
    
  2. Convert a LaTeX file to GitHub-Flavored Markdown (GFM):

    meq-fixer convert report.tex report.md --from-format latex --to-format gfm
    
  3. Convert to Markdown and fix equations in one step: The --fix-equations flag applies the same logic as the fix command to the output file. This is only useful when converting to a Markdown format.

    meq-fixer convert paper.tex paper.md --to-format markdown --fix-equations
    

Options:

  • --from-format, -f: The input format (e.g., latex, markdown).
  • --to-format, -t: The output format (e.g., docx, pdf, gfm).
  • --fix-equations: Fix equations in the output file (for Markdown output formats only).

Requirements

Python Packages

The installer will handle these dependencies automatically.

  • click>=8.0.0
  • rich>=10.0.0
  • pypandoc

System Dependencies

For the convert command to function, especially for DOCX and PDF output, you must have the following software installed on your system:

  1. Pandoc: A universal document converter.

    • Windows (with Chocolatey): choco install pandoc
    • macOS (with Homebrew): brew install pandoc
    • Linux (Debian/Ubuntu): sudo apt-get install pandoc
  2. A LaTeX Distribution: Required for rendering equations in PDF and DOCX files.

    • Windows: MiKTeX (choco install miktex)
    • macOS: MacTeX (brew install --cask mactex or basictex)
    • Linux (Debian/Ubuntu): TeX Live (sudo apt-get install texlive-latex-extra)

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Issues and pull requests are welcome! Please feel free to open an issue or submit a pull request on the GitHub repository.

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

markdown_equations_fixer-1.1.6.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

markdown_equations_fixer-1.1.6-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file markdown_equations_fixer-1.1.6.tar.gz.

File metadata

File hashes

Hashes for markdown_equations_fixer-1.1.6.tar.gz
Algorithm Hash digest
SHA256 030657db3f998a8c4d17554cd1c2ce63c3ebe806e8a831920944ad42e6b467b7
MD5 cceff4028379dee0a61793c78893d993
BLAKE2b-256 06f60b0cddb19715d6ff532723cf8f9cd86bdeb052a6c887c45ff44f45986d3b

See more details on using hashes here.

File details

Details for the file markdown_equations_fixer-1.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for markdown_equations_fixer-1.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f112ed31bb0a194a6ca8e125e8d267776fdeb9a5ef708886464c8d775c36ad22
MD5 d330fe6ff2437656ae503f4f9e07d7c8
BLAKE2b-256 ab7ab94c6947b51f1ae097143c507978bee53e519f898f873db3895b9a762e79

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