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))
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')
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))
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')
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
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')