ਸਮੱਗਰੀ 'ਤੇ ਜਾਓ

ਵਿਕੀਪੀਡੀਆ:ਸਕਰਿਬੁੰਟੋ

ਵਿਕੀਪੀਡੀਆ, ਇੱਕ ਆਜ਼ਾਦ ਵਿਸ਼ਵਕੋਸ਼ ਤੋਂ
(ਵਿਕੀਪੀਡੀਆ:ਲੂਆ ਤੋਂ ਮੋੜਿਆ ਗਿਆ)
Wikipedia data structure
ਨੇਮਸਪੇਸਾਂ
ਨੇਮਸਪੇਸ ਵਿਸ਼ਾਨੇਮਸਪੇਸ ਗੱਲਬਾਤ
0 (ਮੁੱਖ/ਲੇਖ)ਗੱਲ-ਬਾਤ 1
2 ਵਰਤੋਂਕਾਰਵਰਤੋਂਕਾਰ ਗੱਲ-ਬਾਤ 3
4 ਵਿਕੀਪੀਡੀਆਵਿਕੀਪੀਡੀਆ ਗੱਲ-ਬਾਤ 5
6 ਤਸਵੀਰਤਸਵੀਰ ਗੱਲ-ਬਾਤ 7
8 ਮੀਡੀਆਵਿਕੀਮੀਡੀਆਵਿਕੀ ਗੱਲ-ਬਾਤ 9
10 ਫਰਮਾਫਰਮਾ ਗੱਲ-ਬਾਤ 11
12 ਮਦਦਮਦਦ ਗੱਲ-ਬਾਤ 13
14 ਸ਼੍ਰੇਣੀਸ਼੍ਰੇਣੀ ਗੱਲ-ਬਾਤ 15
100 ਫਾਟਕਫਾਟਕ ਗੱਲ-ਬਾਤ 101
118 [[ਵਿਕੀਪੀਡੀਆ:ਡਰਾਫਟ|]] 119
710 TimedTextTimedText talk 711
828 ਮੌਡਿਊਲਮੌਡਿਊਲ ਗੱਲ-ਬਾਤ 829
Deprecated
2300 [[ਵਿਕੀਪੀਡੀਆ:ਗੈਜੇਟ|]] 2301
2302 [[ਵਿਕੀਪੀਡੀਆ:ਗੈਜੇਟ|]] 2303
ਇੰਸਟਾਲ ਨਹੀਂ ਕੀਤਾ
90 ਥਰਿੱਡਥਰਿੱਡ ਗੱਲਬਾਤ 91
92 ਸੰਖੇਪਸੰਖੇਪ ਗੱਲਬਾਤ 93
108 ਪੁਸਤਕਾਂBook ਗੱਲਬਾਤ 109
442 ਕੋਰਸCourse ਗੱਲਬਾਤ 443
444 ਇੰਸਟੀਟਿਊਸ਼ਨਇੰਸਟੀਟਿਊਸ਼ਨ ਗੱਲਬਾਤ 445
446 ਸਿੱਖਿਆ ਪ੍ਰੋਗਰਾਮਸਿੱਖਿਆ ਪ੍ਰੋਗਰਾਮ ਗੱਲਬਾਤ 447
2600 ਵਿਸ਼ਾ 2601
ਬਣਾਵਟੀ ਨੇਮਸਪੇਸਾਂ
-1 ਖ਼ਾਸ
-2 ਮੀਡੀਆ
Current list (API call)

