X-Git-Url: http://nitlanguage.org
diff --git a/src/doc/doc_phases/doc_html.nit b/src/doc/doc_phases/doc_html.nit
index 6532a1d..ebc1193 100644
--- a/src/doc/doc_phases/doc_html.nit
+++ b/src/doc/doc_phases/doc_html.nit
@@ -46,7 +46,7 @@ redef class ToolContext
# Display a custom brand or logo in the documentation top menu.
var opt_custom_brand = new OptionString("custom link to external site", "--custom-brand")
- # Display a custom introduction text before the projects overview.
+ # Display a custom introduction text before the packages overview.
var opt_custom_intro = new OptionString("custom intro text for homepage", "--custom-overview-text")
# Display a custom footer on each documentation page.
#
@@ -68,7 +68,7 @@ redef class ToolContext
# FIXME redo the plugin
var opt_github_base_sha1 = new OptionString("Git sha1 of base commit used to create pull request", "--github-base-sha1")
# FIXME redo the plugin
- var opt_github_gitdir = new OptionString("Git working directory used to resolve path name (ex: /home/me/myproject/)", "--github-gitdir")
+ var opt_github_gitdir = new OptionString("Git working directory used to resolve path name (ex: /home/me/mypackage/)", "--github-gitdir")
redef init do
super
@@ -238,7 +238,13 @@ redef class SearchPage
end
redef class MEntityPage
- redef var html_url is lazy do return mentity.nitdoc_url
+ redef var html_url is lazy do
+ if mentity isa MGroup and mentity.mdoc != null then
+ return "api_{mentity.nitdoc_url}"
+ end
+ return mentity.nitdoc_url
+ end
+
redef fun init_title(v, doc) do title = mentity.html_name
end
@@ -246,19 +252,45 @@ end
# doc phases. This is to preserve the compatibility with the current
# `doc_templates` module.
+redef class ReadmePage
+ redef var html_url is lazy do return mentity.nitdoc_url
+
+ redef fun init_topmenu(v, doc) do
+ super
+ var mpackage = mentity.mpackage
+ if not mentity.is_root then
+ topmenu.add_li new ListItem(new Link(mpackage.nitdoc_url, mpackage.html_name))
+ end
+ topmenu.add_li new ListItem(new Link(html_url, mpackage.html_name))
+ topmenu.active_item = topmenu.items.last
+ end
+
+ redef fun init_sidebar(v, doc) do
+ super
+ var api_lnk = """Go to API"""
+ sidebar.boxes.unshift new DocSideBox(api_lnk, "")
+ end
+end
+
redef class MGroupPage
redef fun init_topmenu(v, doc) do
super
- var mproject = mentity.mproject
+ var mpackage = mentity.mpackage
if not mentity.is_root then
- topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(mpackage.nitdoc_url, mpackage.html_name))
end
- topmenu.add_li new ListItem(new Link(html_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(html_url, mpackage.html_name))
topmenu.active_item = topmenu.items.last
end
redef fun init_sidebar(v, doc) do
super
+ # README link
+ if mentity.mdoc != null then
+ var doc_lnk = """Go to README"""
+ sidebar.boxes.unshift new DocSideBox(doc_lnk, "")
+ end
+ # MClasses list
var mclasses = new HashSet[MClass]
mclasses.add_all intros
mclasses.add_all redefs
@@ -291,8 +323,8 @@ end
redef class MModulePage
redef fun init_topmenu(v, doc) do
super
- var mproject = mentity.mproject
- topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ var mpackage = mentity.mpackage
+ topmenu.add_li new ListItem(new Link(mpackage.nitdoc_url, mpackage.html_name))
topmenu.add_li new ListItem(new Link(mentity.nitdoc_url, mentity.html_name))
topmenu.active_item = topmenu.items.last
end
@@ -335,8 +367,8 @@ redef class MClassPage
redef fun init_topmenu(v, doc) do
super
- var mproject = mentity.intro_mmodule.mgroup.mproject
- topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ var mpackage = mentity.intro_mmodule.mgroup.mpackage
+ topmenu.add_li new ListItem(new Link(mpackage.nitdoc_url, mpackage.html_name))
topmenu.add_li new ListItem(new Link(html_url, mentity.html_name))
topmenu.active_item = topmenu.items.last
end
@@ -375,7 +407,7 @@ redef class MClassPage
var def_url = "{cls_url}#{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
+ if mdoc != null then lnk.title = mdoc.synopsis
var item = new Template
item.add new DocHTMLLabel.with_classes(classes)
item.add lnk
@@ -439,9 +471,9 @@ redef class MPropertyPage
redef fun init_topmenu(v, doc) do
super
var mmodule = mentity.intro_mclassdef.mmodule
- var mproject = mmodule.mgroup.mproject
+ var mpackage = mmodule.mgroup.mpackage
var mclass = mentity.intro_mclassdef.mclass
- topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(mpackage.nitdoc_url, mpackage.html_name))
topmenu.add_li new ListItem(new Link(mclass.nitdoc_url, mclass.html_name))
topmenu.add_li new ListItem(new Link(html_url, mentity.html_name))
topmenu.active_item = topmenu.items.last
@@ -463,8 +495,8 @@ redef class MEntitySection
if not page isa MEntityPage then return
var mentity = self.mentity
if mentity isa MGroup and mentity.is_root then
- html_title = mentity.mproject.html_name
- html_subtitle = mentity.mproject.html_declaration
+ html_title = mentity.mpackage.html_name
+ html_subtitle = mentity.mpackage.html_declaration
else if mentity isa MProperty then
var title = new Template
title.add mentity.html_name
@@ -527,7 +559,7 @@ end
redef class DefinitionArticle
redef fun init_html_render(v, doc, page) do
var mentity = self.mentity
- if mentity isa MProject or mentity isa MModule then
+ if mentity isa MPackage or mentity isa MModule then
var title = new Template
title.add mentity.html_icon
title.add mentity.html_namespace
@@ -585,15 +617,19 @@ end
redef class GraphArticle
redef fun init_html_render(v, doc, page) do
- var output_dir = v.ctx.output_dir
- var path = output_dir / graph_id
- var path_sh = path.escape_to_sh
+ var path = v.ctx.output_dir / graph_id
var file = new FileWriter.open("{path}.dot")
file.write(dot)
file.close
- sys.system("\{ test -f {path_sh}.png && test -f {path_sh}.s.dot && diff -- {path_sh}.dot {path_sh}.s.dot >/dev/null 2>&1 ; \} || \{ cp -- {path_sh}.dot {path_sh}.s.dot && dot -Tpng -o{path_sh}.png -Tcmapx -o{path_sh}.map {path_sh}.s.dot ; \}")
- var fmap = new FileReader.open("{path}.map")
- self.map = fmap.read_all
- fmap.close
+ var proc = new ProcessReader("dot", "-Tsvg", "-Tcmapx", "{path}.dot")
+ var svg = new Buffer
+ var i = 0
+ while not proc.eof do
+ i += 1
+ if i < 6 then continue # skip dot default header
+ svg.append proc.read_line
+ end
+ proc.close
+ self.svg = svg.write_to_string
end
end