From 446c70bcb5be512d78766e5504f10a79c2865414 Mon Sep 17 00:00:00 2001 From: Wolfgang Nowak Date: Fri, 29 Oct 2021 01:26:41 +0200 Subject: [PATCH] webgen v3.1 -Added some comments --- webgen.py | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/webgen.py b/webgen.py index 43f6e21..0f8b760 100755 --- a/webgen.py +++ b/webgen.py @@ -2,11 +2,12 @@ import sys, os, uuid, shutil, subprocess, markdown, re, datetime - +# If not choosen stdout as output, where should the generated file go to and what +# fileending (f.e. .html) shall it have targetdir = os.path.expanduser("~/www/i21k.de/posts/") fileending = "" - +# call favorite editor with filename to write the text def edit(headline): editor = os.getenv("EDITOR") if not editor: @@ -15,9 +16,11 @@ def edit(headline): return headline -# Parse arguments "--html" and "Some Headline" -# there are 2 parameters. if --html is given, the fileending will be .html. -# Else there will be no fileending, but it will still contain html +# Parse arguments "--html", "--stdout" and "Some Headline" +# there are 3 parameters. if --html is given, the fileending will be .html. +# Else, if stdout is choosen there can be no fileending, but it will still contain html +# the name of the program is stored in myname +# dont set a name to outfile, it just is initialised here and will be overwritten optwords = ["--html", "--stdout"] outfile = "" @@ -39,26 +42,31 @@ elif len(args) > 1: sys.exit("Too much or wrong parameters:\n" + myname + ' [--html] [--stdout] ["Some Topic"] ') +# The headline should be the theme of the text. We edit a .md-file headlinemd = headline + ".md" -headlinehtml = headline + fileending +# Prepend an hourly tinestamp to the later name of the file creationtime = datetime.datetime.now().strftime("%Y-%m-%d %H:00 ") +# generate a more precise ctime to be included in the resulting webpage creationtimeheader = datetime.datetime.now().strftime("%Y-%m-%d %H:%M") +# This is informal asking yes/no for editing the text if outfile != sys.stdout: new_file_name = targetdir + creationtime + " " + headline + fileending else: new_file_name = "STDOUT" - print("You will edit now: ", headlinemd, "\n", "Outputfile= ", new_file_name) a = input("Press to continue or to stop: ") edit(headlinemd) + +# Set ouput to stdout, if requested. Caution, the prompts of this script go there, too, +# be careful with copy & paste if outfile != sys.stdout: html_out_file = open(new_file_name, "w") else: html_out_file = outfile - +# The head of the output. Strip path from myname head1 = ( '\n\ \n' @@ -66,7 +74,7 @@ head1 = ( + '\n\ \n\ \n\ \n\ ' head2 = "\n" +# beginning and end of the text, edit or empty as you like, but dont delete +beginningoftext = "**moin**\n\n" +endoftext = "---\n" body1 = 'Back' foot = " \n" +# write beginning of html-file +html_out_file.write(head1 + style_fn + head2 + beginningoftext + endoftext + body1) -html_out_file.write(head1 + style_fn + head2 + body1) - -# Centerpiece - read md-file, convert to html, add head and foot and write result - +# The centerpiece - read md-file, convert to html, add head and foot and write result with open(headlinemd, "r", encoding="utf-8") as infile: md_data = infile.read() html_output = markdown.markdown(md_data) @@ -108,6 +118,8 @@ with open(headlinemd, "r", encoding="utf-8") as infile: html_out_file.write(foot) html_out_file.close() -# if it exists, return new filename to stdout, so some calling shellscript can use it. +# if the new filename is not stdout, return new filename to stdout, so some calling shellscript can use it. if outfile != sys.stdout: print(new_file_name) + +# Have a nice time.