From 497ca3371ac504df46d716f45b2e88efdede4fd0 Mon Sep 17 00:00:00 2001 From: Martyn Gigg <martyn.gigg@stfc.ac.uk> Date: Fri, 20 Jun 2014 12:06:13 +0100 Subject: [PATCH] Write out index.html pages for a pre-defined set of categories. Refs #9678 --- .../inc/MantidCurveFitting/Lorentzian1D.h | 2 +- .../inc/MantidCurveFitting/UserFunction1D.h | 2 +- .../mantiddoc/directives/categories.py | 28 +++++++++++++++---- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Lorentzian1D.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Lorentzian1D.h index 003c3ed8af3..f1c07330a35 100644 --- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Lorentzian1D.h +++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/Lorentzian1D.h @@ -65,7 +65,7 @@ namespace Mantid /// Algorithm's version for identification overriding a virtual method virtual int version() const { return (1);} /// Algorithm's category for identification overriding a virtual method - virtual const std::string category() const { return "Optimization\\FitFunctions";} + virtual const std::string category() const { return "Optimization\\FitAlgorithms";} private: diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/UserFunction1D.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/UserFunction1D.h index a2fbf12379e..b22a528d06b 100644 --- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/UserFunction1D.h +++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/UserFunction1D.h @@ -75,7 +75,7 @@ namespace Mantid /// Algorithm's version for identification overriding a virtual method virtual int version() const { return (1);} /// Algorithm's category for identification overriding a virtual method - virtual const std::string category() const { return "Optimization\\FitFunctions";} + virtual const std::string category() const { return "Optimization\\FitAlgorithms";} ///Summary of algorithms purpose virtual const std::string summary() const {return "Fits a histogram from a workspace to a user defined function.";} protected: diff --git a/Code/Mantid/docs/sphinxext/mantiddoc/directives/categories.py b/Code/Mantid/docs/sphinxext/mantiddoc/directives/categories.py index 43238d5bd0d..893bb3b6b4e 100644 --- a/Code/Mantid/docs/sphinxext/mantiddoc/directives/categories.py +++ b/Code/Mantid/docs/sphinxext/mantiddoc/directives/categories.py @@ -10,10 +10,15 @@ from base import AlgorithmBaseDirective, algorithm_name_and_version import os -CATEGORY_INDEX_TEMPLATE = "category.html" +CATEGORY_PAGE_TEMPLATE = "category.html" # relative to the directory containing the source file CATEGORIES_DIR = "categories" +# List of category names that are considered the index for everything in that type +# When this category is encountered an additional index.html is written to both the +# directory of the document and the category directory +INDEX_CATEGORIES = ["Algorithms", "FitFunctions"] + class LinkItem(object): """ Defines a linkable item with a name and html reference @@ -96,7 +101,7 @@ class Category(LinkItem): name (str): The name of the category docname (str): Relative path to document from root directory """ - dirpath, filename = os.path.split(docname) + dirpath, filename = os.path.split(docname) html_dir = os.path.join(dirpath, CATEGORIES_DIR) self.html_path = os.path.join(html_dir, name + ".html") @@ -279,19 +284,32 @@ def create_category_pages(app): env = app.builder.env # jinja2 html template - template = CATEGORY_INDEX_TEMPLATE + template = CATEGORY_PAGE_TEMPLATE categories = env.categories for name, category in categories.iteritems(): context = {} + # First write out the named page context["title"] = category.name - # sort subcategories & pages by first letter + # sort subcategories & pages alphabetically context["subcategories"] = sorted(category.subcategories, key = lambda x: x.name) context["pages"] = sorted(category.pages, key = lambda x: x.name) context["outloc"] = os.path.dirname(category.html_path) #jinja appends .html to output name - yield (os.path.splitext(category.html_path)[0], context, template) + category_html_path = os.path.splitext(category.html_path)[0] + yield (category_html_path, context, template) + + # Now any additional index pages if required + if category.name in INDEX_CATEGORIES: + # index in categories directory + category_html_dir = os.path.dirname(category_html_path) + context["outloc"] = category_html_dir + yield (category_html_dir + "/index", context, template) + # index in document directory + document_dir = os.path.dirname(category_html_dir) + context["outloc"] = document_dir + yield (document_dir + "/index", context, template) # enddef #----------------------------------------------------------------------------------------------------------- -- GitLab