changeset 277:4d84736d125a

Fix page preview.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 26 Sep 2014 07:53:23 -0700
parents 24d5464274bb
children 83827f24563e
files wikked/views/edit.py
diffstat 1 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/wikked/views/edit.py	Thu Sep 25 16:37:32 2014 -0700
+++ b/wikked/views/edit.py	Fri Sep 26 07:53:23 2014 -0700
@@ -3,6 +3,7 @@
 from flask.ext.login import current_user
 from wikked.page import Page, PageData
 from wikked.formatter import PageFormatter, FormattingContext
+from wikked.resolver import PageResolver
 from wikked.views import (make_page_title, get_page_or_none,
         is_page_writable, get_page_meta, url_from_viewarg,
         split_url_from_viewarg)
@@ -13,25 +14,24 @@
     """ A dummy page for previewing in-progress editing.
     """
     def __init__(self, wiki, url, text):
-        Page.__init__(self, wiki, url)
-        self._text = text
+        data = self._loadData(wiki, url, text)
+        super(DummyPage, self).__init__(wiki, data)
 
-    def _loadData(self):
-        extension = self.wiki.fs.default_extension
+    def _loadData(self, wiki, url, text):
         data = PageData()
+        extension = wiki.fs.default_extension
+        data.url = url
         data.path = '__preview__.' + extension
-        data.filename = '__preview__'
-        data.extension = extension
-        data.raw_text = self._text
+        data.raw_text = text
 
-        ctx = FormattingContext(self.url)
-        f = PageFormatter(self.wiki)
+        ctx = FormattingContext(url)
+        f = PageFormatter()
         data.formatted_text = f.formatText(ctx, data.raw_text)
         data.local_meta = ctx.meta
         data.local_links = ctx.out_links
 
         data.title = (data.local_meta.get('title') or
-                make_page_title(self.url))
+                make_page_title(url))
         if isinstance(data.title, list):
             data.title = data.title[0]
 
@@ -132,6 +132,9 @@
     text = request.form.get('text')
     dummy = DummyPage(g.wiki, url, text)
 
+    resolver = PageResolver(dummy)
+    dummy._setExtendedData(resolver.run())
+
     result = {'text': dummy.text}
     return jsonify(result)