6 releases

0.3.4 Jul 12, 2024
0.3.3 Jun 27, 2024
0.2.0 Jun 20, 2024
0.1.0 Jun 20, 2024

#164 in Text processing

28 downloads per month

Apache-2.0

46KB
1K SLoC

Rust 726 SLoC // 0.0% comments TypeScript 339 SLoC

htmd-cli

The command line tool for htmd

Features

  • Minimal, A 2MB+ binary is all you need
  • Batch, both file, directory and glob pattern are supported
  • Fast, it takes less than 1s to convert 200 html files (~60MB in total size, see the benchmark README)

Usages

Basic

# Read input from stdin
htmd

# Will write output to stdout
htmd test.html

# Explicit input option
htmd --input test.html

# Write output to test.md by shell
htmd test.html > test.md

# Write output to test.md internally
htmd test.html --output ./

# Read html files from a directory
htmd ./pages -o converted

Inputs

Stdin (- as the filename), file, directory, and glob pattern are supported.

This default input is stdin, so after you type only htmd it will wait for input, to finish typing, press Ctrl + D (Ctrl + Z on Windows).

Example inputs:

  • Stdin: -, < page.html
  • File: page.html, index.html
  • Directory: pages, ./folder
  • Glob pattern: pages/\*\*/\*.html, ./\*.html

Output

Stdout (- as the filename), file, and directory are supported. Defaults to stdout.

You cannot set output as stdout when you have multiple input files.

Example outputs:

  • Stdout: -
  • File: output.md,
  • Directory: output, ./converted

With conversion options

htmd test.html --ignored-tags "head,script,style" --heading-style setex

Flatten output

By default, when converting files using glob patterns such as pages/**/*.html, output files will follow the original folder hierarchy, to flatten output files, use --flatten-output.

htmd pages/**/*.html --output converted --flatten-output

Load options form toml file

You can save your options to a toml file

# htmd-options.toml
[options]
ignored-tags =["head", "script", "style"]
heading-style = "setex"

Then load them using --options-file

htmd test.html --options-file htmd-options.toml

Install

Cargo

cargo install htmd-cli

Binaries

You can download binaries from GitHub - Releases

License

Copyright 2024 letmutex

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependencies

~5–12MB
~121K SLoC