MediaWiki:NormalizeMarcData.js

De Wikincat
Revisão de 13h23min de 30 de outubro de 2024 por Jaider.ferreira (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
/* jshint esversion: 10 */
function rmCarriageReturn() {
  const textareas = document.body.querySelectorAll('textarea');
  textareas.forEach((textarea) => {
    const element = textarea;
    element.value = element.value.replace('
', '');
  });
}

function rmHtmlTags() {
  const textareas = document.body.querySelectorAll('textarea');
  textareas.forEach((textarea) => {
    const element = textarea;
    element.value = element.value.replace(
      /<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>/g,
      '',
    );
  });
}

function rmTxtFromHiddenFields() {
  const spans = document.body.querySelectorAll('span.hiddenByPF');
  spans.forEach((elem) => {
    elem.querySelectorAll('.input.oo-ui-inputWidget-input').forEach((input) => {
      const element = input;
      element.value = '';
    });
    elem.querySelectorAll('textarea').forEach((input) => {
      const element = input;
      element.value = '';
    });
  });
}

function normalizeInput() {
  const instanceMains = document.body.querySelectorAll(
    '.instanceMain div table',
  );
  instanceMains.forEach((instanceMain) => {
    function transform(string) {
      const originalString = string;
      return (
        originalString
          // "$a   Bar   \n$b    Baz" > " $a Bar $b Baz"
          .replace(/\s*(\$[a-z0-8])\s*/g, ' $1 ')
          // "$a Bar\nFoo" > "$a Bar Foo" ou "$a Bar  Foo" > "$a Bar Foo"
          .replace(/\n|\s\s+|\t/g, ' ')
          // "$aBar $bBaz" > "$a Bar $b Baz"
          .replace(/(\$[a-z0-9])([^\s])/g, '$1 $2')
          // replace "|" by "%7C" (Ex.: http://viaf.org/processed/WKP|Q2484404)
          .replace('|', '%7C')
          // remove consecutive spaces
          .replace(/ +(?= )/g, '')
      );
    }

    instanceMain
      .querySelectorAll('.oo-ui-inputWidget-input')
      .forEach((input) => {
        const normalizedInput = input;
        normalizedInput.value = transform(normalizedInput.value);
      });

    instanceMain.querySelectorAll('textarea').forEach((textarea) => {
      const normalizedInput = textarea;
      normalizedInput.value = transform(normalizedInput.value);
    });
  });
}