Esempio n. 1
0
    def generate_single_page(self, md_file):
        logger.debug("Generate {0}".format(md_file))
        pgen = PageGenerator(
            self.configs,
            self.target_path,
            os.path.realpath(md_file)
        )
        try:
            html = pgen.markdown2html()
        except Exception as e:
            logger.exception("{0}\n{1}".format(str(e), traceback.format_exc()))
            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.configs["source"])
            ocategory = os.path.join(
                self.target_path, self.configs["destination"], category
            )
            ofile = os.path.join(ocategory, ofname)
            return ofile

        ofile = get_ofile()
        write_file(html, ofile)
        meta_data, _ = pgen.get_metadata_and_content()
        return meta_data
Esempio n. 2
0
 def generate_single_page(self, md_file):
     md_file = md_file.decode('utf8')
     logger.debug("Generate {0}".format(md_file))
     pgen = PageGenerator(self.configs, self.target_path,
                          os.path.realpath(md_file))
     try:
         html = pgen.markdown2html()
     except Exception, e:
         logger.exception("{0}\n{1}".format(str(e), traceback.format_exc()))
         sys.exit(1)
Esempio n. 3
0
 def generate_single_page(self, md_file):
     md_file = md_file.decode('utf8')
     logger.debug("Generate {0}".format(md_file))
     pgen = PageGenerator(
         self.configs,
         self.target_path,
         os.path.realpath(md_file)
     )
     try:
         html = pgen.markdown2html()
     except Exception, e:
         logger.exception("{0}\n{1}".format(str(e), traceback.format_exc()))
         sys.exit(1)
Esempio n. 4
0
    def generate_single_page(self, md_file):
        md_file = md_file.decode('utf8')
        logger.debug("Generate {}".format(md_file))
        pgen = PageGenerator(self.configs, os.getcwd(), osp.realpath(md_file))
        html = pgen.markdown2html()

        def get_ofile():
            scategory, fname = osp.split(md_file)
            ofname = "{}.html".format(osp.splitext(fname)[0])
            category = osp.relpath(scategory, self.configs["source"])
            ocategory = osp.join(os.getcwd(), self.configs["destination"], category)
            ofile = osp.join(ocategory, ofname)
            return ofile

        ofile = get_ofile()
        write_file(html, ofile)
        meta_data, _ = pgen.get_metadata_and_content()
        return meta_data
Esempio n. 5
0
    def generate_single_page(self, md_file):
        md_file = md_file.decode('utf8')
        logger.debug("Generate {}".format(md_file))
        pgen = PageGenerator(self.configs, os.getcwd(), osp.realpath(md_file))
        html = pgen.markdown2html()

        def get_ofile():
            scategory, fname = osp.split(md_file)
            ofname = "{}.html".format(osp.splitext(fname)[0])
            category = osp.relpath(scategory, self.configs["source"])
            ocategory = osp.join(os.getcwd(), self.configs["destination"],
                                 category)
            ofile = osp.join(ocategory, ofname)
            return ofile

        ofile = get_ofile()
        write_file(html, ofile)
        meta_data, _ = pgen.get_metadata_and_content()
        return meta_data
Esempio n. 6
0
    def generate_single_page(self, md_file):
        logger.debug("Generate {0}".format(md_file))
        pgen = PageGenerator(self.configs, self.target_path,
                             os.path.realpath(md_file))
        try:
            html = pgen.markdown2html()
        except Exception as e:
            logger.exception("{0}\n{1}".format(str(e), traceback.format_exc()))
            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.configs["source"])
            ocategory = os.path.join(self.target_path,
                                     self.configs["destination"], category)
            ofile = os.path.join(ocategory, ofname)
            return ofile

        ofile = get_ofile()
        write_file(html, ofile)
        meta_data, _ = pgen.get_metadata_and_content()
        return meta_data
Esempio n. 7
0
 def generate_single_page(self, md_file):
     md_file = md_file.decode('utf8')
     logger.debug("Generate {}".format(md_file))
     pgen = PageGenerator(self.configs, os.getcwd(), md_file)
     html = pgen.markdown2html()
     pgen.output_to_file(html)
Esempio n. 8
0
class TestPageGenerator(unittest.TestCase):
    def setUp(self):
        self.config_file = os.path.join(
            os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
            "simiki/conf_templates/_config.yml.in")

        configs = parse_configs(self.config_file)
        self.generator = PageGenerator(configs, os.path.dirname(__file__),
                                       TEST_INPUT_FILE)

    def test_get_category_and_file(self):
        category_name, filename = self.generator.get_category_and_file()
        self.assertEqual((category_name, filename),
                         (u'linux', u'test_input.md'))

    def test_get_metadata_and_content(self):
        metadata, content = self.generator.get_metadata_and_content()
        expected_metadata = {
            'date': '2013-11-11 11:11',
            'tag': 'test, wiki',
            'layout': 'page',
            'title': 'Test Generator'
        }
        assert metadata == expected_metadata
        expected_content_list = [
            '\n', '# Simiki #\n', '\n',
            ('Simiki is a simple static site generator '
             'for wiki. Powered by Python.\n')
        ]
        assert content == "".join(expected_content_list)

    def test_get_template_vars(self):
        template_vars = self.generator.get_template_vars()
        expected_template_vars = {
            u'site': {
                'index': False,
                'description': '',
                'title': '',
                'url': '',
                'default_ext': 'md',
                'destination': 'output',
                'themes_dir': 'themes',
                'theme': 'simple',
                'pygments': True,
                'source': 'content',
                'keywords': '',
                'debug': False,
                'author': '',
                'root': ''
            },
            u'page': {
                u'category':
                u'linux',
                u'content':
                (u'<h1 id="simiki">'
                 'Simiki</h1>\n<p>Simiki is a simple static site generator for '
                 'wiki. Powered by Python.</p>'),
                'tag':
                'test, wiki',
                'layout':
                'page',
                'title':
                'Test Generator',
                'date':
                '2013-11-11 11:11'
            }
        }

        assert template_vars == expected_template_vars

    def test_markdown2html(self):
        html = self.generator.markdown2html().strip()
        fd = open(EXPECTED_OUTPUT, "rb")
        expected_html = unicode(fd.read(), "utf-8")
        assert html == expected_html