forked from OpenBMB/ChatDev
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
47 lines (47 loc) · 2.06 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
'''
This is the main file that serves as the entry point for the markdown to HTML converter application.
'''
import tkinter as tk
from tkinter import filedialog
from markdown_parser import MarkdownParser
from html_generator import HTMLGenerator
class MarkdownToHTMLConverter:
def __init__(self):
self.root = tk.Tk()
self.root.title("Markdown to HTML Converter")
self.root.geometry("500x300")
self.file_path = tk.StringVar()
self.create_widgets()
def create_widgets(self):
label = tk.Label(self.root, text="Select a Markdown file:")
label.pack()
file_entry = tk.Entry(self.root, textvariable=self.file_path, width=50)
file_entry.pack()
browse_button = tk.Button(self.root, text="Browse", command=self.browse_file)
browse_button.pack()
convert_button = tk.Button(self.root, text="Convert", command=self.convert_to_html)
convert_button.pack()
def browse_file(self):
file_path = filedialog.askopenfilename(filetypes=[("Markdown Files", "*.md")])
self.file_path.set(file_path)
def convert_to_html(self):
markdown_file = self.file_path.get()
if markdown_file:
parser = MarkdownParser()
html_generator = HTMLGenerator()
with open(markdown_file, 'r',encoding="utf-8") as file:
markdown_content = file.read()
parsed_content = parser.parse(markdown_content)
html_output = html_generator.generate_html(parsed_content)
save_path = filedialog.asksaveasfilename(defaultextension=".html", filetypes=[("HTML Files", "*.html")])
if save_path:
with open(save_path, 'w') as file:
file.write(html_output)
tk.messagebox.showinfo("Conversion Complete", "Markdown to HTML conversion successful!")
else:
tk.messagebox.showerror("Error", "Please select a Markdown file.")
def run(self):
self.root.mainloop()
if __name__ == "__main__":
converter = MarkdownToHTMLConverter()
converter.run()