Files
wehub-resource-sync 4e0f4422d0
build-docs / deploy (push) Has been cancelled
Check Markdown links / markdown-link-check (push) Has been cancelled
Pytest / test (3.11) (push) Has been cancelled
Pytest / test (3.12) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:25:42 +08:00

37 lines
1.0 KiB
Python
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# view_image view an image file as a base64-encoded markdown image
import base64
import mimetypes
import pathlib
import sys
VALID_MIME_TYPES = {
"image/png",
"image/jpeg",
"image/webp",
}
if len(sys.argv) != 2:
sys.exit(f"usage: {pathlib.Path(sys.argv[0]).name} <image-file>")
img_path = pathlib.Path(sys.argv[1])
if not img_path.exists():
sys.exit(f"Error: File '{img_path}' does not exist")
if not img_path.is_file():
sys.exit(f"Error: '{img_path}' is not a file")
try:
mime = mimetypes.guess_type(img_path.name)[0]
if mime not in VALID_MIME_TYPES:
sys.exit(f"Error: Unsupported image type: {mime}. Valid types are: {', '.join(VALID_MIME_TYPES)}")
# read the file, base64-encode, and convert bytes → str
b64 = base64.b64encode(img_path.read_bytes()).decode("ascii")
# write the exact markdown snippet to stdout
print(f"![{img_path.as_posix()}](data:{mime};base64,{b64})")
except Exception as e:
sys.exit(f"Error processing image: {e}")