Х?окху модулах лаьцна хааман
Модуль:Navbar/doc
аг?о кхолла мега
local
p
=
{}
local
hlist
=
'Template:Flatlist/styles.css'
local
templatestyles
=
'Module:Navbar/styles.css'
local
getArgs
function
p
.
_ruwikiNavbar
(
args
)
local
titleText
=
args
[
1
]
or
(
':'
..
mw
.
getCurrentFrame
():
getParent
():
getTitle
())
local
title
=
mw
.
title
.
new
(
mw
.
text
.
trim
(
titleText
),
'Template'
);
if
not
title
then
error
(
'Invalid title '
..
titleText
)
end
local
whiteColorDefs
=
{
[
'#fff'
]
=
true
,
[
'#ffffff'
]
=
true
,
[
'white'
]
=
true
,
}
local
fontColor
=
args
.
fontcolor
and
args
.
fontcolor
:
lower
()
local
isWhite
=
fontColor
and
whiteColorDefs
[
fontColor
]
==
true
local
fontStyle
=
args
.
fontstyle
and
mw
.
text
.
unstripNoWiki
(
args
.
fontstyle
:
lower
()
)
if
not
isWhite
and
fontStyle
then
local
styleratio
=
require
(
'Module:Color contrast'
).
_styleratio
isWhite
=
styleratio
(
{
fontStyle
..
'; color:#666;'
,
''
,
'#666'
}
)
<
3.66
end
local
isTemplate
=
title
.
namespace
==
10
local
altText
=
string.format
(
'Перейти %s ≪%s≫'
,
isTemplate
and
'к шаблону'
or
'на страницу'
,
mw
.
text
.
split
(
isTemplate
and
title
.
text
or
title
.
fullText
,
'#'
)[
1
]
)
return
string.format
(
'[[Файл:Wikipedia interwiki section gear icon%s.svg|14px|class=noprint|link=%s|%s]]'
,
isWhite
and
' white'
or
''
,
tostring
(
title
),
altText
)
end
function
p
.
ruwikiNavbar
(
frame
)
if
not
getArgs
then
getArgs
=
require
(
'Module:Arguments'
).
getArgs
end
return
p
.
_ruwikiNavbar
(
getArgs
(
frame
))
end
function
p
.
_navbar
(
args
)
local
titleArg
=
1
if
args
.
collapsible
then
titleArg
=
2
if
not
args
.
plain
then
args
.
mini
=
1
end
if
args
.
fontcolor
then
args
.
fontstyle
=
'color:'
..
args
.
fontcolor
..
';'
end
args
.
style
=
'float:left; text-align:left; white-space:nowrap;'
end
if
args
[
titleArg
]
==
'off'
then
return
end
local
titleText
=
args
[
titleArg
]
or
(
':'
..
mw
.
getCurrentFrame
():
getParent
():
getTitle
())
local
title
=
mw
.
title
.
new
(
mw
.
text
.
trim
(
titleText
),
'Template'
);
if
not
title
then
error
(
'Invalid title '
..
titleText
)
end
local
talkpage
=
title
.
talkPageTitle
and
title
.
talkPageTitle
.
fullText
or
''
;
local
tag
if
args
.
nodiv
then
tag
=
'span'
else
tag
=
'div'
end
local
div
=
mw
.
html
.
create
():
tag
(
tag
)
div
:
addClass
(
'navbar hlist plainlinks noprint'
)
:
attr
(
'data-navboxnavigation-link'
,
'0'
)
:
cssText
(
args
.
style
)
if
args
.
mini
then
div
:
addClass
(
'navbar-mini'
)
end
if
not
(
args
.
mini
or
args
.
plain
)
then
div
:
tag
(
'span'
)
:
addClass
(
'navbar-boxtext'
)
:
cssText
(
args
.
fontstyle
)
:
wikitext
(
args
.
text
or
'Шаблон:'
)
:
wikitext
(
' '
)
end
local
ul
=
div
:
tag
(
'ul'
);
if
args
.
brackets
then
ul
:
addClass
(
'navbar-brackets'
)
end
ul
:
tag
(
'li'
)
:
addClass
(
'nv-view'
)
:
wikitext
(
'[['
..
title
.
fullText
..
'|'
)
:
tag
(
args
.
mini
and
'abbr'
or
'span'
)
:
addClass
(
args
.
mini
and
'navbar-mini-abbr'
)
:
attr
(
'title'
,
'Просмотр этого шаблона'
)
:
cssText
(
args
.
fontstyle
)
:
wikitext
(
args
.
mini
and
'п'
or
'просмотр'
)
:
done
()
:
wikitext
(
']]'
)
:
done
()
:
tag
(
'li'
)
:
addClass
(
'nv-talk'
)
:
wikitext
(
'[['
..
talkpage
..
'|'
)
:
tag
(
args
.
mini
and
'abbr'
or
'span'
)
:
attr
(
'title'
,
'Обсуждение этого шаблона'
)
:
cssText
(
args
.
fontstyle
)
:
wikitext
(
args
.
mini
and
'о'
or
'обсуждение'
)
:
done
()
:
wikitext
(
']]'
);
if
not
args
.
noedit
then
ul
:
tag
(
'li'
)
:
addClass
(
'nv-edit'
)
:
wikitext
(
'[[Special:EditPage/'
..
title
.
fullText
..
'|'
)
:
tag
(
args
.
mini
and
'abbr'
or
'span'
)
:
attr
(
'title'
,
'Править этот шаблон'
)
:
cssText
(
args
.
fontstyle
)
:
wikitext
(
args
.
mini
and
'р'
or
'править'
)
:
done
()
:
wikitext
(
']]'
);
end
if
args
.
collapsible
then
div
:
done
()
:
tag
(
'span'
)
:
addClass
(
args
.
mini
and
'navbar-ct-mini'
or
'navbar-ct-full'
)
:
cssText
(
args
.
fontstyle
)
:
wikitext
(
args
[
1
])
end
local
frame
=
mw
.
getCurrentFrame
()
return
frame
:
extensionTag
{
name
=
'templatestyles'
,
args
=
{
src
=
hlist
}
}
..
frame
:
extensionTag
{
name
=
'templatestyles'
,
args
=
{
src
=
templatestyles
}
}
..
tostring
(
div
:
done
())
end
function
p
.
navbar
(
frame
)
if
not
getArgs
then
getArgs
=
require
(
'Module:Arguments'
).
getArgs
end
return
p
.
_navbar
(
getArgs
(
frame
))
end
return
p