aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/conventionalrp/renderers
diff options
context:
space:
mode:
Diffstat (limited to 'src/conventionalrp/renderers')
-rw-r--r--src/conventionalrp/renderers/__init__.py4
-rw-r--r--src/conventionalrp/renderers/base.py6
-rw-r--r--src/conventionalrp/renderers/html_renderer.py21
-rw-r--r--src/conventionalrp/renderers/json_renderer.py9
-rw-r--r--src/conventionalrp/renderers/markdown_renderer.py26
5 files changed, 66 insertions, 0 deletions
diff --git a/src/conventionalrp/renderers/__init__.py b/src/conventionalrp/renderers/__init__.py
new file mode 100644
index 0000000..ce04364
--- /dev/null
+++ b/src/conventionalrp/renderers/__init__.py
@@ -0,0 +1,4 @@
+# FILE: /trpg-log-processor/trpg-log-processor/src/trpg_log_processor/renderers/__init__.py
+"""
+This file initializes the renderers module.
+""" \ No newline at end of file
diff --git a/src/conventionalrp/renderers/base.py b/src/conventionalrp/renderers/base.py
new file mode 100644
index 0000000..498adec
--- /dev/null
+++ b/src/conventionalrp/renderers/base.py
@@ -0,0 +1,6 @@
+class BaseRenderer:
+ def render(self, data):
+ raise NotImplementedError("Render method must be implemented by subclasses.")
+
+ def set_style(self, style):
+ self.style = style \ No newline at end of file
diff --git a/src/conventionalrp/renderers/html_renderer.py b/src/conventionalrp/renderers/html_renderer.py
new file mode 100644
index 0000000..3c30549
--- /dev/null
+++ b/src/conventionalrp/renderers/html_renderer.py
@@ -0,0 +1,21 @@
+from .base import BaseRenderer
+
+class HTMLRenderer(BaseRenderer):
+ def __init__(self):
+ super().__init__()
+ self.title = "TRPG Log Output"
+
+ def render(self, data):
+ html_content = f"<html><head><title>{self.title}</title></head><body>"
+ html_content += "<h1>TRPG Log Output</h1>"
+ html_content += "<ul>"
+
+ for entry in data:
+ html_content += f"<li>{entry}</li>"
+
+ html_content += "</ul></body></html>"
+ return html_content
+
+ def set_style(self, style):
+ # Implement style setting if needed
+ pass \ No newline at end of file
diff --git a/src/conventionalrp/renderers/json_renderer.py b/src/conventionalrp/renderers/json_renderer.py
new file mode 100644
index 0000000..4313001
--- /dev/null
+++ b/src/conventionalrp/renderers/json_renderer.py
@@ -0,0 +1,9 @@
+from .base import BaseRenderer
+
+class JSONRenderer(BaseRenderer):
+ def render(self, data):
+ import json
+ return json.dumps(data, ensure_ascii=False, indent=4)
+
+ def set_style(self, style):
+ self.style = style # Placeholder for potential styling options in the future \ No newline at end of file
diff --git a/src/conventionalrp/renderers/markdown_renderer.py b/src/conventionalrp/renderers/markdown_renderer.py
new file mode 100644
index 0000000..396d6a4
--- /dev/null
+++ b/src/conventionalrp/renderers/markdown_renderer.py
@@ -0,0 +1,26 @@
+from .base import BaseRenderer
+
+class MarkdownRenderer(BaseRenderer):
+ def render(self, data):
+ """
+ Renders the given data in Markdown format.
+
+ Args:
+ data (dict): The data to render.
+
+ Returns:
+ str: The rendered Markdown string.
+ """
+ markdown_output = ""
+ for key, value in data.items():
+ markdown_output += f"## {key}\n\n{value}\n\n"
+ return markdown_output
+
+ def set_style(self, style):
+ """
+ Sets the style for the Markdown renderer.
+
+ Args:
+ style (dict): A dictionary of style options.
+ """
+ self.style = style # Currently, Markdown does not support styling, but this can be extended. \ No newline at end of file