start work on blog builder

update blog

update blog
This commit is contained in:
ktyl 2022-01-05 00:54:43 +00:00
parent 55f5974bdb
commit bbe5a77d06
4 changed files with 108 additions and 7 deletions

2
blog

@ -1 +1 @@
Subproject commit 9624dd16001391ce33e982caeefd81e02cee1a42 Subproject commit 90d9f3060491a13a9b41c39fbd5d99f1eabc2444

View File

@ -4,8 +4,13 @@ OUT_DIR = site
ROOT_DIR = $(SRC_DIR)/root ROOT_DIR = $(SRC_DIR)/root
BLOG_SRC_DIR = blog/blogs
BLOG_OUT_DIR = $(OUT_DIR)/blog
BLOG_TMP_DIR = .blogtmp
PAGES = $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.html") PAGES = $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.html")
STYLES = $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.css") STYLES = $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.css")
BLOG_PAGES = $(shell find $(BLOG_SRC_DIR) -wholename "$(BLOG_SRC_DIR)*.md")
IMAGES = $(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.png") IMAGES = $(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.png")
#IMAGES = $(IMAGES:$(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.jpg")) #IMAGES = $(IMAGES:$(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.jpg"))
@ -14,20 +19,33 @@ IMAGES = $(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.png")
HTML_INCLUDES = $(shell find $(SRC_DIR)/inc_html -name *.html) HTML_INCLUDES = $(shell find $(SRC_DIR)/inc_html -name *.html)
CSS_INCLUDES = $(shell find $(SRC_DIR)/inc_css -name *.css) CSS_INCLUDES = $(shell find $(SRC_DIR)/inc_css -name *.css)
BLOG_TARGETS = $(BLOG_PAGES:$(BLOG_SRC_DIR)/%.md=$(BLOG_OUT_DIR)/%.html)
HTML_TARGETS = $(PAGES:$(ROOT_DIR)/%.html=$(OUT_DIR)/%.html) HTML_TARGETS = $(PAGES:$(ROOT_DIR)/%.html=$(OUT_DIR)/%.html)
CSS_TARGETS = $(STYLES:$(ROOT_DIR)/%.css=$(OUT_DIR)/%.css) CSS_TARGETS = $(STYLES:$(ROOT_DIR)/%.css=$(OUT_DIR)/%.css)
PNG_TARGETS = $(IMG_DIR)/%.png=$(OUT_DIR)/%.png PNG_TARGETS = $(IMG_DIR)/%.png=$(OUT_DIR)/%.png
run: $(HTML_TARGETS) $(CSS_TARGETS) run: $(HTML_TARGETS) $(CSS_TARGETS) blog | $(OUT_DIR)
cp $(IMG_DIR)/*.png $(OUT_DIR)/ cp $(IMG_DIR)/*.png $(OUT_DIR)/
$(OUT_DIR)/%.html: $(ROOT_DIR)/%.html $(HTML_INCLUDES) blog: $(BLOG_TARGETS) | $(BLOG_TMP_DIR)
mkdir -p $(OUT_DIR)
$(BLOG_OUT_DIR)/%.html: $(BLOG_SRC_DIR)/%.md | $(BLOG_OUT_DIR)
python scripts/mkblog.py $< $@
$(BLOG_OUT_DIR): | $(OUT_DIR)
mkdir -p $@
$(BLOG_TMP_DIR):
mkdir -p $@
$(OUT_DIR)/%.html: $(ROOT_DIR)/%.html $(HTML_INCLUDES) | $(OUT_DIR)
python ppp/ppp.py $< $(HTML_INCLUDES) > $@ python ppp/ppp.py $< $(HTML_INCLUDES) > $@
$(OUT_DIR)/%.css: $(ROOT_DIR)/%.css $(CSS_INCLUDES) $(OUT_DIR)/%.css: $(ROOT_DIR)/%.css $(CSS_INCLUDES) | $(OUT_DIR)
mkdir -p $(OUT_DIR)
python ppp/ppp.py $< $(CSS_INCLUDES) > $@ python ppp/ppp.py $< $(CSS_INCLUDES) > $@
$(OUT_DIR):
mkdir -p $@
clean: clean:
rm -r $(OUT_DIR) rm -r $(OUT_DIR)

76
scripts/mkblog.py Normal file
View File

@ -0,0 +1,76 @@
#!/usr/bin/env python
import os
import sys
import markdown
# SRC
# +-2022/
# | +-10/
# | +-12/
# | +-25/
# +-2023/
# | +-1/
# | +-26/
# | +-3/
# ...
def print_usage():
print("\nusage: python mkblog.py SRC DEST\n")
print("\n")
print("\t\SRC\tinput markdown file")
print("\t\tDEST\tdestination html file")
# check args
if len(sys.argv) != 3:
print_usage()
sys.exit(1)
src_file = sys.argv[1]
dest_file = sys.argv[2]
# check blog root exists
if not os.path.isfile(src_file):
print("{blog_root} doesn't exist")
sys.exit(1)
# make dest dir if it doesnt exist
with open(src_file) as md:
dest_dir = os.path.dirname(dest_file)
print(dest_dir)
if not os.path.isdir(dest_dir):
os.makedirs(dest_dir)
with open(dest_file, "w") as html:
print(f"{src_file} -> {dest_file}")
html.write(markdown.markdown(md.read()))
#for dir_y in os.listdir(src_dir):
# path_y = os.path.join(src_dir, dir_y)
#
# if not os.path.isdir(path_y):
# continue
#
# for dir_m in os.listdir(path_y):
# path_m = os.path.join(path_y, dir_m)
#
# if not os.path.isdir(path_m):
# continue
#
# for dir_d in os.listdir(path_m):
# path_d = os.path.join(path_m, dir_d)
#
# if not os.path.isdir(path_d):
# continue
#
# print(path_d)
# for md in os.listdir(path_d):
# path_md = os.path.join(path_d, md)
#
# if not os.path.isfile(path_md):
# continue

View File

@ -26,7 +26,14 @@
* [-] features * [-] features
* [-] blog * [-] blog
* [x] parse markdown blog into html * [ ] blog builder
* [ ] i want to generate an entire page based on the existence of one markdown file
* [ ] the file should contain no metadata, that should all be generated automatically
* [ ] yyyy/mm/dd folder structure - can probably be copied from source
* [ ] auto generated <title> tags
* [ ] generated file will be in html but will need a second pass from ppp to insert regular templating things
* [ ] parse markdown blog into html
* [ ] embed parsed html into templated pages * [ ] embed parsed html into templated pages
* [ ] header * [ ] header