def postprocess(cls, virtual_fs: VirtualFS, root: Directory):
        settings.logger.info("Adding sidebars to all pages..")

        for page in root.walk_htmls():
            if not page.is_embeddable:
                page.sidebar = None
                continue

            if page.sidebar is not None:
                page.sidebar.add_to_page(page)
    def preprocess(cls, virtual_fs: VirtualFS, root: Directory):
        settings.logger.info("Removing dull notion.so table files..")

        for dir in root.walk_dirs():
            if dir.filename.startswith(
                    "Interesting_articles") and dir.parent is root:
                cls._empty_directory(dir)

        for page in root.walk_htmls():
            page_body_tags = page.dom.find("div", {"class": "page-body"})
            if page_body_tags and not page_body_tags[0].getContent().strip():
                page.parent.files.remove(page)
    def postprocess(cls, virtual_fs: VirtualFS, root: Directory):
        settings.logger.info("Converting twitter cards to abs url..")

        for page in root.walk_htmls():
            for meta in page.dom.find("meta", {"name": "twitter:image"}):
                resource_id_token = meta.params["content"]
                if not ResourceRegistry.is_ref_str(resource_id_token):
                    continue

                resource = virtual_fs.resource_registry.item_by_ref_str(
                    resource_id_token)
                abs_path = cls._to_abs_url_path(resource.path)
                meta.params["content"] = abs_path
    def preprocess(cls, virtual_fs: VirtualFS, root: Directory):
        settings.logger.info("Unfucking filenames..")

        for item in root.walk_htmls():
            if item.filename == "index.html":
                continue

            title = item.title
            if "://" in title:
                continue

            new_filename = cls._normalize_fn(title)
            new_filename = cls._trim_long_filenames(new_filename)
            new_filename = cls._make_sure_filename_is_unique(item, new_filename)

            if new_filename:
                cls._rename_also_section_dirs(item, new_filename)
                item.filename = new_filename + ".html"

        for item in root.walk_dirs():
            new_filename = cls._unfuck_filename(item.filename)
            item.filename = cls._make_sure_filename_is_unique(item, new_filename)
    def preprocess(cls, virtual_fs: VirtualFS, root: Directory):
        settings.logger.info("Collecting ref links to all pages..")

        registry = virtual_fs.resource_registry
        for page in root.walk_htmls():
            cls._collect_from(page, registry)