コード例 #1
0
ファイル: __main__.py プロジェクト: notpushkin/mkdocutils
def build_command(clean, **kwargs):
    """Build the Mkdocutils documentation"""

    try:
        build.build(config.load_config(**kwargs), dirty=not clean)
    except exceptions.ConfigurationError as e:  # pragma: no cover
        # Avoid ugly, unhelpful traceback
        raise SystemExit('\n' + str(e))
コード例 #2
0
ファイル: build_tests.py プロジェクト: notpushkin/mkdocutils
    def test_copying_media(self, site_dir, docs_dir):
        cfg = load_config(docs_dir=docs_dir, site_dir=site_dir)
        build.build(cfg)

        # Verify that only non-empty md file (coverted to html), static HTML file and image are copied.
        self.assertPathIsFile(site_dir, 'index.html')
        self.assertPathIsFile(site_dir, 'img.jpg')
        self.assertPathIsFile(site_dir, 'static.html')
        self.assertPathNotExists(site_dir, 'empty.md')
        self.assertPathNotExists(site_dir, '.hidden')
        self.assertPathNotExists(site_dir, '.git/hidden')
コード例 #3
0
ファイル: __main__.py プロジェクト: notpushkin/mkdocutils
def gh_deploy_command(clean, message, remote_branch, remote_name, force,
                      ignore_version, shell, **kwargs):
    """Deploy your documentation to GitHub Pages"""
    try:
        cfg = config.load_config(remote_branch=remote_branch,
                                 remote_name=remote_name,
                                 **kwargs)
        build.build(cfg, dirty=not clean)
        gh_deploy.gh_deploy(cfg,
                            message=message,
                            force=force,
                            ignore_version=ignore_version,
                            shell=shell)
    except exceptions.ConfigurationError as e:  # pragma: no cover
        # Avoid ugly, unhelpful traceback
        raise SystemExit('\n' + str(e))
コード例 #4
0
ファイル: build_tests.py プロジェクト: notpushkin/mkdocutils
    def test_copy_theme_files(self, site_dir, docs_dir):
        cfg = load_config(docs_dir=docs_dir, site_dir=site_dir)
        build.build(cfg)

        # Verify only theme media are copied, not templates or Python files.
        self.assertPathIsFile(site_dir, 'index.html')
        self.assertPathIsFile(site_dir, '404.html')
        self.assertPathIsDir(site_dir, 'js')
        self.assertPathIsDir(site_dir, 'css')
        self.assertPathIsDir(site_dir, 'img')
        self.assertPathIsDir(site_dir, 'fonts')
        self.assertPathNotExists(site_dir, '__init__.py')
        self.assertPathNotExists(site_dir, '__init__.pyc')
        self.assertPathNotExists(site_dir, 'base.html')
        self.assertPathNotExists(site_dir, 'content.html')
        self.assertPathNotExists(site_dir, 'main.html')
コード例 #5
0
    def builder():
        log.info("Building documentation...")
        config = load_config(
            config_file=config_file,
            dev_addr=dev_addr,
            strict=strict,
            theme=theme,
            theme_dir=theme_dir,
            site_dir=site_dir,
            **kwargs
        )
        # Override a few config settings after validation
        config['site_url'] = 'http://{}/'.format(config['dev_addr'])

        live_server = livereload in ['dirty', 'livereload']
        dirty = livereload == 'dirty'
        build(config, live_server=live_server, dirty=dirty)
        return config
コード例 #6
0
ファイル: plugin_tests.py プロジェクト: notpushkin/mkdocutils
    def test_run_build_error_event(self):
        build_errors = []

        class PluginRaisingError(plugins.BasePlugin):
            def __init__(self, error_on):
                self.error_on = error_on

            def on_pre_page(self, page, **kwargs):
                if self.error_on == 'pre_page':
                    raise BuildError('pre page error')
                return page

            def on_page_markdown(self, markdown, **kwargs):
                if self.error_on == 'page_markdown':
                    raise BuildError('page markdown error')
                return markdown

            def on_page_content(self, html, **kwargs):
                if self.error_on == 'page_content':
                    raise PluginError('page content error')
                return html

            def on_post_page(self, html, **kwargs):
                if self.error_on == 'post_page':
                    raise ValueError('post page error')

            def on_build_error(self, error, **kwargs):
                build_errors.append(error)

        cfg = load_config()
        cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='pre_page')
        self.assertRaises(SystemExit, build.build, cfg)

        cfg = load_config()
        cfg['plugins']['errorplugin'] = PluginRaisingError(
            error_on='page_markdown', )
        self.assertRaises(SystemExit, build.build, cfg)

        cfg = load_config()
        cfg['plugins']['errorplugin'] = PluginRaisingError(
            error_on='page_content', )
        self.assertRaises(SystemExit, build.build, cfg)

        cfg = load_config()
        cfg['plugins']['errorplugin'] = PluginRaisingError(
            error_on='post_page', )
        self.assertRaises(ValueError, build.build, cfg)

        cfg = load_config()
        cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='')
        build.build(cfg)

        self.assertEqual(len(build_errors), 4)
        self.assertIs(build_errors[0].__class__, BuildError)
        self.assertEqual(str(build_errors[0]), 'pre page error')
        self.assertIs(build_errors[1].__class__, BuildError)
        self.assertEqual(str(build_errors[1]), 'page markdown error')
        self.assertIs(build_errors[2].__class__, PluginError)
        self.assertEqual(str(build_errors[2]), 'page content error')
        self.assertIs(build_errors[3].__class__, ValueError)
        self.assertEqual(str(build_errors[3]), 'post page error')