def generate_single_page(self, md_file): logger.debug("Generate {0}".format(md_file)) page_generator = PageGenerator( self.config, self.target_path, os.path.realpath(md_file) ) try: html = page_generator.to_html() except Exception as e: logger.exception('{0}: {1}'.format(md_file, unicode(e))) sys.exit(1) def get_ofile(): scategory, fname = os.path.split(md_file) ofname = "{0}.html".format(os.path.splitext(fname)[0]) category = os.path.relpath(scategory, self.config["source"]) ocategory = os.path.join( self.target_path, self.config["destination"], category ) ofile = os.path.join(ocategory, ofname) return ofile ofile = get_ofile() write_file(html, ofile) meta = page_generator.meta return meta
def generate_page(_file): pg = PageGenerator(_site_config, _base_path) html = pg.to_html(_file) # ignore draft if not html: return None output_fname = YAPatternMatchingEventHandler.get_ofile(_file) write_file(output_fname, html) logging.debug('Regenerating: {0}'.format(_file))
def generate_page(_file): pg = PageGenerator(_site_config, _base_path, _file) html = pg.to_html() category, filename = os.path.split(_file) category = os.path.relpath(category, _site_config['source']) output_fname = os.path.join( _base_path, _site_config['destination'], category, '{0}.html'.format(os.path.splitext(filename)[0])) write_file(output_fname, html) logging.debug('Regenerating: {0}'.format(_file))
def generate_page(_file): pg = PageGenerator(_site_config, _base_path, _file) html = pg.to_html() category, filename = os.path.split(_file) category = os.path.relpath(category, _site_config['source']) output_fname = os.path.join( _base_path, _site_config['destination'], category, '{0}.html'.format(os.path.splitext(filename)[0]) ) write_file(output_fname, html) logging.debug('Regenerating: {0}'.format(_file))
def test_to_html(self): src_file_path = os.path.join(TESTS_ROOT, 'content', 'foo目录', 'foo_page_中文.md') generator = PageGenerator(self.config, self.base_path, src_file_path) html = generator.to_html().strip() expected_output = os.path.join(TESTS_ROOT, 'expected_output.html') fd = open(expected_output, "rb") expected_html = unicode(fd.read(), "utf-8") assert html == expected_html # load template error src_file_path = os.path.join(TESTS_ROOT, 'content', 'foo目录', 'foo_page_中文.md') generator = PageGenerator(self.config, 'wrong_basepath', src_file_path) self.assertRaises(Exception, generator.to_html)
def test_to_html(self): src_file_path = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') generator = PageGenerator(self.config, self.wiki_path, src_file_path) html = generator.to_html().strip() expected_output = os.path.join(self.wiki_path, 'expected_output.html') fd = open(expected_output, "rb") year = datetime.date.today().year expected_html = unicode(fd.read(), "utf-8") % year assert html == expected_html # load template error src_file_path = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.assertRaises(Exception, PageGenerator, self.config, 'wrong_basepath', src_file_path)
def generate_single_page(self, md_file): logger.debug("Generate: {0}".format(md_file)) page_generator = PageGenerator(self.config, self.target_path, os.path.realpath(md_file)) html = page_generator.to_html() # ignore draft if not html: return None category, filename = os.path.split(md_file) category = os.path.relpath(category, self.config['source']) output_file = os.path.join( self.target_path, self.config['destination'], category, '{0}.html'.format(os.path.splitext(filename)[0])) write_file(output_file, html) meta = page_generator.meta return meta
def generate_single_page(self, md_file): logger.debug("Generate: {0}".format(md_file)) page_generator = PageGenerator(self.config, self.target_path, os.path.realpath(md_file)) html = page_generator.to_html() # ignore draft if not html: return None category, filename = os.path.split(md_file) category = os.path.relpath(category, self.config['source']) output_file = os.path.join( self.target_path, self.config['destination'], category, '{0}.html'.format(os.path.splitext(filename)[0]) ) write_file(output_file, html) meta = page_generator.meta return meta
def test_to_html(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') html_generator_config = self.config html_generator_config["markdown_ext"] = {"wikilinks": None} html_generator_generator = PageGenerator(html_generator_config, self.wiki_path) html = html_generator_generator.to_html(src_file).strip() # trip page updated and site generated paragraph html = re.sub( '(?sm)\\n\s*<span class="updated">Page Updated.*?<\/span>', '', html) html = re.sub('(?m)^\s*<p>Site Generated .*?<\/p>$\n', '', html) expected_output = os.path.join(self.wiki_path, 'expected_output.html') fd = open(expected_output, "rb") year = datetime.date.today().year expected_html = unicode(fd.read(), "utf-8") % year assert html.rstrip() == expected_html.rstrip() # load template error src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.assertRaises(Exception, PageGenerator, self.config, 'wrong_basepath', src_file)
class TestPageGenerator(unittest.TestCase): def setUp(self): self.wiki_path = os.path.join(test_path, 'mywiki_for_generator') os.chdir(self.wiki_path) self.config_file = os.path.join(base_path, 'simiki', 'conf_templates', '_config.yml.in') self.config = parse_config(self.config_file) s_themes_path = os.path.join(base_path, 'simiki', 'themes') self.d_themes_path = os.path.join('./', 'themes') if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path) copytree(s_themes_path, self.d_themes_path) self.generator = PageGenerator(self.config, self.wiki_path) def test_get_category_and_file(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file category, filename = self.generator.get_category_and_file() self.assertEqual( (category, filename), (u'foo\u76ee\u5f55', u'foo_page_\u4e2d\u6587.md') ) def test_get_meta_and_content(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() expected_meta = {'date': '2013-10-17 00:03', 'layout': 'page', 'title': 'Foo Page 2'} self.assertEqual(meta, expected_meta) self.assertEqual(content, '<p>Simiki is a simple wiki ' 'framework, written in Python.</p>') # get meta notaion error src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文_meta_error_1.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文_meta_error_2.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def test_get_template_vars(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() template_vars = self.generator.get_template_vars(meta, content) expected_template_vars = { u'page': { u'category': u'foo\u76ee\u5f55', u'content': u'<p>Simiki is a simple wiki ' 'framework, written in Python.</p>', u'filename': u'foo_page_\u4e2d\u6587.html', u'date': '2013-10-17 00:03', u'layout': 'page', u'title': 'Foo Page 2' }, u'site': get_default_config() } expected_template_vars['site'].update({'root': ''}) template_vars['site'].pop('time') expected_template_vars['site'].pop('time') assert template_vars == expected_template_vars def test_to_html(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') html = self.generator.to_html(src_file).strip() expected_output = os.path.join(self.wiki_path, 'expected_output.html') fd = open(expected_output, "rb") year = datetime.date.today().year expected_html = unicode(fd.read(), "utf-8") % year assert html == expected_html # load template error src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.assertRaises(Exception, PageGenerator, self.config, 'wrong_basepath', src_file) def test_get_layout(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_layout_old_post.md') self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, 'page') src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_layout_without_layout.md') self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, 'page') def test_get_meta(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_get_meta_yaml_error.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_get_meta_without_title.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def tearDown(self): if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path)
class TestPageGenerator(unittest.TestCase): def setUp(self): self.wiki_path = os.path.join(test_path, 'mywiki_for_generator') os.chdir(self.wiki_path) self.config_file = os.path.join(base_path, 'simiki', 'conf_templates', '_config.yml.in') self.config = parse_config(self.config_file) s_themes_path = os.path.join(base_path, 'simiki', 'themes') self.d_themes_path = os.path.join('./', 'themes') if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path) copytree(s_themes_path, self.d_themes_path) self.generator = PageGenerator(self.config, self.wiki_path) def test_get_category_and_file(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file category, filename = self.generator.get_category_and_file() self.assertEqual((category, filename), (u'foo\u76ee\u5f55', u'foo_page_\u4e2d\u6587.md')) def test_get_meta_and_content(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() expected_meta = { 'date': '2013-10-17 00:03', 'layout': 'page', 'title': 'Foo Page 2' } self.assertEqual(meta, expected_meta) self.assertEqual( content, '<p>Simiki is a simple wiki ' 'framework, written in Python.</p>') # get meta notaion error src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文_meta_error_1.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文_meta_error_2.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def test_get_template_vars(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() template_vars = self.generator.get_template_vars(meta, content) expected_template_vars = { u'page': { u'category': u'foo\u76ee\u5f55', u'content': u'<p>Simiki is a simple wiki ' 'framework, written in Python.</p>', u'filename': u'foo_page_\u4e2d\u6587.html', u'date': '2013-10-17 00:03', u'layout': 'page', u'title': 'Foo Page 2' }, u'site': get_default_config() } expected_template_vars['site'].update({'root': ''}) template_vars['site'].pop('time') expected_template_vars['site'].pop('time') assert template_vars == expected_template_vars def test_to_html(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') html = self.generator.to_html(src_file).strip() expected_output = os.path.join(self.wiki_path, 'expected_output.html') fd = open(expected_output, "rb") year = datetime.date.today().year expected_html = unicode(fd.read(), "utf-8") % year assert html == expected_html # load template error src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_中文.md') self.assertRaises(Exception, PageGenerator, self.config, 'wrong_basepath', src_file) def test_get_layout(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_layout_old_post.md') self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, 'page') src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_layout_without_layout.md') self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, 'page') def test_get_meta(self): src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_get_meta_yaml_error.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, 'content', 'foo目录', 'foo_page_get_meta_without_title.md') self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def tearDown(self): if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path)
class TestPageGenerator(unittest.TestCase): def setUp(self): self.default_config = get_default_config() self.wiki_path = os.path.join(test_path, "mywiki_for_generator") os.chdir(self.wiki_path) self.config_file = os.path.join(base_path, "simiki", "conf_templates", "_config.yml.in") self.config = parse_config(self.config_file) s_themes_path = os.path.join(base_path, "simiki", self.default_config["themes_dir"]) self.d_themes_path = os.path.join("./", self.default_config["themes_dir"]) if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path) copytree(s_themes_path, self.d_themes_path) self.generator = PageGenerator(self.config, self.wiki_path) def test_get_category_and_file(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文.md") self.generator.src_file = src_file category, filename = self.generator.get_category_and_file() self.assertEqual((category, filename), ("foo\u76ee\u5f55", "foo_page_\u4e2d\u6587.md")) def test_get_meta_and_content(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文.md") self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() expected_meta = { "date": "2013-10-17 00:03", "layout": "page", "title": "Foo Page 2", "category": "foo目录", "filename": "foo_page_中文.html", } self.assertEqual(meta, expected_meta) self.assertEqual(content, "<p>Simiki is a simple wiki " "framework, written in Python.</p>") # get meta notaion error src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文_meta_error_1.md") self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文_meta_error_2.md") self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def test_get_template_vars(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文.md") self.generator.src_file = src_file meta, content = self.generator.get_meta_and_content() template_vars = self.generator.get_template_vars(meta, content) expected_template_vars = { "page": { "category": "foo\u76ee\u5f55", "content": "<p>Simiki is a simple wiki " "framework, written in Python.</p>", "filename": "foo_page_\u4e2d\u6587.html", "date": "2013-10-17 00:03", "layout": "page", "relation": [], "title": "Foo Page 2", }, "site": get_default_config(), } expected_template_vars["site"].update({"root": ""}) template_vars["site"].pop("time") expected_template_vars["site"].pop("time") assert template_vars == expected_template_vars def test_to_html(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文.md") html = self.generator.to_html(src_file).strip() # trip page updated and site generated paragraph html = re.sub('(?sm)\\n\s*<span class="updated">Updated.*?<\/span>', "", html) html = re.sub("(?m)^\s*<p>Site Generated .*?<\/p>$\n", "", html) expected_output = os.path.join(self.wiki_path, "expected_output.html") fd = open(expected_output, "rb") year = datetime.date.today().year expected_html = unicode(fd.read(), "utf-8") % year assert html == expected_html # load template error src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_中文.md") self.assertRaises(Exception, PageGenerator, self.config, "wrong_basepath", src_file) def test_get_layout(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_layout_old_post.md") self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, "page") src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_layout_without_layout.md") self.generator.src_file = src_file meta, _ = self.generator.get_meta_and_content() layout = self.generator.get_layout(meta) self.assertEqual(layout, "page") def test_get_meta(self): src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_get_meta_yaml_error.md") self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) src_file = os.path.join(self.wiki_path, "content", "foo目录", "foo_page_get_meta_without_title.md") self.generator.src_file = src_file self.assertRaises(Exception, self.generator.get_meta_and_content) def tearDown(self): if os.path.exists(self.d_themes_path): shutil.rmtree(self.d_themes_path)