mirror of
https://github.com/tiyn/beaker-blog.git
synced 2025-04-02 15:37:46 +02:00
standalone added
This commit is contained in:
parent
ba1be5199b
commit
a5a20398c0
@ -13,8 +13,9 @@ However I dislike using a script for adding entries and just want to add entries
|
||||
- [x] Archive page
|
||||
- [x] Months as headings
|
||||
- [x] Links to scrolling blog page
|
||||
- [ ] Links to standalone article
|
||||
- [ ] Standalone article page
|
||||
- [x] Links to standalone article
|
||||
- [x] Standalone article page
|
||||
- [x] Links to scrolling blog page
|
||||
- [x] RSS feed
|
||||
- [ ] Better navigation
|
||||
- [ ] Header
|
||||
|
@ -1,4 +1,4 @@
|
||||
from flask import Flask, flash, make_response, render_template, request, redirect
|
||||
from flask import Flask, flash, make_response, render_template, request, redirect, abort
|
||||
|
||||
import content as con_gen
|
||||
|
||||
@ -24,6 +24,13 @@ def blog_archive():
|
||||
content = con_gen.gen_arch_string()
|
||||
return render_template('archive.html', title='Blog Archive', content_string=content)
|
||||
|
||||
@app.route('/entry/<path>')
|
||||
def entry(path):
|
||||
content = con_gen.gen_stand_string(path)
|
||||
if content != '':
|
||||
return render_template('standalone.html', title='Blog Entry', content_string=content)
|
||||
abort(404)
|
||||
|
||||
|
||||
@app.route('/feed.xml')
|
||||
@app.route('/rss.xml')
|
||||
|
@ -36,8 +36,12 @@ def gen_arch_string():
|
||||
filename = filename.split('.', 1)[0]
|
||||
content_string += '<li>'
|
||||
content_string += curr_date + ' - '
|
||||
content_string += title + ' ['
|
||||
content_string += '<a href="' + '/index.html#' + \
|
||||
filename + '">' + title + '</a><br>'
|
||||
filename + '">' + 'link' + '</a> - '
|
||||
content_string += '<a href="' + '/entry/' + \
|
||||
pathlib.PurePath(file).name + '">' + 'standalone' + '</a>'
|
||||
content_string += '] <br>'
|
||||
content_string += '</li>\n'
|
||||
content_string += '</ul>\n'
|
||||
return content_string
|
||||
@ -60,12 +64,14 @@ def gen_index_string():
|
||||
filename = filename.split('.', 1)[0]
|
||||
content_string += '<div class=\'entry\'>\n'
|
||||
content_string += '<h2 id=\'' + filename + '\'>' + title + '</h2>\n'
|
||||
content_string += '[<a href="' + '/entry/' + \
|
||||
pathlib.PurePath(file).name + '">' + 'standalone' + '</a>]<br>\n'
|
||||
if file.endswith('.html'):
|
||||
for line in text:
|
||||
content_string += line
|
||||
content_string += '<br>'
|
||||
if file.endswith('.md'):
|
||||
content_string += gen_md_content(file)
|
||||
content_string += gen_md_content(file, 2)
|
||||
content_string += '<small>' + \
|
||||
datetime.fromtimestamp(os.path.getctime(
|
||||
file)).strftime('%Y-%m-%d') + '</small>'
|
||||
@ -73,18 +79,40 @@ def gen_index_string():
|
||||
return content_string
|
||||
|
||||
|
||||
def gen_md_content(path_ex):
|
||||
def gen_stand_string(path_ex):
|
||||
filename = os.path.join(ENTRY_DIR, path_ex)
|
||||
content_string = ''
|
||||
if path.exists(filename):
|
||||
title = open(filename).readline().rstrip('\n')
|
||||
text = open(filename).readlines()[1:]
|
||||
filename_no_end = filename.split('.', 1)[0]
|
||||
content_string += '<h1>' + title + '</h1>\n'
|
||||
content_string += '['
|
||||
content_string += '<a href="' + '/index.html#' + \
|
||||
filename_no_end + '">' + 'link' + '</a>'
|
||||
content_string += ']<br>\n'
|
||||
if filename.endswith('.html'):
|
||||
for line in text:
|
||||
content_string += line
|
||||
content_string += '<br>'
|
||||
if filename.endswith('.md'):
|
||||
content_string += gen_md_content(filename, 1)
|
||||
return content_string
|
||||
|
||||
|
||||
def gen_md_content(path_ex, depth):
|
||||
content_string = ''
|
||||
if path.exists(path_ex):
|
||||
filename = path_ex.split('.', 1)
|
||||
fileend = filename[len(filename) - 1]
|
||||
markdown_file = open(path_ex, "r")
|
||||
depth = 2
|
||||
header = '#'
|
||||
for i in range(depth):
|
||||
header += '#'
|
||||
header += ' '
|
||||
markdown_text = markdown_file.read().replace('# ', header)
|
||||
markdown_lines = open(path_ex, "r").readlines()[1:]
|
||||
markdown_text = ''
|
||||
for line in markdown_lines:
|
||||
markdown_text += line.replace('# ', header)
|
||||
content_string = markdown.markdown(
|
||||
markdown_text, extensions=["fenced_code", "tables"]
|
||||
)
|
||||
|
10
src/templates/standalone.html
Normal file
10
src/templates/standalone.html
Normal file
@ -0,0 +1,10 @@
|
||||
{% extends 'template.html' %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="standalone">
|
||||
{% autoescape off %}
|
||||
{{ content_string }}
|
||||
{% endautoescape %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Loading…
x
Reference in New Issue
Block a user