verdandi/modules/page.py

64 lines
1.7 KiB
Python
Raw Normal View History

2015-02-26 20:26:39 +01:00
#!/usr/bin/env python2
2015-02-26 23:56:19 +01:00
import os
from datetime import datetime
import markdown
2015-02-26 20:26:39 +01:00
from verdandi.mixins.templatemixin import TemplateMixin
from verdandi.mixins.menuitemmixin import MenuItemMixin
2016-04-23 00:15:49 +02:00
from verdandi.mixins.fileassetsmixin import FileAssetsMixin
from verdandi.mixins.newsitemmixin import NewsItemMixin
from verdandi.constants import CONTENT_DIRECTORY, MARKDOWN_EXTENSIONS
2015-02-26 20:26:39 +01:00
2016-04-23 00:15:49 +02:00
class Page(MenuItemMixin, NewsItemMixin, TemplateMixin, FileAssetsMixin):
2015-02-26 23:56:19 +01:00
content_file = "content.md"
2016-04-20 21:09:34 +02:00
content_is_markdown = True
2015-02-26 23:56:19 +01:00
content_directory = CONTENT_DIRECTORY
markdown_extensions = MARKDOWN_EXTENSIONS
news_item_len = 10
def process_message(self, message):
if message == None:
full_path = os.path.join(self.content_directory, self.content_file)
self.content = self.read_content_file(full_path)
other_messages = super(Page, self).process_message(message)
return other_messages
def get_news_item(self):
lines = self.content['content'].split('\n')
elipsized_content = '\n'.join(lines[0:self.news_item_len])
item = {
'title': self.content['title'],
'content': elipsized_content,
'creation_time': self.content['creation_time'],
'edit_time': self.content['edit_time'],
'url' : self.url
}
return item
2015-02-26 20:26:39 +01:00
def get_context(self):
context = super(Page,self).get_context()
context['title'] = self.content['title']
2015-02-26 20:26:39 +01:00
context['content_creation_time'] = self.content['creation_time']
context['content_edit_time'] = self.content['edit_time']
2015-02-26 23:56:19 +01:00
2016-04-20 21:09:34 +02:00
if self.content_is_markdown:
markdown_converter = markdown.Markdown(extensions = self.markdown_extensions)
markdown_source = self.content['content']
context['content'] = markdown_converter.convert(markdown_source)
else:
context['content'] = self.content['content']
2015-02-26 23:56:19 +01:00
return context