Burocratas, emailconfirmed, Administradores da interface, Administradores (Semantic MediaWiki), Curadores (Semantic MediaWiki), Editores (Semantic MediaWiki), Supressores, Administradores
1 051
edições
(lint) |
Sem resumo de edição |
||
local p = {}
function p.
-- Define o alvo das regras
local target = frame:getParent().args[1] or frame.args[1]
if target ==
target = mw.uri.decode(frame:callParserFunction(
end
if target ==
target = mw.title.getCurrentTitle().prefixedText
end
-- Semantic Scribunto foi carregado?
if not mw.smw then
return
end
-- Define variáveis básicas
local
local infos = {}
-- Funções básicas
local function ucfirst(str)
return (str:gsub(
end
-- Somente
local f245 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"245", "0", "0", fullpagename = target}}) or
""
if f245 ~= "" then
-- Record status
local recordStatus =
frame:expandTemplate {
title = "Field data string",
args = {"000", "5", "1", property = "Leader", fullpagename = target}
} or false
if recordStatus == "n" then
a = "Segundo o Líder, este é um registro <b>novo</b> (não um alterado ou revisado, expandido, excluído, etc.)"
info = string.format("* %s.", a)
table.insert(infos, info)
elseif
a =
info = string.format(
table.insert(infos, info)
elseif
a =
info = string.format(
table.insert(infos, info)
end
-- Type of record
local typeOfRecord =
frame:expandTemplate {
title = "Field data string",
args = {"000", "6", "1", property = "Leader", fullpagename = target}
} or false
if typeOfRecord == "a" then
a = "Segundo o Líder, este registro descreve um <b>material textual</b>"
info = string.format("* %s.", a)
table.insert(infos, info)
end
-- Bibliographic level
local bibliographicLevel =
frame:expandTemplate {
title = "Field data string",
args = {"000", "7", "1", property = "Leader", fullpagename = target}
} or false
if bibliographicLevel == "m" then
a =
"Segundo o Líder, este registro descreve um <b>item monográfico</b> (não parte de um item, não um item seriado, não uma coleção, etc.)"
info = string.format("* %s.", a)
table.insert(infos, info)
end
-- Encoding level
local encodingLevel =
frame:expandTemplate {
title = "Field data string",
args = {"000", "17", "1", property = "Leader", fullpagename = target}
} or false
if encodingLevel == "1" then
a =
"Segundo o Líder, este registro tem um nível <b>completo</b> de catalogação (mas o material não foi examinado)"
info = string.format("* %s.", a)
table.insert(infos, info)
elseif
a =
"Segundo o Líder, este registro tem um nível <b>completo</b> de catalogação (a descrição foi realizada com o material em mãos)"
info = string.format("* %s.", a)
table.insert(infos, info)
end
-- Descriptive cataloging form
local descriptiveCatalogingForm =
frame:expandTemplate {
title = "Field data string",
args = {"000", "18", "1", property = "Leader", fullpagename = target}
} or false
if descriptiveCatalogingForm == "a" then
a = "Segundo o Líder, este registro possui uma catalogação <b>compatível com as regras do AACR 2</b>"
info = string.format("* %s.", a)
table.insert(infos, info)
else
a =
info = string.format(
table.insert(infos, info)
end
-- Explica a sintaxe '(Biblioteca)NúmeroDeControle'
local f001 =
local f003 =
frame:expandTemplate {
title = "Field data string",
args = {"003", "0", "", property = "Control field data", fullpagename = target}
}
a = "Internamente, este registro é identificado pelo código"
b = "para sistemas externos, o código é"
info = string.format('* %s "%s"; %s "(%s)%s".', a, f001, b, f003, f001)
table.insert(infos, info)
-- Campo 005
local creationDate =
mw.smw.ask("[[" .. target .. "]]|?Creation date#-F[l, d \\d\\e F \\d\\e Y]|headers=hide|mainlabel=-") or ""
if type(
for _, row in pairs(
for _, data in pairs(row) do
creationDate = data
end
end
mw.smw.ask(
for _, row in pairs(modificationDate) do
for _, data in pairs(row) do
modificationDate = data
end
end
a =
b =
info = string.format(
table.insert(infos, info)
-- Campo 008
local invalidCode = '<strong class="error">código inválido para o local de publicação</strong>'
local
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
}
local f008pubPlace =
frame:expandTemplate {
title =
args = {
}
if string.match(f008pubPlace,
a =
info = string.format(
table.insert(infos, info)
elseif
a =
info = string.format(
table.insert(infos, info)
else
a =
info = string.format(
table.insert(infos, info)
end
invalidCode = '<strong class="error">código inválido para o idioma (campo 008 ou subcampo $h do campo 041)</strong>'
local
[
[
[
[
[
[
[
[
[
[
[
[
[
[
}
local f008lang =
frame:expandTemplate {
title =
args = {
}
if string.match(f008lang,
a =
info = string.format(
elseif
a =
info = string.format(
else
a =
info = string.format(
end
-- Se existe o campo 041, mostra '(traduzido do... )' na mesma linha do idioma presente no 008
local f041 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"041", "0", "0", fullpagename = target}}) or
""
if f041 ~= "" then
if f041:sub(1,
local f041h = frame:expandTemplate {title = "Select", args = {"041", "h", target}}
f041h = langTbl[f041h] or f041h
info = string.format("%s (traduzido do %s)", info, f041h)
end
end
table.insert(infos, info)
-- Testa se existe(m) ISBN(s) inválido(s)
local f020 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"090", "0", "0", fullpagename = target}}) or
""
if f020 ~= "" then
local printedIsbn = frame:expandTemplate {title = "Print ISBN"} or false
if string.match(printedIsbn, "error") then
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe(m) hifen(s) ou x minúsculo no ISBN
if type(
for _, row in pairs(
for _, data in pairs(row) do
f020 = mw.text.trim(table.concat(data))
end
end
if string.match(f020,
a = 'O ISBN não pode conter hifens. Apenas números e "X" maiúsculo'
info = string.format(
table.insert(infos, info)
elseif string.match(f020,
a = 'O ISBN não pode conter um x minúsculo. Apenas números e "X" maiúsculo'
info = string.format(
table.insert(infos, info)
end
-- Testa se há indicadores no campo 020
if f020:sub(1, 1) ~=
a =
info = string.format(
table.insert(infos, info)
end
if f020:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
-- Testa o uso de maiúsculas no campo 041
if f041 ~=
if f041:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
end
local f041a = frame:expandTemplate {title =
if string.match(f041a,
a =
info = string.format(
table.insert(infos, info)
end
local accessPointPresence =
frame:callParserFunction {
name =
args = {
} or 0
accessPointPresence = tonumber(
-- Testa se há subcampo $b e se há espaço no subcampo $c do campo 090
local f090 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"090", "0", "0", fullpagename = target}}) or
""
local f090b = frame:expandTemplate {title = "Select", args = {"090", "b", target}} or ""
if f090b == "" then
a = "Está faltando o subcampo $b do campo 090 (notação de Cutter)"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
-- Testa se não foi esquecida a letra do tíulo na notação de Cutter, caso haja um ponto de acesso 1XX
if accessPointPresence >= 1 and string.match(f090b,
a =
info = string.format(
table.insert(infos, info)
end
local f090c = frame:expandTemplate {title =
if string.match(f090c,
a =
info = string.format(
table.insert(infos, info)
end
end
-- Testa (conta) se existe mais de um ponto de acesso principal
local f100existance = frame:expandTemplate {title =
if accessPointPresence > 1 or f100existance ==
a =
info = string.format(
table.insert(infos, info)
end
if f100existance ~=
local f100 =
mw.text.trim(
frame:expandTemplate {title = "Field data string", args = {"100", "0", "0", fullpagename = target}}
) or ""
if f100:sub(1, 1) == "0" then
a = "e a entrada começa pelo seu <b>primeiro nome</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f100:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f100:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f100:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
else
end
if f100:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe ', ' no subcampo $a (Nome, Sobrenome)
local f100a = frame:expandTemplate {title =
if f100a ~=
if not string.match(f100a,
a =
info = string.format(
table.insert(infos, info)
end
if string.match(f100a,
a =
info = string.format(
table.insert(infos, info)
end
end
local f100q = frame:expandTemplate {title =
if f100q ~=
if not string.match(f100q,
a =
info = string.format(
table.insert(infos, info)
end
end
local f100d = frame:expandTemplate {title =
if f100d ~=
if string.match(f100,
a =
info = string.format(
table.insert(infos, info)
end
end
end
--
local f110 =
frame:expandTemplate {title = "Field data string", args = {"110", "0", "0", fullpagename = target}} or ""
)
if f110 ~= "" then
if f110:sub(1, 1) == "0" then
a = "e a entrada começa por um <b>nome invertido</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f110:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f110:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f110:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
else
end
if f110:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
--
local f111 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"111", "0", "0", fullpagename = target}}) or
""
info =
if f111:sub(1, 1) == "0" then
a = "e a entrada começa por um <b>nome invertido</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f111:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
elseif f111:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
elseif f111:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
else
end
if f111:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
--
local f130 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"130", "0", "0", fullpagename = target}}) or
""
info = "O ponto de acesso principal foi dado a um <b>título uniforme</b>"
if f130:sub(1, 1) == "#" then
a = "o primeiro indicador não foi preenchido"
info = string.format('* %s, porém, <strong class="error">%s.</strong>', info, a)
table.insert(infos, info)
else
local f130a = frame:expandTemplate {title =
a = ucfirst(
info = string.format(
table.insert(infos, info)
end
if f130:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
--
local f245ind1 = f245:sub(1, 1) or
if accessPointPresence == 0 then
if f245ind1 ==
a =
'Não houve um ponto de acesso principal nos campos 1XX, desse modo, o primeiro indicador do campo 245 deve ter o valor "0"'
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
else
if f245ind1 ==
a =
'Houve um ponto de acesso principal nos campos 1XX, desse modo, o primeiro indicador do campo 245 deve ter o valor "1"'
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
end
--
local f240 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"240", "0", "0", fullpagename = target}}) or
if f240 ~= "" then
if f041 == "" then
a = "Normalmente, quando há um campo 240, deve haver um campo 041"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
local f240l = frame:expandTemplate {title =
if f240l ~=
if string.match(f240l,
a =
info = string.format(
table.insert(infos, info)
end
if not string.match(f240,
a =
info = string.format
table.insert(infos, info)
end
else
a =
info = string.format
table.insert(infos, info)
end
if f240:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f240:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f240:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
else
a =
info = string.format(
table.insert(infos, info)
end
if f240:sub(2, 2) ==
a =
info = string.format(
table.insert(infos, info)
else
local f240a =
string.gsub(mw.text.trim(frame:expandTemplate {title = "Select", args = {"240", "a", target}}), "[/:=.]$", "")
info = string.format('* %s "<b>%s</b>".', a, b)
table.insert(infos, info)
end
end
--
if f245ind1 ==
a =
info = string.format(
table.insert(infos, info)
elseif f245ind1 ==
a =
info = string.format(
table.insert(infos, info)
elseif f245ind1 ==
a =
info = string.format(
table.insert(infos, info)
else
a =
info = string.format(
table.insert(infos, info)
end
--
local f245a = frame:expandTemplate {title =
if f245:sub(2, 2) ==
a =
info = string.format(
table.insert(infos, info)
else
a =
b = ucfirst(
b = string.gsub(
info = string.format(
table.insert(infos, info)
end
--
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
--
local f245b = frame:expandTemplate {title =
if f245b ~=
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe mais de um subcampo $b no 245
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
--
local f245c = frame:expandTemplate {title =
if f245c ~=
-- Testa se existe espaço antes do ponto e vírgula na indicação de responsabilidade, subcampo $c do 245
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe "/" antes do subcampo $c do campo 245
if string.match(
a = 'É necessária a pontuação que precede a indicação de responsabilidade (" / ") no campo 245'
info = string.format(
table.insert(infos, info)
end
-- Testa se há ": $c"
if string.match(
a =
'Ou o subtítulo foi colocado no subcampo $c, ou a pontuação que precede a indicação de responsabilidade (" / ") não foi informada corretamente (campo 245).'
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
-- Testa se o subcampo $c termina em "-"
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe mais de um subcampo $c no 245
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe mais de 3 vírgulas no campo 245 $c
if string.match(
a = 'Parece haver mais de 3 pessoas na indicação de responsabilidade (245 $c), use " ... [et al.]"'
info = string.format(
table.insert(infos, info)
end
-- Testa se existe a sintaxe "*...[et. "
if string.match(
a = 'No campo 245, o espaçamento correto é " ... [et al.]"'
info = string.format(
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe espaço antes de "ed." (subcampo $a do 250)
local f250 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"250", "0", "0", fullpagename = target}}) or
""
local f250a = frame:expandTemplate {title = "Select", args = {"250", "a", target}} or ""
if string.match(f250a, "%d%.?ed%.") then
a = 'Inclua um espaço antes da indicação "ed." (subcampo $a do campo 250)'
info = string.format(
table.insert(infos, info)
end
end
-- Testa se existe 260, se existir, verifica a pontuação final dos subcampos $a, $b e $c do campo 260
local f260 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"260", "0", "0", fullpagename = target}}) or
""
local f260a = frame:expandTemplate {title = "Select", args = {"260", "a", target}} or ""
if f260a ~= "" then
if string.match(f260a, "[a-zA-ZÀ-ü%],]%s?$") then
a = 'Normalmente, o final do subcampo $a do campo 260 requer a seguinte pontuação " : "'
info = string.format(
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
local f260b = frame:expandTemplate {title =
if f260b ~=
if string.match(
a =
'Normalmente, o final do subcampo $b do campo 260 requer uma das seguintes pontuações ", " ou " : ". Reveja a pontuação'
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
local f260c = frame:expandTemplate {title =
if f260c ~=
-- Testa se o subcampo $c é precedido ou não por ","
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
end
-- Testa se existe espaço entre o número e a indicaçação de extensão do texto
local f300 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"300", "0", "0", fullpagename = target}}) or
""
local f300a = frame:expandTemplate {title = "Select", args = {"300", "a", target}} or ""
if f300a ~= "" then
if string.match(f300a, "%d[a-z]%.") then
a = 'Inclua um espaço entre o número e a indicação "p.", "f." ou "v." (subcampo $a do campo 300)'
info = string.format(
table.insert(infos, info)
end
-- Testa se existe espaço entre "p." e ";"
if string.match(
a = 'Inclua um espaço entre a indicação "p.", "f." ou "v." e a pontuação final (subcampo $a do campo 300)'
info = string.format(
table.insert(infos, info)
end
-- Testa se existe "il." no subcampo $a (deve estar no subcampo $b)
if string.match(
a = 'Ilustrações e outros detalhes físicos devem ir no subcampo $b do campo 300, antecedidos de " : "'
info = string.format(
table.insert(infos, info)
end
end
local f300b = frame:expandTemplate {title =
if f300b ~=
-- Testa se existe ".;" no subcampo $b do campo 300
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f300c = frame:expandTemplate {title =
if f300c ~=
-- Testa se a sintaxe das dimensões está correta
if string.match(
a =
'Atenção, a sintaxe correta para a dimensão é: "NN cm" ou, menos frequentemente, "NN x NN cm" (subcampo $c do campo 300)'
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se a pontuação antes da dimensão é ".", "," ou ":"
if string.match(
a = 'A pontuação que precede a dimensão (300 $c) deve ser " ; "'
info = string.format(
table.insert(infos, info)
end
-- Testa se o subcampo $c termina em "-"
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f440 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"440", "0", "0", fullpagename = target}}) or
""
if f440 ~= "" then
a = "O campo 440 é obsoleto. Mova seu conteúdo para o campo 490"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
-- Testa se existem indicadores, parênteses no subcampo $a do campo 490 e se existe ";" antes da numeração da série
local f490 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"490", "0", "0", fullpagename = target}}) or
""
if f490 ~= "" then
if f490:sub(2, 2) ~= "#" then
a = "O segundo indicador do campo 490 foi preenchido, porém, ele não deve ser preenchido"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
local f490a = frame:expandTemplate {title =
if f490a ~=
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f490v = frame:expandTemplate {title =
if f490v ~=
if not string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
-- Testa a consistência entre o indicador do 490 e a presença do campo 830
local f830 =
mw.text.trim(
frame:expandTemplate {title = "Field data string", args = {"830", "0", "0", fullpagename = target}}
) or ""
if f490:sub(1, 1) == "#" then
a = "Está faltando o primeiro indicador do campo 490"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
elseif f490:sub(1, 1) ==
if f830 ==
a =
"Foi especificado um ponto de acesso secundário para a série (490, primeiro indicador com valor 1), porém, um campo 830 não foi informado"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
elseif f490:sub(1, 1) ==
if f830 ~=
a =
"O primeiro indicador do campo 490 indica que não foi gerado um ponto de acesso para a série, porém, um campo 830 foi informado"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
else
a =
info = string.format(
table.insert(infos, info)
end
end
-- Testa se a nota 500 acaba com "."
local f500 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"500", "0", "0", fullpagename = target}}) or
""
if f500 ~= "" then
a = "Nossa política de catalogação define que as notas devem terminar com um ponto (500)"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
end
-- Testa se a nota 504 acaba com "." e se existe uso de maiúsculas no meio da nota
local f504 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"504", "0", "0", fullpagename = target}}) or
""
if f504 ~= "" then
a = "Nossa política de catalogação define que as notas devem terminar com um ponto (504)"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
-- Testa se existe uso de maiúsculas no meio da nota 504
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f600 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"600", "0", "0", fullpagename = target}}) or
-- Testa
if f600 ~= "" then
if f600:sub(1, 1) == "#" then
a = "Está faltando o primeiro indicador do campo 600"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if f600:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 600 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
-- Testa se existe "," no subcampo $a (Nome, Sobrenome)
local f600a = frame:expandTemplate {title =
if f600a ~=
if not string.match(
a =
info = string.format(
table.insert(infos, info)
end
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f600q = frame:expandTemplate {title =
if f600q ~=
if not string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
end
local f610 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"610", "0", "0", fullpagename = target}}) or
""
if f610 ~= "" then
if f610:sub(1, 1) == "#" then
a = "Está faltando o primeiro indicador do campo 610"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if f610:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 610 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
end
local f611 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"611", "0", "0", fullpagename = target}}) or
""
if f611 ~= "" then
if f611:sub(1, 1) == "#" then
a = "Está faltando o primeiro indicador do campo 611"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if f611:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 611 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
end
local f630 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"630", "0", "0", fullpagename = target}}) or
""
if f630 ~= "" then
if f630:sub(1, 1) == "#" then
a = "Está faltando o primeiro indicador do campo 630"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if f630:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 630 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
end
local f650 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"650", "0", "0", fullpagename = target}}) or
""
if f650 ~= "" then
if f650:sub(1, 1) ~= "0" then
a = 'Nossa política de catalogação define que o primeiro indicador do campo 650 deve ser sempre "0"'
info = string.format(
table.insert(infos, info)
end
if f650:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 650 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
-- Testa se os assuntos começam com letra minúscula
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se um subcampo termina em "-"
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
end
local f651 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"651", "0", "0", fullpagename = target}}) or
""
if f651 ~= "" then
if f651:sub(1, 1) ~= "#" then
a = 'Nossa política de catalogação define que o primeiro indicador do campo 651 deve ser sempre "#"'
info = string.format(
table.insert(infos, info)
end
if f651:sub(2, 2) ~=
a = 'Nossa política de catalogação define que o segundo indicador do campo 651 deve ser sempre "4"'
info = string.format(
table.insert(infos, info)
end
end
-- Testa os pontos de acesso secundários, tal como os principais
local f700 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"700", "0", "0", fullpagename = target}}) or
""
info =
if f700:sub(1, 1) == "0" then
a = "e a entrada começa pelo seu <b>primeiro nome</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f700:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f700:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f700:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
else
end
if f700:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
-- Testa se existe mais de um subcampo $a no mesmo campo 700
if
if string.match(
a =
info = string.format(
table.insert(infos, info)
end
-- testa se existe "," no subcampo $a (Nome, Sobrenome)
local f700a = frame:expandTemplate {title =
if f700a ~=
if not string.match(f700a,
a =
info = string.format(
table.insert(infos, info)
end
if string.match(f700a,
a =
info = string.format(
table.insert(infos, info)
end
end
local f700q = frame:expandTemplate {title =
if f700q ~=
if not string.match(f700q,
a =
info = string.format(
table.insert(infos, info)
end
end
end
local f710 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"710", "0", "0", fullpagename = target}}) or
""
info =
if f710:sub(1, 1) == "0" then
a = "e a entrada começa por um <b>nome invertido</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f710:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f710:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
elseif f710:sub(1, 1) ==
a =
info = string.format(
table.insert(infos, info)
else
end
if f710:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
local f711 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"711", "0", "0", fullpagename = target}}) or
""
info =
if f711:sub(1, 1) == "0" then
a = "e a entrada começa por um <b>nome invertido</b>"
info = string.format("* %s %s.", info, a)
table.insert(infos, info)
elseif f711:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
elseif f711:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
elseif f711:sub(1, 1) ==
a =
info = string.format
table.insert(infos, info)
else
end
if f711:sub(2, 2) ~=
a =
info = string.format(
table.insert(infos, info)
end
end
--
local f830 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"830", "0", "0", fullpagename = target}}) or
""
if f830 ~= "" then
if f830:sub(1, 1) ~= "#" then
a = "O primeiro indicador do campo 830 foi preenchido, porém, ele não deve ser preenchido"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if f830:sub(2, 2) ==
a =
info = string.format
table.insert(infos, info)
end
local f830v = frame:expandTemplate {title =
if f830v ~=
if not string.match(
a =
info = string.format
table.insert(infos, info)
end
end
end
local f856 =
mw.text.trim(frame:expandTemplate {title = "Field data string", args = {"856", "0", "0", fullpagename = target}}) or
""
if f856 ~= "" then
if f856:sub(1, 1) ~= "4" then
a = 'O primeiro indicador do campo 856 precisa ter o valor "4"'
info = string.format
table.insert(infos, info)
end
local f856a = frame:expandTemplate {title =
if f856a ~=
a =
info = string.format
table.insert(infos, info)
end
local isoRecord =
frame:callParserFunction {
name =
args = {
"?Field data",
format = "plainlist",
link = "none",
headers = "hide",
mainlabel = "-",
outro = "",
sep = "",
valuesep = "",
propsep = ""
}
} or ""
if string.match(isoRecord, "%s[.,][^.]") then
a = "Pontos finais ou vírgulas nunca devem ser precedidos por um espaço"
info = string.format('* <strong class="error">%s.</strong>', a)
table.insert(infos, info)
end
if string.match(
a =
info = string.format
table.insert(infos, info)
end
end -- end if 245
return table.concat(infos,
end
|