From e39a0b85e7c83fd6ea1d1082bac077e069d3edaf Mon Sep 17 00:00:00 2001 From: ClariSys Date: Mon, 7 Apr 2025 23:14:49 -0700 Subject: [PATCH 1/2] Made some changes, mainly to the BeautifulSoup Constructor to avoid printing warnings. --- .~lock.parser.py# | 1 + webgen.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 .~lock.parser.py# diff --git a/.~lock.parser.py# b/.~lock.parser.py# new file mode 100644 index 0000000..ffdd189 --- /dev/null +++ b/.~lock.parser.py# @@ -0,0 +1 @@ +,chloe,chloe-msi,05.04.2025 12:28,file:///home/jrmer/.config/libreoffice/4; \ No newline at end of file diff --git a/webgen.py b/webgen.py index fa4a680..6a3e93e 100644 --- a/webgen.py +++ b/webgen.py @@ -25,6 +25,7 @@ titles = [] for rootDir, dirs, files in os.walk(args.input_path): for article in files: + if not article.endswith(".md"): continue articles.append(article) print("\nDiscovering articles...\n") @@ -54,7 +55,7 @@ for article in articles: if parser.getMetadata(article)['draft'] == True: if args.verbose: print('{} is a draft, skipping...'.format(article)) continue - html = bs(htmls[article]).prettify() + html = bs(htmls[article], features="lxml").prettify() if not os.path.exists(workingDir): os.makedirs(workingDir) if args.verbose: print("creating directory {}".format(workingDir)) @@ -80,7 +81,7 @@ for article in sorted_articles: link = article.split("/")[-1][:-3] titles.append([title, link]) if args.verbose: print("added {} to titles list with link {}".format(title, link)) -mainPage = bs(stitcher.createMainPage(titles, args.template_path, args.site_title)).prettify() +mainPage = bs(stitcher.createMainPage(titles, args.template_path, args.site_title), features="lxml").prettify() print("Generated main page") print("Writing main page to {}".format(args.output_path)) open(args.output_path + "index.html", 'w').write(mainPage) From 16278b09217bead8ad62cfa115885e0f0bc7b3fc Mon Sep 17 00:00:00 2001 From: ClariSys Date: Mon, 7 Apr 2025 23:32:28 -0700 Subject: [PATCH 2/2] Update README.md --- README.md | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 4f49b39..e93bd01 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,38 @@ # python-webgen -a set of python scripts and html templates to generate blog-style websites +A set of python scripts and html templates to generate blog-style websites. +# Usage ---- -## Getting Started +For built in help, use the `--help` option. -Welcome to your new KitsuDev Repo, ChloeCat! Feel free to make this place your own! +## General Usage: -## Make your first push! -Once you're ready to push your files, use these commands to get to your spot! -```bash -git remote add origin https://kitsunes.dev/ChloeCat/python-webgen.git -git branch -M main -git push -uf origin main -``` +### Basic usage: +`python webgen.py ` +This will use the default location for the template files (`./templates/`) and the css file (`./templates/stylesheet.css`). +This will also set the title to simply "Blog", use `--site_title` to change that. -Once you're all set, please [Make a README](https://www.makeareadme.com/)! +### Example use: +`python webgen.py --site_title "Chloe's Blog" --title_all --css_file ~/css/custom_v2.css ~/Blog/posts/ ~/Blog/output/` ---- -Have fun, and happy coding! +This will generate a site with a title of "Chloe's Blog," which will be applied to the HTML title of all the articles, in addition to the article title. +It will also use a custom CSS file from `~/css/custom_v2.css` which is different from the default. +The posts will come from a folder in the `~/Blog/posts/` folder and the completed HTML files will be placed in `~/Blog/output/`. --- Kio +## Availible Arguments: -(p.s. and while you're at it, say hi to pearl.) +| Argument | Description | +|-----------------|-----------------------------------------------------------------------------------------------------------------------| +|`input_path` |The folder to read the markdown files from. | +|`output_path` |The folder to place the final HTML files in. | +|`--template_path`|The folder where the template HTML snippets are. Default: `./templates/` | +|`--css_file` |The location of a css file to copy to the output folder defined in `output_path`. Default: `./templates/stylesheet.css`| +|`--site_title` |The title shown on the main page. | +|`--title_all` |If enabled, add the main site title to the HTML Title field on the individual articles. | +|`-v` |More output. | + +# TODO +- Add support for image folders +- Handle files correctly :3 +- GUI interface?