Exemplo n.º 1
0
    def parse_page(self, page=None, is_preview=False):
        """method used to render a page from the page directory
        
        args:
            stirng page 
        """
        title, lead_image, slug, date, template, content, meta = parse_page(page, is_preview=is_preview)
        content = self._template_string(content)
        content_template = get_template_page(template)
        content_rendered = self.render_string(
            content_template, content=content, page=os.path.join(options.page_dir, page)
        )
        page_template = get_template_page("page/page")
        page_content = self.render_string(
            page_template,
            title=title,
            slug=slug,
            date=date,
            content=content_rendered,
            page=page,
            lead_image=lead_image,
            meta=meta,
        )

        return title, slug, date, template, page_content
Exemplo n.º 2
0
    def render(self, directory=options.page_dir):
        """
        args:
            string directory -- the directory
        """
        if "page/toc" in directory:
            directory = options.page_dir

        toc = directory_listing(directory)
        toc_page = get_template_page("asset/toc")
        return self.render_string(toc_page, data=toc)
Exemplo n.º 3
0
    def get(self, path=None):
        """main page loader
        if the path doesnt exists, it is set index
        if path isnt toc, toc is loaded
        if path isnt index, index is loaded
        """
        page_content = ""
        ajax = self.is_ajax()
        data = False
        preview = False
        theme = self.get_argument("theme", None)

        if theme is not None:
            options.define("theme", default=theme, mutable=True)

        if path is None:
            path = "index"

        if options.allow_data:
            data = self.is_data()

        if options.allow_preview:
            preview = self.is_preview()

        path = slug_to_name(path)

        if ajax is False or data is False:
            if path is None or str(path).lower() != "toc":
                title, slug, date, template, content = self.parse_page("toc")

            if path is None or str(path).lower() != "index":
                title, slug, date, template, content = self.parse_page("index")

        title, slug, date, template, content = self.parse_page(path, is_preview=preview)
        page_content += content

        if ajax is True or data is True:
            self.write({"title": title, "slug": slug, "date": date, "path": "/" + path, "content": page_content})
        else:
            page_template = get_template_page("base")
            self.render(page_template, title=title, page_content=page_content)