src/doc: fix anchor url following the rendering migration
authorAlexandre Terrasa <alexandre@moz-code.org>
Fri, 24 Apr 2015 03:02:18 +0000 (23:02 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Tue, 5 May 2015 15:56:58 +0000 (11:56 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/doc/doc_phases/doc_html.nit
src/doc/doc_phases/doc_indexing.nit
src/doc/doc_phases/doc_structure.nit
src/doc/html_templates/html_model.nit
src/doc/html_templates/html_templates.nit

index a3fbf07..3ee3379 100644 (file)
@@ -379,7 +379,7 @@ redef class MClassPage
                if not mprop_is_local(mprop) then
                        classes.add "inherit"
                        var cls_url = mprop.intro.mclassdef.mclass.nitdoc_url
-                       var def_url = "{cls_url}#{mprop.nitdoc_id}"
+                       var def_url = "{cls_url}#article:{mprop.nitdoc_id}.definition"
                        var lnk = new Link(def_url, mprop.html_name)
                        var mdoc = mprop.intro.mdoc_or_fallback
                        if mdoc != null then lnk.title = mdoc.short_comment
@@ -393,12 +393,28 @@ redef class MClassPage
                else
                        classes.add "redef"
                end
+               var def = select_mpropdef(mprop)
+               var anc = def.html_link_to_anchor
+               anc.href = "#article:{def.nitdoc_id}.definition"
                var lnk = new Template
                lnk.add new DocHTMLLabel.with_classes(classes)
-               lnk.add mprop.html_link_to_anchor
+               lnk.add anc
                return new ListItem(lnk)
        end
 
+       # Get the mpropdef contained in `self` page for a mprop.
+       #
+       # FIXME this method is used to translate a mprop into a mpropdefs for
+       # section linking. A better page structure should avoid this...
+       private fun select_mpropdef(mprop: MProperty): MPropDef do
+               for mclassdef in mentity.mclassdefs do
+                       for mpropdef in mclassdef.mpropdefs do
+                               if mpropdef.mproperty == mprop then return mpropdef
+                       end
+               end
+               abort # FIXME is there a case where the prop is not found?
+       end
+
        private fun mclass_inherited_mprops(v: RenderHTMLPhase, doc: DocModel): Set[MProperty] do
                var res = new HashSet[MProperty]
                var local = mentity.local_mproperties(v.ctx.min_visibility)
@@ -473,7 +489,11 @@ redef class ConcernSection
        redef fun init_html_render(v, doc, page) do
                if not page isa MEntityPage then return
                var mentity = self.mentity
-               if page.mentity isa MModule and mentity isa MModule then
+               if page isa MGroupPage then
+                       html_title = null
+                       toc_title = mentity.html_name
+                       is_toc_hidden = false
+               else if page.mentity isa MModule and mentity isa MModule then
                        var title = new Template
                        if mentity == page.mentity then
                                title.add "in "
@@ -560,6 +580,9 @@ redef class DefinitionArticle
                        end
                        html_source_link = v.html_source_link(mentity.location)
                end
+               if page isa MGroupPage and mentity isa MModule then
+                       is_toc_hidden = true
+               end
                super
        end
 end
index 2f1151f..3e71df2 100644 (file)
@@ -43,7 +43,7 @@ class IndexingPhase
                                if not doc.mpropdefs.has(mpropdef) then continue
                                var full_name = mpropdef.mclassdef.mclass.full_name
                                var cls_url = mpropdef.mclassdef.mclass.nitdoc_url
-                               var def_url = "{cls_url}#{mpropdef.mproperty.nitdoc_id}"
+                               var def_url = "{cls_url}#article:{mpropdef.nitdoc_id}.definition"
                                add_result_for(mproperty.name, full_name, def_url)
                        end
                end
index 9f64395..1c6b432 100644 (file)
@@ -91,11 +91,11 @@ redef class MGroupPage
                mentity.booster_rank = 0
                section.add_child new ConcernsArticle(mentity, concerns)
                for mentity in concerns do
+                       var ssection = new ConcernSection(mentity)
                        if mentity isa MModule then
-                               section.add_child new DefinitionArticle(mentity)
-                       else
-                               section.add_child new ConcernSection(mentity)
+                               ssection.add_child new DefinitionArticle(mentity)
                        end
+                       section.add_child ssection
                end
        end
 end
index 2118bfa..c112e25 100644 (file)
@@ -669,7 +669,7 @@ redef class MConcern
        private fun html_concern_item: ListItem do
                var lnk = html_link
                var tpl = new Template
-               tpl.add new Link.with_title("#{nitdoc_id}", lnk.text, lnk.title)
+               tpl.add new Link.with_title("#concern:{nitdoc_id}", lnk.text, lnk.title)
                var comment = html_short_comment
                if comment != null then
                        tpl.add ": "
index cc5f9f4..83f6a36 100644 (file)
@@ -349,7 +349,7 @@ redef class DocArticle
 end
 
 redef class HomeArticle
-       redef var html_id = "intro"
+       redef var html_id = "article:home"
        redef var html_title = "Overview"
 
        # HTML content to display on the home page.
@@ -365,7 +365,7 @@ redef class HomeArticle
 end
 
 redef class IndexArticle
-       redef var html_id = "index"
+       redef var html_id = "article:index"
        redef var html_title = "Index"
        redef fun is_empty do
                return mmodules.is_empty and mclasses.is_empty and mprops.is_empty
@@ -405,7 +405,7 @@ redef class IndexArticle
 end
 
 redef class ProjectsSection
-       redef var html_id = "projects"
+       redef var html_id = "section:projects"
        redef var html_title = "Projects"
 end
 
@@ -415,29 +415,29 @@ redef class MEntityComposite
 end
 
 redef class MEntitySection
-       redef var html_id is lazy do return "section_{mentity.nitdoc_name}"
+       redef var html_id is lazy do return "section:{mentity.nitdoc_name}"
        redef var html_title is lazy do return mentity.html_name
        redef var html_subtitle is lazy do return mentity.html_declaration
 end
 
 redef class ConcernSection
-       redef var html_id is lazy do return "section_concerns_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "concern:{mentity.nitdoc_id}"
        redef var html_title is lazy do return "in {mentity.nitdoc_name}"
        redef fun is_toc_hidden do return is_empty
 end
 
 redef class ImportationListSection
-       redef var html_id is lazy do return "section_dependancies_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "section:{mentity.nitdoc_id}.importation"
        redef var html_title is lazy do return "Dependencies"
 end
 
 redef class InheritanceListSection
-       redef var html_id is lazy do return "section_inheritance_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "section:{mentity.nitdoc_id}.inheritance"
        redef var html_title is lazy do return "Inheritance"
 end
 
 redef class IntroArticle
-       redef var html_id is lazy do return "article_intro_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.intro"
        redef var html_title = null
        redef var is_hidden = false
        redef var is_toc_hidden = true
@@ -463,14 +463,14 @@ redef class IntroArticle
 end
 
 redef class ConcernsArticle
-       redef var html_id is lazy do return "article_concerns_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.concerns"
        redef var html_title = "Concerns"
        redef fun is_hidden do return concerns.is_empty
        redef fun render_body do add concerns.html_list
 end
 
 redef class DefinitionArticle
-       redef var html_id is lazy do return "article_definition_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.definition"
        redef var html_title is lazy do return mentity.html_name
        redef var html_subtitle is lazy do return mentity.html_declaration
        redef var is_hidden = false
@@ -513,7 +513,7 @@ redef class DefinitionArticle
 end
 
 redef class HierarchyListArticle
-       redef var html_id is lazy do return "article_hierarchy_{list_title}_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{list_title}_{mentity.nitdoc_id}.hierarchy"
        redef var html_title is lazy do return list_title
        redef fun is_empty do return mentities.is_empty
        redef fun is_toc_hidden do return mentities.is_empty
@@ -529,7 +529,7 @@ redef class HierarchyListArticle
 end
 
 redef class IntrosRedefsListArticle
-       redef var html_id is lazy do return "article_intros_redefs_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.intros_redefs"
        redef var html_title is lazy do return list_title
        redef fun is_hidden do return mentities.is_empty
        redef var is_toc_hidden = true
@@ -545,7 +545,7 @@ redef class IntrosRedefsListArticle
 end
 
 redef class DefinitionLinArticle
-       redef var html_id is lazy do return "article_lin_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.lin"
        redef var html_title is lazy do return "Linearization"
        redef fun is_hidden do return mentities.is_empty
        redef var is_toc_hidden = true
@@ -571,7 +571,7 @@ redef class DefinitionLinArticle
 end
 
 redef class GraphArticle
-       redef var html_id is lazy do return "article_graph_{mentity.nitdoc_id}"
+       redef var html_id is lazy do return "article:{mentity.nitdoc_id}.graph"
        redef var html_title = null
        redef var toc_title do return "Graph"
        redef var is_hidden = false