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
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)
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 "
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
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.
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
end
redef class ProjectsSection
- redef var html_id = "projects"
+ redef var html_id = "section:projects"
redef var html_title = "Projects"
end
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
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
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
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
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
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