Compare commits
3 Commits
21ea24ffa1
...
f1684a57a9
Author | SHA1 | Date | |
---|---|---|---|
f1684a57a9 | |||
83eb464be9 | |||
0f03ad6f38 |
@ -76,6 +76,8 @@ def handle_markdown_file_path(resolved_path):
|
|||||||
page_title = f'{page_name} - {app.config["TITLE_SUFFIX"]}' if page_name else app.config['TITLE_SUFFIX']
|
page_title = f'{page_name} - {app.config["TITLE_SUFFIX"]}' if page_name else app.config['TITLE_SUFFIX']
|
||||||
logger.debug("title (potentially derived): %s", page_title)
|
logger.debug("title (potentially derived): %s", page_title)
|
||||||
|
|
||||||
|
extra_footer = get_meta_str(md, 'footer') if md.Meta.get('footer') else None
|
||||||
|
|
||||||
template = get_meta_str(md, 'template') if md.Meta.get('template') else 'base.html'
|
template = get_meta_str(md, 'template') if md.Meta.get('template') else 'base.html'
|
||||||
|
|
||||||
# check if this has a HTTP redirect
|
# check if this has a HTTP redirect
|
||||||
@ -86,7 +88,8 @@ def handle_markdown_file_path(resolved_path):
|
|||||||
|
|
||||||
return render(template, title=page_title, description=get_meta_str(md, 'description'),
|
return render(template, title=page_title, description=get_meta_str(md, 'description'),
|
||||||
image=get_meta_str(md, 'image'), base_url=request.base_url, content=content,
|
image=get_meta_str(md, 'image'), base_url=request.base_url, content=content,
|
||||||
navs=parent_navs, mtime=mtime.strftime('%Y-%m-%d %H:%M:%S %Z'))
|
navs=parent_navs, mtime=mtime.strftime('%Y-%m-%d %H:%M:%S %Z'),
|
||||||
|
extra_footer=extra_footer)
|
||||||
|
|
||||||
|
|
||||||
def request_path_to_instance_resource_path(path):
|
def request_path_to_instance_resource_path(path):
|
||||||
|
@ -72,6 +72,10 @@ footer {
|
|||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.extra-footer {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,16 @@ p a:hover, ul a:hover, ol a:hover {
|
|||||||
border-bottom: 1px solid #B31D15;
|
border-bottom: 1px solid #B31D15;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer a, ul a, ol a {
|
||||||
|
color: #999;
|
||||||
|
border-bottom: 1px solid #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:hover, ul a:hover, ol a:hover {
|
||||||
|
color: #811610;
|
||||||
|
border-bottom: 1px solid #811610;
|
||||||
|
}
|
||||||
|
|
||||||
div.site-wrap {
|
div.site-wrap {
|
||||||
background: black;
|
background: black;
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,16 @@ p a:hover, ul a:hover, ol a:hover {
|
|||||||
border-bottom: 1px solid #811610;
|
border-bottom: 1px solid #811610;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer a, ul a, ol a {
|
||||||
|
color: #999;
|
||||||
|
border-bottom: 1px solid #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:hover, ul a:hover, ol a:hover {
|
||||||
|
color: #811610;
|
||||||
|
border-bottom: 1px solid #811610;
|
||||||
|
}
|
||||||
|
|
||||||
div.site-wrap {
|
div.site-wrap {
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,8 @@
|
|||||||
{{ content }}
|
{{ content }}
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<i>Last modified: {{ mtime }}</i>
|
{% if extra_footer %}<div class="extra-footer"><i>{{ extra_footer|safe }}</i></div>{% endif %}
|
||||||
|
<div class="footer"><i>Last modified: {{ mtime }}</i></div>
|
||||||
</footer>
|
</footer>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -4,32 +4,34 @@
|
|||||||
#
|
#
|
||||||
# pip-compile --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in
|
# pip-compile --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in
|
||||||
#
|
#
|
||||||
attrs==21.4.0
|
attrs==22.1.0
|
||||||
# via pytest
|
# via pytest
|
||||||
bandit==1.7.4
|
bandit==1.7.4
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
certifi==2022.5.18.1
|
build==0.8.0
|
||||||
|
# via pip-tools
|
||||||
|
certifi==2022.9.14
|
||||||
# via requests
|
# via requests
|
||||||
charset-normalizer==2.0.12
|
charset-normalizer==2.1.1
|
||||||
# via requests
|
# via requests
|
||||||
click==8.1.3
|
click==8.1.3
|
||||||
# via
|
# via
|
||||||
# flask
|
# flask
|
||||||
# pip-tools
|
# pip-tools
|
||||||
# safety
|
# safety
|
||||||
coverage[toml]==6.4
|
coverage[toml]==6.4.4
|
||||||
# via pytest-cov
|
# via pytest-cov
|
||||||
distlib==0.3.4
|
distlib==0.3.6
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
dlint==0.12.0
|
dlint==0.13.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
dparse==0.5.1
|
dparse==0.6.0
|
||||||
# via safety
|
# via safety
|
||||||
filelock==3.7.0
|
filelock==3.8.0
|
||||||
# via
|
# via
|
||||||
# tox
|
# tox
|
||||||
# virtualenv
|
# virtualenv
|
||||||
flake8==4.0.1
|
flake8==5.0.4
|
||||||
# via
|
# via
|
||||||
# -r requirements/requirements-dev.in
|
# -r requirements/requirements-dev.in
|
||||||
# dlint
|
# dlint
|
||||||
@ -48,19 +50,19 @@ flake8-executable==2.1.1
|
|||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
flake8-fixme==1.1.1
|
flake8-fixme==1.1.1
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
flake8-isort==4.1.1
|
flake8-isort==4.2.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
flake8-logging-format==0.6.0
|
flake8-logging-format==0.7.5
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
flake8-mutable==1.2.0
|
flake8-mutable==1.2.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
flask==2.1.2
|
flask==2.2.2
|
||||||
# via -r requirements/requirements.in
|
# via -r requirements/requirements.in
|
||||||
gitdb==4.0.9
|
gitdb==4.0.9
|
||||||
# via gitpython
|
# via gitpython
|
||||||
gitpython==3.1.27
|
gitpython==3.1.27
|
||||||
# via bandit
|
# via bandit
|
||||||
idna==3.3
|
idna==3.4
|
||||||
# via requests
|
# via requests
|
||||||
iniconfig==1.1.1
|
iniconfig==1.1.1
|
||||||
# via pytest
|
# via pytest
|
||||||
@ -70,23 +72,26 @@ itsdangerous==2.1.2
|
|||||||
# via flask
|
# via flask
|
||||||
jinja2==3.1.2
|
jinja2==3.1.2
|
||||||
# via flask
|
# via flask
|
||||||
markdown==3.3.7
|
markdown==3.4.1
|
||||||
# via -r requirements/requirements.in
|
# via -r requirements/requirements.in
|
||||||
markupsafe==2.1.1
|
markupsafe==2.1.1
|
||||||
# via jinja2
|
# via
|
||||||
mccabe==0.6.1
|
# jinja2
|
||||||
|
# werkzeug
|
||||||
|
mccabe==0.7.0
|
||||||
# via flake8
|
# via flake8
|
||||||
packaging==21.3
|
packaging==21.3
|
||||||
# via
|
# via
|
||||||
|
# build
|
||||||
# dparse
|
# dparse
|
||||||
# pytest
|
# pytest
|
||||||
# safety
|
# safety
|
||||||
# tox
|
# tox
|
||||||
pbr==5.9.0
|
pbr==5.10.0
|
||||||
# via stevedore
|
# via stevedore
|
||||||
pep517==0.12.0
|
pep517==0.13.0
|
||||||
# via pip-tools
|
# via build
|
||||||
pip-tools==6.6.2
|
pip-tools==6.8.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
platformdirs==2.5.2
|
platformdirs==2.5.2
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
@ -98,66 +103,64 @@ py==1.11.0
|
|||||||
# via
|
# via
|
||||||
# pytest
|
# pytest
|
||||||
# tox
|
# tox
|
||||||
pycodestyle==2.8.0
|
pycodestyle==2.9.1
|
||||||
# via flake8
|
# via flake8
|
||||||
pydocstyle==6.1.1
|
pydocstyle==6.1.1
|
||||||
# via flake8-docstrings
|
# via flake8-docstrings
|
||||||
pydot==1.4.2
|
pydot==1.4.2
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
pyflakes==2.4.0
|
pyflakes==2.5.0
|
||||||
# via flake8
|
# via flake8
|
||||||
pyparsing==3.0.9
|
pyparsing==3.0.9
|
||||||
# via
|
# via
|
||||||
# packaging
|
# packaging
|
||||||
# pydot
|
# pydot
|
||||||
pytest==7.1.2
|
pytest==7.1.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/requirements-dev.in
|
# -r requirements/requirements-dev.in
|
||||||
# pytest-cov
|
# pytest-cov
|
||||||
pytest-cov==3.0.0
|
pytest-cov==3.0.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
pyyaml==6.0
|
pyyaml==6.0
|
||||||
# via
|
# via bandit
|
||||||
# bandit
|
requests==2.28.1
|
||||||
# dparse
|
|
||||||
requests==2.27.1
|
|
||||||
# via safety
|
# via safety
|
||||||
safety==1.10.3
|
ruamel-yaml==0.17.21
|
||||||
|
# via safety
|
||||||
|
ruamel-yaml-clib==0.2.6
|
||||||
|
# via ruamel-yaml
|
||||||
|
safety==2.1.1
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
# via
|
# via tox
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
smmap==5.0.0
|
smmap==5.0.0
|
||||||
# via gitdb
|
# via gitdb
|
||||||
snowballstemmer==2.2.0
|
snowballstemmer==2.2.0
|
||||||
# via pydocstyle
|
# via pydocstyle
|
||||||
stevedore==3.5.0
|
stevedore==4.0.0
|
||||||
# via bandit
|
# via bandit
|
||||||
testfixtures==6.18.5
|
|
||||||
# via flake8-isort
|
|
||||||
toml==0.10.2
|
toml==0.10.2
|
||||||
# via
|
# via dparse
|
||||||
# dparse
|
|
||||||
# tox
|
|
||||||
tomli==2.0.1
|
tomli==2.0.1
|
||||||
# via
|
# via
|
||||||
|
# build
|
||||||
# coverage
|
# coverage
|
||||||
# pep517
|
# pep517
|
||||||
# pytest
|
# pytest
|
||||||
tox==3.25.0
|
# tox
|
||||||
|
tox==3.26.0
|
||||||
# via
|
# via
|
||||||
# -r requirements/requirements-dev.in
|
# -r requirements/requirements-dev.in
|
||||||
# tox-wheel
|
# tox-wheel
|
||||||
tox-wheel==0.7.0
|
tox-wheel==0.7.0
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
urllib3==1.26.9
|
urllib3==1.26.12
|
||||||
# via requests
|
# via requests
|
||||||
versioneer==0.22
|
versioneer==0.26
|
||||||
# via -r requirements/requirements-dev.in
|
# via -r requirements/requirements-dev.in
|
||||||
virtualenv==20.14.1
|
virtualenv==20.16.5
|
||||||
# via tox
|
# via tox
|
||||||
werkzeug==2.1.2
|
werkzeug==2.2.2
|
||||||
# via flask
|
# via flask
|
||||||
wheel==0.37.1
|
wheel==0.37.1
|
||||||
# via
|
# via
|
||||||
|
@ -6,15 +6,17 @@
|
|||||||
#
|
#
|
||||||
click==8.1.3
|
click==8.1.3
|
||||||
# via flask
|
# via flask
|
||||||
flask==2.1.2
|
flask==2.2.2
|
||||||
# via -r requirements/requirements.in
|
# via -r requirements/requirements.in
|
||||||
itsdangerous==2.1.2
|
itsdangerous==2.1.2
|
||||||
# via flask
|
# via flask
|
||||||
jinja2==3.1.2
|
jinja2==3.1.2
|
||||||
# via flask
|
# via flask
|
||||||
markdown==3.3.7
|
markdown==3.4.1
|
||||||
# via -r requirements/requirements.in
|
# via -r requirements/requirements.in
|
||||||
markupsafe==2.1.1
|
markupsafe==2.1.1
|
||||||
# via jinja2
|
# via
|
||||||
werkzeug==2.1.2
|
# jinja2
|
||||||
|
# werkzeug
|
||||||
|
werkzeug==2.2.2
|
||||||
# via flask
|
# via flask
|
||||||
|
@ -210,3 +210,11 @@ def test_pages_can_supply_alternate_templates(client):
|
|||||||
response = client.get('/custom-template')
|
response = client.get('/custom-template')
|
||||||
assert b'class="site-wrap site-wrap-normal-width"' not in response.data
|
assert b'class="site-wrap site-wrap-normal-width"' not in response.data
|
||||||
assert b'class="site-wrap site-wrap-double-width"' in response.data
|
assert b'class="site-wrap site-wrap-double-width"' in response.data
|
||||||
|
|
||||||
|
|
||||||
|
def test_extra_footer_per_page(client):
|
||||||
|
"""Test that we don't include the extra-footer if there isn't one (or do if there is)."""
|
||||||
|
response = client.get('/')
|
||||||
|
assert b'<div class="extra-footer">' not in response.data
|
||||||
|
response = client.get('/index-but-with-footer')
|
||||||
|
assert b'<div class="extra-footer"><i>ooo <a href="a">a</a></i>' in response.data
|
||||||
|
6
tests/instance/pages/index-but-with-footer.md
Normal file
6
tests/instance/pages/index-but-with-footer.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Title: Index
|
||||||
|
Footer: ooo <a href="a">a</a>
|
||||||
|
|
||||||
|
# test index
|
||||||
|
|
||||||
|
this is some test content
|
Loading…
x
Reference in New Issue
Block a user