恪別𡧲版𢯢𢷮𧵑「模庉:Coordinates」
SaigonSarang (討論 | 㨂𢵰) n 𠊝替文本-「Bản mẫu:」成「Template:」 |
空固縿略𢯢𢷮 |
||
| 𣳔1: | 𣳔1: | ||
--[=[ | --[=[ | ||
Mô đun này hỗ trợ [[ | Mô đun này hỗ trợ [[Bản mẫu:Coord]] và các bản mẫu liên quan. Nó cung cấp vài | ||
phương thức, nhất là: | phương thức, nhất là: | ||
{{# | {{#gọi:Coordinates | coord }} : Hàm tổng quát để định dạng và hiển thị các giá | ||
trị tọa độ. | trị tọa độ. | ||
{{# | {{#gọi:Coordinates | dec2dms }} : Hàm đơn giản để chuyển đổi các giá trị thập | ||
phân ra định dạng độ-phút-giây. | phân ra định dạng độ-phút-giây. | ||
{{# | {{#gọi:Coordinates | dms2dec }} : Hàm đơn giản để chuyển đổi định dạng | ||
độ-phút-giây ra định dạng độ thập phân. | độ-phút-giây ra định dạng độ thập phân. | ||
{{# | {{#gọi:Coordinates | link }} : Xuất địa chỉ của các công cụ. | ||
]=] | ]=] | ||
require(' | require('strict') | ||
local math_mod = require("Module:Math") | local math_mod = require("Module:Math") | ||
| 𣳔27: | 𣳔27: | ||
-- Định dạng các số theo quy tắc tiếng Việt (thí dụ 1.234,56). | -- Định dạng các số theo quy tắc tiếng Việt (thí dụ 1.234,56). | ||
local lang = mw.getContentLanguage() | local lang = mw.getContentLanguage() | ||
-- Chuyển đổi đối số thành các giá trị tiếng Anh. | |||
local function delocalizeArguments(args) | |||
-- Chuyển vị bảng đối số | |||
local transposedArgs = {} | |||
for i, arg in ipairs(args) do | |||
transposedArgs[mw.ustring.upper(arg)] = i | |||
end | |||
if transposedArgs["B"] ~= nil then | |||
args[transposedArgs["B"]] = "N" | |||
end | |||
-- “N” có thể có nghĩa hướng nam trong tiếng Việt hoặc hướng bắc trong tiếng Anh. | |||
if transposedArgs["N"] ~= nil and (transposedArgs["Đ"] ~= nil or transposedArgs["T"] ~= nil) then | |||
args[transposedArgs["N"]] = "S" | |||
end | |||
if transposedArgs["Đ"] ~= nil then | |||
args[transposedArgs["Đ"]] = "E" | |||
end | |||
if transposedArgs["T"] ~= nil then | |||
args[transposedArgs["T"]] = "W" | |||
end | |||
end | |||
--[[ Hàm hỗ trợ thay thế {{coord/display/title}} ]] | --[[ Hàm hỗ trợ thay thế {{coord/display/title}} ]] | ||
local function displaytitle(s, notes) | local function displaytitle(s, notes) | ||
local | local htmlTitle = '<span style="margin-right: 0.25rem;">' .. s .. notes .. '</span>'; | ||
return mw.getCurrentFrame():extensionTag('indicator', tostring(htmlTitle), { name = '#coordinates' }) | |||
return ' | |||
end | end | ||
| 𣳔56: | 𣳔78: | ||
--[[ Hàm bọc để lấy các tham số; xem tài liệu của hàm này tại | --[[ Hàm bọc để lấy các tham số; xem tài liệu của hàm này tại Mô đun:Arguments. ]] | ||
local function makeInvokeFunc(funcName) | local function makeInvokeFunc(funcName) | ||
return function (frame) | return function (frame) | ||
local args = require(' | local args = require('Mô đun:Arguments').getArgs(frame, { | ||
wrappers = ' | wrappers = 'Bản mẫu:Tọa độ' | ||
}) | }) | ||
return coordinates[funcName](args, frame) | return coordinates[funcName](args, frame) | ||
| 𣳔94: | 𣳔116: | ||
Bảng kiểu CSS thường ẩn geo-nondefault, trừ khi một nguời dùng đã ghi đè thiết lập này. | Bảng kiểu CSS thường ẩn geo-nondefault, trừ khi một nguời dùng đã ghi đè thiết lập này. | ||
default là chế độ do nguời dùng định rõ khi nhúng [[ | default là chế độ do nguời dùng định rõ khi nhúng [[Bản mẫu:coord]]. | ||
mode là chế độ hiển thị (dec hoặc dms) dùng để tính lớp CSS. | mode là chế độ hiển thị (dec hoặc dms) dùng để tính lớp CSS. | ||
]=] | ]=] | ||
| 𣳔172: | 𣳔194: | ||
end | end | ||
return '<span class="plainlinks nourlexpansion"> | local stylesheetLink = 'Module:Coordinates/styles.css' | ||
return mw.getCurrentFrame():extensionTag{ | |||
name = 'templatestyles', args = { src = stylesheetLink } | |||
} .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. | |||
' ' .. inner .. ']</span>' | |||
end | end | ||
| 𣳔518: | 𣳔543: | ||
local ret = specPrinter(args, result) | local ret = specPrinter(args, result) | ||
if #errors > 0 then | if #errors > 0 then | ||
ret = ret .. ' ' .. errorPrinter(errors) .. '[[ | ret = ret .. ' ' .. errorPrinter(errors) .. '[[Thể loại:Trang có thẻ tọa độ hỏng]]' | ||
end | end | ||
return ret, backward | return ret, backward | ||
| 𣳔546: | 𣳔571: | ||
end | end | ||
if ret then | if ret then | ||
return mw.ustring.format('[[ | return mw.ustring.format('[[Thể loại:%s]]', ret) | ||
else | else | ||
return '' | return '' | ||
| 𣳔558: | 𣳔583: | ||
Cách sử dụng: | Cách sử dụng: | ||
{{ # | {{ #gọi:Coordinates | link }} | ||
]] | ]] | ||
| 𣳔571: | 𣳔596: | ||
Cách sử dụng: | Cách sử dụng: | ||
{{ # | {{ #gọi:Coordinates | dec2dms | tọa độ thập phân | hậu tố cho số dương | | ||
hậu tố cho số âm | độ chính xác }} | hậu tố cho số âm | độ chính xác }} | ||
| 𣳔610: | 𣳔635: | ||
Cách sử dụng: | Cách sử dụng: | ||
{{ # | {{ #gọi:Coordinates | dms2dec | chữ bán cầu | độ | | ||
phút | giây }} | phút | giây }} | ||
| 𣳔630: | 𣳔655: | ||
coord | coord | ||
Chỗ vào chính của hàm Lua thay thế [[ | Chỗ vào chính của hàm Lua thay thế [[Bản mẫu:Coord]]. | ||
Cách sử dụng: | Cách sử dụng: | ||
{{ # | {{ #gọi:Coordinates | coord }} | ||
{{ # | {{ #gọi:Coordinates | coord | vĩ độ | kinh độ }} | ||
{{ # | {{ #gọi:Coordinates | coord | vĩ độ | chữ vĩ độ | kinh độ | chữ kinh độ }} | ||
… | … | ||
Tra cứu trang tài liệu của [[ | Tra cứu trang tài liệu của [[Bản mẫu:Coord]] để biết đến nhiều tham số và | ||
tùy chọn khác. | tùy chọn khác. | ||
Lưu ý: Hàm này cung cấp các phần tử hiển thị thị giác của [[ | Lưu ý: Hàm này cung cấp các phần tử hiển thị thị giác của [[Bản mẫu:Coord]]. Để | ||
cho có thể tải các tọa độ lên cơ sở dữ liệu, hàm cú pháp {{#tọađộ:}} cũng cần | cho có thể tải các tọa độ lên cơ sở dữ liệu, hàm cú pháp {{#tọađộ:}} cũng cần | ||
được gọi. Hàm này được gọi tự động trong phiên bản Lua của [[ | được gọi. Hàm này được gọi tự động trong phiên bản Lua của [[Bản mẫu:Coord]]. | ||
]=] | ]=] | ||
coordinates.coord = makeInvokeFunc('_coord') | coordinates.coord = makeInvokeFunc('_coord') | ||
| 𣳔669: | 𣳔694: | ||
args.wviTitle = (string.find( Display, 'title' ) ~= nil or Display == 't' or | args.wviTitle = (string.find( Display, 'title' ) ~= nil or Display == 't' or | ||
Display == 'it' or Display == 'ti') | Display == 'it' or Display == 'ti') | ||
delocalizeArguments(args) | |||
local contents, backward = formatTest(args) | local contents, backward = formatTest(args) | ||
local Notes = args.notes or '' | local Notes = args.notes or '' | ||
| 𣳔707: | 𣳔732: | ||
while count <= 9 do args[count] = (args[count] or ''); count = count+1 end | while count <= 9 do args[count] = (args[count] or ''); count = count+1 end | ||
end | end | ||
if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'tài liệu' and page_title.subpageText ~= 'testcases' and page_title.subpageText ~='kiểm thử' then args[10] = 'primary' end | if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'tài liệu' and page_title.subpageText ~= 'testcases' and page_title.subpageText ~='kiểm thử' then args[10] = 'primary' end | ||
args.notes, args.format, args.display = nil | args.notes, args.format, args.display = nil | ||
text = text .. coord_wrapper(args) | text = text .. coord_wrapper(args) | ||
| 𣳔717: | 𣳔742: | ||
coord2text | coord2text | ||
Phân tích ra một giá trị từ lần nhúng [[ | Phân tích ra một giá trị từ lần nhúng [[Bản mẫu:Tọa độ]]. | ||
NẾU CÚ PHÁP LIÊN KẾT CỦA GEOHACK THAY ĐỔI, HÀM NÀY CẦN ĐƯỢC THAY ĐỔI LUÔN. | NẾU CÚ PHÁP LIÊN KẾT CỦA GEOHACK THAY ĐỔI, HÀM NÀY CẦN ĐƯỢC THAY ĐỔI LUÔN. | ||
Cách sử dụng: | Cách sử dụng: | ||
{{# | {{#gọi:Coordinates | coord2text | {{Tọa độ}} | parameter }} | ||
Giá trị hợp lệ cho tham số thứ hai là: lat (số nguyên có dấu), long (số nguyên có dấu), type, scale, dim, region, globe, source | Giá trị hợp lệ cho tham số thứ hai là: lat (số nguyên có dấu), long (số nguyên có dấu), type, scale, dim, region, globe, source | ||
| 𣳔748: | 𣳔773: | ||
coordinsert | coordinsert | ||
Xen văn bản vào liên kết GeoHack của một lần nhúng [[ | Xen văn bản vào liên kết GeoHack của một lần nhúng [[Bản mẫu:Tọa độ]] (nếu văn bản này không phải đã xuất hiện trong mã nhúng). Trả về mã nhúng [[Bản mẫu:Tọa độ]] đã sửa đổi. | ||
NẾU CÚ PHÁP LIÊN KẾT CỦA GEOHACK THAY ĐỔI, HÀM NÀY CẦN ĐƯỢC THAY ĐỔI LUÔN. | NẾU CÚ PHÁP LIÊN KẾT CỦA GEOHACK THAY ĐỔI, HÀM NÀY CẦN ĐƯỢC THAY ĐỔI LUÔN. | ||
| 𣳔755: | 𣳔780: | ||
{{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} | {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} | ||
Đừng làm GeoHack gây lỗi bằng cách đưa vào gì không được nói đến trong tài liệu [[ | Đừng làm GeoHack gây lỗi bằng cách đưa vào gì không được nói đến trong tài liệu [[Bản mẫu:Tọa độ]]. | ||
]=] | ]=] | ||