Модуль : Navbar

Википедия деп сайттан

{{ Tnavbar }}


local
 p
 =
 {}


local
 getArgs


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
 ''
;

	
	if
 args
.
nodiv
 then

		tag
 =
 'span'

	else

		tag
 =
 'div'

	end

	
	local
 div
 =
 mw
.
html
.
create
():
tag
(
tag
)

	div

		:
addClass
(
'plainlinks'
)

		:
addClass
(
'noprint'
)

		:
addClass
(
'navbar'
)

		:
cssText
(
args
.
style
 or
 'text-align:left; white-space:nowrap;'
)


	if
 args
.
mini
 then
 div
:
addClass
(
'mini'
)
 end


	if
 not
 (
args
.
mini
 or
 args
.
plain
)
 then

		div

			:
tag
(
'span'
)

				:
css
(
'word-spacing'
,
 0
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
args
.
text
 or
 'Майык:'
)

				:
wikitext
(
' '
)

	end


	if
 args
.
brackets
 then

		div

			:
tag
(
'span'
)

				:
css
(
'margin-right'
,
 '-0.125em'
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
'['
)

				--:newline();

	end


	local
 ul
 =
 div
:
tag
(
'span'
);


	ul

		:
tag
(
'span'
)

			:
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
(
'span'
)

			:
addClass
(
'nv-talk'
)

			:
wikitext
(
' • '
)

			:
wikitext
(
'[['
 ..
 talkpage
 ..
 '|'
)

			:
tag
(
args
.
mini
 and
 'abbr'
 or
 'span'
)

				:
attr
(
'title'
,
 'Ук майык дугайында чугаалажыр'
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
args
.
mini
 and
 'ч'
 or
 'чугаа'
 or
 'чугаалажыр'
)

				:
done
()

			:
wikitext
(
']]'
);


	if
 not
 args
.
noedit
 then

		ul

		
			:
tag
(
'span'
)

				:
addClass
(
'nv-edit'
)

				:
wikitext
(
' • '
)

				:
wikitext
(
'['
 ..
 title
:
fullUrl
(
'action=edit'
)
 ..
 ' '
)

				:
tag
(
args
.
mini
 and
 'abbr'
 or
 'span'
)

					:
attr
(
'title'
,
 'Ук майыкты эдер'
)

					:
cssText
(
args
.
fontstyle
)

					:
wikitext
(
args
.
mini
 and
 'э'
 or
 'эдер'
)

					:
done
()

				:
wikitext
(
']'
);

	end


	if
 args
.
brackets
 then

		div

			:
tag
(
'span'
)

				:
css
(
'margin-left'
,
 '-0.125em'
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
']'
)

				--:newline();

	end


	if
 args
.
collapsible
 then

		div

			:
done
()

		:
tag
(
'span'
)

			:
css
(
'font-size'
,
 '110%'
)

			:
cssText
(
args
.
fontstyle
)

			:
wikitext
(
args
[
1
])

	end


	return
 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