1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # Nitcorn actions used by the nitweb server.
23 # Html homepage for the `nitweb` server.
27 # Loaded model to display.
31 var tpl
= new Template
32 tpl
.add
new Header(1, "Loaded model")
33 tpl
.add tree
.html_list
38 # Display a search results list.
46 var results
: Array[MEntity]
49 var tpl
= new Template
50 tpl
.add
new Header(1, "Results for {query}")
51 if results
.is_empty
then
52 tpl
.add
"<p>No result for {query}.<p>"
55 var list
= new UnorderedList
56 for mentity
in results
do
57 var link
= mentity
.html_link
58 link
.text
= mentity
.html_full_name
59 list
.add_li
new ListItem(link
)
66 # Display the source for each mentities
70 # Modelbuilder used to access sources.
71 var modelbuilder
: ModelBuilder
76 # HiglightVisitor used to hilight the source code
77 var hl
= new HighlightVisitor
80 var tpl
= new Template
81 tpl
.add
new Header(1, "Source Code")
86 private fun render_source
: Template do
87 var node
= modelbuilder
.mentity2node
(mentity
)
88 var tpl
= new Template
89 tpl
.add
new Header(3, "Source code")
91 tpl
.add
"<p>Source for {mentity.html_name} not found.<p>"
96 tpl
.add
"</code></pre>"
102 # Display the mdoc of the mentities.
107 var tpl
= new Template
108 tpl
.add
new Header(1, mentity
.html_name
)
110 tpl
.add mentity
.html_declaration
113 var mdoc
= mentity
.mdoc
115 tpl
.add mdoc
.content
.join
("\n").md_to_html
118 tpl
.add render_source
123 # Display the source for each mentities
134 var tpl
= new Template
135 tpl
.add
new Header(1, title
)
140 private fun render_dot
: String do
141 var proc
= new ProcessDuplex("dot", "-Tsvg", "-Tcmapx")
142 var svg
= proc
.write_and_read
(dot
)