Uzanto:Tlustulimu/lua


Ĉi tiu paĝo enhavu liston de ŝablonoj, kies angla aŭ franca versio jam uzas Lua. Post ties aktivigo ĉi tie, ni povos fari same.

ListoRedakti

VikivojaĝoRedakti

Eĉ en la germana Vikivojaĝo estas interesaj moduloj:

Jen ŝablono kun Lua-subteno:

Testilo por parametroj:

Pliaj:

ProvojRedakti

Interesaj kodojRedakti

Analizas signoĉenon, ĉu ĝi enhavas ligilon:

 s = v:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
 if not s then
     s = v:match( "%[%[%s*([^%]]+)%s*%]%]" )
 end
 if not s then
     s = v
 end
  • Die erste Klammer heißt übersetzt: Setze s, wenn etwas gefunden wird, das
    • "[["
    • + allerlei, das weder | noch ] ist
    • + Pipe
    • + potentielle Leerzeichen
    • + MERKEN→s: allerlei, das keine ] ist
    • + potentielle Leerzeichen
    • + "]]"

Rekte en la funkcio:

local s
for k,v in pairs(strings) do
    s = v:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
    if not s then
        s = v:match( "%[%[%s*([^%]]+)%s*%]%]" )
    end
    if not s then
        s = v
    end
    output[k] = '[[Kategorio:' .. cat .. ' ' .. mw.text.trim(s)
    if key and key ~= "" then
        output[k] = output[k] .. '|' .. key
    end
    output[k] = output[k] .. ']]'
end

En aparta funkcio:

local function f(v, cat, key)
    local s
    s = v:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
    if not s then
        s = v:match( "%[%[%s*([^%]]+)%s*%]%]" )
    end
    if not s then
        s = v
    end
    s = '[[Kategorio:' .. cat .. ' ' .. mw.text.trim(s)
    if key and key ~= "" then
        s = s .. '|' .. key
    end
    return s .. ']]'
end 

for k,v in pairs(strings) do
    output[k] = f(v, cat, key)
end

Lua-moduloj Coordinates kaj Coordinates2Redakti

TestojRedakti

# {{Koordinato|NS=11/30/0/N|EW=153/26/0/W|text=DEC|name=testo|type=landmark}}
# {{Koordinato|NS=11/30/0/N|EW=153/26/0/W|text=DEC/DMS|name=testo|type=landmark}}
# {{Koordinato|NS=11/30/0/N|EW=153/26/0/W|text=situo|name=testo|type=landmark}}
# {{Koordinato|NS=11/30/0/N|EW=153/26/0/W|text=situo<!--|name=testo-->|type=landmark}}

* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC|name=testo}}
** {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC/DMS}}
** {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=situo|name=testo|type=landmark}}

redonas:

  1. 11,5° N, 153,433333° U (mapo)11.5-153.43333333333
  2. 11,5° N, 153,433333° U; (11° 30′ 0″ N, 153° 26′ 0″ U) (mapo)11.5-153.43333333333
  3. situo (mapo)11.5-153.43333333333
  4. neniu name-parametro en fluteksta koordinatosituo (mapo)11.5-153.43333333333

Pliaj testojRedakti

{{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC}}

{{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DMS}}

{{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=situo}}

redonas:

11.50000 °N, 153.43333 °U

11.50000-153.43333

11° 30′ 0″ N 153° 26′ 0″ U

11.50000-153.43333

situo

11.50000-153.43333


Pozicio de "geo microformat"Redakti

{{#Invoke:Coordinates2/provejo|coordinates|NS=11,5|EW=-153,43333333333}}
{{#Invoke:Coordinates2/provejo|coordinates|NS=11,5|EW=-153,43333333333|text=/}}
  • En la teksto estas ĝusta, sed en la kaplinio estas stulte interŝovata. Mi devos serĉi solvon. La problemo nur videblas per la ŝablona etendilo. Jam solvita

Plia eldonformatojRedakti

CH1903Redakti

Svislandaj landaj koordinatoj jam povas esti eligataj.

* {{Koordinato |latitudo=46.27 |longitudo=6.95 |type=landmark |region=CH|text=/|name=ekzemplo}}
* {{Koordinato/provejo |latitudo=46.27 |longitudo=6.95 |type=landmark |region=CH|text=ch1903}}
* {{#Invoke:Coordinates/provejo | dec2ch1903 |test|46.27|6.95|0}}

redonas:

CH1903: 562330 / 124404

46.276.95
  • CH1903: 562330 / 124404
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=CH1903}}
* {{#Invoke:Coordinates/provejo|dms2ch1903|N|46|16|12|O|6|57|0}}
* {{#Invoke:Coordinates/provejo|dms2ch1903|46/16/12/N|6/57/0/O}}
* {{Koord/provejo|46|16|12|N|6|57|0|O|montru=entekste|formato=CH1903}}
* {{Koord/provejo|46|16|12|N|6|57|0|O|montru=entekste|formato=CH1903|mode=de}}
* {{Koord/provejo|46/16/12/N|6/57/0/O|montru=entekste|formato=CH1903|mode=de}}

redonas:

La ekzemplo pri {{Koord/provejo}} nur funkcias kun eligo en CH1903-formato, se oni krome uzas la parametron mode=de.

* {{#Invoke:Coordinates/provejo|dms2ch1903|46.27|6.95}}

redonas:

  • CH1903: 562330 / 124404

Tio estas iomete paradoksa, ĉar la eniga formato estas decimala. Tamen la rezulto estas en ordo.

UTMRedakti

* {{#Invoke:Coordinates/provejo|dec2utm|test|46.27|6.95|0}}
* {{#Invoke:Coordinates/provejo|dms2utm|46/16/12/N|6/57/0/O}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=UTM}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46.27000|EW=6.95000|text=UTM}}

redonas:

ICON0, ICON, ICON1, ICON2Redakti

* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=ICON0}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=ICON}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=ICON1}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=ICON2}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=icon2}}

redonas:

  • 11.50000-153.43333
  • 11.50000-153.43333
  • 11.50000-153.43333
  •  
    11.50000-153.43333
  •  
    11.50000-153.43333

sortkeyRedakti

Finfine eĉ ordigilo estas aranĝata. Sed testo pri la ordigo ankoraŭ devos okazi.

* {{Koordinato |text=/ |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A |name=testo|sortkey=NS}}
* {{Koordinato |text=/ |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A |name=testo|sortkey=EW}}

* {{Koordinato/provejo |text=/ |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A |name=testo|sortkey=NS}}
* {{Koordinato/provejo |text=/ |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A |name=testo|sortkey=EW}}

# {{#Invoke:Coordinates2/provejo|coordinates |text=/ |NS=38.103267 |EW=58.207401 |type=landmark |region=TM-A |name=testo|sortkey=EW}}

redonas:

!538.103268558.20740238° 06′ 12″ N 58° 12′ 27″ O

38.10326758.207401

!558.207402538.10326838° 06′ 12″ N 58° 12′ 27″ O

38.10326758.207401
  1. !558.207402538.10326838° 06′ 12″ N 58° 12′ 27″ O
    38.10326758.207401

La ordigilo nur videblas en la HTML-fontokodo, ĉar ĝi estas kaŝata per CSS.

Pliaj formatojRedakti

Nur en la teksto
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC/DMS}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=/DEC}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=DEC/CH1903}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=DMS/CH1903}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=/CH1903}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=CH1903/}}

redonas:

Nur en la titola linio
En la teksto kaj la titola linio

Tio finfine funkcias kiel per la ŝablono.

<!--* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC/DMS|article=/}} -->
<!--{{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=/|article=DEC/DMS}}-->
<!--* {{#Invoke:Coordinates2/provejo|coordinates|NS=46/16/12/N|EW=6/57/0/O|text=DEC/CH1903|article=DEC/DMS}}-->

Kombino nun bone funkcias. Kialo estis foresto de helpa parametro. --Tlustulimu (diskuto) 08:11, 14 Jul. 2013 (UTC)

pop kaj elevationRedakti

* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=city|pop=500000|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=city|pop=500000.45|text=/}}

redonas:

Do, la valoro de la parametro pop nur estas aldonata al la informo pri type, se ĝi estas senkoma, pozitiva nombro.

* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=mountain|elevation=500.25|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=mountain|elevation=500,25|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=mountain|elevation=-500.25|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=43/29/4/N|EW=79/23/0/U|type=mountain|elevation=-500,25|text=/}}

redonas:

La valoro de la parametro elevation estas nur aldonata al la informo pri type, se ĝi havas du ciferojn post la punkto. Tio signifas krome, ke punkto ne povas esti uzata por apartigi milojn. Ĉe elevation alternative eĉ eblas skribi komon anstataŭ punkto. La skripto ŝanĝas tion al punkto, ĉar "Geohack" komprenas nur tion.

globeRedakti

