refactor
This commit is contained in:
parent
375a3b8463
commit
acae10d185
43
publish.py
43
publish.py
|
@ -18,6 +18,8 @@ htmltemplate = """<!DOCTYPE html>
|
||||||
</head>
|
</head>
|
||||||
<body>{body}</body></html>"""
|
<body>{body}</body></html>"""
|
||||||
|
|
||||||
|
settingsfile = "../textes/settings.yml"
|
||||||
|
|
||||||
def apply_html_template(body, title):
|
def apply_html_template(body, title):
|
||||||
return htmltemplate.format(body=body, title=title)
|
return htmltemplate.format(body=body, title=title)
|
||||||
|
|
||||||
|
@ -32,7 +34,7 @@ def md2gmi(md):
|
||||||
gmi = re.sub(r'\*(.*)\*', r'\1', gmi)
|
gmi = re.sub(r'\*(.*)\*', r'\1', gmi)
|
||||||
return gmi
|
return gmi
|
||||||
|
|
||||||
with open("settings.yml", "r", encoding="utf-8") as file:
|
with open(settingsfile, "r", encoding="utf-8") as file:
|
||||||
index = yaml.safe_load(file)
|
index = yaml.safe_load(file)
|
||||||
|
|
||||||
htmlhome = "<h1>{}</h1><p>{}</p>".format(index['title'], index['description'])
|
htmlhome = "<h1>{}</h1><p>{}</p>".format(index['title'], index['description'])
|
||||||
|
@ -42,12 +44,21 @@ os.makedirs("out/html", exist_ok=True)
|
||||||
os.makedirs("out/gmi", exist_ok=True)
|
os.makedirs("out/gmi", exist_ok=True)
|
||||||
|
|
||||||
for folderinfo in index['folders']:
|
for folderinfo in index['folders']:
|
||||||
htmlhome += "\n<h2>{}</h2>\n<ul>".format(folderinfo['title'])
|
|
||||||
gmihome += "\n\n## {}".format(folderinfo['title'])
|
|
||||||
|
|
||||||
if 'texts' in folderinfo:
|
sectiontitle = folderinfo['title']
|
||||||
for textinfo in folderinfo['texts']:
|
|
||||||
with open(os.path.join(folderinfo['folder'], textinfo['file']), "r", encoding="utf-8") as mdfile:
|
htmlhome += "\n<h2>{}</h2>\n<ul>".format(sectiontitle)
|
||||||
|
gmihome += "\n\n## {}".format(sectiontitle)
|
||||||
|
|
||||||
|
for fileinfo in folderinfo['files']:
|
||||||
|
|
||||||
|
filename = fileinfo['file']
|
||||||
|
filetitle = fileinfo['title']
|
||||||
|
fileroot, fileextension = os.path.splitext(filename)
|
||||||
|
|
||||||
|
if fileextension == '.md':
|
||||||
|
|
||||||
|
with open(os.path.join(folderinfo['folder'], filename), "r", encoding="utf-8") as mdfile:
|
||||||
mdcontent = mdfile.read()
|
mdcontent = mdfile.read()
|
||||||
|
|
||||||
# clean header
|
# clean header
|
||||||
|
@ -56,20 +67,20 @@ for folderinfo in index['folders']:
|
||||||
htmlcontent = md2html(mdcontent)
|
htmlcontent = md2html(mdcontent)
|
||||||
gmicontent = md2gmi(mdcontent)
|
gmicontent = md2gmi(mdcontent)
|
||||||
|
|
||||||
with open("out/html/{}".format(textinfo['file']).replace('.md', '.html'), "w", encoding="utf-8") as htmlfile:
|
with open("out/html/{}".format(filename).replace('.md', '.html'), "w", encoding="utf-8") as htmlfile:
|
||||||
htmlfile.write(apply_html_template(htmlcontent, "{} | {}".format(textinfo['title'], index['title'])))
|
htmlfile.write(apply_html_template(htmlcontent, "{} | {}".format(filetitle, index['title'])))
|
||||||
|
|
||||||
with open("out/gmi/{}".format(textinfo['file']).replace('.md', '.gmi'), "w", encoding="utf-8") as gmifile:
|
with open("out/gmi/{}".format(filename).replace('.md', '.gmi'), "w", encoding="utf-8") as gmifile:
|
||||||
gmifile.write(gmicontent)
|
gmifile.write(gmicontent)
|
||||||
|
|
||||||
if 'restricted' not in textinfo:
|
htmlhome += "<li><a href=\"{}\">{}</a></li>".format(filename.replace('.md', '.html'), filetitle)
|
||||||
htmlhome += "<li><a href=\"{}\">{}</a></li>".format(textinfo['file'].replace('.md', '.html'), textinfo['title'])
|
gmihome += "\n=> {} {}".format(filename.replace('.md', '.gmi').replace(' ', '%20'), filetitle)
|
||||||
gmihome += "\n=> {} {}".format(textinfo['file'].replace('.md', '.gmi').replace(' ', '%20'), textinfo['title'])
|
|
||||||
|
|
||||||
if 'sounds' in folderinfo:
|
else:
|
||||||
for soundinfo in folderinfo['sounds']:
|
|
||||||
shutil.copy(os.path.join(folderinfo['folder'], soundinfo['file']), 'out/html')
|
# sounds
|
||||||
htmlhome += "<li>{}</li><audio controls><source src=\"{}\"></audio>".format(soundinfo['title'], soundinfo['file'])
|
shutil.copy(os.path.join(folderinfo['folder'], filename), 'out/html')
|
||||||
|
htmlhome += "<li>{}</li><audio controls><source src=\"{}\"></audio>".format(filetitle, filename)
|
||||||
|
|
||||||
htmlhome += "\n</ul>"
|
htmlhome += "\n</ul>"
|
||||||
|
|
||||||
|
|
|
@ -3,19 +3,19 @@ description: Description of my web site
|
||||||
folders:
|
folders:
|
||||||
- folder: ../path/containing/texts
|
- folder: ../path/containing/texts
|
||||||
title: Section title
|
title: Section title
|
||||||
texts:
|
files:
|
||||||
- file: file1.md
|
- file: file1.md
|
||||||
title: Title 1
|
title: Title 1
|
||||||
- file: file2.md
|
- file: file2.md
|
||||||
title: Title 2
|
title: Title 2
|
||||||
- folder: ../path/containing/texts
|
- folder: ../path/containing/texts
|
||||||
title: Other section title
|
title: Other section title
|
||||||
texts:
|
files:
|
||||||
- file: file3.md
|
- file: file3.md
|
||||||
title: Title 3
|
title: Title 3
|
||||||
- folder: ../path/containing/sounds
|
- folder: ../path/containing/sounds
|
||||||
title: Sound section title
|
title: Sound section title
|
||||||
sounds:
|
files:
|
||||||
- file: song1.mp3
|
- file: song1.mp3
|
||||||
title: Song 1
|
title: Song 1
|
||||||
- file: song 2.mp3
|
- file: song 2.mp3
|
||||||
|
|
Loading…
Reference in New Issue