diff --git a/.gitignore b/.gitignore
index 91e58c7..7f5c018 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
venv/
testdata/
+__pycache__/
diff --git a/__main__.py b/__main__.py
new file mode 100644
index 0000000..d31c8ce
--- /dev/null
+++ b/__main__.py
@@ -0,0 +1,37 @@
+import markdown
+import pathlib
+import os
+
+current_dir = pathlib.Path(__file__).parent
+
+with (current_dir / "base_feed.xml").open("r") as f:
+ base_feed = f.read()
+
+with (current_dir / "base_item.xml").open("r") as f:
+ base_item = f.read()
+
+def convert_case(string: str):
+ while string.find("_") != -1:
+ string = string.replace("_" + string[string.index("_") + 1], string[string.index("_") +1].upper())
+
+ return string
+
+def article_to_xml(article_path: pathlib.Path):
+ with (article_path / "article.md").open("r") as f:
+ markdown_data = f.read()
+
+ markdown_instance = markdown.Markdown(extensions=['meta', 'nl2br'])
+ html = markdown_instance.convert(markdown_data)
+ metadata = markdown_instance.Meta
+ tags = [f"<{convert_case(key)}>{metadata[key][0]}{convert_case(key)}>" for key in metadata.keys()]
+ tags.append(f"\n{html}\n")
+ return base_item.format(tags="\n".join(tags))
+
+def make_rss_feed(path, channel_name, channel_link, description):
+ articles = "".join([article_to_xml(path) for path in (pathlib.Path.cwd() / path).glob("*")])
+ return base_feed \
+ .replace("{title}", channel_name) \
+ .replace("{link}", channel_link) \
+ .replace("{description}", description) \
+ .replace("{items}", articles)
+
diff --git a/base_feed.xml b/base_feed.xml
new file mode 100644
index 0000000..22ab714
--- /dev/null
+++ b/base_feed.xml
@@ -0,0 +1,11 @@
+
+
+
+
+{title}
+{link}
+{description}
+{items}
+
+
+
diff --git a/base_item.xml b/base_item.xml
new file mode 100644
index 0000000..c16f303
--- /dev/null
+++ b/base_item.xml
@@ -0,0 +1,3 @@
+-
+{tags}
+
diff --git a/main.py b/main.py
deleted file mode 100644
index e69de29..0000000