-
Notifications
You must be signed in to change notification settings - Fork 3
/
md2html
executable file
·39 lines (32 loc) · 1.38 KB
/
md2html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh
# rawhide - find files using pretty C expressions
# https://raf.org/rawhide
# https://github.com/raforg/rawhide
# https://codeberg.org/raforg/rawhide
#
# Copyright (C) 1990 Ken Stauffer, 2022-2023 raf <raf@raf.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# 20231013 raf <raf@raf.org>
# md2html - Convert a markdown file into a complete HTML document file
fatal() { echo "$@" >&2; exit 1; }
[ -z "$1" ] && fatal "usage: $0 infile.md [outfile.html [title]]"
src="$1"
base="${1%.*}"
dst="${2:-$base.html}"
title="${3:-$base}"
html="`python3 -m markdown --encoding=utf-8 --output_format=html5 \"$src\"`"
[ $? != 0 -o -z "$html" ] && fatal "$0: Failed to run: python3 -m markdown"
echo "<!doctype html>\n<html lang=\"en\">\n<head><title>$title</title></head>\n<body>\n$html\n</body>\n</html>" > "$dst"