# See LICENSE file for copyright and license details.
# Python imports
-import sys, subprocess
+import os, sys, subprocess, configparser
# CMless imports
-import debug, config
+import debug, config, template
# Accepts a string containing a filesystem path to a text file.
# Returns a string containing the contents of that file.
sys.exit("Unable to open markup processor: " + config.markup_processor)
text = p.communicate(text.encode('UTF-8'))[0]
return(text.decode('UTF-8'))
+
+def strip_page_metadata(content):
+ keyword = template.add_delimiter("END_PAGE_METADATA")
+ index = content.find(keyword)
+ if index != -1:
+ return content[index+len(keyword):]
+ else:
+ return content
+
+def lookup_page_metadata(key):
+ page_file = load_file(config.site_data_prefix + os.environ['REQUEST_URI'] +
+ config.markup_file_extension)
+
+ keyword_begin = template.add_delimiter("BEGIN_PAGE_METADATA")
+ keyword_end = template.add_delimiter("END_PAGE_METADATA")
+ index = page_file.find(keyword_end)
+ if index != -1:
+ page_file = page_file[len(keyword_begin):index]
+ else:
+ page_file = ""
+
+ page_metadata = configparser.ConfigParser()
+ page_metadata.read_string(page_file)
+
+ if 'DEFAULT' in page_metadata and key in page_metadata['DEFAULT']:
+ return page_metadata['DEFAULT'][key]
+ else:
+ return ""
# CMless imports
import config, misc
+def add_delimiter(keyword):
+ return config.template_delimiter + keyword + config.template_delimiter
+
+def head_meta_description(template):
+ keyword = add_delimiter("meta_description")
+ return template.replace(keyword,'<meta name="description" content="' + misc.lookup_page_metadata("meta_description") + '">')
+
+def head_meta_keywords(template):
+ keyword = add_delimiter("meta_keywords")
+ return template.replace(keyword,'<meta name="keywords" content="' + misc.lookup_page_metadata("meta_keywords") + '">')
+
def page_title(template):
- keyword = "page_title"
- return template.replace(config.template_delimiter + keyword +
- config.template_delimiter, config.site_name + " - " +
- os.environ['REQUEST_URI'])
+ keyword = add_delimiter("page_title")
+ return template.replace(keyword, config.site_name + " - " + misc.lookup_page_metadata("page_title"))
def site_title(template):
- keyword = "site_title"
- return template.replace(config.template_delimiter + keyword +
- config.template_delimiter, config.site_name)
+ keyword = add_delimiter("site_title")
+ return template.replace(keyword, config.site_name)
def body(template):
- keyword = "page_content"
+ keyword = add_delimiter("page_content")
body = misc.load_file(config.site_data_prefix + os.environ['REQUEST_URI'] +
config.markup_file_extension)
+ body = misc.strip_page_metadata(body)
body = misc.process_markup(body)
- return template.replace(config.template_delimiter + keyword +
- config.template_delimiter, body)
+ return template.replace(keyword, body)
def current_year(template):
- keyword = "current_year"
+ keyword = add_delimiter("current_year")
now = datetime.datetime.now()
- return template.replace(config.template_delimiter + keyword +
- config.template_delimiter, str(now.year))
+ return template.replace(keyword, str(now.year))