Predefinição:ISO2709/DataFieldDirectoryBuilder: mudanças entre as edições

De Wikincat
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(replacing RegexFun > RegexFunctions)
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
{{#vardefine:tag|{{#regex:{{{1|}}}|/(\d{3})$/}}}}{{#arraymap:{{{2|}}}|&&&&|@@@@|{{#var:tag}}{{padleft:{{#invoke:String|strlen|ii{{#regex:{{#regex:{{#sub:@@@@|2}}|/\s?(\$.)\s/|$1}}|/ +([:;])/|.$1}}s}}|4}}|,}}<!-- Esta predefinição, em conjunto com a predefinição /ControlFieldDirectoryBuilder, faz parte da predefinição ISO2709. Ela recebe os dados da consulta e os processa da seguinte maneira: {{{1|}}} traz o título do subobjeto (mainlabel) que contém o campo MARC (\d{3}). Tal campo é armazenado na variável "tag" para posterior uso. {{{2|}}} é/são o/s datafield/s recuperado/s. Eles são delimitados por "&&&&" e passados para a arraymap, de modo a processar os campos. A primeira regex normaliza o dado ("$a Foo $b Bar" > "$aFoo$bBar") e a segunda regex troca um non-breaking space seguido de ":" ou ";" por um ponto para a correta contagem de bytes (non-breaking space usa dois bytes, mas o JavaScript exportará um espaço comum em seu lugar, contando apenas um byte). Esse non-breaking space é adicionado automaticamente pelo parser do MediaWiki. -->
{{#arraymap:{{{2|}}}|&&&&|@@@@|{{#rmatch:{{{1|}}}|/\d{3}$/|$0}}{{padleft:{{#invoke:String|strlen|ii{{#rreplace:{{#rreplace:{{#sub:@@@@|2}}|/\s?(\$.)\s/|$1}}|/ +([:;])/|.$1}}s}}|4}}|,}}<!-- Esta predefinição, em conjunto com a predefinição /ControlFieldDirectoryBuilder, faz parte da predefinição ISO2709. Ela recebe os dados da consulta e os processa da seguinte maneira: {{{1|}}} traz o título do subobjeto (mainlabel) que contém o campo MARC (\d{3}). {{{2|}}} é/são o/s datafield/s recuperado/s. Eles são delimitados por "&&&&" e passados para a arraymap, de modo a processar os campos. A primeira regex normaliza o dado ("$a Foo $b Bar" > "$aFoo$bBar") e a segunda regex troca um non-breaking space seguido de ":" ou ";" por um ponto para a correta contagem de bytes (non-breaking space usa dois bytes, mas o JavaScript exportará um espaço comum em seu lugar, contando apenas um byte). Esse non-breaking space é adicionado automaticamente pelo parser do MediaWiki. -->

Edição atual tal como às 09h25min de 6 de janeiro de 2023