Această pagină este protejată de mișcare
Această pagină este protejată

Forma: Sky

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Modul care implementează șablonul {{ Cielo }}. Încărcați CSS-ul coordonatelor din Module: Coord / styles.css .


 - [[
* Modul care implementează șablonul Cielo.
]] -

require ( „Formular: fără globali” )

local getArgs = require ( 'Modul: Argumente' ). getArgs
local mRaDec = require ( 'Modul: RaDec' )
local errorCategory = '[[Categorie: intrări în modul Sky cu erori]]'

- Handler de eroare pentru xpcall, formatați eroarea.
-
- @param {string} msg
- @return {șir}
funcție locală errhandler ( msg )
local cat = mw . titlu . getCurrentTitle (). spațiu de nume == 0 și errorCategory sau "
returnează string.format ( '<span class = "error">% s </span>% s' , msg , cat )
Sfârșit

- Returnează numărul rotunjit la numărul necesar de zecimale.
- http://lua-users.org/wiki/SimpleRound
-
- @param {number} num
- @param {number} idp
- @return {number}
runda funcției locale ( num , idp )
local mult = 10 ^ ( idp sau 0 )
returnează math.floor ( num * mult + 0,5 ) / mult
Sfârșit

- Returnează șirul „0 + număr” atunci când numărul este o singură cifră, altfel același număr.
-
- @param {number} num
- @return {șir}
funcție locală padleft0 ( num )
return ( num < 10 și '0' sau '' ) .. num
Sfârșit

- Parsificați parametrii de poziție standard și returnați două tabele,
- pentru ascensiune dreaptă și declinare.
-
- @param {table} args
- @return {table} ascensiune dreaptă, cu tastele „h”, „m” și „s” ale numărului de tip
- declinare @return {table}, cu tastele „semn”, d ”,„ m ”și„ s ”ale numărului de tip
funcție locală parsePosArgs ( args )
local ra , dec , h , d , m , s , semn

- ascensiunea dreaptă
args [ 3 ] = args [ 3 ] și args [ 3 ]: gsub ( ',' , '.' ) sau nul
h , m , s = tonumber ( args [ 1 ]), tonumber ( args [ 2 ]), tonumber ( args [ 3 ])
dacă h și m și s atunci
ra = { h = h , m = m , s = s }
Sfârșit
- declinare
args [ 7 ] = args [ 7 ] și args [ 7 ]: gsub ( ',' , '.' ) sau nil
d , m , s = tonumber ( args [ 5 ]), tonumber ( args [ 6 ]), tonumber ( args [ 7 ])
dacă d și m și s atunci
local dSign = args [ 5 ]: sub ( 1 , 1 )
semn = ( args [ 4 ] == '-' sau args [ 4 ] == '-' sau dSign == '-' sau dSign == '-' ) și - 1 sau 1
dec = { semn = semn , d = math.abs ( d ), m = m , s = s }
Sfârșit

întoarce ra , dec
Sfârșit

- Returnează o etichetă span cu coordonatele id = care conțin coordonatele ceresti specificate
- ca link extern către site-ul wikisky.org.
-
- @param {table} ra
- @param {table} dec
- @param {number} distanță
- @return {șir}
funcție locală getHTML ( ra , dec , distanță )
local otherPars = 'show_grid = 1 & show_constellation_lines = 1 & show_constellation_boundaries = 1' ..
'& show_const_names = 1 & show_galaxies = 1 & img_source = IMG_all'
local raPar = ra . h + ra . m / 60 + ra . s / 3600
local dePar = dec . semn * ( dec . d + dec . m / 60 + dec . s / 3600 )
zoomPar local = rotund ( math.log ( distanță sau 100000 ) / math.log ( 10 ) + 1 , 0 )
local target = string.format ( 'http://www.wikisky.org/?ra=%s&de=%s&zoom=%s&%s' , raPar , dePar , zoomPar , otherPars ) 
text local = string.format ( '% s <sup> h </sup>% s <sup> m </sup>% s <sup> s </sup>,% s% s °% s ′% s ″ ' ,
padleft0 ( ra . h ), padleft0 ( ra . m ), padleft0 ( ra . s ),
dec . semn == 1 și „+” sau „-” ,
padleft0 ( dec . d ), padleft0 ( dec . m ), padleft0 ( dec . s ))
local extlink = string.format ( '[% s% s]' , țintă , text )
local root = mw . html. create ( 'span' )
rădăcină
: addClass ( „plainlinks nourlexpansion” )
: attr ( 'id' , 'coordonate' )
: wikitext ( '[[Coordonate celeste | Coordonate]]: [[Fișier: Jupiter și luna.png | 20px | link = | Hartă celestă]]' .. extlink )

întoarce-te mw . getCurrentFrame (): extensionTag {
nume = 'șabloane' ,
args = { src = 'Modul: Coord / styles.css' }
} .. tostring ( rădăcină )
Sfârșit

- ================================================== ============================
- Funcții exportate
- ================================================== ============================

local p = {}

- Funcție pentru utilizare de către un alt modul.
funcția p. _principal ( argumente )
local ra , dec , distance

dacă arg. RA și arg . DEC atunci
ra = mRaDec . parseRA (args. RA)
dec = mRaDec . parseDEC (args. DEC)
distance = ToNumber ( arg . distanță)
altfel
ra , dec = parsePosArgs ( args )
distanță = număr ( args [ 8 ])
Sfârșit

return ( ra și dec ) și getHTML ( ra , dec , distance ) sau zero
Sfârșit

- Funcție pentru șablonul {{Sky}}.
funcția p. principal ( cadru )
return select ( 2 , xpcall ( funcție ()
retur p . _main ( getArgs ( cadru , { parentOnly = true }))
end , errhandler ))
Sfârșit

retur p