Compare commits

...

5 Commits

4 changed files with 27 additions and 18 deletions

View File

@@ -1,12 +1,13 @@
import glob
import shutil
import datetime
import datetime
import textwrap
from pathlib import Path
from blog.page import Page
from blog.config import Config
from jinja2 import Environment, FileSystemLoader, Template
class Blog:
def __init__(self, conf: Config):
@@ -69,7 +70,8 @@ class Blog:
if updated < date:
updated = date
articles += textwrap.indent(
textwrap.dedent(f"""\
textwrap.dedent(
f"""\
<entry>
<title>{self.pages[filename].title}</title>
<link href="{self.conf.url}/pages/{filename}.html"/>
@@ -81,10 +83,13 @@ class Blog:
</div>
</content>
</entry>
"""),
" ")
"""
),
" ",
)
header = textwrap.dedent(f""" <?xml version="1.0" encoding="utf-8"?>
header = textwrap.dedent(
f""" <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>{self.conf.title}</title>
<subtitle>{self.conf.presentation}</subtitle>
@@ -96,11 +101,12 @@ class Blog:
<email>{self.conf.author_mail}</email>
</author>
<id>urn:uuid:{self.conf.id}</id>
""")
"""
)
footer = "</feed>"
with open(Path(self.conf.outbox) / "atom.xml", 'w+') as rss_file:
with open(Path(self.conf.outbox) / "atom.xml", "w+") as rss_file:
rss_file.write(header + articles + footer)
def _copy_css(self):

View File

@@ -4,7 +4,13 @@ from pathlib import Path
class Config:
_conf = dict()
_conf = {
"inbox": "./inbox/",
"outbox": "./outbox/",
"draft": "./draft/",
"theme": "./themes/default/"
}
_list_valid_parameters = {
"inbox",
"outbox",
@@ -15,7 +21,7 @@ class Config:
"draft",
"author_name",
"author_mail",
"id"
"id",
}
def __init__(self, config_file: Path):
@@ -37,4 +43,5 @@ class Config:
"""Surcharge les paramètres depuis une liste fournie"""
for valid_parameter in self._list_valid_parameters:
if valid_parameter in parameters:
self._conf[valid_parameter] = parameters[valid_parameter]
if parameters[valid_parameter] != None:
self._conf[valid_parameter] = parameters[valid_parameter]

View File

@@ -20,7 +20,7 @@ def new_page(title: str, path: Path) -> Path:
f"""\
---
date: {today}
title: {title}
title: "{title}"
id: {id}
category:
tags:

10
main.py
View File

@@ -25,7 +25,6 @@ def load_args():
)
parser.add_argument(
"--inbox",
default="./inbox",
help="Chemin vers les fichiers markdown du blog",
)
parser.add_argument(
@@ -35,7 +34,6 @@ def load_args():
)
parser.add_argument(
"--draft",
default="./draft",
help="Chemin vers les brouillons",
)
parser.add_argument("all", nargs=argparse.REMAINDER, help=argparse.SUPPRESS)
@@ -48,12 +46,10 @@ def load_make_args(args: str) -> dict:
parser.add_argument(
"--theme",
default="./themes/default",
help="Chemin vers le theme utilisé",
)
parser.add_argument(
"--output",
default="./output",
help="Nom du dossier où sera exporté le blog en html",
)
return vars(parser.parse_args(args))
@@ -74,9 +70,9 @@ def main():
case "new":
page_title = " ".join(args["all"])
path = conf.inbox
if args["d"]:
path = conf.draft
print(conf._conf)
path = conf.draft
subprocess.run(
["nvim", "+normal G$", "+startinsert", new_page(page_title, path)]
)