ماڊيول:Ustring
| هي Lua ماڊيول گھڻن صفحن تي استعمال ٿئي ٿو، تنهن ڪري ان ۾ تبديليون وڏي پيماني تي نظر اينديون۔ مهرباني ڪري ڪنهن به تبديلي کي ماڊيول جي /sandbox يا /testcases ذيلي صفحن۔ ۾ آزمائي ڏسومهرباني ڪري تبديليءَ بابت بحث ڳالهه ٻولهه واري صفحي تي ڪريو، پوءِ انهن کي لاڳو ڪريو۔ |
| هي سانچو صرف وڪيپيڊيا:منتظمين طرفان ئي ترميم ڪري سگهجي ٿو، ڇاڪاڻتہ اهو هڪ يا وڌيڪ ٽرانسڪلوڊ ٿيل ڪيسڪيڊ-محفوظ صفحن تي استعمال ٿي رهيو آهي۔ |
| هي سانچو عام استعمال لاءِ تيار آهي ۽ مڪمل حالت ۾ آهي۔ |
هي ماڊيول سڌي طرح سانچو:Luaref لائبريري جون سڀئي فنڪشنون درآمد ڪري ٿو۔ هر فنڪشن جي وضاحت اتي ملي سگهي ٿي۔
هي ماڊيول بي شمار (indefinite) آرگومينٽس وٺي سگهي ٿو۔ جيڪي آرگومينٽ |s1=, |s2= وغيره طور ڏنا وڃن ٿا، اهي پهريان پڙهيا ويندا ۽ اسٽرنگ طور استعمال ٿيندا۔ باقي عددي آرگومينٽس کي ممڪن هجي ته نمبر ۾ تبديل ڪيو ويندو، نه ته اهي اسٽرنگ طور رهندا۔ جيڪڏهن توهان ڪنهن عددي آرگومينٽ کي اسٽرنگ طور رکڻ چاهيو ٿا ته ان جي شروعات ۾ \ لڳايو۔
ياد رهي ته MediaWiki هميشه نالي وارن آرگومينٽس مان خالي جڳهه (whitespace) هٽائي ڇڏيندو آهي؛ جيڪڏهن توهان کي خالي جڳهه سان گڏ آرگومينٽ ڏيڻا آهن ته اڻنالي پيرا ميٽرز استعمال ڪريو جيڪي \ سان شروع ٿين۔
| هن کي پاس ڪرڻ لاءِ... | هي لکو | وضاحت |
|---|---|---|
" 0123 " |
|\ 123 |
خالي جڳهه رکڻ لاءِ اڻنالي پيرا ميٽر استعمال ڪريو ۽ اڳ ۾ \ لڳايو۔
|
"0123" |
|s1=0123 |
جيڪڏهن خالي جڳهه ضروري نه هجي ته |s1= استعمال ڪريو۔
|
"0123" |
|1=\0123 |
|1= استعمال ڪري سگهو ٿا۔
|
ٻي سانچي مان {{{1}}} پاس ڪرڻ (خالي جڳهه سان) |
|\{{{1}}} |
\ لازمي آهي۔
|
ٻي سانچي مان {{{1}}} پاس ڪرڻ (بغير خالي جڳهه) |
|s1={{{1}}} |
|
ٻي سانچي مان {{{1}}} پاس ڪرڻ |
|1=\{{#if:1|{{{1}}}}} |
توهان نتيجن کي ٽئگز ۾ به وجهي سگهو ٿا۔ باقي آرگومينٽس سانچو:Luaref ڏانهن موڪليا ويندا۔
استعمال
[سنواريو]{{#invoke:Ustring|function_name|arg1|arg2|...}} برابر آهي سانچو:Luaref
مثال (mw.ustring.sub)
[سنواريو]{{#invoke:Ustring|sub|s1=abcde|2|4}}
نتيجو: bcd
مثال (mw.ustring.gsub)
[سنواريو]{{#invoke:Ustring|gsub|s1=1234|23|}}
نتيجو: 14
مثال (mw.ustring.char)
[سنواريو]&#{{#invoke:ustring|char|49|48|59}}
نتيجو:
مثال (mw.ustring.match)
[سنواريو]{{#invoke:Ustring|match|s1=abcde|s2=(c%w)}}
نتيجو: cd
نوٽ: صرف پهريون ميچ واپس ٿيندو۔
مثال (mw.ustring.len)
[سنواريو]{{#invoke:Ustring|len|a string of twenty-nine chars}}
نتيجو: 29
ٽئگ سان مثال
[سنواريو]{{#invoke:Ustring|match
|s1={{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%
<!-- اصل نئين لائين داخل ڪريو -->%s%s%send
|tag=syntaxhighlight|lang=lua}}
نتيجو:
if not fargs.tag then
return (what(unpack(args))) -- Outside parens truncate to first result avoiding tail call
end
local tagargs = {}
for x, y in pairs(fargs) do
if not fargsused[x] then tagargs[x] = y end
end
غلطيون
[سنواريو]سانچو:Luaref مان ايندڙ غلطيون ساڳيون رهنديون:
{{#invoke:Ustring|xyzzy}}
نتيجو: سانچو:Script error
۽
{{#invoke:Ustring|maxPatternLength}}
نتيجو: سانچو:Script error
پڻ ڏسو
[سنواريو]سانچو:String handling templates
require('strict')
return setmetatable({}, {
__index = function(t, k)
local what = mw.ustring[k]
if type(what) ~= "function" then
return what
end
return function(frame)
local fargs = frame.args
local fargsused = { tag = true }
local args = {}
local str_i = 1
while fargs['s' .. str_i] do
fargsused['s' .. str_i] = true
args[str_i] = fargs['s' .. str_i]
str_i = str_i + 1
end
for i, v in ipairs(fargs) do
fargsused[i] = true
args[i + str_i - 1] = tonumber(v) or v:gsub("^\\", "", 1)
end
if not fargs.tag then
return (what(unpack(args))) -- Outside parens truncate to first result avoiding tail call
end
local tagargs = {}
for x, y in pairs(fargs) do
if not fargsused[x] then tagargs[x] = y end
end
return frame:extensionTag{name = fargs.tag, content = what(unpack(args)), args = tagargs}
end
end
})