Module:InterPro content
Appearance
| This module is rated as beta. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected. |
| This module is currently protected from editing. See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected. |
| This module depends on the following other modules: |
This module implements {{InterPro content}}.
Usage
{{#invoke:InterPro content|function_name}}
local getArgs = require('Module:Arguments').getArgs
local beginText = 'This article incorporates text from the public domain [[Pfam]] and [[InterPro]]: '
local baseUrl = 'https://www.ebi.ac.uk/interpro/entry/'
local p = {}
local function interproLink(arg)
-- text before first space, if any; otherwise, whole arg
local accessionNumber = arg:match('^([^ ]*) ') or arg
-- text after first space, if any; otherwise, accessionNumber
local linkText = arg:match(' (.*)') or accessionNumber
return '[' .. baseUrl .. accessionNumber .. ' ' .. linkText .. ']'
end
local function renderList(args)
local list_args = {
class = 'inline'
}
for _, a in ipairs(args) do
table.insert(list_args, interproLink(a))
end
return require('Module:List').horizontal(list_args)
end
function p.main(frame)
local args = getArgs(frame)
if not args[1] then
return '<div class="error">[[Module:InterPro content]]: required argument 1 is missing</div>'
elseif not args[2] then
return '<div role="note" style="font-style: italic;">' .. beginText .. interproLink(args[1]) .. '</div>'
else
return '<div role="note" style="font-style: italic;">' .. beginText .. renderList(args) .. '</div>'
end
end
return p