update sample to new version of flatpage_index

This commit is contained in:
Andreas Stephanides
2020-02-20 18:00:36 +01:00
parent 3b8bd884da
commit cb6c1ebe8c
4 changed files with 48 additions and 38 deletions

View File

@@ -1 +1 @@
title: title title: Stuff Sample

View File

@@ -5,15 +5,12 @@ By default the .md extension creates a html website
import logging import logging
import sys import sys
from flask import Flask, Blueprint,render_template, send_from_directory,jsonify, url_for from flask import Flask, Blueprint,render_template, send_from_directory,jsonify, url_for
#from flask_flatpages import FlatPages, pygments_style_defs
from flatpages_index import FlatPagesIndex from flatpages_index import FlatPagesIndex
import flatpages_index
from flask_frozen import Freezer from flask_frozen import Freezer
from config import Config from config import Config
import os import os
import re
from flatpages_index.utils import path_depth, page_to_link, page_to_link, file_to_link
from functools import partial
#from .flatpages import FileLists
# This is the directory, required for absolute file paths # This is the directory, required for absolute file paths
package_directory = os.path.dirname(os.path.abspath(__file__)) package_directory = os.path.dirname(os.path.abspath(__file__))
@@ -31,9 +28,14 @@ app = Flask(__name__)
app.config.from_object(__name__) app.config.from_object(__name__)
app.logger.setLevel(logging.DEBUG) app.logger.setLevel(logging.DEBUG)
# Initialize FlatPages Index
#FlatPagesIndex.FLATPAGES_ROOT=FLATPAGES_ROOT
flatpages = FlatPagesIndex(app) flatpages = FlatPagesIndex(app)
flatpages_index.Links.endpoint="stuff.post"
flatpages_index.Links.url=(lambda s,x: url_for(s.endpoint, name=x))
#flatpages_index.Links.image_url=(lambda s,x: url_for('stuff.page', name=x))
flatpages_index.Links.file_url=(lambda s,x: url_for('stuff.page', name=x))
flatpages_index.Links.thumb_url=(lambda s,x: url_for('stuff.thumb', size=128,name=x))
flatpages.get('index') flatpages.get('index')
app.logger.info('Initialize SimpleSample App') app.logger.info('Initialize SimpleSample App')
@@ -42,26 +44,24 @@ app.logger.info("Data directory is: %s" % flatpages.root)
app.logger.info("Url prefix;: %s" % cfg.url_prefix) app.logger.info("Url prefix;: %s" % cfg.url_prefix)
app.logger.info("Extensions: %s" % FLATPAGES_EXTENSION) app.logger.info("Extensions: %s" % FLATPAGES_EXTENSION)
freezer = Freezer(app) freezer = Freezer(app)
page_blueprint = Blueprint('stuff', __name__)
page_blueprint = Blueprint('intern', __name__) @page_blueprint.route('/thumb<int:size>/<path:name>/')
def thumb(size=64,name=''):
pass
@page_blueprint.route('/<path:name>/') @page_blueprint.route('/<path:name>/')
@page_blueprint.route('/') @page_blueprint.route('/')
def post(name='index'): def page(name='index'):
page = flatpages.get(name) page = flatpages.get(name)
if not page is None: if not page is None:
page.meta["has_img"]=page.meta.get('has_img',True) page["has_img"]=True
page=page.load_linklists(partial(url_for,'intern.post')) page.links.endpoint='stuff.page'
return render_template(page.meta["template"], post=page, return render_template(page["template"], post=page,
pth=page.meta["dirpath"]) pth=page["dirpath"])
if os.path.exists(os.path.join(FLATPAGES_ROOT,name)): if os.path.exists(os.path.join(FLATPAGES_ROOT,name)):
return send_from_directory(FLATPAGES_ROOT,name) return send_from_directory(FLATPAGES_ROOT,name)
@@ -72,16 +72,13 @@ def post(name='index'):
@page_blueprint.route('/<path:name>.json',strict_slashes=False) @page_blueprint.route('/<path:name>.json',strict_slashes=False)
def postjson(name='index'): def pagejson(name='index'):
page = flatpages.get(name) page = flatpages.get(name)
if not page is None: if not page is None:
page.meta["has_img"]=page.meta.get('has_img',True) page["has_img"]=False
page.links.endpoint='stuff.pagejson'
page=page.load_linklists(partial(url_for,'intern.post')) # page.links.file_url=lambda n: url_for('intern.post', name=n)
p=page.meta return jsonify(page=dict(page))
p["html"]=page.html
return jsonify(page=p)
if os.path.exists(u'{}/{}'.format(FLATPAGES_ROOT,path)): if os.path.exists(u'{}/{}'.format(FLATPAGES_ROOT,path)):
return send_from_directory(FLATPAGES_ROOT,path) return send_from_directory(FLATPAGES_ROOT,path)
@@ -91,4 +88,3 @@ def postjson(name='index'):
app.register_blueprint(page_blueprint, url_prefix=cfg.url_prefix,static_folder='static') app.register_blueprint(page_blueprint, url_prefix=cfg.url_prefix,static_folder='static')
app.add_url_rule('%s/<path:name>' % cfg.url_prefix,'page', post)

