No description
- Add README.md with installation and usage documentation - Improve code structure and reliability |
||
|---|---|---|
| i18n | ||
| resources | ||
| src | ||
| extension.json | ||
| README.md | ||
OldUserLink
디시위키에서 import된 옛사용자의 링크를 올바른 네임스페이스로 연결하는 MediaWiki 확장입니다.
개요
K-Wiki 프로젝트에서 디시위키 데이터를 import할 때, 원본 사용자 정보는 옛@사용자명 형식의 actor로 저장됩니다. 이 확장은 해당 형식의 사용자 링크를 옛사용자: 네임스페이스로 올바르게 연결합니다.
기능
- 사용자 링크 변환:
[[사용자:옛@이름]]→[[옛사용자:이름]]으로 리다이렉트 - 토론 링크 변환:
[[사용자토론:옛@이름]]→[[옛사용자토론:이름]]으로 리다이렉트 - 페이지 역사: 편집 역사에서 옛사용자 링크를 클릭 가능하게 변환
- 기여 링크: 옛사용자에 대한 기여 링크 자동 추가
- 페이지 존재 여부 표시: 옛사용자 페이지 존재 여부에 따라 파란색/빨간색 링크 표시
요구사항
- MediaWiki 1.39.0 이상
- PHP 8.0 이상
- 커스텀 네임스페이스 설정 필요:
- NS 102: 옛사용자
- NS 103: 옛사용자토론
설치
-
확장 파일을
extensions/OldUserLink/디렉토리에 복사합니다. -
LocalSettings.php에 네임스페이스와 확장을 등록합니다:
// 옛사용자 네임스페이스 정의
define( 'NS_OLDUSER', 102 );
define( 'NS_OLDUSER_TALK', 103 );
$wgExtraNamespaces[NS_OLDUSER] = '옛사용자';
$wgExtraNamespaces[NS_OLDUSER_TALK] = '옛사용자토론';
// 확장 로드
wfLoadExtension( 'OldUserLink' );
작동 방식
1. PHP 링크 변환 (서버 사이드)
HtmlPageLinkRendererEnd 훅을 사용하여 페이지 렌더링 시 사용자 링크의 href를 수정합니다:
사용자:옛@이름→옛사용자:이름사용자토론:옛@이름→옛사용자토론:이름
2. JavaScript 링크 처리 (클라이언트 사이드)
페이지 역사 등에서 동적으로 생성된 사용자 링크를 처리합니다:
span.history-user내의옛@접두사가 붙은 사용자 링크를 찾습니다.- 링크 URL을 올바른 네임스페이스로 수정합니다.
- MediaWiki API를 통해 페이지 존재 여부를 확인하고 CSS 클래스를 업데이트합니다.
- IP 사용자의 경우
특수:기여/옛@IP로 연결합니다.
디렉토리 구조
OldUserLink/
├── extension.json # 확장 메타데이터
├── README.md # 이 파일
├── src/
│ └── Hooks.php # 훅 핸들러
├── resources/
│ └── ext.olduserlink.js # JavaScript 모듈
└── i18n/
├── en.json # 영어 메시지
├── ko.json # 한국어 메시지
└── qqq.json # 메시지 문서
라이선스
GPL-3.0-or-later
작성자
- OSNuri
- K-Wiki Project
관련 링크
- 저장소: https://git.osnuri.net/K-Wiki/OldUserLink
- K-Wiki: https://www.k-wiki.kr
- HideDuplicateRevisions: https://git.osnuri.net/K-Wiki/HideDuplicateRevisions