This template shows the page header with its description, table of contents (TOC) and navigation tree
Paramters: Page, Description, Theme
var mPars = {
mPage: (__request.args.page ? string.deserialize(__request.args.page) : null ) ?? args.page ?? page,
smDesc: ((__request.args.desc) ? ((__request.args.desc is map) ? __request.args.desc : { __ : __request.args.desc }) : null) ??
((args.desc) ? ((args.desc is map) ? args.desc : { __ : args.desc }) : null) ??
null,
slLang: ((__request.args.lang) ? ((__request.args.lang is list) ? __request.args.lang : [__request.args.lang]) : null) ??
((args.lang) ? ((args.lang is list) ? args.lang : [args.lang]) : null) ??
null,
sTheme: __request.args.theme ?? args.theme ?? null
};
//Web.Pre(Json.Format(mPars));
//Get Language(s)
var sLang=null;
var slLang=null;
var smDesc=mPars.smDesc;
if (mPars.slLang==null) {
let sLang=String.ToLower(mPars.mPage.language);
if (sLang not in ["en","es","eu"])
let sLang='en'; //by default
let slLang= [sLang];
let smDesc..={ (sLang) : smDesc["__"] };
}//if
else {
foreach (var sLang in mPars.slLang)
{
if (sLang not in ["en","es","eu"])
let sLang='en'; //by default
if (sLang not in slLang)
let slLang..= [sLang];
}
let sLang=slLang[0]; //set main language
}//el
//Web.Pre(Json.Format(smDesc));
//Web.Pre(Json.Format(slLang));
//Set Main Theme
var smLangThemes= { en: "pink", es: "orange", eu: "green" };
var sTheme= (mPars.sTheme ? String.ToLower(mPars.sTheme) : null) ?? smLangThemes[sLang] ?? "white";
//Web.Pre(Json.Format(sTheme));
//Set Theme Colors
var sLgtCol,sDrkCol;
var smLgtCol= { pink: "rgb(255, 204, 255)", orange: "rgb(255, 204, 153)", green: "rgb(204, 255, 204)", white: "white" };
var smDrkCol= { pink: "rgb(204, 153, 255)", orange: "rgb(255, 153, 0)", green: "rgb(51, 153, 102)", white: "white" };
var sLgtCol=smLgtCol[sTheme];
var sDrkCol=smDrkCol[sTheme];
//Comppose Description Line
if (smDesc!=null) {
var sDescLine="<p>";
foreach (var sLang1 in slLang)
{
if (__index>0) let sDescLine..=" ";
var sTheme1= (mPars.sTheme ? String.ToLower(mPars.sTheme) : null) ?? smLangThemes[sLang1] ?? "white";
var sLgtCol1=smLgtCol[sTheme1];
var sDesc=smDesc[sLang1];
if (String.IndexOf(sDesc,"<br />")!=0)
let sDesc=" "..sDesc.." ";
else
let sDesc="<br /> "..String.SubStr(sDesc,6).." ";
let sDescLine..="<span style='background-color: "..sLgtCol1..";'>"..sDesc.."</span>";
}
let sDescLine..="</p>";
Web.Html(sDescLine);
}//if
//var sPageToc1=Wiki.Toc('/');
//Web.Text(sPageToc1);
//Web.Text(Page.Toc);
//Prepare Page Toc: Interactive Discussion
var smIntComSect={
en: "Interactive discussion",
es: "Discusión interactiva",
eu: "Eztabaida interaktiboa"
};
var smIntComMark={
en: ".3a)_Interactive_discussion",
es: ".3a)_Discusi.c3.b3n_interactiva",
eu: ".3a)_Eztabaida_interaktiboa"
};
var sIntComSect=smIntComSect[sLang];
var sIntComMark=smIntComMark[sLang];
//var sIntComMark="IC";
var sIntComLi="<li><span>:) </span><a href='#"..sIntComMark.."' rel='internal'>"..sIntComSect.."</a></li>";
//Web.Pre(Json.Format(Web.Text(Wiki.Toc(mPars.mPage.parent.path))));
//<html><body><span id=\"page.toc\" /></body></html>
//<div class=\"wiki-toc\"><ol style=\"list-style-type:none; margin-left:0px; padding-left:0px;\"><li><span>1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#DekiMVC\" rel=\"internal\">DekiMVC</a><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><span>1.1.1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Objectives\" rel=\"internal\">Objectives</a></li><li><span>1.1.2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Parts\" rel=\"internal\">Parts</a></li><li><span>1.1.3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Doing_It!\" rel=\"internal\">Doing It!</a><ol style=\"list-style-type:none; margin-left:0px; padding-left:15px;\"><li><span>1.1.3.1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#How.3f\" rel=\"internal\">How?</a></li><li><span>1.1.3.2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Step_.231_.3a_Doing_it_more.c2.a0_Visual\" rel=\"internal\">Step #1 : Doing it more\u00a0 Visual\u00a0 </a></li><li><span>1.1.3.3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#Step_.232_.3a_Doing_it_more.c2.a0_Visual_.232\" rel=\"internal\">Step #2 : Doing it more\u00a0 Visual #2\u00a0 </a></li></ol></li><li><span>1.1.4.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC#.3a)_Interactive_discussion\" rel=\"internal\">:) Interactive discussion</a></li></ol></li></ol></li></ol></div>
//<div class=\"wiki-toc\"><ol style=\"list-style-type:none; margin-left:0px; padding-left:0px;\"><li><span>1.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Why.3f_Visualization_of_Concerns\" rel=\"internal\">Why? Visualization of Concerns</a></li><li><span>2.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#How.3f_By_example\" rel=\"internal\">How? By example</a></li><li><span>3.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Organize\" rel=\"internal\">Sectioning : Organize</a></li><li><span>4.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Separate_.26_Visualize\" rel=\"internal\">Sectioning : Separate & Visualize</a></li><li><span>5.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Sectioning_.3a_Logging\" rel=\"internal\">Sectioning : Logging</a></li><li><span>6.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Using_DekiMVC_controller\" rel=\"internal\">Using DekiMVC controller</a></li><li><span>7.</span> <a href=\"http://www.gureweb.net/MindTouch/DekiMVC/Sectioning_Templates#Running_our_Example\" rel=\"internal\">Running our Example</a></li></ol></div>
//Set Page Toc
var xPageToc=Web.Html("http://www.gureweb.net/@api/deki/pages/=Template:@himikel%252FWikiToc/contents?mode=view&format=xhtml&pageid=1&path="..mPars.mPage.Path.."&authtoken="..user.authtoken);
//var xPageToc=Web.Html("http://www.gureweb.net/@api/deki/pages/=Template:@himikel%252FWikiToc/contents?mode=view&format=xhtml&pageid=1&path=/MindTouch/DekiMVC");
//var xPageToc=Wiki.Template("Template:@himikel/WikiToc", { path: "/MindTouch/DekiMVC/" });
//var xPageToc=Wiki.Toc("/MindTouch/DekiMVC");
//var xPageToc=Wiki.Toc(mPars.mPage.Path);
var sPageToc=Web.Text(xPageToc);
let sPageToc=String.Replace(sPageToc,"\n","");
//var sPageToc=Xml.Text{ doc: xPageToc, xml: true };
//Web.Pre(Json.Format(sPageToc));
if (String.IndexOf(sPageToc,"<div class=\"wiki-toc\"><em>")>=0) //No Headers
//if (String.IndexOf(sPageToc,"<div class=\"wiki-toc\"><em>No headers</em></div>")>=0) //No Headers
{
let sPageToc="<div class='wiki-toc'><ol style='list-style-type:none; margin-left:0px; padding-left:0px;'>";
let sPageToc..=sIntComLi;
let sPageToc..="</ol></div>";
}//if
else
{
var nEndOlPos=String.LastIndexOf(sPageToc,"</ol>");
let sPageToc=String.SubStr(sPageToc,0,nEndOlPos)..sIntComLi..String.SubStr(sPageToc,nEndOlPos);
}//el
//Contents & Navigation table
var xPageTree=AjaxWikiTree{ path: mPars.mPage.path };
var xlPageTreeScript=Xml.List{ doc: xPageTree, xpath: "//script", xml: true };
var xPageTreeDiv=xPageTree["//body"];
//var xPageTreeDiv=xPageTree["//div"];
var sPageTreeDiv=Xml.Text{ doc: xPageTreeDiv, xml: true };
//Web.Pre(Json.Format(sPageTreeDiv));
//Web.Pre(Json.Format(Xml.List{ doc: xPageTree, xpath: "//*", xml: true }));
var sContNavTable="
<table cellspacing='1' cellpadding='1' border='0' style='width: 100%; table-layout: fixed;'>
<tbody>
<tr>
<td valign='top' style='width: 45%;'>
<span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>
v
</span></strong></span>
"..sPageToc.."
</td>
<td valign='top' style='width: 5%;'>
<span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>
<a title='..' href='"..mPars.mPage.parent.path.."'> < </a> <br />
</span></strong></span>
</td>
<td valign='top' style='width: 50%;'>
<span style='font-size: medium;'><strong><span style='background-color: "..sDrkCol..";'>
>
</span></strong></span>
"..sPageTreeDiv.."
</td>
</tr>
</tbody>
</table>";
Web.Html(sContNavTable);
//Add JavaScripts
foreach (var xPageTreeScript in xlPageTreeScript)
Web.Xml(xPageTreeScript);
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |