include tokens in result data

This commit is contained in:
tmshv committed 2020-02-29 01:03:42 +03:00
1 parent 1b5fc82e59
commit 55f44fab8c
4 files changed
+24 -5

No files matched your search

+4 -1
View File
@@ -16,12 +16,15 @@ class Marker:
def add_tree_middleware(self, callback):
self.tree_middlewares.append(callback)
async def create_tree(self, text: str):
def parse(self, text: str):
tokens = text.split('\n')
tokens = self.markup_tokens(tokens)
tokens = join_tokens(tokens)
tokens = merge_tokens(tokens)
return tokens
async def create_tree(self, tokens: list):
compiled = await compile_tokens(tokens)
tree = lxml.html.fromstring(compiled)
return await self.process_tree(tree)
+12 -2
View File
@@ -153,12 +153,22 @@ async def create_post(provider: Provider, folder: str, md: str, sizes):
# m.add_token_factory(TokenFactory(FileToken))
m.add_token_factory(TokenFactory(TextToken))
m.add_tree_middleware(fix_links_quotes)
tree = await m.create_tree(md)
tokens = m.parse(md)
tree = await m.create_tree(tokens)
post = kazimir.html_from_tree(tree)
post = await kazimir.typo(post)
return post, images, documents
encoded_tokens = []
for t in tokens:
data = await t.get_data()
encoded_tokens.append({
'token': t.name,
'data': data,
})
return post, images, documents, encoded_tokens
def images_from_html(md):
+4 -1
View File
@@ -71,6 +71,7 @@ class Article(Model):
self.preview = None
self.images = None
self.documents = None
self.tokens = None
super().__init__(provider, store, file, params=params)
def init(self):
@@ -103,10 +104,11 @@ class Article(Model):
else:
markdown_post = create_post_from_image_list(self.get_param('images'))
post, images, documents = await create_post(self.provider, self.get_param('folder'), markdown_post, sizes)
post, images, documents, tokens = await create_post(self.provider, self.get_param('folder'), markdown_post, sizes)
self.post = post
self.images = images
self.documents = documents
self.tokens = tokens
if self.has_param('preview'):
preview = self.get_param('preview')
@@ -124,6 +126,7 @@ class Article(Model):
'file': self.file,
'origin': self.origin,
'version': self.version,
'tokens': self.tokens,
'preview': self.preview.ref if self.preview else None,
}
+4 -1
View File
@@ -96,6 +96,7 @@ class Page(Model):
self.title = None
self.data = None
self.preview = None
self.tokens = None
self.__id_template: str = '{category}-{file}'
self.__url_template: str = settings.document_url_template
@@ -126,11 +127,12 @@ class Page(Model):
sizes = kwargs['sizes']
markdown_post = self.get_param('content')
post, images, documents = await create_post(self.provider, self.get_param('folder'), markdown_post, sizes)
post, images, documents, tokens = await create_post(self.provider, self.get_param('folder'), markdown_post, sizes)
self.title = title_from_html(post)
self.data = post
self.images = images
self.documents = documents
self.tokens = tokens
if self.has_param('preview'):
preview = self.get_param('preview')
@@ -151,6 +153,7 @@ class Page(Model):
'images': images,
'documents': documents,
'title': self.title,
'tokens': self.tokens,
'preview': self.preview.ref if self.preview else None,
}