Parse markdown article, download images and replace images URL's with local paths
MIT License
Free command line utility, written in Python, designed to help you manage online and downloaded Markdown documents (e.g., articles). The Markdown Articles Tool is available for macOS, Windows, and Linux.
Tool can be used:
<img>
tag.Also, if you want to use separate functions, you can just import the package.
You need Python 3.9+.
Run:
git clone "https://github.com/artiomn/markdown_articles_tool"
pip3 install -r markdown_articles_tool/requirements.txt
pip3 install markdown-tool
Syntax:
markdown_tool [options] <article_file_path_or_url>
options:
-h, --help show this help message and exit
-D {disabled,names_hashing,content_hash}, --deduplication-type {disabled,names_hashing,content_hash}
Deduplicate images, using content hash or SHA1(image_name) (default: disabled)
-d IMAGES_DIRNAME, --images-dirname IMAGES_DIRNAME
Folder in which to download images (possible variables: $article_name, $time, $date, $dt, $base_url) (default: images)
-a, --skip-all-incorrect
skip all incorrect images (default: False)
-E, --download-incorrect-mime
download "images" with unrecognized MIME type (default: False)
-s SKIP_LIST, --skip-list SKIP_LIST
skip URL's from the comma-separated list (or file with a leading '@') (default: None)
-i {md,html,md+html,html+md}, --input-format {md,html,md+html,html+md}
input format (default: md)
-l, --process-local-images
[DEPRECATED] Process local images (default: False)
-n, --replace-image-names
Replace image names, using content hash (default: False)
-o {md,html}, --output-format {md,html}
output format (default: md)
-p IMAGES_PUBLIC_PATH, --images-public-path IMAGES_PUBLIC_PATH
Public path to the folder of downloaded images (possible variables: $article_name, $time, $date, $dt, $base_url)
-P, --prepend-images-with-path
Save relative images paths (default: False)
-R, --remove-source Remove or replace source file (default: False)
-t DOWNLOADING_TIMEOUT, --downloading-timeout DOWNLOADING_TIMEOUT
how many seconds to wait before downloading will be failed (default: -1)
-O OUTPUT_PATH, --output-path OUTPUT_PATH
article output file name or path
--verbose, -v More verbose logging (default: False)
--version return version number
Run example 1:
./markdown_tool.py nc-1-zfs/article.md
Run example 2:
./markdown_tool.py not-nas/sov/article.md -o html -s "http://www.ossec.net/_images/ossec-arch.jpg" -a
Run example 3 (run on a folder):
find content/ -name "*.md" | xargs -n1 ./markdown_tool.py
-l, --process-local-images
deprecated from the version 0.1.2 and will not work: local images will always be processed.-E
to disable this behaviour).-P, --prepend-images-with-path
changes image output path structure. If this option is enabled,-D
(deduplication) option was changed in the version 0.0.8. Now option is not boolean, it has several values: "disabled", "names_hashing", "content_hash".
Long option name was changed too: now it's deduplication-type
.
Tools is a pipeline, which get Markdown form the source and process them, using blocks:
ImageDownloader
download every image.ArticleProcessor
class is a strategy, applies blocks, based on the parameters (from the CLI, for example).