From 3c7c17215db14bf06851ef895eef7c60cc6bdb41 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 21 Nov 2016 16:43:16 +0530 Subject: [PATCH] [fix] fix toc for docs, url for local and other fixes #2293 (#2346) --- .../assets/img/app-development/__init__.py | 0 frappe/docs/assets/img/portals/__init__.py | 0 frappe/docs/contents.py | 2 +- frappe/templates/autodoc/contents.py | 2 +- frappe/templates/autodoc/pymodule.html | 2 +- frappe/templates/includes/full_index.html | 2 +- frappe/utils/setup_docs.py | 18 ++++++++++++------ frappe/website/router.py | 6 +++--- frappe/website/utils.py | 8 ++++++-- 9 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 frappe/docs/assets/img/app-development/__init__.py create mode 100644 frappe/docs/assets/img/portals/__init__.py diff --git a/frappe/docs/assets/img/app-development/__init__.py b/frappe/docs/assets/img/app-development/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/docs/assets/img/portals/__init__.py b/frappe/docs/assets/img/portals/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/docs/contents.py b/frappe/docs/contents.py index 131d4102a3..c23737a3c0 100644 --- a/frappe/docs/contents.py +++ b/frappe/docs/contents.py @@ -6,4 +6,4 @@ import frappe from frappe.website.utils import get_full_index def get_context(context): - context.full_index = get_full_index(extn = True) + context.full_index = get_full_index() diff --git a/frappe/templates/autodoc/contents.py b/frappe/templates/autodoc/contents.py index 131d4102a3..c23737a3c0 100644 --- a/frappe/templates/autodoc/contents.py +++ b/frappe/templates/autodoc/contents.py @@ -6,4 +6,4 @@ import frappe from frappe.website.utils import get_full_index def get_context(context): - context.full_index = get_full_index(extn = True) + context.full_index = get_full_index() diff --git a/frappe/templates/autodoc/pymodule.html b/frappe/templates/autodoc/pymodule.html index 0d398ac585..ab6301ae85 100644 --- a/frappe/templates/autodoc/pymodule.html +++ b/frappe/templates/autodoc/pymodule.html @@ -4,7 +4,7 @@ version -%}
{{ version(app.name) }} -{{ source_link(app, name.replace(".", "/") + ".py") }} +{{ source_link(app, full_module_name.replace(".", "/") + ".py") }}
{{ automodule(name) }} diff --git a/frappe/templates/includes/full_index.html b/frappe/templates/includes/full_index.html index 3aa03831fb..1f798c66ed 100644 --- a/frappe/templates/includes/full_index.html +++ b/frappe/templates/includes/full_index.html @@ -2,7 +2,7 @@
    {% for item in children_map[route] %}
  1. - {{ item.title }} + {{ item.title }} {% if children_map[item.route] %} {{ make_item_list(item.route, children_map) }} {% endif %} diff --git a/frappe/utils/setup_docs.py b/frappe/utils/setup_docs.py index 06ff3845f9..3992d30ea8 100644 --- a/frappe/utils/setup_docs.py +++ b/frappe/utils/setup_docs.py @@ -17,8 +17,9 @@ class setup_docs(object): """ self.app = app - frappe.local.flags.web_pages_folders = ['docs',] - frappe.local.flags.web_pages_apps = [self.app,] + + frappe.flags.web_pages_folders = ['docs',] + frappe.flags.web_pages_apps = [self.app,] self.hooks = frappe.get_hooks(app_name = self.app) self.app_title = self.hooks.get("app_title")[0] @@ -160,6 +161,8 @@ class setup_docs(object): self.target = target self.local = local + frappe.flags.local_docs = local + if self.local: self.docs_base_url = "" else: @@ -191,8 +194,10 @@ class setup_docs(object): for f in files: if f.endswith(".py"): - module_name = os.path.relpath(os.path.join(basepath, f), - self.app_path)[:-3].replace("/", ".").replace(".__init__", "") + full_module_name = os.path.relpath(os.path.join(basepath, f), + self.app_path)[:-3].replace("/", ".") + + module_name = full_module_name.replace(".__init__", "") module_doc_path = os.path.join(module_folder, self.app + "." + module_name + ".html") @@ -204,6 +209,7 @@ class setup_docs(object): with open(module_doc_path, "w") as f: context = {"name": self.app + "." + module_name} context.update(self.app_context) + context['full_module_name'] = self.app + '.' + full_module_name f.write(frappe.render_template("templates/autodoc/pymodule.html", context).encode('utf-8')) @@ -269,7 +275,7 @@ class setup_docs(object): def write_files(self): """render templates and write files to target folder""" - frappe.local.flags.home_page = "index" + frappe.flags.home_page = "index" from frappe.website.router import get_pages, make_toc pages = get_pages(self.app) @@ -346,7 +352,7 @@ class setup_docs(object): html = frappe.render_template(context.source, context) - html = make_toc(context, html) + html = make_toc(context, html, self.app) if not "" in html: html = html.replace('', diff --git a/frappe/website/router.py b/frappe/website/router.py index aeb00f20a4..9f7c90c507 100644 --- a/frappe/website/router.py +++ b/frappe/website/router.py @@ -249,12 +249,12 @@ def setup_index(page_info): if os.path.exists(index_txt_path): page_info.index = open(index_txt_path, 'r').read().splitlines() -def make_toc(context, out): +def make_toc(context, out, app=None): '''Insert full index (table of contents) for {index} tag''' from frappe.website.utils import get_full_index if '{index}' in out: html = frappe.get_template("templates/includes/full_index.html").render({ - "full_index": get_full_index(), + "full_index": get_full_index(app=app), "url_prefix": context.url_prefix or "/", "route": context.route }) @@ -264,7 +264,7 @@ def make_toc(context, out): if '{next}' in out: # insert next link next_item = None - children_map = get_full_index() + children_map = get_full_index(app=app) parent_route = os.path.dirname(context.route) children = children_map[parent_route] diff --git a/frappe/website/utils.py b/frappe/website/utils.py index 4cd967350f..497c3bc945 100644 --- a/frappe/website/utils.py +++ b/frappe/website/utils.py @@ -182,23 +182,27 @@ def abs_url(path): path = "/" + path return path -def get_full_index(route=None, extn = False): +def get_full_index(route=None, app=None): """Returns full index of the website for www upto the n-th level""" if not frappe.local.flags.children_map: from frappe.website.router import get_pages children_map = {} - pages = get_pages() + pages = get_pages(app=app) # make children map for route, page_info in pages.iteritems(): parent_route = os.path.dirname(route) children_map.setdefault(parent_route, []).append(page_info) + if frappe.flags.local_docs: + page_info.extn = '.html' + # order as per index if present for route, children in children_map.items(): page_info = pages[route] if page_info.index: new_children = [] + page_info.extn = '' for name in page_info.index: child_route = page_info.route + '/' + name if child_route in pages: