Module:ISBN
Išvaizda
Documentation for this module may be created at Module:ISBN/doc
local p = {}
function split(s)
result = {};
for match in (s .. ':'):gmatch("(.-)" .. ':') do
table.insert(result, match);
end
return result;
end
function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
function p.format_isbn(frame)
local unformatted_isbn = frame.args[1]
local formatted_isbn = ''
if string.find(unformatted_isbn, ':', 1, true) == nil then
formatted_isbn = p.link_isbn(unformatted_isbn)
else
-- split by comma into isbn name/value pairs connected by colon :
for qualified_isbn in string.gmatch(unformatted_isbn, '([^,]+)') do
local isbnTable = split(qualified_isbn) -- split by : into name/value pair table
formatted_isbn = formatted_isbn .. isbnTable[1] .. ': ' .. p.link_isbn(isbnTable[2]) .. "<br>"
end
end
return formatted_isbn
end
function p.link_isbn(isbn)
trimmed_isbn = trim(isbn)
return "[[Specialus:Knygų_šaltiniai/" .. trimmed_isbn .. "|" .. trimmed_isbn .. "]]"
end
return p