본문 바로가기
미디어위키

Extension MassEditRegex

by 다움위키 2024. 2. 14.

원문 보기: https://dawoum.duckdns.org/wiki/Extension:MassEditRegex

 

다움 위키에서 이 확장은 ReplaceText 확장을 대체하기 위해 사용하기 시작했습니다.

ReplaceText 확장은 크게 두 가지 문제가 있습니다.

  • 하나는 웹에서 변경이 동작하지 않는다는 것입니다. 변경된 것처럼 메시지가 출력되지만 실제로는 변경되지 않습니다.
  • 다른 하나는 2024년 2월 중산 기준, 기존에 잘 작동하던 명령-줄 방법도 허가권의 문제로 인해 귀찮은 작업으로 진행해야 하기 때문입니다.

물론 이 확장은 훨씬 더 확장된 기능을 가지지만, ReplaceText와 같이 작동하기 위해 다음과 같이 진행할 수 있습니다:

  • Search for: *오타*
  • Replace with: 수정된 문자

위에서 처럼, 앞 뒤에 확장 문자(*)를 붙여야 찾을 수 있습니다. 진보된 검색 등은 정규 표현식을 먼저 알아야 합니다.

MassEditRegex 확장은 관리자에게 각 페이지의 컨텐츠에 대해 정규 표현식을 실행하여 한 단계로 여러 페이지에 걸쳐 단일 편집을 수행하도록 허용합니다. 이는 템플릿 이름 바꾸기, 카테고리에 페이지 추가 또는 오타 수정과 같은 간단한 편집을 수행하는 데 매우 적합합니다(이 모든 작업은 여러 정규식을 제공하여 동일한 편집 작업에서 수행할 수 있습니다).

Usage

우선 확장 기능이 설치되고 MassEditRegex를 사용하기 위한 허가권 masseditregex가 부여되면, "Special:MassEditRegex"로 이동하여 편집 양식을 채우십시오. 이 확장을 사용하기 위해 정규식에 대한 지식이 필요합니다.

Features

  • 페이지 반복은 클라이언트 측에서 수행될 수 있으므로, 많은 수의 페이지를 편집할 때 PHP 최대 실행 시간은 더 이상 문제가 되지 않습니다.
  • 단일 단계에서 하나 이상의 정규 표현식을 사용하여 각 페이지를 변환합니다.
  • 편집 내용은 "봇"으로 표시되므로 사용자가 (봇 편집 내용을 표시하도록 선택하지 않는 한) 일반 편집 목록에 표시되지 않습니다.
  • 허가권 masseditregex이 있는 사용자만 변경을 수행할 수 있습니다.
  • 나열된 모든 페이지를 한 번에 편집할 수 있는 새로운 "edit all" 탭이 카테고리 페이지와 Special:WhatLinksHere에 나타납니다.
  • 편집할 페이지는 다음과 같이 지정할 수 있습니다:
    • 페이지 이름의 목록
    • 페이지 이름 접두사의 목록 (예를 들어, "Test"는 "Testing"과 "Tested"라는 페이지와 일치할 것입니다)
    • 카테고리의 목록 (카테고리 내의 모든 페이지가 편집될 것입니다)
    • 백링크의 목록 (편집된 페이지는 목록에 있는 페이지로 연결되는 페이지입니다.)

Installation

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

만약 개발자 알파 코드를 사용하기를 원하면

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'MassEditRegex' );

필요하다면 구성하십시오.

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인하십시오.

Configuration

이 확장에는 "masseditregex"라는 여분의 사용자 권한이 제공되어 이 확장을 사용할 수 있는 사용자 그룹을 세밀하게 제어할 수 있습니다. 기본적으로 허가권은 어떤 사용자 그룹에도 할당되지 않습니다. 예를 들어 "masseditregexeditor"라는 사용자 그룹에 허가권을 할당하려면, 설치의 구성 단계에서 "LocalSettings.php" 파일에 확장을 추가한 줄 바로 뒤에 다음 코드를 추가합니다:

$wgGroupPermissions['masseditregexeditor']['masseditregex'] = true;

대안적으로 다음 줄을 추가하여 기존 사용자 그룹, 예를 들어, "sysop"에 허가권을 부여할 수 있습니다:

$wgGroupPermissions['sysop']['masseditregex'] = true;

Tips

페이지 상단에 콘텐츠 추가:

  • 페이지의 시작 부분에서 임의의 첫 번째 문자를 탐지: → Search for: /^(.)/
  • 줄 바꿈을 포함하여 페이지 시작 부분에 있는 문자 앞에 내 컨텐츠를 추가합니다. → Replace with: MyContent\n$1

Known issues

Server-side execution is the default as it (should) be faster.

어쨌든, 많은 수의 페이지를 편집하는 것은 스크립트 실행 시간에 대한 PHP 제한으로 인해 서버 시간 초과를 발생시킬 것입니다. 이 문제를 해결하고 진행 상황에 대한 더 나은 피드백을 얻기 위해, "execute in browser"을 선택하여 클라이언트 측에서 작업 추적을 수행할 수 있습니다. 이는 시간 초과가 더 이상 문제가 되지 않음을 의미합니다.

Page not found

(적어도) 미디어위키 1.31 이상에서, 제공한 정규 표현식이 유효하지 않을 때, 대체하기 위해 선택된 모든 페이지는 찾을 수 없다고 잘못 표시됩니다.

Replacement in certain namespaces

특정 이름공간의 텍스트만 바꾸려는 경우, 예를 들어, "File"을 선택하고 페이지 접두어 옵션과 함께 이를 입력하면, 다음 메모를 받게 될 것입니다: "Error: The MediaWiki API returned the error code invalidtitle: Bad title "File:"."

See also