Browse Source

adding application_root urls + default metadata

pull/30/head
manetta 3 years ago
parent
commit
44818d981c
  1. 16
      octomode.py
  2. 9
      templates/base.html
  3. 6
      templates/pagedjs.html
  4. 2
      templates/pdf.html
  5. 2
      templates/preview.html

16
octomode.py

@ -120,23 +120,23 @@ def main(name):
def pad(name): def pad(name):
pad_name = f'{ name }.md' pad_name = f'{ name }.md'
url = os.path.join(APP.config['PAD_URL'], pad_name) url = os.path.join(APP.config['PAD_URL'], pad_name)
return render_template('iframe.html', url=url, name=name.strip()) return render_template('iframe.html', url=url, name=name.strip(), application_root=APP.config["APPLICATION_ROOT"])
@APP.route('/<name>/stylesheet/') @APP.route('/<name>/stylesheet/')
def stylesheet(name): def stylesheet(name):
pad_name = f'{ name }.css' pad_name = f'{ name }.css'
url = os.path.join(APP.config['PAD_URL'], pad_name) url = os.path.join(APP.config['PAD_URL'], pad_name)
return render_template('iframe.html', url=url, name=name.strip()) return render_template('iframe.html', url=url, name=name.strip(), application_root=APP.config["APPLICATION_ROOT"])
@APP.route('/<name>/html/') @APP.route('/<name>/html/')
def html(name): def html(name):
path = os.path.join(f'/{ name }/', 'preview.html') path = os.path.join(f'/{ name }/', 'preview.html')
return render_template('iframe.html', url=path, name=name.strip()) return render_template('iframe.html', url=path, name=name.strip(), application_root=APP.config["APPLICATION_ROOT"])
@APP.route('/<name>/pdf/') @APP.route('/<name>/pdf/')
def pdf(name): def pdf(name):
path = os.path.join(f'/{ name }/', 'pagedjs.html') path = os.path.join(f'/{ name }/', 'pagedjs.html')
return render_template('pdf.html', url=path, name=name.strip()) return render_template('pdf.html', url=path, name=name.strip(), application_root=APP.config["APPLICATION_ROOT"])
# ////////////////// # //////////////////
# RENDERED RESOURCES # RENDERED RESOURCES
@ -156,10 +156,14 @@ def preview(name):
md_pad_content = get_pad_content(name, ext='.md') md_pad_content = get_pad_content(name, ext='.md')
html = md_to_html(md_pad_content) html = md_to_html(md_pad_content)
metadata = get_md_metadata(md_pad_content) metadata = get_md_metadata(md_pad_content)
if metadata:
lang = metadata['language'][0] lang = metadata['language'][0]
title = metadata['title'][0] title = metadata['title'][0]
else:
lang = "en"
title = "No title"
return render_template('preview.html', name=name.strip(), pad_content=html, lang=lang, title=title) return render_template('preview.html', name=name.strip(), pad_content=html, lang=lang, title=title, application_root=APP.config["APPLICATION_ROOT"])
@APP.route('/<name>/pagedjs.html') @APP.route('/<name>/pagedjs.html')
def pagedjs(name): def pagedjs(name):
@ -170,7 +174,7 @@ def pagedjs(name):
lang = metadata['language'][0] lang = metadata['language'][0]
title = metadata['title'][0] title = metadata['title'][0]
return render_template('pagedjs.html', name=name.strip(), pad_content=html, lang=lang, title=title) return render_template('pagedjs.html', name=name.strip(), pad_content=html, lang=lang, title=title, application_root=APP.config["APPLICATION_ROOT"])
# ////////////////// # //////////////////

9
templates/base.html

@ -20,14 +20,15 @@ window.addEventListener('load', function () {
const nav = document.createElement('div'); const nav = document.createElement('div');
nav.id = 'nav'; nav.id = 'nav';
const name = '{{ name }}'; const name = '{{ name }}';
const application_root = '{{ application_root }}';
nav.innerHTML = ` nav.innerHTML = `
<h1>${ name } <a href="/"><em class="octomode">in octomode</em></a></h1> <h1>${ name } <a href="/"><em class="octomode">in octomode</em></a></h1>
<div id="buttons"> <div id="buttons">
<a href="/${ name }/pad/"><button>pad</button></a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/${ name }.md"> <a href="${ application_root }${ name }/pad/"><button>pad</button></a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/${ name }.md">
<a href="/${ name }/stylesheet/"><button>stylesheet</button></a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/${ name }.css"> <a href="${ application_root }${ name }/stylesheet/"><button>stylesheet</button></a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/${ name }.css">
<a href="/${ name }/html/"><button>html</button></a> <a href="${ application_root }${ name }/html/"><button>html</button></a>
<a href="/${ name }/pdf/"><button>pdf</button></a> <a href="${ application_root }${ name }/pdf/"><button>pdf</button></a>
</div>`; </div>`;
document.body.insertBefore(nav, document.body.firstChild); document.body.insertBefore(nav, document.body.firstChild);

6
templates/pagedjs.html

@ -3,9 +3,9 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="/static/paged.polyfill.js" type="text/javascript"></script> <script src="{{ application_root }}static/paged.polyfill.js" type="text/javascript"></script>
<link href="/static/pagedjs.css" rel="stylesheet" type="text/css" media="screen"> <link href="{{ application_root }}static/pagedjs.css" rel="stylesheet" type="text/css" media="screen">
<link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="print"> <link href="{{ application_root }}{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="print">
<title>{{ title }}</title> <title>{{ title }}</title>
</head> </head>
<body> <body>

2
templates/pdf.html

@ -16,7 +16,7 @@ window.addEventListener('load', function () {
// Load the main.css again, to load the stylesheet for the nav // Load the main.css again, to load the stylesheet for the nav
var cssLink = document.createElement('link'); var cssLink = document.createElement('link');
cssLink.rel = 'stylesheet'; cssLink.rel = 'stylesheet';
cssLink.href = '/static/main.css'; cssLink.href = '{{ application_root }}/static/main.css';
var head = document.getElementsByTagName('head')[0]; var head = document.getElementsByTagName('head')[0];
head.insertBefore(cssLink, head.firstChild); head.insertBefore(cssLink, head.firstChild);

2
templates/preview.html

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="screen"> <link href="{{ application_root }}/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="screen">
<title>{{ title }}</title> <title>{{ title }}</title>
</head> </head>
<body> <body>

Loading…
Cancel
Save