ਲੂਆ ਇੱਕ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਹੈ ਜੋ ਹੁਣ ਅੰਗਰੇਜੀ ਵਿਕੀਪੀਡੀਆ ਉੱਤੇ, ਸਕਿਰਬੰਟੋ ਮੀਡੀਆਵਿਕੀ ਐਕਸਟੈਂਸ਼ਨ ਰਾਹੀਂ ਉਪਲਬਧ ਹੈ। ਲੁਆ ਕੋਡ ਨੂੰ ਹੁਣ ਵਿਕੀਪੀਡੀਆ ਟੈਂਪਲੈਂਟਾਂ ਵਿੱਚ ਸਕਿਰਬੰਟੋ ਦੇ {{#invoke:}} ਫੰਕਸ਼ਨ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਜੜਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਐਕਸਟੈਨਸ਼ਨ ਜੁਲਾਈ 2015 ਤੋਂ ਲੁਆ 5.1 ਜੁਲਾਈ 2015 ਤੱਕ ਨੂੰ ਸਪੋਰਟ ਕਰਦੀ ਹੈ।

ਲੂਆ ਵਿੱਚ ਹੈਲੋ ਵਰਲਡ!

[ਸੋਧੋ]

ਮੌਡਿਊਲ:Bananas: ਸਰਲਤਮ ਸੰਭਵ ਸਕ੍ਰਿਪਟ, ਜੋ ਕੋਈ ਵੀ ਆਰਜੂਮੈਂਟ ਵਾਲਾ ਇੱਕ ਸਿੰਗਲ ਫੰਕਸ਼ਨ ਦਿੰਦੀ ਹੈ

ਲੁਆ ਸੋਰਸ ਕੋਡ ਮੌਡਿਊਲਜ਼ (ਯਾਨਿ ਕਿ, ਮੌਡਿਊਲ:Bananas) ਨਾਮਕ ਪੰਨਿਆਂ ਵਿੱਚ ਜਮਾਂ ਹੁੰਦੇ ਜਾਂਦੇ ਹਨ। ਇਹ ਵਿਅਕਤੀਗਤ ਮੌਡਿਊਲਜ਼ ਫੇਰ ਟੈਂਪਲੈਂਟ ਪੰਨਿਆਂ ਉੱਤੇ {{#invoke:}} ਕੋਡ ਰਾਹੀਂ ਇਨਵੋਕ (ਬੁਲਾਏ) ਕੀਤੇ ਜਾਂਦੇ ਹਨ। (ਜਿਵੇਂ ਮੌਡਿਊਲ:Bananas/doc ਇਸ "Hello, world!" ਸ਼ਬਦਾਂ ਨੂੰ ਛਾਪਣ ਵਾਸਤੇ {{#invoke:Bananas|hello}} ਕੋਡ ਵਰਤਦਾ ਹੈ।)

ਤੁਹਾਨੂੰ ਕੁਝ ਵੀ ਇੰਸਟਾਲ ਜਾਂ ਸੇਵ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।

  1. ਆਪਣਾ ਯੂਜ਼ਰ ਪੰਨਾ ਸੰਪਾਦਿਤ ਕਰੋ।
  2. ਆਪਣੇ ਯੂਜ਼ਰ ਪੰਨੇ ’ਤੇ ਨਵੀਂ ਲਾਈਨ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀ ਕਾਲ ਚਿਪਕਾਓ:
{{#invoke:Bananas|hello}}
  1. ਝਲਕ ਵਿਖਾਓ ’ਤੇ ਕਲਿੱਕ ਕਰੋ। hello ਫੰਕਸ਼ਨ ਦੀ ਕਾਲ ਮੌਡਿਊਲ:Bananas ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਨਾਲ ਬਦਲ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ:
Hello, world!
  1. ਰੱਦ ਕਰੋ ’ਤੇ ਕਲਿੱਕ ਕਰੋ। ਪੁੱਛੇ ਜਾਣ ’ਤੇ, Leave ’ਤੇ ਕਲਿੱਕ ਕਰੋ।
  2. ਤੁਹਾਡਾ ਯੂਜ਼ਰ ਪੰਨਾ ਅਣਬਦਲਿਆ ਰਹਿੰਦਾ ਹੈ।

ਆਰਜੂਮੈਂਟਾਂ ਵਰਤਣਾ

[ਸੋਧੋ]

ਆਰਜੂਮੈਂਟਾਂ ਮੌਡਿਊਲਾਂ ਵੱਲ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਪਾਸ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਜਿਸਤਰਾਂ ਫਰਮੇ ਪਾਸ ਹੁੰਦੇ ਹਨ। ਫੇਰ ਵੀ, ਨੋਟ ਕਰੋ ਕਿ ਪਹਿਲੇ ਪਾਈਪ ਅੱਖਰ ਤੋਂ ਬਾਦ ਦੇ ਅਗਲੇ ਅੱਖਰ ਹਮੇਸ਼ਾਂ ਹੀ ਫੰਕਸ਼ਨ ਦਾ ਨਾਮ ਹੁੰਦੇ ਹਨ; ਪਹਿਲੀ ਪੁਜ਼ੀਸ਼ਨ ਵਾਲੀ ਆਰਜੂਮੈਂਟ ਦੂਜੀ ਪਾਈਪ ਤੋਂ ਬਾਦ ਦੇ ਟੈਕਸਟ ਹੁੰਦੇ ਹਨ।

{{#invoke:ਮੋਡੀਊਲ_ਦਾ_ਨਾਮ|ਫੰਕਸ਼ਨ_ਦਾ_ਨਾਮ|ਆਰਗੂਮੈਂਟ}}

ਮੌਡਿਊਲ:BananasArgs: ਸਿੱਧ ਕਰਕੇ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਕਿਵੇਂ ਵਰਤਣਾ ਅਤੇ ਕ੍ਰਿਆਸ਼ੀਲ ਕਰਨਾ ਹੈ

ਉਦਾਹਰਨ ਦੇ ਤੌਰ ਤੇ, ਮੌਡਿਊਲ:BananasArgs ਵਿੱਚ, hello ਫੰਕਸ਼ਨ ਵੱਖਰੇ ਲੋਕਾਂ ਦਾ ਸਵਾਗਤ ਕਰਨਾ ਪਹਿਲੀ ਪੁਜ਼ੀਸ਼ਨ ਵਾਲੀ ਆਰਜੂਮੈਂਟ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇਹ ਇਸਤਰਾਂ ਕੰਮ ਕਰਦਾ ਹੈ:

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ:

# {{#invoke:BananasArgs|hello|ਜਸਪ੍ਰੀਤ}}
# {{#invoke:BananasArgs|hello|ਗੁਰਪ੍ਰੀਤ}}
  1. Hello, ਜਸਪ੍ਰੀਤ!
  2. Hello, ਗੁਰਪ੍ਰੀਤ!


ਨਾਮਿਤ ਆਰਗੂਮੈਂਟ |ਕੁੰਜੀ=ਮੁੱਲ
{{#invoke:ਮੋਡੀਊਲ_ਦਾ_ਨਾਮ|ਫੰਕਸ਼ਨ_ਦਾ_ਨਾਮ|ਨਾਮਿਤ_ਆਰਗੂਮੈਂਟ1=ਮੁੱਲ1|ਨਾਮਿਤ_ਆਰਗੂਮੈਂਟ2=ਮੁੱਲ2}}

BananasArgs ਕੋਲ ਇੱਕ count_fruit ਨਾਮਕ ਫੰਕਸ਼ਨ ਵੀ ਹੁੰਦਾ ਹੈ ਜੋ |bananas= and |apples= ਨਾਮਕ ਆਰਜੂਮੈਂਟ ਵਰਤਦਾ ਹੈ ਜਿਸਨਾਲ ਸਾਡੇ ਕੋਲ ਮੌਜੂਦ ਕੇਲਿਆਂ (ਬਾਨਾਨਾਜ਼) ਅਤੇ ਸੇਬਾਂ ਦੀ ਸੰਖਿਆ ਗਿਣੀ ਜਾਂਦੀ ਹੈ। ਇਸਨੂੰ ਆਰਗੂਮੈਂਟਾਂ ਦਾ ਕ੍ਰਮ ਬਦਲ ਕੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ:

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ:

# {{#invoke:BananasArgs|count_fruit|apples=3|bananas=4}}
# {{#invoke:BananasArgs|count_fruit|bananas=5|apples=2}}
  1. I have 4 bananas and 3 apples
  2. I have 5 bananas and 2 apples

ਜਿਆਦਾਤਰ ਮੌਡਿਊਲਜ਼ ਇੱਕ ਡੌਕੂਮੈਂਟੇਸ਼ਨ ਪੰਨਾ ਰੱਖਦੇ ਹੋਣਗੇ ਜਿਸਵਿੱਚ ਇਹ ਸਮਝਾਇਆ ਗਿਆ ਹੁੰਦਾ ਹੈ ਕਿ ਕਿਹੜੀਆਂ ਆਰਜੂਮੈਂਟਾਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਉਹਨਾਂ ਦੇ ਪ੍ਰਭਾਵ ਕੀ ਹੋਣਗੇ ।

ਡੀਬੱਗ ਕੌਨਸੋਲ: ਲੂਆ ਸਿੱਖਣਾ ਸ਼ੁਰੂ ਕਰੋ

[ਸੋਧੋ]

ਲੂਆ Scribunto ਦਾ Debug Console ਵਿਕੀਪੀਡੀਆ ਵਿੱਚ ਲੂਆ ਸਿੱਖਣ ਲਈ ਇੱਕ ਸੁਰੱਖਿਅਤ, ਇੰਟਰਐਕਟਿਵ ਟੂਲ ਹੈ।

  1. ਮੌਡਿਊਲ:Yesno ਪੰਨੇ ‘ਤੇ ਸਰੋਤ ਵੇਖੋ ‘ਤੇ ਕਲਿੱਕ ਕਰੋ।
  2. ਪੰਨੇ ਦੇ ਹੇਠਾਂ Debug console ਭਾਗ ਤੱਕ ਸਕ੍ਰੋਲ ਕਰੋ।
  3. ਟਿੱਪਣੀ ਅਤੇ ਕਾਲ ਨੂੰ ਹਲਕਾ ਨੀਲਾ ਇਨਪੁੱਟ ਬਾਕਸ ਵਿੱਚ ਪੇਸਟ ਕਰੋ (ਜੋ ਸਾਫ਼ ਕਰੋ ਬਟਨ ਦੇ ਉੱਪਰ ਹੈ)।
--[[ਤੁਹਾਡਾ ਪਹਿਲਾ ਲੂਆ Hello World-ਜਿਹਾ ਪ੍ਰੋਗਰਾਮ]]--
print("ਲੂਆ ਵਿੱਚ ਤੁਹਾਡਾ ਸੁਆਗਤ ਹੈ " .. _VERSION .. "!") -- ਲੂਆ ਸੰਸਕਰਣ ਨੂੰ `..` ਨਾਲ ਜੋੜੋ
  1. ਦੋ ਲੂਆ ਕਮਾਂਡਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ↵ Enter ਇੱਕ ਵਾਰ ਦਬਾਓ।
  2. ਨਤੀਜਾ ਲੂਆ print ਕਮਾਂਡ ਲਾਈਨ ਦੇ ਹੇਠਾਂ ਦਿਖਾਈ ਦੇਵੇਗਾ:
ਲੂਆ ਵਿੱਚ ਤੁਹਾਡਾ ਸੁਆਗਤ ਹੈ Lua 5.1!
  1. ਪਿਛਲੀਆਂ ਲੂਆ ਕਮਾਂਡਾਂ ਵਿਚਕਾਰ ਜਾਣ ਲਈ ↑ Up arrow ਦਬਾਓ।
  2. ਚਾਹੋ ਤਾਂ ਸਾਫ਼ ਕਰੋ ‘ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਸਿਰਫ਼ Debug Console ਨੂੰ ਸਾਫ਼ ਕਰੋ; ਉੱਪਰ ਵਾਲਾ ਲੂਆ ਸੰਪਾਦਕ ਬਦਲਿਆ ਨਹੀਂ ਜਾਵੇਗਾ।


ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ HTML ਜਨਰੇਟਰ

ਮੌਡਿਊਲ:Bananas ਵਿੱਚ hello ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰੋ:

local modHi = require('ਮੌਡਿਊਲ:Bananas') -- Debug console ਵਿੱਚ ਮੌਡਿਊਲ ਲੋਡ ਕਰੋ
print(modHi.hello()) -- "Hello, world!" ਦਿਖਾਓ
Hello, world!
ਆਰਗੂਮੈਂਟ
local modArg = require('ਮੌਡਿਊਲ:BananasArgs')
local frame = mw.getCurrentFrame()
frame.args = {"ਜਸਪ੍ਰੀਤ"}; print("੧. " .. modArg.hello(frame))
frame.args = {"ਗੁਰਪ੍ਰੀਤ"}; print("੨. " .. modArg.hello(frame))
frame.args = {apples="3", bananas="4"}; print("੩. " .. modArg.count_fruit(frame))
frame.args = {bananas="5", apples="2"}; print("੪. " .. modArg.count_fruit(frame))
੧. Hello, ਜਸਪ੍ਰੀਤ!
੨. Hello, ਗੁਰਪ੍ਰੀਤ!
੩. I have 4 bananas and 3 apples
੪. I have 5 bananas and 2 apples
ਪਛਾਣ ਫੰਕਸ਼ਨ

callParserFunction #if

local yesno = require('ਮੌਡਿਊਲ:Yesno') -- #if yesno then ਆਪਣਾ ਇਨਪੁੱਟ ਪੈਰਾਮੀਟਰ ਵਾਪਸ ਕਰਦਾ ਹੈ
print(mw.getCurrentFrame():callParserFunction("#if", yesno("Yes"), "Yes", 'no'))
print(mw.getCurrentFrame():callParserFunction("#if", yesno('ਨਹੀਂ'), "ਹਾਂ", 'ਨਹੀਂ'))
Yes
ਨਹੀਂ
  1. ਸੁਰੱਖਿਅਤ ਮੌਡਿਊਲ:Yesno ਨੂੰ ਬੰਦ ਕਰੋ, ਜੋ ਅਣਬਦਲਿਆ ਰਹਿੰਦਾ ਹੈ।

ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਦੀ ਬੇਨਤੀ ਕਰੋ

[ਸੋਧੋ]

ਵਿਕੀਪੀਡੀਆ ਉੱਤੇ ਜਾਂ ਕਿਸੇ ਹੋਰ ਵਿਕੀਮੀਡੀਆ ਪ੍ਰੋਜੈਕਟ ਉੱਤੇ ਕੋਈ ਖਾਸ ਕੰਮ ਕਰਨ ਲਈ ਕਿਸੇ ਲੂਆ ਸਕ੍ਰਿਪਟ ਨੂੰ ਲਿਖਣ ਵਾਸਤੇ ਸਹਾਇਤਾ ਲਈ en:Wikipedia talk:Lua ਤੇ ਜਾਓ

ਇਤਿਹਾਸ

[ਸੋਧੋ]

ਜਾਦੂਈ ਸ਼ਬਦ, ਪਾਰਜ਼ਰਫੰਕਸ਼ਨ (ParserFunctions), ਲੂਆ ਸ਼ਾਖਾ, ਵਿਕੀ ਸਕ੍ਰਿਪਟਿੰਗ ਭਾਸ਼ਾ ਨੇ (JavaScript ਬਨਾਮ Lua), mw:Extension:WikiScripts ਮੁਕਾਬਲਾ ਕਰਾਇਆ, ਲੂਆ ਵਾਸਤੇ ਸ਼ੁਰੂਆਤੀ ਸਮਰਥਨ ਨਾਲ ਟਿੱਮ ਸਕਿਰਬੰਟੋ ਲਿਖਦਾ ਹੈ|

ਸਾਲਾਂ ਦੀ ਚਰਚਾ ਤੋਂ ਬਾਦ ਲੂਆ ਨੂੰ test2.wikipedia.org ਉੱਤੇ ਪਰਖਣ ਵਾਸਤੇ 2012 ਵਿੱਚ ਇਨਸਟਾਲ ਕੀਤਾ ਗਿਆ, ਜਿਸ ਵਿੱਚ ਲੂਆ ਮੌਡਿਊਲਾਜ਼ ਨੂੰ ਵਿਕਸਿਤ ਕਰਨ ਵਾਲੇ ਪ੍ਰਯੋਗਾਂ ਲਈ ਸਾਰੇ ਸੰਪਾਦਕਾਂ ਨੂੰ ਖੁੱਲਾ ਸੱਦਾ ਦਿੱਤਾ ਗਿਆ | ਲੂਆ ਫਰਵਰੀ 2013 ਵਿੱਚ ਅੰਗਰੇਜੀ ਵਿਕੀਪੀਡੀਆ ਵਿੱਚ mediawiki.org ਅਤੇ Wikimedia test wikis ਉੱਤੇ ਪਰਖਣ ਤੋਂ ਬਾਦ ਇਨਸਟਾਲ ਕਰ ਦਿੱਤੀ ਗਈ|

ਲੂਆ ਬਾਰੇ

[ਸੋਧੋ]
Brad Jorsch ਵੱਲੋਂ ਬਣਾਏ ਗਏ ਵਿਕੀਟੈਕਸਟ ਟੈਂਪਲੇਟ ਨੂੰ ਲੂਆ ਮੌਡਿਊਲ ਵਿੱਚ ਬਦਲਣ ਦਾ ਤਰੀਕਾ ਵੀ ਵੇਖੋ।

ਲੂਆ ਇੱਕ ਸਕ੍ਰਿਪਟਿੰਗ ਭਾਸ਼ਾ ਹੈ ਜਿਸ ਦੀ ਵਰਤੋਂ ਡੇਟਾ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ, ਸਮੀਕਰਨਾਂ ਦੀ ਗਣਨਾ ਕਰਨ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਜਾਂ ਆਬਜੈਕਟ-ਓਰੀਐਂਟਡ ਪ੍ਰੋਗਰਾਮਿੰਗ ਰਾਹੀਂ ਨਤੀਜਿਆਂ ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਭਾਵੇਂ ਕੁਝ ਲੂਆ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਸਰਲ ਰੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਆਸਾਨੀ ਨਾਲ ਸਮਝਣ ਲਈ ਲੂਆ ਟੇਬਲਾਂ, ਡਾਇਨਾਮਿਕ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਐਸੋਸੀਏਟਿਵ ਐਰੇਆਂ ਸਮੇਤ ਜਟਿਲ ਢਾਂਚਿਆਂ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿੱਥੇ ਇੰਡੈਕਸ ਸਬਸਕ੍ਰਿਪਟਾਂ ਇੰਡੈਕਸ ਨੰਬਰਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਸ਼ਬਦ ਵੀ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਲੂਆ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਦੀ ਰਿਕਰਸ਼ਨ ਨੂੰ ਵੀ ਸਮਰਥਨ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਬੇਹੱਦ ਜਟਿਲਤਾ ਤੋਂ ਬਚਣ ਲਈ ਸਾਵਧਾਨੀ ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਜੋ ਹੋਰ ਵਰਤੋਂਕਾਰ ਇਹ ਸਮਝ ਸਕਣ ਕਿ ਲੂਆ ਮੌਡਿਊਲ ਦੀ ਦੇਖਭਾਲ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।

ਹੇਠਾਂ ਉੱਪਰ ਦਿੱਤੀਆਂ ਉਦਾਹਰਨਾਂ ਲਈ ਵਰਤੇ ਗਏ ਮੌਡਿਊਲ ਦੇ ਲੂਆ ਸਰੋਤ ਕੋਡ ਦਾ ਇੱਕ ਅੰਸ਼ ਦਿੱਤਾ ਗਿਆ ਹੈ:

--[[ਮੌਡਿਊਲ:BananasArgs#L-13]]--
local p = {} -- ਲੋੜੀਂਦੀ ਮੌਡਿਊਲ (p)ੈਕੇਜ ਟੇਬਲ, ਖਾਲੀ ਟੇਬਲ ਵਜੋਂ ਸ਼ੁਰੂ ਕੀਤੀ ਗਈ
function p.hello(frame) -- hello ਫੰਕਸ਼ਨ ਦੀ ਪਰਿਭਾਸ਼ਾ।
    local name = frame.args[1] -- ਇਸ ਵਿੱਚ ਪਹਿਲਾ ਨਾਮ ਹੁੰਦਾ ਹੈ।
    return "Hello, " .. name .. "!"  -- `..` ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਫੰਕਸ਼ਨ ਦਾ ਨਤੀਜਾ ਇੱਕ ਸਤਰ ਵਜੋਂ ਜੋੜ ਕੇ ਵਾਪਸ ਕਰੋ।
end  -- ਫੰਕਸ਼ਨ ਦਾ ਅੰਤ।
return p  -- ਮੌਡਿਊਲ ਦੀ (p)ੈਕੇਜ ਟੇਬਲ ਵਾਪਸ ਕਰੋ।

ਲੂਆ ਦਾ ਇੱਕ ਨਮੂਨਾ <syntaxhighlight lang="lua" line highlight=1 copy> ... </syntaxhighlight> ਟੈਗ ਨੂੰ ਲੂਆ ਸਰੋਤ ਕੋਡ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਰੱਖ ਕੇ ਉਜਾਗਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਲੂਆ ਦੀਆਂ ਕੁਝ ਹੋਰ ਜਟਿਲ ਉਦਾਹਰਨਾਂ ਵੇਖਣ ਲਈ ਲੇਖ ਲੂਆ (ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ) ਵੇਖੋ।

MediaWiki (ਅਤੇ ਇਸ ਕਰਕੇ ਵਿਕੀਪੀਡੀਆ) ਵਿੱਚ ਲੂਆ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਨਿਰਦੇਸ਼ਾਂ ਲਈ mw:Extension:Scribunto/ਲੂਆ reference manual ਵੇਖੋ।

ਯੂਨਿਟ ਪਰਖਣਾ

[ਸੋਧੋ]

ਵਿਕੀਪੀਡੀਆ ਉੱਤੇ ਲੂਆ ਸਕ੍ਰਿਪਟਾਂ ਲਈ ਇਕਾਈ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਮੌਡਿਊਲ:ScribuntoUnit ਵਿੱਚ ਉਪਲਬਧ ਹੈ।
ਇਹ ਤੁਹਾਨੂੰ ਦਿੱਤੇ ਗਏ ਇਨਪੁੱਟਾਂ ਦੇ ਸਮੂਹ ਉੱਤੇ ਆਪਣੀ ਸਕ੍ਰਿਪਟ ਚਲਾਉਣ ਅਤੇ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਕਿ ਉਮੀਦ ਕੀਤੇ ਆਉਟਪੁੱਟ ਤਿਆਰ ਹੋਏ ਹਨ।
ਇਕਾਈ ਟੈਸਟ ਖ਼ਾਸ ਤੌਰ ’ਤੇ ਰਿਗ੍ਰੈਸ਼ਨਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਖੋਜਣ ਲਈ ਲਾਭਦਾਇਕ ਹੁੰਦੇ ਹਨ, ਜਿੱਥੇ ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਨਵੀਆਂ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ।

ਰਿਵਾਜ ਅਨੁਸਾਰ, ਮੌਡਿਊਲ:Bananas ਵਰਗੇ ਮੌਡਿਊਲ ਲਈ ਇਕਾਈ ਟੈਸਟ ਮੌਡਿਊਲ:Bananas/testcases ਵਿੱਚ ਰੱਖੇ ਜਾਂਦੇ ਹਨ।
ਇਹ ਮੌਡਿਊਲ ਗੱਲ-ਬਾਤ:Bananas/testcases ਉੱਤੇ {{#invoke:Bananas/testcases|run}} ਨਾਲ ਚਲਾਏ ਜਾਂਦੇ ਹਨ।

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ:

{{#invoke:Bananas/testcases|run}}

YesY ਸਾਰੇ ਟੈਸਟ ਪਾਸ ਹੋ ਗਏ।

ਨਾਮ ਉਮੀਦਿਤ ਅਸਲ
YesY test_hi


ਹਰ ਟੈਸਟ ਵਿਧੀ ਦੀ ਸ਼ੁਰੂਆਤ p:test_ ਨਾਲ ਹੋਣੀ ਲਾਜ਼ਮੀ ਹੈ।

ਮੌਡਿਊਲ:Bananas/testcases ਤੋਂ ਇੱਕ ਉਦਾਹਰਨ ਹੇਠਾਂ ਦਿੱਤੀ ਗਈ ਹੈ।

--[[ਮੌਡਿਊਲ:Bananas/testcases]]--
local p = require('ਮੌਡਿਊਲ:ScribuntoUnit').new()
local modHi = require('ਮੌਡਿਊਲ:Bananas') -- ਟੈਸਟ ਚਲਾਉਣ ਲਈ ਗੱਲ-ਬਾਤ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ।
function p:test_hi() -- [[ਮੌਡਿਊਲ:Bananas]] ਲਈ ਇਕਾਈ ਟੈਸਟ।
    self:assertEquals('Hello, world!', modHi.hello())
end 
return p

ਮੌਡਿਊਲ:ScribuntoUnit ਦੀ ਸ਼ੁਰੂਆਤ ਹੰਗਰੀ ਵਿਕੀਪੀਡੀਆ ਤੋਂ ਹੋਈ ਹੈ।
ਇਹ ਅਸਲ ਤਰੁੱਟੀਆਂ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਾਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਫੜਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਦਿੱਤੀ ਗਈ ਸ਼ੁੱਧਤਾ ਦੇ ਅੰਦਰ ਫਲੋਟਾਂ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ ਇੱਕ ਵਿਧੀ ਵੀ ਹੈ।

ਇਕਾਈ ਟੈਸਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਸਾਰੇ ਮੌਡਿਊਲਾਂ ਦੀ ਸੂਚੀ ਲਈ ਖ਼ਾਸ:ਕਿਹੜੇ ਸਫ਼ੇ ਇੱਥੇ ਜੋੜਦੇ ਹਨ/ਮੌਡਿਊਲ:ScribuntoUnit ਵੇਖੋ।

ਵਿਕੀਪੀਡੀਆ ਵਿਸ਼ੇਸ਼ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ

[ਸੋਧੋ]

ਕੁੱਲ ਮਿਲਾ ਕੇ: Lua ਨੂੰ ਇਨਪੁੱਟ ਵਜੋਂ ਸਿਰਫ਼ {{#invoke:}} ਨੂੰ ਦਿੱਤੀਆਂ ਪਾਠ-ਸਤਰਾਂ ਅਤੇ mw.title.new(...):getContent() तथा frame:expandTemplate() ਰਾਹੀਂ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਸਕਣ ਵਾਲੀ ਸਮੱਗਰੀ ਹੀ ਮਿਲ ਸਕਦੀ ਹੈ। Lua ਦੇ ਆਉਟਪੁੱਟ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਪ੍ਰਕਿਰਿਆਬੱਧ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ, ਜਦੋਂ ਤੱਕ frame:preprocess() ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ’ਤੇ ਕਾਲ ਨਾ ਕੀਤਾ ਜਾਵੇ। ਇਸ ਦਾ ਅਰਥ ਹੈ ਕਿ ਆਉਟਪੁੱਟ ਵਿੱਚ ਟੈਂਪਲੇਟ ਕਾਲਾਂ ਅਤੇ ਪਾਰਸਰ ਫੰਕਸ਼ਨ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

print(mw.title.getCurrentTitle())
print(mw.getCurrentFrame():preprocess('{{PAGENAME}}'))
ਮੌਡਿਊਲ:Yesno
Yesno

ਇਹ mw.ustring.len ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ string.len ਦੀ ਬਜਾਇ ਕਰਨੀ ਬਿਹਤਰ ਹੈ।

--[[ਯੂਨੀਕੋਡ]]--
local code = mw.getContentLanguage().code
local lang = mw.getCurrentFrame():callParserFunction("#language", code)
local lenUnicode = mw.ustring.len(lang) -- ਅੱਖਰਾਂ ਦੀ ਗਿਣਤੀ
local lenByte, lenSharp = string.len(lang), #lang -- ਬਾਈਟਾਂ ਦੀ ਗਿਣਤੀ
local msg = "code: \"%s\". lang: \"%s\". mw.ustring.len = %d string.len = %d sharp = %d"
print((msg):format(code, lang, lenUnicode, lenByte, lenSharp))
code: "pa". lang: "ਪੰਜਾਬੀ". mw.ustring.len = 6 string.len = 18 sharp = 18

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ:

{{#invoke:Utf8debug|ek|pa:ਪੰਜਾਬੀ।}}
number of
octet:s : 24


index 0
beg code $70=#112
length 1
 p 
index 1
beg code $61=#97
length 1
 a 
index 2
beg code $3A=#58
length 1
 : 
index 3
beg code $E0=#224
length 3
extra $A8,$AA
codepoint U+$0A2A
dec #2'602
 ਪ 
index 6
beg code $E0=#224
length 3
extra $A9,$B0
codepoint U+$0A70
dec #2'672
 ੰ 
index 9
beg code $E0=#224
length 3
extra $A8,$9C
codepoint U+$0A1C
dec #2'588
 ਜ 
index 12
beg code $E0=#224
length 3
extra $A8,$BE
codepoint U+$0A3E
dec #2'622
 ਾ 
index 15
beg code $E0=#224
length 3
extra $A8,$AC
codepoint U+$0A2C
dec #2'604
 ਬ 
index 18
beg code $E0=#224
length 3
extra $A9,$80
codepoint U+$0A40
dec #2'624
 ੀ 
index 21
beg code $E0=#224
length 3
extra $A5,$A4
codepoint U+$0964
dec #2'404
 । 


number of UTF8
char:s : 10

ਵਿਕੀ ਸਫ਼ੇ ਵਿੱਚ, ਸਾਰਾ ਲੂਆ ਕੋਡ (ਜਿਸ ਵਿੱਚ ਲੰਬੇ ਅੰਕੜਾ-ਹਿਸਾਬ ਜਾਂ ਬੇਅੰਤ while ਜਾਂ repeat ਲੂਪ ਵੀ ਸ਼ਾਮਲ ਹਨ) 10 ਸਕਿੰਟ ਦੇ CPU ਸਮੇਂ ਤੱਕ ਸੀਮਿਤ ਹੈ। ਤੁਸੀਂ ਰੈਂਡਰ ਕੀਤੇ ਸਫ਼ੇ ਦੇ ਸਰੋਤ ਕੋਡ ਵਿੱਚ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਕਿਸੇ ਟੈਂਪਲੇਟ ਜਾਂ ਮੌਡਿਊਲ ਨੂੰ ਪਾਰਸ ਹੋਣ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਿਆ।

ਮਿਆਰੀ ਲੂਆ ਦੇ ਮੁਕਾਬਲੇ, Scribunto ਦਾ ਲੂਆ ਸੁਰੱਖਿਅਤ ਫੰਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ (ਮਿਆਰੀ ਲੂਆ ਤੋਂ ਅੰਤਰ ਵੇਖੋ)।

ਲੂਆ ਇਨਪੁੱਟ ਕਮੀਆਂ

[ਸੋਧੋ]

Scribunto ਵਿੱਚ ਲੂਆ ਕੋਡ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਸਫ਼ੇ ਨੂੰ ਪਾਰਸ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੋਵੇ। ਇਸ ਲਈ, ਲੂਆ ਨੂੰ ਮਿਲਣ ਵਾਲਾ ਇਕਲੌਤਾ ਯੂਜ਼ਰ ਇਨਪੁੱਟ ਸਫ਼ੇ ਦੀ ਸੋਧ ਰਾਹੀਂ ਹੀ ਹੋ ਸਕਦਾ ਹੈ - ਇਹ ਅਜਿਹਾ ਇਨਪੁੱਟ ਬਾਕਸ ਨਹੀਂ ਬਣਾ ਸਕਦਾ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਫੈਰਨਹਾਈਟ ਤਾਪਮਾਨ ਦਰਜ ਕਰੋ ਅਤੇ ਕਿਸੇ ਬਟਨ ਨੂੰ ਦਬਾਉਣ ’ਤੇ ਉਸ ਨਾਲ ਸੰਬੰਧਿਤ ਸੈਲਸੀਅਸ ਤਾਪਮਾਨ ਪ੍ਰਾਪਤ ਕਰ ਸਕੋ, ਜਾਂ ਇਸ ਗੱਲ ਦੇ ਆਧਾਰ ’ਤੇ ਮੈਂਡਲਬਰੋਟ ਸੈੱਟ ਦੇ ਕਿਸੇ ਹਿੱਸੇ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰ ਸਕੋ ਕਿ ਤੁਸੀਂ ਮੂਲ ਸੈੱਟ ਦੇ ਕਿਹੜੇ ਹਿੱਸੇ ’ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ।

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local function toCelsius(tempFahrenheit) return (tempFahrenheit - 32) * 5 / 9 end
print(("toCelsius(32°F) = %s°C. toCelsius(68°F) = %d°C"):format(toCelsius(32), toCelsius(68)))
toCelsius(32°F) = 0°C. toCelsius(68°F) = 20°C

ਲੂਆ ਇਨਪੁੱਟ ਵਿਕੀਪੀਡੀਆ ਦੇ ਕਿਸੇ ਵੀ ਅਜਿਹੇ ਪਾਠ ਸਫ਼ੇ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ ਜਿਸ ਨੂੰ ਕਿਸੇ ਹੋਰ ਸਫ਼ੇ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੋਵੇ। ਇਸ ਵਿੱਚ ਚਿੱਤਰ ਫ਼ਾਈਲਾਂ, ਸਕੇਲੇਬਲ ਵੈਕਟਰ ਗ੍ਰਾਫ਼ਿਕਸ (SVG) ਫ਼ਾਈਲਾਂ, ਸ਼੍ਰੇਣੀ:Lua metamodules ਦੀਆਂ ਸੂਚੀਆਂ ਜਾਂ ਖ਼ਾਸ:ਕਿਹੜੇ ਸਫ਼ੇ ਇੱਥੇ ਜੋੜਦੇ ਹਨ/ਮੌਡਿਊਲ:UnitTests ਵਰਗੇ ਖ਼ਾਸ ਸਫ਼ੇ ਸ਼ਾਮਲ ਨਹੀਂ ਹਨ।

ਡੀਬੱਗ ਕਰਨਾ

[ਸੋਧੋ]

ਨਾਂ ਮੌਜੂਦ ਨਹੀਂ

[ਸੋਧੋ]

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ: ਸਟੇਟ ਰੂਟ 343 (ਨਿਊਯਾਰਕ-ਕਨੈਕਟੀਕਟ) ਵਿੱਚ ਸਮੱਸਿਆ ਨੂੰ ਸਰਲ ਕਰੋ:

{{Infobox road |state=NY |type=NY |route=343}}
Lua error in ਮੌਡਿਊਲ:Infobox_road/route at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean).
Location
CountryUnited States
StateNew York
Highway system

ਗਲਤੀ ਵਾਲੇ ਸੁਨੇਹੇ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਫਿਰ ਲਾਈਨ 107 ਤੱਕ ਸਕ੍ਰੋਲ ਕਰੋ।

Lua error in ਮੌਡਿਊਲ:Infobox_road/route at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean).

wikitext ਫੰਕਸ਼ਨ Boolean ਮੁੱਲ false ਨੂੰ ਸਵੀਕਾਰ ਨਹੀਂ ਕਰਦਾ।

container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ: |name= ਪੈਰਾਮੀਟਰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ।

{{Infobox road |name=ਨਿਊਯਾਰਕ 343 |state=NY |type=NY |route=343}}

ਨਿਊਯਾਰਕ 343

Location
CountryUnited States
StateNew York
Highway system

ਲਿੰਕ ਮੌਜੂਦ ਨਹੀਂ

[ਸੋਧੋ]

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ: ਸਟੇਟ ਰੂਟ 343 (ਨਿਊਯਾਰਕ-ਕਨੈਕਟੀਕਟ) ਦੇ "ਮੁੱਖ ਜੰਕਸ਼ਨ" ਭਾਗ ਵਿੱਚ ਬਾਕੀ ਤਿੰਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਸਰਲ ਕਰੋ।

{{jct|state=NY|NY|82}}

Lua error in ਮੌਡਿਊਲ:Jct at line 204: attempt to concatenate local 'link' (a boolean value).

ਲੂਆ ਕੋਡ ਵਿੱਚ ਜਾਂਚ ਲਈ ਨਿਸ਼ਾਨ ਜੋੜਨਾ

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local modJunction = require('ਮੌਡਿਊਲ:jct')
local frame = mw.getCurrentFrame()
frame.args = {state="NY", "NY", "82"}
print(modJunction.jct(frame))

Lua error in ਮੌਡਿਊਲ:Jct at line 204: attempt to concatenate local 'link' (a boolean value).
Backtrace:
ਮੌਡਿਊਲ:Jct:204: in function "routeText"

ਮੌਡਿਊਲ:Jct#L-204 ਵਿੱਚ, link ਦਾ ਮੁੱਲ false ਹੈ, ਪਰ ਇੱਥੇ ਇੱਕ ਸਤਰ ਦੀ ਲੋੜ ਹੈ।

-- Links/abbreviations
local function routeText(route, jctname, frame)
	local link
	local type = route.type
	if not type or type == '' then
		link = route.route
	else
		link = p.link(route)
	end

	local dir = route.dir and ' ' .. string.lower(route.dir) or ''
	local routeText = link .. dir
  1. ਲੂਆ ਕੋਡ ਵਿੱਚ ਦੋ ਕਸਟਮ error() ਕਾਲਾਂ ਜੋੜ ਕੇ ਅਸਥਾਈ ਤੌਰ 'ਤੇ ਜਾਂਚ ਲਈ ਨਿਸ਼ਾਨ ਲਗਾਓ।
-- Links/abbreviations
local function routeText(route, jctname, frame)
	local link
	local type = route.type
	if not type or type == '' then
		link = route.route; error("link1=" .. tostring(link))
	else
		link = p.link(route); error("link2=" .. tostring(link))
	end

	local dir = route.dir and ' ' .. string.lower(route.dir) or ''
	local routeText = link .. dir
  1. "ਸਫ਼ਾ ਛਾਪੋ" (ਤਬਦੀਲੀਆਂ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ। Publish changes) 'ਤੇ ਕਲਿੱਕ ਨਾ ਕਰੋ।


ਮੌਡਿਊਲ:Jct ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local frame = mw.getCurrentFrame()
frame.args = {state="NY", "NY", "82"}
print(p.jct(frame))
  1. ਦੂਜੀ ਕਸਟਮ ਗਲਤੀ ਦਿਖਾਈ ਦੇਵੇਗੀ।

Lua error at line 200: link2=false.

  1. ਦੋਵੇਂ ਕਸਟਮ ਗਲਤੀ ਕਾਲਾਂ ਹਟਾਓ। ਸਮੱਸਿਆ p.link ਫੰਕਸ਼ਨ ਵਿੱਚ ਹੈ।
-- Links/abbreviations
function p.link(route)
	local nolink = route.nolink
	local abbr = parser(route, 'abbr')
	if nolink then
		return abbr
	else
		local link = parser(route, 'link')
		if not link or link == '' then
			return abbr
		else
			return format("[[%s|%s]]", link, abbr)
		end
	end
end

ਵਿਕੀ ਸਫ਼ਾ en:New York State Route 82 ਮੌਜੂਦ ਨਹੀਂ ਹੈ। ਇਸ ਲਈ link ਅਤੇ abbr ਦੋਵਾਂ ਦਾ ਮੁੱਲ false ਹੈ।

  1. ਜਦੋਂ ਸੰਖੇਪ ਰੂਪ ਪਰਿਭਾਸ਼ਿਤ ਨਾ ਹੋਵੇ, ਤਾਂ ਉਸਨੂੰ ਸੰਭਾਲਣ ਲਈ ਲੂਆ ਕੋਡ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ।
  2. false ਦੀ ਥਾਂ or '' ਜੋੜ ਕੇ ਖਾਲੀ ਸਤਰ "" ਵਾਪਸ ਕਰੋ।
-- Links/abbreviations
function p.link(route)
	local nolink = route.nolink
	local abbr = parser(route, 'abbr') or ''
	if nolink then
		return abbr
	else
		local link = parser(route, 'link')
		if not link or link == '' then
			return abbr
		else
			return format("[[%s|%s]]", link, abbr)
		end
	end
end

ਮੌਡਿਊਲ:Jct ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local frame = mw.getCurrentFrame(); frame.args = {state="NY", "NY", "82"}
print(p.jct(frame))
  1. ਇੱਕ ਨਵੀਂ ਗਲਤੀ ਦਿਖਾਈ ਦੇਵੇਗੀ।

Lua error in package.lua at line 80: module 'Module:Road data/extra' not found
218. local extraTypes = mw.loadData('Module:Road data/extra')

ਵਿਕੀਪੀਡੀਆ ਲੇਖ ਦੇ ਸੰਦਰਭ ਵਿੱਚ:

  1. ਇਸ ਫਰਮੇ ਨਾਲ ਸਫ਼ੇ ਦੀ ਝਲਕ ਵੇਖੋ ਹੇਠਾਂ ਸਫ਼ੇ ਦਾ ਨਾਂ ਸਟੇਟ ਰੂਟ 343 (ਨਿਊਯਾਰਕ-ਕਨੈਕਟੀਕਟ) ਦਰਜ ਕਰੋ।
  2. ਝਲਕ ਵਿਖਾਓ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।
  3. Infobox road ਵਿੱਚ ਹੇਠਾਂ ਸਕ੍ਰੋਲ ਕਰਕੇ Major junctions (ਮੁੱਖ ਜੰਕਸ਼ਨ) ਤੱਕ ਜਾਓ।

ਪੱਛਮ end Lua error in package.lua at line 80: module 'Module:Road data/extra' not found

  1. en:Module:Road data/extra ਪ੍ਰਾਪਤ ਕਰੋ।
  2. ਸੁਰੱਖਿਅਤ ਮੌਡਿਊਲ:Jct ਨੂੰ ਬੰਦ ਕਰੋ, ਜੋ ਅਣਬਦਲਿਆ ਰਹਿੰਦਾ ਹੈ।

ਮੌਡਿਊਲ:LuaCall

[ਸੋਧੋ]

ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਲੂਆ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿਰਫ਼ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਗਣਨਾ ਕਰਨੀ ਚਾਹੋ, ਪਰ ਪੂਰਾ ਮੌਡਿਊਲ ਨਾ ਲਿਖਣਾ ਚਾਹੋ।
ਇਸ ਲਈ ਮੌਡਿਊਲ:LuaCall ਇੱਕ ਸੁਵਿਧਾਜਨਕ ਹੱਲ ਹੋ ਸਕਦਾ ਹੈ।

ਬਰਮੂਡਾ ਤਿਕੋਣ: ਹਵਾਲੇ

1. "USCG: Frequently Asked Questions". Uscg.mil. 2008-07-22. Archived from the original on 2002-08-02. Retrieved 2013-08-12.

{{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)

"|dead-url=yes" ਨੂੰ "|url-status=dead" ਨਾਲ ਬਦਲੋ.

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local source = "ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=.../faq8-1.htm|dead-url=yes}}</ref>"
local modString = require('ਮੌਡਿਊਲ:String')
local frame = mw.getCurrentFrame()
frame.args = {source, "|dead-url=yes", "|url-status=dead"}
print(modString.replace(frame))
ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=.../faq8-1.htm|url-status=dead}}</ref>
LuaCall ਇੱਕ ਪੈਰਾਮੀਟਰ ਨੂੰ ਬਦਲਦਾ ਹੈ

ਜੇ ਪੈਟਰਨ ਵਿੱਚ ਖਾਲੀ ਥਾਵਾਂ ਹੋਣ:

local source = "ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=.../faq8-1.htm | dead-url = yes }}</ref>"
local modString = require('ਮੌਡਿਊਲ:String')
local frame = mw.getCurrentFrame()
-- ਨਿਯਮਤ ਅਭਿਵਿਅਕਤੀ "%s" ਖਾਲੀ ਥਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ।
-- "*" ਦਾ ਅਰਥ ਹੈ ਕਿ ਇਹ ਸ਼ੂਨਯ (ਕੋਈ ਖਾਲੀ ਥਾਂ ਨਹੀਂ) ਜਾਂ ਕਈ ਵਾਰ ਆ ਸਕਦੀ ਹੈ।
frame.args = {source, "|%s*dead%-*url%s*=%s*yes%s*", "|url-status=dead", plain="false"}
print(modString.replace(frame))
ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=.../faq8-1.htm|url-status=dead}}</ref>

ਪੂਰੇ ਵਿਕੀ-ਸਫ਼ੇ 'ਤੇ ਕਾਰਵਾਈ ਕਰੋ:

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local pageName = "ਬਰਮੂਡਾ ਤਿਕੋਣ"
local modPage = require("ਮੌਡਿਊਲ:Page")
local frame = mw.getCurrentFrame(); frame.args = {pageName, as="raw"}
local source = modPage.getContent(frame)
print('wikipage: "' .. pageName .. '"')
print(source)

local pattern = "|%s*dead%-*url%s*=%s*yes%s*"
local replace = "|url-status=dead"
local fixedTxt = mw.ustring.gsub(source, pattern, replace)
print("\nਠੀਕ ਕੀਤਾ ਵਿਕੀ-ਸਫ਼ਾ:")
print(fixedTxt)
wikipage: "ਬਰਮੂਡਾ ਤਿਕੋਣ"
{{TOC right}}
ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=http://www.history.navy.mil/faqs/faq8-1.htm|title=USCG: Frequently Asked Questions|publisher=Uscg.mil|date=2008-07-22|access-date=2013-08-12|archive-date=2002-08-02|archive-url=https://web.archive.org/web/20020802035846/http://www.history.navy.mil/faqs/faq8-1.htm
|dead-url=yes}}</ref>


ਠੀਕ ਕੀਤਾ ਵਿਕੀ-ਸਫ਼ਾ:
{{TOC right}}
ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=http://www.history.navy.mil/faqs/faq8-1.htm|title=USCG: Frequently Asked Questions|publisher=Uscg.mil|date=2008-07-22|access-date=2013-08-12|archive-date=2002-08-02|archive-url=https://web.archive.org/web/20020802035846/http://www.history.navy.mil/faqs/faq8-1.htm
|url-status=dead}}</ref>

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ
੧. ਤਬਦੀਲੀਆਂ ਦੀ ਗਿਣਤੀ: {{#invoke:LuaCall |main
   |source={{#invoke:Page|getContent|page=ਬਰਮੂਡਾ ਤਿਕੋਣ|as=raw}}
   |pattern={{!}}%s*dead%-*url%s*=%s*yes%s*
   |replace={{!}}url-status=dead
   |mw.ustring.gsub(source,pattern,replace)
   |lua
   |reserved_return=2
}}
੧. ਤਬਦੀਲੀਆਂ ਦੀ ਗਿਣਤੀ: 2

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ 'ਤੇ ਤਬਦੀਲੀ ਦਾ ਅੰਤਿਮ ਨਤੀਜਾ ਦਿਖਾਉਣਾ:

੨. ਠੀਕ ਕੀਤੇ ਵਿਕੀ-ਸਫ਼ੇ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰਨ ਲਈ '''<code>ਕਾਪੀ</code>''' 'ਤੇ ਕਲਿੱਕ ਕਰੋ
{{#tag:syntaxhighlight
 |{{#invoke:LuaCall |main
   |source={{#invoke:Page|getContent|page=ਬਰਮੂਡਾ ਤਿਕੋਣ|as=raw}}
   |pattern={{!}}%s*dead%-*url%s*=%s*yes%s*
   |replace={{!}}url-status=dead
   |mw.ustring.gsub(source,pattern,replace)
   |lua
  }}
 |lang=wikitext|line=1|copy=1
}}
੨. ਠੀਕ ਕੀਤੇ ਵਿਕੀ-ਸਫ਼ੇ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰਨ ਲਈ '''<code>ਕਾਪੀ</code>''' 'ਤੇ ਕਲਿੱਕ ਕਰੋ
{{TOC right}}
[[file:Bermuda Triangle.png|thumb| ਬਰਮੂਡਾ ਤ੍ਰਿਭੁਜ]]
'''ਬਰਮੂਡਾ ਤਿਕੋਣ''' ਜਾਂ '''ਸ਼ੈਤਾਨੀ ਤਿਕੋਣ''': [[ਅੰਧ ਮਹਾਂਸਾਗਰ]] ਦੇ ਉੱਤਰੀ ਹਿੱਸੇ ਵਿੱਚ ਬਰਮੂਡਾ ਤਿਕੋਣ ਅਜਿਹਾ ਤਿਕੋਣਾ ਮਹਾਂਸਾਗਰੀ ਖੇਤਰ ਹੈ ਜਿਸ ਨੂੰ ਸ਼ੈਤਾਨੀ ਤਿਕੋਣ ਦਾ ਨਾਂ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।

`syntaxhighlight` ਦੋ ਹਵਾਲਿਆਂ ਵਿੱਚ |url-status=dead ਨਾਲ ਕੀਤੀ ਸੋਧ ਦਿਖਾਉਂਦਾ ਹੈ। ਖਾਲੀ ਥਾਵਾਂ ਅਤੇ ਨਵੀਂਆਂ ਲਾਈਨਾਂ ਸਮੇਤ ਬਾਕੀ ਸਭ ਕੁਝ ਜਿਉਂ ਦਾ ਤਿਉਂ ਰਹਿੰਦਾ ਹੈ।

ਦਿੱਤੀ ਗਈ<ref>{{cite web|url=http://www.history.navy.mil/faqs/faq8-1.htm|title=USCG: Frequently Asked Questions|publisher=Uscg.mil|date=2008-07-22|access-date=2013-08-12|archive-date=2002-08-02|archive-url=https://web.archive.org/web/20020802035846/http://www.history.navy.mil/faqs/faq8-1.htm|url-status=dead}}</ref>
{...}
ਅਫਵਾਹਾਂ ਹਨ।<ref name=navy,2011>{{cite web |url=http://www.history.navy.mil/faqs/faq8-1.htm |title=Bermuda Triangle |publisher=History.navy.mil |date=2003-07-13 |access-date=2013-08-12 |archive-date=2002-08-02 |archive-url=https://web.archive.org/web/20020802035846/http://www.history.navy.mil/faqs/faq8-1.htm |url-status=dead}}</ref>
  1. ਵਿਕੀ-ਸਫ਼ਾ ਬਰਮੂਡਾ ਤਿਕੋਣ ਸੋਧੋ।
  2. ਸੰਪਾਦਕ ਵਿੱਚ ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਚੁਣੋ।
  3. ਪੂਰੀ ਸਮੱਗਰੀ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਵਾਲੀ ਸਮੱਗਰੀ ਨਾਲ ਬਦਲੋ।
  4. ਸੁਝਾਈਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਤਬਦੀਲੀਆਂ ਵਿਖਾਓ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
  5. ਝਲਕ ਵਿਖਾਓ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। ਕੋਈ ਚੇਤਾਵਨੀ ਨਹੀਂ ਆਉਂਦੀ।

ਵਿਕੀਟੈਕਸਟ

[ਸੋਧੋ]

ਸ਼ਾਮਲ ਕੀਤੇ ਗਏ ਵਿਕੀਪੀਡੀਆ ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਅਕਸਰ "UNIQ5ae8f2aa414ff233-h-3--QINU" ਵਰਗਾ ਲੁਕਿਆ ਹੋਇਆ ਕੋਡ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਪਾਰਸ ਕਰਨ ਲਈ ਹਟਾਉਣ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ।

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

print(string.reverse("UNIQ"))
QINU

ਪਾਈਪ [[ਵਿਕੀਪੀਡੀਆ:ਮਦਦ|]] ਤੋਂ ਬਾਅਦ ਪ੍ਰਗਟਾਵੇ ਤੋਂ ਬਿਨਾਂ ਵਾਲੇ ਵਿਕੀਲਿੰਕ, ਜੇ ਆਉਟਪੁੱਟ ਵਜੋਂ ਵਾਪਸ ਕੀਤੇ ਜਾਣ, ਤਾਂ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ - ਇਨ੍ਹਾਂ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ’ਤੇ ਇਸ ਤਰ੍ਹਾਂ ਲਿਖਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ: [[ਵਿਕੀਪੀਡੀਆ:ਮਦਦ|ਮਦਦ]]।

ਸੇਵ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹੋਣ ਵਾਲੀਆਂ ਹੋਰ ਤਬਦੀਲੀਆਂ ਵੀ, ਜਿਵੇਂ ਕਿ ~~~~ ਨੂੰ ਦਸਤਖ਼ਤਾਂ ਨਾਲ ਬਦਲਣਾ, ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਨਹੀਂ ਆਉਣਗੀਆਂ। ਟੈਂਪਲੇਟ ਟ੍ਰਾਂਸਕਲੂਜ਼ਨ, ਪਾਰਸਰ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਅਤੇ ਵੇਰੀਏਬਲ ਬਦਲਾਅ (ਅਰਥਾਤ {{...}} ਵਾਲੀ ਕੋਈ ਵੀ ਚੀਜ਼) ਪ੍ਰਕਿਰਿਆਬੱਧ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ। ਇਸੇ ਤਰ੍ਹਾਂ <ref> ਜਾਂ <nowiki> ਵਰਗੇ ਟੈਗ ਵੀ ਪ੍ਰਕਿਰਿਆਬੱਧ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ।

ਫਰਮਾ:Sfn, ਫਰਮਾ:Cite book ਨਾਲ ਲਿੰਕ ਕਰਦਾ ਹੈ

[ਸੋਧੋ]

ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ ਉੱਤੇ:

# {{cite book |last=Meeus |first=Jean |year=1991 |title=Astronomical algorithms |language=en |publication-place=Richmond, Va |publisher=Willmann-Bell |isbn=0-943396-35-2}}
  1. Meeus, Jean (1991). Astronomical algorithms (in ਅੰਗਰੇਜ਼ੀ). Richmond, Va: Willmann-Bell. ISBN 0-943396-35-2.

ਮੌਡਿਊਲ:Yesno ਦੇ ਡੀਬੱਗ ਕੌਨਸੋਲ ਵਿੱਚ:

local function buildFrame(templateTitle, parentArgs, moduleName, childArgs)
    local root = mw.getCurrentFrame()
    local parent = root:newChild{title=templateTitle, args=parentArgs or {}}
    return parent:newChild{title=moduleName, args=childArgs or {}}
end
local prm = {last="Meeus", first="Jean", year="1991",
      title="Astronomical algorithms", language="en",
    ["publication-place"]="Richmond, Va", publisher="Willmann-Bell", isbn="0-943396-35-2"
}
local moduleName = "ਮੌਡਿਊਲ:citation/CS1"; local childArgs = {CitationClass = "book"}
local frame = buildFrame("ਫਰਮਾ:Cite book", prm, moduleName, childArgs)
print("੧. " .. require(moduleName).citation(frame))

ਤਿਆਰ ਕੀਤਾ ਗਿਆ HTML ਇਸ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ:

੧. <DEL>'"`UNIQ--templatestyles-00000000-QINU`"'<DEL><cite id="CITEREFMeeus1991" class="citation book cs1 cs1-prop-foreign-lang-source">Meeus, Jean (1991). ''Astronomical algorithms'' (in ਅੰਗਰੇਜ਼ੀ). Richmond, Va: Willmann-Bell. [[ISBN (identifier)|ISBN]]&nbsp;[[Special:BookSources/0-943396-35-2|<bdi>0-943396-35-2</bdi>]].</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Astronomical+algorithms&rft.place=Richmond%2C+Va&rft.pub=Willmann-Bell&rft.date=1991&rft.isbn=0-943396-35-2&rft.aulast=Meeus&rft.aufirst=Jean&rfr_id=info%3Asid%2Fpa.wikipedia.org%3A%E0%A8%AE%E0%A9%8C%E0%A8%A1%E0%A8%BF%E0%A8%8A%E0%A8%B2%3AYesno" class="Z3988"></span>[[Category:CS1 ਅੰਗਰੇਜ਼ੀ-language sources (en)]]
  1. "UNIQ--templatestyles-00000000-QINU" ਵਰਗਾ ਲੁਕਿਆ ਹੋਇਆ ਕੋਡ, ਜਿਸ ਦੇ ਅੱਗੇ-ਪਿੱਛੇ ਮੌਜੂਦ ਨਾ-ਛਾਪਣਯੋਗ 0x7F DEL ਨਿਸ਼ਾਨ "<DEL>" ਨਾਲ ਹਟਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ।
  2. Short FootNote ਫਰਮਾ:Sfn ਲਈ <cite id="CITEREFMeeus1991"।


ਫਰਮਾ:Sfn Short FootNote (ਛੋਟਾ ਹਵਾਲਾ)
--[[ {{sfn|Meeus|1991|p=349–354|loc=47. Phases of the Moon}} ]]--
local function buildFrame(templateTitle, parentArgs, moduleName, childArgs)
    local root = mw.getCurrentFrame()
    local parent = root:newChild{title=templateTitle, args=parentArgs or {}}
    return parent:newChild{title=moduleName, args=childArgs or {}}
end
local prm = {"Meeus", "1991", p="349–354", loc="47. Phases of the Moon"}
-- {{#invoke:Footnotes|sfn|template=sfn}}
local moduleName = "ਮੌਡਿਊਲ:Footnotes"; local childArg = {template = "sfn"}
local frame = buildFrame("ਫਰਮਾ:Sfn", prm, moduleName, childArg)
print("੨. " .. require(moduleName).sfn(frame))
no target: CITEREFMeeus1991
੨. <DEL>'"`UNIQ--ref-00000001-QINU`"'<DEL>

ਪੁਸਤਕ ਸੂਚੀ ਵਿੱਚ ਕਿਤਾਬ ਚੁਣਨ ਲਈ ਪੂਰਨਮਾਸ਼ੀ#CITEREFMeeus1991 'ਤੇ ਕਲਿੱਕ ਕਰੋ।

ਬਦਲੇ ਹੋਏ ਫਰਮਿਆਂ ਦਾ ਨਾਮਕਰਨ

[ਸੋਧੋ]

ਕਿਰਪਾ ਕਰਕੇ {{lua}} ਫਰਮਿਆਂ ਨੂੰ ਉਹਨਾਂ ਸਾਰੇ ਫਰਮਿਆਂ ਦੇ ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਉੱਪ-ਪੰਨਿਆਂ ਉੱਤੇ ਰੱਖੋ ਜੋ ਲੂਆ ਵਰਤਦੇ ਹਨ, ਇਹ ਲੂਆ ਵਰਤੋਂ ਅਤੇ ਫਰਮਾ ਪਰਿਵਰਤਨਾਂ ਦੇ ਸਹਿਯੋਗ ਵਿੱਚ ਮਦੱਦ ਕਰੇਗਾ|

ਇਹ ਵੀ ਦੇਖੋ

[ਸੋਧੋ]


ਅੰਗਰੇਜ਼ੀ ਵਿਕੀਪੀਡੀਆ-ਵਿਸ਼ੇਸ਼ ਸਰੋਤ
  • Wikipedia:Lua style guide – ਇਕਸਾਰਤਾ ਰਾਹੀਂ ਕੋਡ ਦੀ ਪੜ੍ਹਨਯੋਗਤਾ ਸੁਧਾਰਨ ਲਈ ਮਿਆਰ
  • en:Help:Lua debugging – ਲੂਆ ਮੌਡਿਊਲਾਂ ਦੀ ਡੀਬੱਗਿੰਗ ਬਾਰੇ ਇੱਕ ਕਿਵੇਂ-ਕਰਨਾ ਗਾਈਡ
  • en:Wikipedia talk:Lua – ਲੂਆ-ਆਧਾਰਿਤ ਟੈਂਪਲੇਟਾਂ ਜਾਂ ਕੰਮਾਂ ਲਈ ਬੇਨਤੀਆਂ

ਨੋਟਸ

[ਸੋਧੋ]