This module generates external links for a port using its UN/LOCODE (P1937) values from Wikidata.
This module generates external links for a port using its UN/LOCODE (P1937) values from Wikidata.
{{#invoke:Port LOCODE links|links}}
The property may also be supplied explicitly:
{{#invoke:Port LOCODE links|links|P1937}}
For every valid P1937 statement, the module produces links to:
For example, a P1937 value of GBFXT produces:
* [https://incodocs.com/ports/gb/sea-port/GBFXT PortFinder] – database of information about the port
* [https://unlocode.info/GBFXT GBFXT] – its [[UN/LOCODE|United Nations location code]]
* [https://www.vesselfinder.com/ports/GBFXT VesselFinder] – database of ships currently in the port
If an item has more than one P1937 statement, each value is handled separately. The identifiers are not combined into a comma-separated URL.
Duplicate values are ignored.
The module returns no output when:
No additional #if parser function is required. The module
should be invoked directly:
{{#invoke:Port LOCODE links|links}}
Do not place the invocation inside the previous
construction.
| Parameter | Description | Default |
|---|---|---|
1
|
Wikidata property containing the port identifier | P1937
|
local p = {}
function p.links(frame)
local entity = mw.wikibase.getEntity()
if not entity then
return ""
end
local property = frame.args[1] or "P1937"
local claims = entity.claims and entity.claims[property]
if not claims then
return ""
end
local links = {}
for _, claim in ipairs(claims) do
local mainsnak = claim.mainsnak
local value = mainsnak
and mainsnak.snaktype == "value"
and mainsnak.datavalue
and mainsnak.datavalue.value
if type(value) == "string" or type(value) == "number" then
local code = tostring(value)
local encodedCode = mw.uri.encode(code, "PATH")
local countryCode = mw.uri.encode(
mw.ustring.lower(mw.ustring.sub(code, 1, 2)),
"PATH"
)
table.insert(
links,
"* [https://incodocs.com/ports/"
.. countryCode
.. "/sea-port/"
.. encodedCode
.. " PortFinder] – database of information about the port"
)
table.insert(
links,
"* [https://unlocode.info/"
.. encodedCode
.. " "
.. code
.. "] – its [[UN/LOCODE|United Nations location code]]"
)
table.insert(
links,
"* [https://www.vesselfinder.com/ports/"
.. encodedCode
.. " VesselFinder] – database of ships currently in the port"
)
end
end
return table.concat(links, "\n")
end
return p
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.