69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
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'<a href="/wiki/{page[:-3]}">{page[:-3]}</a><br/>'
|
|
return render_template('index.html', pages=pages_string)
|
|
|
|
@app.route('/wiki/<page>')
|
|
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/<page>')
|
|
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
|
|
)
|