* {{#invoke:Coordinates|coord|9.7|-20.0|globe:moon}}
* {{#invoke:Coordinates2/provejo|coordinates|NS=9.7|EW=-20.0|globe=moon|text=/}}
* {{#invoke:Coordinates2/provejo|coordinates|NS=9.7|EW=-20.0|globe=luno|text=/}}

redonas:

DecimalaRedakti

* {{#Invoke:Coordinates2/provejo|coordinates|NS=11/30/0/N|EW=153/26/0/W|text=DEC}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11.5|EW=-153.43333|text=DEC}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11,5|EW=-153,43333|text=DEC}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11,5|EW=-153,43333|text=/}}

redonas:

Ekzemploj el la dokumentadoRedakti

Per la ŝablono
* {{Koordinato|NS=46.8086|EW=9.9891|text=DM|name=testo|type=landmark|region=CH}}
* {{Koordinato|NS=46.8086|EW=9.9891|text=UTM|name=testo|type=landmark|region=CH}}
* {{Koordinato|NS=46.8086|EW=9.9891|text=CH1903|name=testo|type=landmark|region=CH}}
* {{Koordinato|NS=46.8086|EW=9.9891|text=/|name=testo|type=landmark|region=CH}}

redonas

Per la proveja ŝablono
* {{Koordinato/provejo|NS=46.8086|EW=9.9891|text=DM|name=testo|type=landmark|region=CH}}
* {{Koordinato/provejo|NS=46.8086|EW=9.9891|text=UTM|name=testo|type=landmark|region=CH}}
* {{Koordinato/provejo|NS=46.8086|EW=9.9891|text=CH1903|name=testo|type=landmark|region=CH}}
* {{Koordinato/provejo|NS=46.8086|EW=9.9891|text=/|name=testo|type=landmark|region=CH}}

redonas

46.8086 °N, 9.9891 °O

46.80869.9891

UTM: Zono 32T, 575465 / 5184370

46.80869.9891

CH1903: 794637 / 187324

46.80869.9891

46° 48′ 31″ N 9° 59′ 21″ O

46.80869.9891

korektenda!

Koordinatoj kaj kategoriojRedakti

Kun decimalaj valoroj funkcias
{{#Invoke:Coordinates2|coordinates|NS=11,5|EW=-153,43333333333|text=/}}
{{#Invoke:Coordinates2|coordinates|NS=11,5|EW=-153,43333333333|category=yes}}

fariĝas 11° 30′ 00″ N 153° 26′ 00″ U11.5-153.43333333333

Kun GMS sen direkto ne funkcias
{{#Invoke:Coordinates2|coordinates|NS=54/5/26|EW=19/13/1|text=/}}
{{#Invoke:Coordinates2|coordinates|NS=54/5/26|EW=19/13/1|category=yes}}

redonas Koordinatoj: Nekonata argumenta formato
Koordinatoj: Nekonata argumenta formato
Koordinatoj: Nekonata argumenta formato

Kun GMS sen direkto jam en la proveja versio funkcias
* {{#Invoke:Coordinates2/provejo|coordinates|NS=54/5/26|EW=19/13/1|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=54/5/26|EW=19/13/1|category=yes}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=54/5/26/S|EW=19/13/1|text=/}}
* {{#Invoke:Coordinates2/provejo|coordinates|NS=54/5/26|EW=19/13/1/W|text=/}}

redonas

  • Koordinatoj: Nekonata argumenta formato
  • Koordinatoj: Nekonata argumenta formato
  • Koordinatoj: Nekonata argumenta formato
  • Koordinatoj: Nekonata argumenta formato

KoordRedakti

* {{Koord/provejo|46/16/12/N|6/57/0/O|montru=entekste|formato=CH1903|mode=de}}
* {{Koord/provejo|46/16/12|6/57/0|montru=entekste|formato=CH1903|mode=de}}

redonas

Kun mapoRedakti

{{Koordinato/provejo |mapo=dekstre |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A
|mapogrando=250px}}
{{Koordinato |mapo=dekstre |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A
|mapogrando=250px}}
{{Koordinato |mapo=dekstre |latitudo=38.103267 |longitudo=58.207401 |type=landmark |region=TM-A
|mapogrando=250px | teksto=/}}

redonas

38.10326758.207401
DEC
Uzanto:Tlustulimu/lua
Uzanto:Tlustulimu/lua
DEC
Tlustulimu/lua
38.10326758.207401
DEC
Tlustulimu/lua

neniu name-parametro en fluteksta koordinato38° 6′ 12″ N, 58° 12′ 27″ O (mapo)38.10326758.207401

DEC
Tlustulimu/lua


Per Lua
* {{#Invoke:Coordinates2/provejo|coordinates|NS=11,5|EW=-153,43333|map=left}}

redonas