- fun tpl_mprop_article(mproperty: MProperty, mpropdefs: Array[MPropDef]): TplArticle do
- var article = mproperty.tpl_article
- if not mpropdefs.has(mproperty.intro) then
- # add intro synopsys
- var intro_article = mproperty.intro.tpl_short_article
- intro_article.source_link = tpl_showsource(mproperty.intro.location)
- article.add_child intro_article
+ #
+ # `main_mpropdef`: The most important mpropdef to display
+ # `local_mpropdefs`: List of other locally defined mpropdefs to display
+ # `lin`: full linearization from local_mpropdefs to intro (displayed in redef tree)
+ fun tpl_mprop_article(main_mpropdef: MPropDef, local_mpropdefs: Array[MPropDef],
+ lin: Array[MPropDef]): TplArticle do
+ var mprop = main_mpropdef.mproperty
+ var article = new TplArticle(mprop.nitdoc_id)
+ var title = new Template
+ title.add mprop.tpl_icon
+ title.add "<span id='{main_mpropdef.nitdoc_id}'></span>"
+ if main_mpropdef.is_intro then
+ title.add mprop.tpl_link
+ title.add mprop.intro.tpl_signature
+ else
+ var cls_url = mprop.intro.mclassdef.mclass.nitdoc_url
+ var def_url = "{cls_url}#{mprop.nitdoc_id}"
+ var lnk = new TplLink.with_title(def_url, mprop.nitdoc_name,
+ "Go to introduction")
+ title.add "redef "
+ title.add lnk
+ end
+ article.title = title
+ article.title_classes.add "signature"
+ article.summary_title = "{mprop.nitdoc_name}"
+ article.subtitle = main_mpropdef.tpl_namespace
+ if main_mpropdef.mdoc_or_fallback != null then
+ article.content = main_mpropdef.mdoc_or_fallback.tpl_comment
+ end
+ var subarticle = new TplArticle("{main_mpropdef.nitdoc_id}.redefs")
+ # Add redef in same `MClass`
+ if local_mpropdefs.length > 1 then
+ for mpropdef in local_mpropdefs do
+ if mpropdef == main_mpropdef then continue
+ var redef_article = new TplArticle("{mpropdef.nitdoc_id}")
+ var redef_title = new Template
+ redef_title.add "also redef in "
+ redef_title.add mpropdef.tpl_namespace
+ redef_article.title = redef_title
+ redef_article.title_classes.add "signature info"
+ redef_article.css_classes.add "nospace"
+ var redef_content = new Template
+ if mpropdef.mdoc != null then
+ redef_content.add mpropdef.mdoc.tpl_comment
+ end
+ redef_article.content = redef_content
+ subarticle.add_child redef_article
+ end