include tokens in result data
This commit is contained in:
1 parent
1b5fc82e59
commit
55f44fab8c
4 files changed
+24
-5
No files matched your search
@@ -16,12 +16,15 @@ class Marker:
|
|||||||
def add_tree_middleware(self, callback):
|
def add_tree_middleware(self, callback):
|
||||||
self.tree_middlewares.append(callback)
|
self.tree_middlewares.append(callback)
|
||||||
|
|
||||||
async def create_tree(self, text: str):
|
def parse(self, text: str):
|
||||||
tokens = text.split('\n')
|
tokens = text.split('\n')
|
||||||
tokens = self.markup_tokens(tokens)
|
tokens = self.markup_tokens(tokens)
|
||||||
tokens = join_tokens(tokens)
|
tokens = join_tokens(tokens)
|
||||||
tokens = merge_tokens(tokens)
|
tokens = merge_tokens(tokens)
|
||||||
|
|
||||||
|
return tokens
|
||||||
|
|
||||||
|
async def create_tree(self, tokens: list):
|
||||||
compiled = await compile_tokens(tokens)
|
compiled = await compile_tokens(tokens)
|
||||||
tree = lxml.html.fromstring(compiled)
|
tree = lxml.html.fromstring(compiled)
|
||||||
return await self.process_tree(tree)
|
return await self.process_tree(tree)
|
||||||
|
|||||||
@@ -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(FileToken))
|
||||||
m.add_token_factory(TokenFactory(TextToken))
|
m.add_token_factory(TokenFactory(TextToken))
|
||||||
m.add_tree_middleware(fix_links_quotes)
|
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 = kazimir.html_from_tree(tree)
|
||||||
post = await kazimir.typo(post)
|
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):
|
def images_from_html(md):
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ class Article(Model):
|
|||||||
self.preview = None
|
self.preview = None
|
||||||
self.images = None
|
self.images = None
|
||||||
self.documents = None
|
self.documents = None
|
||||||
|
self.tokens = None
|
||||||
super().__init__(provider, store, file, params=params)
|
super().__init__(provider, store, file, params=params)
|
||||||
|
|
||||||
def init(self):
|
def init(self):
|
||||||
@@ -103,10 +104,11 @@ class Article(Model):
|
|||||||
else:
|
else:
|
||||||
markdown_post = create_post_from_image_list(self.get_param('images'))
|
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.post = post
|
||||||
self.images = images
|
self.images = images
|
||||||
self.documents = documents
|
self.documents = documents
|
||||||
|
self.tokens = tokens
|
||||||
|
|
||||||
if self.has_param('preview'):
|
if self.has_param('preview'):
|
||||||
preview = self.get_param('preview')
|
preview = self.get_param('preview')
|
||||||
@@ -124,6 +126,7 @@ class Article(Model):
|
|||||||
'file': self.file,
|
'file': self.file,
|
||||||
'origin': self.origin,
|
'origin': self.origin,
|
||||||
'version': self.version,
|
'version': self.version,
|
||||||
|
'tokens': self.tokens,
|
||||||
'preview': self.preview.ref if self.preview else None,
|
'preview': self.preview.ref if self.preview else None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ class Page(Model):
|
|||||||
self.title = None
|
self.title = None
|
||||||
self.data = None
|
self.data = None
|
||||||
self.preview = None
|
self.preview = None
|
||||||
|
self.tokens = None
|
||||||
|
|
||||||
self.__id_template: str = '{category}-{file}'
|
self.__id_template: str = '{category}-{file}'
|
||||||
self.__url_template: str = settings.document_url_template
|
self.__url_template: str = settings.document_url_template
|
||||||
@@ -126,11 +127,12 @@ class Page(Model):
|
|||||||
sizes = kwargs['sizes']
|
sizes = kwargs['sizes']
|
||||||
|
|
||||||
markdown_post = self.get_param('content')
|
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.title = title_from_html(post)
|
||||||
self.data = post
|
self.data = post
|
||||||
self.images = images
|
self.images = images
|
||||||
self.documents = documents
|
self.documents = documents
|
||||||
|
self.tokens = tokens
|
||||||
|
|
||||||
if self.has_param('preview'):
|
if self.has_param('preview'):
|
||||||
preview = self.get_param('preview')
|
preview = self.get_param('preview')
|
||||||
@@ -151,6 +153,7 @@ class Page(Model):
|
|||||||
'images': images,
|
'images': images,
|
||||||
'documents': documents,
|
'documents': documents,
|
||||||
'title': self.title,
|
'title': self.title,
|
||||||
|
'tokens': self.tokens,
|
||||||
'preview': self.preview.ref if self.preview else None,
|
'preview': self.preview.ref if self.preview else None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user