def __resolve_placeholder_cb(self, doc_tree, name, include_paths): self.__find_package_root() override_path = os.path.join(self.__package_root, name) if name == '%s-index' % self.argument_prefix: if self.index: path = find_md_file(self.index, include_paths) assert path is not None return path, self.extension_name return True, self.extension_name elif self.smart_index and override_path in self._get_all_sources(): path = find_md_file('%s.markdown' % name, include_paths) return path or True, None return None
def __parse_pages(self, change_tracker, sitemap): source_files = [] source_map = {} for i, fname in enumerate(sitemap.get_all_sources().keys()): resolved = self.resolve_placeholder_signal( self, fname, self.__include_paths) if resolved is None: source_file = find_md_file(fname, self.__include_paths) source_files.append(source_file) if source_file is None: error( 'no-such-subpage', 'No markdown file found for %s' % fname, filename=sitemap.source_file, lineno=i, column=0) source_map[source_file] = fname else: resolved, ext_name = resolved if ext_name: self.__placeholders[fname] = ext_name if resolved is not True: source_files.append(resolved) source_map[resolved] = fname else: if fname not in self.__all_pages: page = Page(fname, None) page.generated = True self.__all_pages[fname] = page stale, unlisted = change_tracker.get_stale_files( source_files, 'user-pages') old_user_symbols = set() new_user_symbols = set() for source_file in stale: pagename = source_map[source_file] prev_page = self.__all_pages.get(pagename) if prev_page: old_user_symbols |= prev_page.symbol_names page = self.__parse_page(source_file) new_user_symbols |= page.symbol_names newly_listed_symbols = OrderedSet(page.symbol_names) if prev_page: newly_listed_symbols -= prev_page.symbol_names self.stale_symbol_pages(newly_listed_symbols, page) if prev_page: page.subpages |= prev_page.subpages self.__all_pages[pagename] = page unlisted_pagenames = set() for source_file in unlisted: prev_page = None rel_path = None for ipath in self.__include_paths: rel_path = os.path.relpath(source_file, ipath) prev_page = self.__all_pages.get(rel_path) if prev_page: break if not prev_page: continue old_user_symbols |= prev_page.symbol_names self.__all_pages.pop(rel_path) unlisted_pagenames.add(rel_path) for source_file in source_files: page = self.__all_pages[source_map[source_file]] page.subpages |= sitemap.get_subpages(source_map[source_file]) page.subpages -= unlisted_pagenames return old_user_symbols - new_user_symbols
def __parse_pages(self, change_tracker, sitemap): source_files = [] source_map = {} for i, fname in enumerate(sitemap.get_all_sources().keys()): resolved = self.resolve_placeholder_signal(self, fname, self.__include_paths) if resolved is None: source_file = find_md_file(fname, self.__include_paths) source_files.append(source_file) if source_file is None: error('no-such-subpage', 'No markdown file found for %s' % fname, filename=sitemap.source_file, lineno=i, column=0) source_map[source_file] = fname else: resolved, ext_name = resolved if ext_name: self.__placeholders[fname] = ext_name if resolved is not True: source_files.append(resolved) source_map[resolved] = fname else: if fname not in self.__all_pages: page = Page(fname, None) page.generated = True self.__all_pages[fname] = page stale, unlisted = change_tracker.get_stale_files( source_files, 'user-pages') old_user_symbols = set() new_user_symbols = set() for source_file in stale: pagename = source_map[source_file] prev_page = self.__all_pages.get(pagename) if prev_page: old_user_symbols |= prev_page.symbol_names page = self.__parse_page(source_file) new_user_symbols |= page.symbol_names newly_listed_symbols = OrderedSet(page.symbol_names) if prev_page: newly_listed_symbols -= prev_page.symbol_names self.stale_symbol_pages(newly_listed_symbols, page) if prev_page: page.subpages |= prev_page.subpages self.__all_pages[pagename] = page unlisted_pagenames = set() for source_file in unlisted: prev_page = None rel_path = None for ipath in self.__include_paths: rel_path = os.path.relpath(source_file, ipath) prev_page = self.__all_pages.get(rel_path) if prev_page: break if not prev_page: continue old_user_symbols |= prev_page.symbol_names self.__all_pages.pop(rel_path) unlisted_pagenames.add(rel_path) for source_file in source_files: page = self.__all_pages[source_map[source_file]] page.subpages |= sitemap.get_subpages(source_map[source_file]) page.subpages -= unlisted_pagenames return old_user_symbols - new_user_symbols
def python_index_handler(self, doc_tree): if not self.python_index: return self.create_naive_index(self.sources) index_path = find_md_file(self.python_index, self.doc_repo.include_paths) return index_path, "", "python-extension"