请输入您要查询的百科知识:

 

词条 Module:TaxonList/sandbox
释义 --[[

This module provides the core functionality to a set of templates used to

display a list of taxon name/authority pairs, with the taxon names optionally

italicized, wikilinked and/or emboldened. Such lists are usually part of

taxoboxes.

]]

-- use a function from Module:TaxonItalics to italicize a taxon name

local TaxonItalics = require("Module:TaxonItalics")

local p = {}

--[[=========================================================================

Utility function to strip off any initial † present to mark the taxon as

extinct. The † must not be italicized, emboldened, or included in the

wikilinked text, so needs to be added back afterwards.

† is assumed to be present as one of:

  • the unicode character †
  • the HTML entity †
  • the output of {{extinct}} – this will have been expanded before reaching this

The function returns two values: the taxon name with any † before it removed

and either '†' if it was present or the empty string if not.

=============================================================================]]

function p.stripDagger(taxonName)

local dagger =

if mw.ustring.sub(taxonName,1,1) == '†' then

taxonName = mw.ustring.sub(taxonName,2,#taxonName)

dagger = '†'

else

if string.sub(taxonName,1,8) == '†' then

taxonName = string.sub(taxonName,9,#taxonName)

dagger = '†'

else

-- did the taxon name originally have {{extinct}} before it?

if (string.sub(taxonName,1,5) == '

taxonName = string.gsub(taxonName, '^.*', , 1)

dagger = '†'

end

end

end

return taxonName, dagger

end

--[[=========================================================================

The function returns a list of taxon names and authorities, appropriately

formatted.

Usage:

{{#invoke:TaxonList|main
|italic = yes - to italicize the taxon name
|linked = yes - to wikilink the taxon name
|bold = yes - to emboldent the taxon name
|incomplete = yes - to output "(incomplete)" at the end of the list
}}

The template that transcludes the invoking template must supply an indefinite

even number of arguments in the format


|Name1|Author1 |Name2|Author2| ... |NameN|AuthorN

=============================================================================]]

function p.main(frame)

local italic = frame.args['italic'] == 'yes'

local bold = frame.args['bold'] == 'yes'

local linked = frame.args['linked'] == 'yes'

if bold then linked = false end -- must not have bold and wikilinked

local incomplete = frame.args['incomplete'] == 'yes'

local taxonArgs = frame:getParent().args

local result =

-- iterate over unnamed variables

local taxonName

local dagger

local first = true -- is this the first of a taxon name/author pair?

for param, value in pairs(taxonArgs) do

if tonumber(param) then

if first then

taxonName = mw.text.trim(value)

-- if necessary separate any initial † from the taxon name

if linked or italic or bold then

taxonName, dagger = p.stripDagger(taxonName)

else

dagger =

end

if linked and not italic then

taxonName = '' .. taxonName .. ''

end

if italic then

taxonName = TaxonItalics.italicizeTaxonName(taxonName, linked)

end

if bold then

taxonName = '' .. taxonName .. ''

end

result = result .. '

  • ' .. dagger .. taxonName

    else

    result = result .. ' ' .. value .. '

  • '

    end

    first = not first

    end

    end

    if incomplete then

    result = result .. '(incomplete list)'

    end

    return '

      ' .. result .. '
    '

    end

    return p

    随便看

     

    开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

     

    Copyright © 2023 OENC.NET All Rights Reserved
    京ICP备2021023879号 更新时间:2024/9/23 5:18:48