View File

@@ -7,7 +7,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<nav class="breadcrumb" style="background-color: #FFF"> <nav class="breadcrumb" style="background-color: #FFF">
{% for b in post.breadcrumbs %} {% for b in post.links.breadcrumbs %}
<a href="{#url_for('page',name=b.path)#}{{b.url}}" class="breadcrumb-item">{{b.title}} </a> <a href="{#url_for('page',name=b.path)#}{{b.url}}" class="breadcrumb-item">{{b.title}} </a>
{% endfor %} {% endfor %}

View File

@@ -1,14 +1,15 @@
{# -*-jinja2-*- #} {# -*-jinja2-*- #}
{% extends "layout.html" %} {% extends "layout.html" %}
{% block content %} {% block content %}
<h1>{{post.title}}</h1> <h1>{{post.title}}</h1>
{{post.date}} {{post.date}}
{% if post.sub_index_pages | length > 0 %} {% if post.links["subindexpages"] | length > 0 %}
<hr/> <hr/>
<b id="up_head"> Unterseiten: </b> <b id="up_head"> Unterseiten: </b>
<ul class="nav flex-column flex-sm-row " labeledby="up_head"> <ul class="nav flex-column flex-sm-row " labeledby="up_head">
{% for d in post.sub_index_pages %} {% for d in post.links["subindexpages"] %}
<li class="nav-item"> <li class="nav-item">
<a href="{{d.url}}" class="nav-link"> <a href="{{d.url}}" class="nav-link">
<h6> {{d.title}} <small class="text-muted">{{d.desc}} </small> </h6> <h6> {{d.title}} <small class="text-muted">{{d.desc}} </small> </h6>
@@ -18,11 +19,10 @@
</ul> </ul>
{% endif %} {% endif %}
{{ post.helloworld() }}
{{ post.html|safe }} {{ post.html|safe }}
{% if post.sub_pages |length > 0 %} {% if post.links["subpages"] |length > 0 %}
<ul class="nav flex-column flex-sm-row" labeledby="inf_head"> <ul class="nav flex-column flex-sm-row" labeledby="inf_head">
{% for d in post.sub_pages %} {% for d in post.sub_pages %}
<li class="nav-item"> <li class="nav-item">
@@ -36,15 +36,29 @@
</ul> </ul>
{% endif %} {% endif %}
{% if post.list_files |length > 0 %} {% if post.links["files"] |length > 0 %}
<hr/> <hr/>
<b id="inf_head">Files:</b> <b id="inf_head">Files:</b>
<ul> <ul>
{% for d in post.list_files %} {% for d in post.links.files %}
<li> <li>
<a href="{{d.url}}">{{d}} </a> <a href="{{d.url}}">{{d.title}} </a>
</li>
{% endfor %}
</ul>
{% endif %}
{% if post.links["images"] |length > 0 %}
<hr/>
<b id="inf_head">Images:</b>
<ul>
{% for d in post.links.images %}
<li>
<a href="{{d.url}}">{{d.title}} </a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>