from flask import Flask, render_template, request, redirect from markdown_it import MarkdownIt import os import config import functions import data_management 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('/create_page') def create_page(): return render_template('forms/create_page.html') @app.route('/submit_create_page', methods=['POST']) def submit_create_page(): page_name = request.form['page_name'] return redirect(f'/edit/{page_name}', 302) @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 submit_edit_page(): page = request.form['page'] content = request.form['content'] username = request.form['username'] password_hash = functions.sha512_hash(request.form['password']) user_object = data_management.get_data('users', 'username', username) print(user_object['password_hash']) print(password_hash) if user_object['password_hash'] == password_hash: with open(f'./wiki-pages/{page}.md', 'w') as file: file.write(content) file.close() return redirect(f'/wiki/{page}', 302) else: return 'Incorrect password' if __name__ == '__main__': app.run( debug = config.debug, host = config.host, port = config.port )