Mercurial > wikked
changeset 299:794dfdb722e7
Use more proper URLs for non-default endpoints.
Make the `templates:` endpoint not a search/query endpoint.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 29 Sep 2014 00:10:45 -0700 |
parents | 8bf279b1e8f8 |
children | 62d54e55208a |
files | wikked/assets/js/wikked/handlebars.js wikked/assets/tpl/read-page.html wikked/resources/defaults.cfg wikked/views/__init__.py wikked/views/edit.py wikked/views/read.py |
diffstat | 6 files changed, 24 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/wikked/assets/js/wikked/handlebars.js Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/assets/js/wikked/handlebars.js Mon Sep 29 00:10:45 2014 -0700 @@ -107,7 +107,7 @@ }); Handlebars.registerHelper('get_cat_url', function(url, options) { url = url.toString(); - return '/#/read/category:' + url.replace(/^\//, ''); + return '/#/read/' + url.replace(/^\//, ''); }); });
--- a/wikked/assets/tpl/read-page.html Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/assets/tpl/read-page.html Mon Sep 29 00:10:45 2014 -0700 @@ -2,8 +2,8 @@ {{#ifnot meta.notitle}} <header> <h1>{{meta.title}}</h1> - {{#if meta_query}} - <div class="decorator">{{meta_query}}</div> + {{#if endpoint}} + <div class="decorator">{{endpoint}}</div> {{/if}} {{#if redirected_from}} <div class="decorator"><small>Redirected from
--- a/wikked/resources/defaults.cfg Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/resources/defaults.cfg Mon Sep 29 00:10:45 2014 -0700 @@ -11,6 +11,9 @@ [endpoint:special] query=False +[endpoint:templates] +query=False + [endpoint:user] query=False default=special:User
--- a/wikked/views/__init__.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/__init__.py Mon Sep 29 00:10:45 2014 -0700 @@ -15,18 +15,18 @@ def url_from_viewarg(url): - url = urllib.unquote(url) - endpoint, path = split_page_url(url) + endpoint, path = split_url_from_viewarg(url) if endpoint: - return u'%s:/%s' % (endpoint, path) - return u'/' + path + return u'%s:%s' % (endpoint, path) + return path def split_url_from_viewarg(url): url = urllib.unquote(url) endpoint, path = split_page_url(url) - value = string.rsplit(path, '/', 1)[-1] - return (endpoint, value, u'/' + path) + if endpoint: + return (endpoint, path) + return (None, u'/' + path) def make_page_title(url): @@ -100,7 +100,7 @@ result = [] for item in category: result.append({ - 'url': urllib.quote(item.encode('utf-8')), + 'url': u'category:/' + urllib.quote(item.encode('utf-8')), 'name': item }) return result
--- a/wikked/views/edit.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/edit.py Mon Sep 29 00:10:45 2014 -0700 @@ -98,7 +98,7 @@ @app.route('/api/edit/<path:url>', methods=['GET', 'POST']) def api_edit_page(url): - endpoint, value, path = split_url_from_viewarg(url) + endpoint, path = split_url_from_viewarg(url) if request.method == 'GET': url = path @@ -106,10 +106,10 @@ custom_data = None if endpoint is not None: url = u'%s:%s' % (endpoint, path) - default_title = u'%s: %s' % (endpoint, value) + default_title = u'%s: %s' % (endpoint, path) custom_data = { 'meta_query': endpoint, - 'meta_value': value + 'meta_value': path.lstrip('/') } return get_edit_page( @@ -121,7 +121,7 @@ default_message = u'Edited ' + url if endpoint is not None: url = u'%s:%s' % (endpoint, path) - default_message = u'Edited %s %s' % (endpoint, value) + default_message = u'Edited %s %s' % (endpoint, path.lstrip('/')) return do_edit_page(url, default_message)
--- a/wikked/views/read.py Mon Sep 29 00:09:22 2014 -0700 +++ b/wikked/views/read.py Mon Sep 29 00:10:45 2014 -0700 @@ -70,7 +70,7 @@ no_redirect = ('no_redirect' in request.args) - endpoint, value, path = split_url_from_viewarg(url) + endpoint, path = split_url_from_viewarg(url) if endpoint is None: # Normal page. visited_paths = [] @@ -121,11 +121,15 @@ if not endpoint_info.query: # Not a query-based endpoint (like categories). Let's just # return the text. - result = {'meta': get_page_meta(info_page), 'text': info_page.text} + result = { + 'endpoint': endpoint, + 'meta': get_page_meta(info_page), + 'text': info_page.text} result.update(additional_info) return jsonify(result) # Get the list of pages to show here. + value = path.lstrip('/') query = {endpoint: [value]} pages = g.wiki.getPages(meta_query=query, fields=['url', 'title', 'text', 'meta']) @@ -143,6 +147,7 @@ # under either a default text, or the text from the meta page. text = render_template('meta_page.html', **tpl_data) result = { + 'endpoint': endpoint, 'meta_query': endpoint, 'meta_value': value, 'query': query,