def __init__(self, project, app): "Banana banana" self.project = project self.app = app self.__all_pages = {} self.root = None self.__dep_map = project.dependency_map self.__fill_dep_map() cmark.hotdoc_to_ast(u'', self, None) self.__extensions = {}
def page_from_raw_text(self, source_file, contents): """ Banana banana """ raw_contents = contents meta = {} if contents.startswith('---\n'): split = contents.split('\n...\n', 1) if len(split) == 2: contents = split[1] try: blocks = yaml.load_all(split[0]) for block in blocks: if block: meta.update(block) except ConstructorError as exception: warn('invalid-page-metadata', '%s: Invalid metadata: \n%s' % (source_file, str(exception))) output_path = os.path.dirname(os.path.relpath( source_file, iter(self.__include_paths).next())) ast = cmark.hotdoc_to_ast(contents, self) return Page(source_file, ast, output_path, meta=meta, raw_contents=raw_contents)
def page_from_raw_text(self, source_file, contents, extension_name): """ Banana banana """ raw_contents = contents meta = {} if contents.startswith('---\n'): split = contents.split('\n...\n', 1) if len(split) == 2: contents = split[1] try: blocks = yaml.load_all(split[0], Loader=yaml.FullLoader) for block in blocks: if block: meta.update(block) except ConstructorError as exception: warn('invalid-page-metadata', '%s: Invalid metadata: \n%s' % (source_file, str(exception))) output_path = os.path.dirname(os.path.relpath( source_file, next(iter(self.project.include_paths)))) ast = cmark.hotdoc_to_ast(contents, self, source_file) return Page(source_file, False, self.project.sanitized_name, extension_name, source_file=source_file, ast=ast, meta=meta, raw_contents=raw_contents, output_path=output_path)
def __init__(self, private_folder, include_paths): "Banana banana" self.__include_paths = include_paths self.__priv_dir = private_folder try: self.__all_pages = self.__load_private('pages.p') self.__incremental = True except IOError: self.__all_pages = {} self.__placeholders = {} self.root = None self.__dep_map = self.__create_dep_map() DocDatabase.comment_updated_signal.connect(self.__comment_updated_cb) cmark.hotdoc_to_ast(u'', self)
def __init__(self, project, app): "Banana banana" self.project = project self.app = app if self.app.incremental: self.__all_pages = self.__load_private('pages-%s.p' % self.project.sanitized_name) else: self.__all_pages = {} self.__placeholders = {} self.root = None self.__dep_map = self.__create_dep_map() cmark.hotdoc_to_ast(u'', self) self.__extensions = {} self.resolve_placeholder_signal = Signal(optimized=True) self.list_override_pages_signal = Signal(optimized=True) self.update_signal = Signal() self.resolving_symbol_signal = Signal()
def resolve_symbols(self, doc_database, link_resolver, page=None): """Will call resolve_symbols on all the stale subpages of the tree. Args: page: hotdoc.core.doc_tree.Page, the page to resolve symbols in, will recurse on potential subpages. """ page = page or self.root if page.is_stale: if page.ast is None and not page.generated: with io.open(page.source_file, 'r', encoding='utf-8') as _: page.ast = cmark.hotdoc_to_ast(_.read(), self) page.resolve_symbols(doc_database, link_resolver) for pagename in page.subpages: cpage = self.__all_pages[pagename] self.resolve_symbols(doc_database, link_resolver, page=cpage)
def resolve_symbols(self, database, link_resolver, page=None): """Will call resolve_symbols on all the stale subpages of the tree. Args: page: hotdoc.core.tree.Page, the page to resolve symbols in, will recurse on potential subpages. """ page = page or self.root if page.ast is None and not page.generated: with io.open(page.source_file, 'r', encoding='utf-8') as _: page.ast = cmark.hotdoc_to_ast(_.read(), self, page.source_file) page.resolve_symbols(self, database, link_resolver) self.__update_dep_map(page, page.symbols) for pagename in page.subpages: cpage = self.__all_pages[pagename] self.resolve_symbols(database, link_resolver, page=cpage)
def page_from_raw_text(self, source_file, contents): """ Banana banana """ raw_contents = contents meta = {} if contents.startswith('---\n'): split = contents.split('\n...\n', 1) if len(split) == 2: contents = split[1] try: blocks = yaml.load_all(split[0]) for block in blocks: meta.update(block) except ConstructorError as exception: error('invalid-page-metadata', '%s: Invalid metadata: \n%s' % (source_file, str(exception))) ast = cmark.hotdoc_to_ast(contents, self) return Page(source_file, ast, meta=meta, raw_contents=raw_contents)
def page_from_raw_text(self, source_file, contents): """ Banana banana """ raw_contents = contents meta = {} if contents.startswith('---\n'): split = contents.split('\n...\n', 1) if len(split) == 2: contents = split[1] try: blocks = yaml.load_all(split[0]) for block in blocks: if block: meta.update(block) except ConstructorError as exception: warn( 'invalid-page-metadata', '%s: Invalid metadata: \n%s' % (source_file, str(exception))) ast = cmark.hotdoc_to_ast(contents, self) return Page(source_file, ast, meta=meta, raw_contents=raw_contents)
def test_page_title(self): inp = (u'### A title *please* a title\n') ast = cmark.hotdoc_to_ast(inp, None) self.assertEqual(cmark.title_from_ast(ast), u'A title *please* a title')
def render(self, inp): ast = cmark.hotdoc_to_ast(inp, self.include_resolver) out = cmark.ast_to_html(ast, self.link_resolver)[0] return ast, out
def render(self, inp): ast = cmark.hotdoc_to_ast(inp, None) out = cmark.ast_to_html(ast, None)[0] return ast, out
def assertOutputs(self, inp, expected): ast = cmark.hotdoc_to_ast(inp, self.include_resolver) out = cmark.ast_to_html(ast, self.link_resolver)[0] self.assertEqual(out, expected) return out, ast
def test_page_no_title(self): inp = (u'Just a paragraph\n') ast = cmark.hotdoc_to_ast(inp, None) self.assertIsNone(cmark.title_from_ast(ast))