From af38770285d00981294da54c76dbf0114055b709 Mon Sep 17 00:00:00 2001 From: deadvey Date: Tue, 7 Oct 2025 12:58:31 +0100 Subject: [PATCH] Initial commit --- .gitignore | 5 ++ README.md | 1 + config.py | 3 + docs/amicheletti_python-flask.pdf | Bin 0 -> 81789 bytes main.py | 68 +++++++++++++++++++++++ templates/forms/edit-page.html | 25 +++++++++ templates/index.html | 13 +++++ templates/partials/site-wide-footer.html | 2 + templates/partials/site-wide-header.html | 2 + templates/wiki-page.html | 13 +++++ 10 files changed, 132 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 config.py create mode 100644 docs/amicheletti_python-flask.pdf create mode 100644 main.py create mode 100644 templates/forms/edit-page.html create mode 100644 templates/index.html create mode 100644 templates/partials/site-wide-footer.html create mode 100644 templates/partials/site-wide-header.html create mode 100644 templates/wiki-page.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82bd622 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +wiki-pages/* +webroot/* +venv/ +__pycache__/ +*.swp diff --git a/README.md b/README.md new file mode 100644 index 0000000..2680e52 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +A basic wiki backend written in Python Flask diff --git a/config.py b/config.py new file mode 100644 index 0000000..89a09e0 --- /dev/null +++ b/config.py @@ -0,0 +1,3 @@ +host='0.0.0.0' +port=8080 +debug=True diff --git a/docs/amicheletti_python-flask.pdf b/docs/amicheletti_python-flask.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f60093fd47f8f07067e52e3005e994e7b1cfae9d GIT binary patch literal 81789 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 U0&ZlPTN<00bE&Gj`nz!f0PAl~w*UYD literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..9f84222 --- /dev/null +++ b/main.py @@ -0,0 +1,68 @@ +from flask import Flask, render_template, request, redirect +from markdown_it import MarkdownIt +import os +import config + +md = MarkdownIt().enable('table') + +app = Flask(__name__) + +@app.route('/') +def index(): + pages = os.listdir('./wiki-pages') + pages_string = '' + for page in pages: + if page[-3:] == '.md': + pages_string += f'{page[:-3]}
' + return render_template('index.html', pages=pages_string) + +@app.route('/wiki/') +def wiki_page(page): + if os.path.isfile(f'./wiki-pages/{page}.md'): + file_contents = md.render(open(f'./wiki-pages/{page}.md', 'r').read()) + return render_template( + 'wiki-page.html', + content=file_contents, + page_title=page + ) + else: + return 'Page does not exist' + +@app.route('/edit/') +def edit_page(page): + if os.path.isfile(f'./wiki-pages/{page}.md'): + file_contents = open(f'./wiki-pages/{page}.md', 'r').read() + return render_template( + 'forms/edit-page.html', + content=file_contents, + page_title=page + ) + else: + return render_template( + 'forms/edit-page.html', + content='New Page!', + page_title=page + ) + +# Forms +@app.route('/submit-edit', methods=['POST']) +def handle_data(): + page = request.form['page'] + content = request.form['content'] + username = request.form['username'] + password = request.form['password'] + + with open(f'./wiki-pages/{page}.md', 'w') as file: + print(content) + file.write(content) + file.close() + + return redirect(f'/wiki/{page}', 302) + + +if __name__ == '__main__': + app.run( + debug = config.debug, + host = config.host, + port = config.port + ) diff --git a/templates/forms/edit-page.html b/templates/forms/edit-page.html new file mode 100644 index 0000000..2575065 --- /dev/null +++ b/templates/forms/edit-page.html @@ -0,0 +1,25 @@ + + + +
+ {% include 'partials/site-wide-header.html' %} +
+

{{page_title}}

+
+ + +
+
+
+
+ +
+
+ + +
+
+ {% include 'partials/site-wide-footer.html' %} +
+ + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..aee0c67 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,13 @@ + + +
+ {% include 'partials/site-wide-header.html' %} +
+ Welcome to My Wiki Site!
+ Pages:
+ {{pages|safe}} +
+ {% include 'partials/site-wide-footer.html' %} +
+ + diff --git a/templates/partials/site-wide-footer.html b/templates/partials/site-wide-footer.html new file mode 100644 index 0000000..758e546 --- /dev/null +++ b/templates/partials/site-wide-footer.html @@ -0,0 +1,2 @@ +
+Powered by deadwiki diff --git a/templates/partials/site-wide-header.html b/templates/partials/site-wide-header.html new file mode 100644 index 0000000..846ad6e --- /dev/null +++ b/templates/partials/site-wide-header.html @@ -0,0 +1,2 @@ +Home Page +
diff --git a/templates/wiki-page.html b/templates/wiki-page.html new file mode 100644 index 0000000..e5dc399 --- /dev/null +++ b/templates/wiki-page.html @@ -0,0 +1,13 @@ + + +
+ {% include 'partials/site-wide-header.html' %} +
+

{{page_title}}

+ {{content|safe}}
+ Edit Page + + +