원문 보기: 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
미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.
만약 개발자 알파 코드를 사용하기를 원하면
- cd /var/www/html/w/extensions
- sudo git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MassEditRegex
미디어위키 설정 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
- Extension:Replace Text — A similar extension which however will not work if you set $wgCompressRevisions = true; for your wiki.