<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.gc-forever.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbar</id>
	<title>Module:Navbar - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.gc-forever.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ANavbar"/>
	<link rel="alternate" type="text/html" href="https://www.gc-forever.com/wiki/index.php?title=Module:Navbar&amp;action=history"/>
	<updated>2026-04-10T00:13:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://www.gc-forever.com/wiki/index.php?title=Module:Navbar&amp;diff=1058&amp;oldid=prev</id>
		<title>Cybertronic: Created page with &quot;local p = {}  local HtmlBuilder = require(&#039;Module:HtmlBuilder&#039;)  function trim(s)     return mw.ustring.match( s, &quot;^%s*(.-)%s*$&quot; ) end  function error(s)     local span = HtmlBui...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.gc-forever.com/wiki/index.php?title=Module:Navbar&amp;diff=1058&amp;oldid=prev"/>
		<updated>2013-04-29T08:01:46Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  local HtmlBuilder = require(&amp;#039;Module:HtmlBuilder&amp;#039;)  function trim(s)     return mw.ustring.match( s, &amp;quot;^%s*(.-)%s*$&amp;quot; ) end  function error(s)     local span = HtmlBui...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local HtmlBuilder = require(&amp;#039;Module:HtmlBuilder&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function trim(s)&lt;br /&gt;
    return mw.ustring.match( s, &amp;quot;^%s*(.-)%s*$&amp;quot; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function error(s)&lt;br /&gt;
    local span = HtmlBuilder.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    span&lt;br /&gt;
        .addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
        .css(&amp;#039;float&amp;#039;, &amp;#039;left&amp;#039;)&lt;br /&gt;
        .css(&amp;#039;white-space&amp;#039;, &amp;#039;nowrap&amp;#039;)&lt;br /&gt;
        .wikitext(&amp;#039;Error: &amp;#039; .. s)&lt;br /&gt;
&lt;br /&gt;
    return tostring(span)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getTitle( pageName )&lt;br /&gt;
    pageName = trim( pageName );&lt;br /&gt;
    local page_title, talk_page_title;&lt;br /&gt;
    &lt;br /&gt;
    if mw.ustring.sub(pageName, 1, 1) == &amp;#039;:&amp;#039; then&lt;br /&gt;
        page_title = mw.title.new( mw.ustring.sub(pageName, 2) );&lt;br /&gt;
    else&lt;br /&gt;
        page_title = mw.title.new( pageName, &amp;#039;Template&amp;#039; );&lt;br /&gt;
    end    &lt;br /&gt;
    &lt;br /&gt;
    if page_title then &lt;br /&gt;
        talk_page_title = page_title.talkPageTitle;&lt;br /&gt;
    else&lt;br /&gt;
        talk_page_title = nil;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return page_title, talk_page_title;    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function _navbar( args )&lt;br /&gt;
    if not args[1] then&lt;br /&gt;
        return error(&amp;#039;No name provided&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local good, title, talk_title;&lt;br /&gt;
    good, title, talk_title = pcall( getTitle, args[1] );&lt;br /&gt;
    if not good then&lt;br /&gt;
        return error(&amp;#039;Expensive parser function limit exceeded&amp;#039;);&lt;br /&gt;
    end    &lt;br /&gt;
&lt;br /&gt;
    if not title then&lt;br /&gt;
        return error(&amp;#039;Page does not exist&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local mainpage = title.fullText;&lt;br /&gt;
    local talkpage = talk_title and talk_title.fullText or &amp;#039;&amp;#039;&lt;br /&gt;
    local editurl = title:fullUrl( &amp;#039;action=edit&amp;#039; ); &lt;br /&gt;
 &lt;br /&gt;
    local viewLink, talkLink, editLink = &amp;#039;view&amp;#039;, &amp;#039;talk&amp;#039;, &amp;#039;edit&amp;#039;&lt;br /&gt;
    if args.mini then&lt;br /&gt;
        viewLink, talkLink, editLink = &amp;#039;v&amp;#039;, &amp;#039;t&amp;#039;, &amp;#039;e&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local div = HtmlBuilder.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
    div&lt;br /&gt;
        .addClass( &amp;#039;noprint&amp;#039; )&lt;br /&gt;
        .addClass( &amp;#039;plainlinks&amp;#039; )&lt;br /&gt;
        .addClass( &amp;#039;hlist&amp;#039; )&lt;br /&gt;
        .addClass( &amp;#039;navbar&amp;#039;)&lt;br /&gt;
        .cssText( args.style )&lt;br /&gt;
 &lt;br /&gt;
    if args.mini then div.addClass(&amp;#039;mini&amp;#039;) end&lt;br /&gt;
 &lt;br /&gt;
    if not (args.mini or args.plain) then&lt;br /&gt;
        div&lt;br /&gt;
            .tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                .css( &amp;#039;word-spacing&amp;#039;, 0 )&lt;br /&gt;
                .cssText( args.fontstyle )&lt;br /&gt;
                .wikitext( args.text or &amp;#039;This box:&amp;#039; )&lt;br /&gt;
                .wikitext( &amp;#039; &amp;#039; )&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    if args.brackets then&lt;br /&gt;
        div&lt;br /&gt;
            .tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;margin-right&amp;#039;, &amp;#039;-0.125em&amp;#039;)&lt;br /&gt;
                .cssText( args.fontstyle )&lt;br /&gt;
                .wikitext( &amp;#039;&amp;amp;#91;&amp;#039; )&lt;br /&gt;
                .newline();&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    local ul = div.tag(&amp;#039;ul&amp;#039;);&lt;br /&gt;
 &lt;br /&gt;
    ul&lt;br /&gt;
        .tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
            .addClass( &amp;#039;nv-view&amp;#039; )&lt;br /&gt;
            .wikitext( &amp;#039;[[&amp;#039; .. mainpage .. &amp;#039;|&amp;#039; )&lt;br /&gt;
            .tag( &amp;#039;span &amp;#039; )&lt;br /&gt;
                .attr( &amp;#039;title&amp;#039;, &amp;#039;View this template&amp;#039; )&lt;br /&gt;
                .cssText( args.fontstyle or &amp;#039;&amp;#039; )&lt;br /&gt;
                .wikitext( viewLink )&lt;br /&gt;
                .done()&lt;br /&gt;
            .wikitext( &amp;#039;]]&amp;#039; )&lt;br /&gt;
            .done()&lt;br /&gt;
        .tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
            .addClass( &amp;#039;nv-talk&amp;#039; )&lt;br /&gt;
            .wikitext( &amp;#039;[[&amp;#039; .. talkpage .. &amp;#039;|&amp;#039; )&lt;br /&gt;
            .tag( &amp;#039;span &amp;#039; )&lt;br /&gt;
                .attr( &amp;#039;title&amp;#039;, &amp;#039;Discuss this template&amp;#039; )&lt;br /&gt;
                .cssText( args.fontstyle or &amp;#039;&amp;#039; )&lt;br /&gt;
                .wikitext( talkLink )&lt;br /&gt;
                .done()&lt;br /&gt;
            .wikitext( &amp;#039;]]&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
    if not args.noedit then &lt;br /&gt;
        ul&lt;br /&gt;
            .tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                .addClass( &amp;#039;nv-edit&amp;#039; )&lt;br /&gt;
                .wikitext( &amp;#039;[&amp;#039; .. editurl .. &amp;#039; &amp;#039; )&lt;br /&gt;
                .tag( &amp;#039;span &amp;#039; )&lt;br /&gt;
                    .attr( &amp;#039;title&amp;#039;, &amp;#039;Edit this template&amp;#039; )&lt;br /&gt;
                    .cssText( args.fontstyle or &amp;#039;&amp;#039; )&lt;br /&gt;
                    .wikitext( editLink )&lt;br /&gt;
                    .done()&lt;br /&gt;
                .wikitext( &amp;#039;]&amp;#039; );&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    if args.brackets then&lt;br /&gt;
        div&lt;br /&gt;
            .tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;margin-left&amp;#039;, &amp;#039;-0.125em&amp;#039;)&lt;br /&gt;
                .cssText( args.fontstyle or &amp;#039;&amp;#039; )&lt;br /&gt;
                .wikitext( &amp;#039;&amp;amp;#93;&amp;#039; )&lt;br /&gt;
                .newline();&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return tostring(div)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbar(frame)&lt;br /&gt;
    local origArgs&lt;br /&gt;
    -- If called via #invoke, use the args passed into the invoking template.&lt;br /&gt;
    -- Otherwise, for testing purposes, assume args are being passed directly in.&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        origArgs = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        origArgs = frame&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    -- ParserFunctions considers the empty string to be false, so to preserve the previous &lt;br /&gt;
    -- behavior of {{navbar}}, change any empty arguments to nil, so Lua will consider&lt;br /&gt;
    -- them false too.&lt;br /&gt;
    args = {}&lt;br /&gt;
    for k, v in pairs(origArgs) do&lt;br /&gt;
        if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            args[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return _navbar(args)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cybertronic</name></author>
	</entry>
</feed>