81 lines
2.5 KiB
Python
Executable file
81 lines
2.5 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import sys, os, re, markdown, datetime
|
|
|
|
# Getoptions
|
|
try:
|
|
parameters = sys.argv[1]
|
|
except:
|
|
sys.exit(
|
|
sys.argv[0]
|
|
+ ": Bitte eine Text oder Markdowndatei angeben.\ Dieses Tool wandelt eine entsprechende Datei in eine einfache Webseite"
|
|
)
|
|
|
|
|
|
if parameters == "--html":
|
|
fileending = ".html"
|
|
try:
|
|
parameters = sys.argv[2]
|
|
except:
|
|
sys.exit(
|
|
sys.argv[0]
|
|
+ ": Bitte eine Text oder Markdowndatei angeben.\ Dieses Tool wandelt eine entsprechende Datei in eine einfache Webseite"
|
|
)
|
|
else:
|
|
fileending = ""
|
|
|
|
mark_down_file = parameters
|
|
|
|
creationtime = datetime.datetime.now().strftime("%Y-%m-%d %H:00 ")
|
|
creationtimeheader = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
|
|
|
if re.match(".*\.md$", mark_down_file):
|
|
new_file_name = creationtime + " " + re.sub(".md$", fileending, mark_down_file)
|
|
html_out_file = open(new_file_name, "w")
|
|
title_of_text = re.sub(".md$", "", mark_down_file)
|
|
else:
|
|
html_out_file = sys.stdout
|
|
title_of_text = mark_down_file
|
|
|
|
head1 = (
|
|
'<!DOCTYPE HTML><html><head>\n\
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">\n<title>'
|
|
+ title_of_text
|
|
+ '</title>\n\
|
|
<meta name="syntax" content="markdown">\n\
|
|
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy=">\n\
|
|
<meta name="ctime" content="'
|
|
+ creationtimeheader
|
|
+ '"> <style type="text/css"> '
|
|
)
|
|
|
|
styles = " <!--\n\
|
|
* { font-family: monospace; color: #00f020; background-color: #1c1414; font-size: 1.15em; }\n\
|
|
a { font-size: 1.0em;}\n\
|
|
ul { font-size: 1.0em;}\n\
|
|
p { font-size: 1.0em;}\n\
|
|
li { font-size: 1.0em;}\n\
|
|
ol { font-size: 1.0em;}\n\
|
|
em { font-size: 1.0em;}\n\
|
|
table { background-color: #1c1414; }\n\
|
|
blockquote { font-size: 1.0em; }\n\
|
|
body { font-family: monospace; color: #00f020; background-color: #1c1414; }\n\
|
|
pre { white-space: pre-wrap; font-family: monospace; color: #00f020; font-background-color: #1c1414; }\n\
|
|
.Statement { color: #00f020; font-weight: bold; }\n\
|
|
.Headandfoot { color: #00f020; font-weight: bold; } "
|
|
|
|
head2 = "</style> </head><body>\n"
|
|
body1 = '<a href="./">Go Back</a>'
|
|
foot = "</body> </html>"
|
|
|
|
|
|
html_out_file.write(head1 + styles + head2 + body1)
|
|
|
|
with open(mark_down_file) as infile:
|
|
for line in infile:
|
|
a = markdown.markdown(line)
|
|
html_out_file.write(a)
|
|
html_out_file.write(foot)
|
|
|
|
# return new filename to stdout, so some calling shellscript can use it.
|
|
print(new_file_name)
|