최신판 |
당신의 편집 |
13번째 줄: |
13번째 줄: |
| 외부 서비스들 중에서 가져오지 못하는 것들은 [[가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/영상 가져오기]] 문서를 참고하자! | | 외부 서비스들 중에서 가져오지 못하는 것들은 [[가온 위키:기능 구현 불가-누가 해결책을 알려주세요!/영상 가져오기]] 문서를 참고하자! |
|
| |
|
| ===이미지 관련 문제===
| | ===이미지 크기 설정시 파일 링크만 뜨는 현상=== |
| ====이미지 크기 설정시 파일 링크만 뜨는 현상====
| |
| <nowiki>[[파일:updates.png|100px]]</nowiki> 이렇게 하면 일반 문서처럼 링크로 뜬다. 서버 이전 전에는 이러지 않았는데... | | <nowiki>[[파일:updates.png|100px]]</nowiki> 이렇게 하면 일반 문서처럼 링크로 뜬다. 서버 이전 전에는 이러지 않았는데... |
|
| |
|
| [https://m.mediawiki.org/w/index.php?title=Topic:Rnjccxoqss9wfedy&topic_showPostId=rnq05rzcc6o7z4hc#flow-post-rnq05rzcc6o7z4hc 미디어위키 헬프 데스크]에서 찾았다. | | [https://m.mediawiki.org/w/index.php?title=Topic:Rnjccxoqss9wfedy&topic_showPostId=rnq05rzcc6o7z4hc#flow-post-rnq05rzcc6o7z4hc 미디어위키 헬프 데스크]에서 찾았다. |
|
| |
|
| =====수정 전=====
| | ====수정 전==== |
| [[미디어위키]]의 루트 폴더에 있는 [[미디어위키/LocalSettings.php|LocalSettings.php]]를 수정한다. | | [[미디어위키]]의 루트 폴더에 있는 [[미디어위키/LocalSettings.php|LocalSettings.php]]를 수정한다. |
|
| |
|
| =====수정 후=====
| | ====수정 후==== |
| [[LocalSettings.php]]의 하단 부분에 추가하자. | | [[LocalSettings.php]]의 하단 부분에 추가하자. |
| <syntaxhighlight lang='php'> | | <syntaxhighlight lang="PHP"> |
| $wgGenerateThumbnailOnParse = true; | | $wgGenerateThumbnailOnParse = true; |
| </syntaxhighlight> | | </syntaxhighlight> |
34번째 줄: |
33번째 줄: |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| =====하고 싶은말=====
| | ====하고 싶은말==== |
| 이 오류는 [[미디어위키]] 1.27 버전에서는 없던 오류이므로 1.30 이상 버전의 오류같다. 물론 썸네일은 [[Imagemagick]]가 미리 설치 및 [[미디어위키]]에서 미리 설정 되어 있어야 한다. | | 이 오류는 [[미디어위키]] 1.27 버전에서는 없던 오류이므로 1.30 이상 버전의 오류같다. 물론 썸네일은 [[Imagemagick]]가 미리 설치 및 [[미디어위키]]에서 미리 설정 되어 있어야 한다. |
|
| |
| ====SVG 파일 업로드시 썸네일의 흑백화====
| |
| SVG 파일을 업로드하면 원래 가지고 있던 색상값은 표시되지 않고 흑백으로만 표시가 된다. 이는 SVG를 png로 변환하는 프로그램인 ImageMagick의 특정 버전에서 나타난 오류이다. [https://bbs.gaonwiki.com/free/3877 zlzleking님]이 보고해 주셨다.
| |
|
| |
| =====수정 전=====
| |
| 먼저 Inkscape를 설치한다. 우분투 기준으로 아래의 명령어를 입력하면 된다.
| |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/# apt update
| |
| root@gaon:/# apt install inkscape
| |
| </syntaxhighlight>
| |
|
| |
| 이후 [[미디어위키]]의 루트 폴더에 있는 [[미디어위키/LocalSettings.php|LocalSettings.php]]를 수정한다.
| |
|
| |
| <syntaxhighlight lang='php'>
| |
| $wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight>
| |
|
| |
| =====수정 후=====
| |
| [[LocalSettings.php]]의 하단 부분에 추가하자. Inkscape의 경로는 자신의 환경에 맞춰 수정하자.
| |
| <syntaxhighlight lang='php'>
| |
| $wgSVGConverterPath = '/usr/bin/inkscape';
| |
| $wgSVGConverters = [
| |
| 'Inkscape' => '/usr/bin/inkscape -w $width -z -w $width -f $input -e $output',
| |
| ];
| |
| $wgSVGConverter = 'Inkscape';
| |
|
| |
| #$wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight>
| |
|
| |
| 여기서
| |
| <syntaxhighlight lang='php'>
| |
| $wgSVGConverter = 'ImageMagick';
| |
| </syntaxhighlight>
| |
| 부분은 반드시 주석처리 한다.
| |
|
| |
| 그리고 [[미디어위키]] 버전이 1.30 이상인 경우, 썸네일을 재생성하자. [[미디어위키]]의 루트 폴더에서 '''maintenance''' 폴더로 이동한 뒤, 아래의 명령어를 입력하자.
| |
|
| |
| <syntaxhighlight lang='console'>
| |
| root@gaon:/var/www/html/w/maintenance# php rebuildImages.php
| |
| </syntaxhighlight>
| |
|
| |
|
| ===신택스 강조(Syntax Highlight) 사용시 사용된 문서가 '''구문 강조에 오류가 있는 문서'''로 분류되는 현상=== | | ===신택스 강조(Syntax Highlight) 사용시 사용된 문서가 '''구문 강조에 오류가 있는 문서'''로 분류되는 현상=== |
108번째 줄: |
67번째 줄: |
| </syntaxhighlight> | | </syntaxhighlight> |
| 이라고 입력한다. 이때 버전은 위의 버전과 다를 수 있다. | | 이라고 입력한다. 이때 버전은 위의 버전과 다를 수 있다. |
|
| |
| ===TitleKey 확장기능 설치===
| |
| 대소문자 구분 없이 문서를 검색 할 수 있는 [[미디어위키/확장기능/TitleKey|TitleKey]] 설정 중, <code>php extensions/TitleKey/maintenance/rebuildTitleKeys.php</code> 명령어를 입력할 때, 경로를 찾지 못하는 문제가 있다.
| |
|
| |
| 이 문제는 환경변수 <code><nowiki>$IP</nowiki></code>가 경로를 제대로 반환하지 않아 생기는 문제이다.
| |
|
| |
| 여기서는 환경변수 <code><nowiki>$IP</nowiki></code>를 수정하지 않고, 9번째 줄을 절대경로로 바꾸어 사용했다. 사용 환경에 맞추어 수정하길 바란다.
| |
|
| |
| ====수정 전====
| |
| <syntaxhighlight lang='php' start='5' highlight='5'>
| |
| $IP = getenv( 'MW_INSTALL_PATH' );
| |
| if ( $IP === false ) {
| |
| $IP = __DIR__ . '/../..';
| |
| }
| |
| require_once "$IP/maintenance/Maintenance.php";
| |
|
| |
| // In case we want to do offline initialization...
| |
| if ( !class_exists( 'TitleKey' ) ) {
| |
| require __DIR__ . '/../includes/TitleKey.php';
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| ====수정 후====
| |
| <syntaxhighlight lang='php' start='5' highlight='5'>
| |
| $IP = getenv( 'MW_INSTALL_PATH' );
| |
| if ( $IP === false ) {
| |
| $IP = __DIR__ . '/../..';
| |
| }
| |
| require_once "/var/www/html/w/maintenance/Maintenance.php";
| |
|
| |
| // In case we want to do offline initialization...
| |
| if ( !class_exists( 'TitleKey' ) ) {
| |
| require __DIR__ . '/../includes/TitleKey.php';
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| 또는 상대경로로 지정해도 된다. 이 경우에는 미디어위키 설치 경로에 구애받지 않는다는 장점이 있다.
| |
|
| |
| <syntaxhighlight lang='php' start='5' highlight='5'>
| |
| $IP = getenv( 'MW_INSTALL_PATH' );
| |
| if ( $IP === false ) {
| |
| $IP = __DIR__ . '/../..';
| |
| }
| |
| require_once "../../../maintenance/Maintenance.php";
| |
|
| |
| // In case we want to do offline initialization...
| |
| if ( !class_exists( 'TitleKey' ) ) {
| |
| require __DIR__ . '/../includes/TitleKey.php';
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| ==비주얼 에디터 설치==
| |
| 비주얼 에디터를 설치하고, 사용할 수 있다. 다만 짧은 주소 설정시 오류가 발생할 수 있으므로 본 코드를 사용하자.
| |
|
| |
| ===짧은 주소 설정(선택, 권장)===
| |
| 짧은 주소를 설정하자. .htaccess를 사용하므로 아파치 이용자만 할 수 있다.(짧은 주소 자체는 nginx도 할 수 있지만, 서술하지 않음).
| |
|
| |
| 먼저 [[미디어위키/LocalSettings.php|LocalSettings.php]]가 있는 루트 폴더로 이동하여 .htaccess를 열자. 없으면 생성하자.
| |
|
| |
| 이후 아래와 같이 입력한다.
| |
|
| |
| <syntaxhighlight>
| |
| RewriteEngine On
| |
| RewriteBase /w/
| |
| RewriteRule ^index\.php$ - [L]
| |
| RewriteCond %{REQUEST_FILENAME} !-f
| |
| RewriteCond %{REQUEST_FILENAME} !-d
| |
| RewriteRule . /w/index.php [L]
| |
|
| |
| RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
| |
| RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]
| |
|
| |
| RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
| |
| RewriteRule ^/?images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2 [L,QSA,B]
| |
|
| |
| RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
| |
| RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
| |
| RewriteRule ^/?images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
| |
| </syntaxhighlight>
| |
|
| |
| 여기서 2번째 줄과 6번째 줄에 있는 <code>/w/</code> 부분에 원하는 줄임(<nowiki>https://example.com/w/문서명</nowiki>) 단어를 입력한다.
| |
|
| |
| [https://wnw1005.tistory.com/168 출처 : 씨실과 날실님 티스토리 블로그], [https://www.mediawiki.org/wiki/Topic:W2ahzg3yi27mvp9y 미디어위키 토론 중 Rogerhc님의 답변]
| |
|
| |
| 이후 LocalSettings.php 하단에 다음과 같이 입력한다.
| |
| <syntaxhighlight lang='php'>
| |
| $wgScriptExtension = ".php";
| |
| $wgArticlePath = "{$wgScriptPath}/$1";
| |
| $wgUsePathInfo = true;
| |
| </syntaxhighlight>
| |
|
| |
| ===비주얼 에디터 설치===
| |
| 1.37버전은 이미 extensions 폴더에 있다. 코어에 포함되어 있으나, 삭제한 사람은 [https://www.mediawiki.org/wiki/Extension:VisualEditor 미디어위키 비주얼 에디터 페이지]에서 자신의 버전에 맞게 다운로드 받은 뒤 extensions 폴더 안에 넣는다.
| |
|
| |
| 이후 LocalSettings.php 하단에 다음과 같이 입력한다.
| |
| <syntaxhighlight lang='php'>
| |
| wfLoadExtension( 'VisualEditor' );
| |
| </syntaxhighlight>
| |
|
| |
| 이러면 끝이다.
| |
|
| |
| == 미디어위키 1.39 버전 업그레이드 이후 분류값 앞에 점이 표시되고 세로로 정렬되는 문제 ==
| |
| 미디어위키 1.39 rc버전에서는 이런 문제가 없었지만, 1.39 정식버전에서는 분류값 앞에 점이 표시되고, 세로로 정렬되는 문제가 있다. 또한 분류값이 '''분류:'''밑에 줄에 표시되는 문제가 있다.
| |
| [[파일:미디어위키1_39_분류_문제.png]]
| |
|
| |
| 이는 [[미디어위키:Common.css]] 문서를 수정하면 된다.
| |
|
| |
| === 수정 전 ===
| |
| <syntaxhighlight lang='css'>
| |
| /* 이 CSS 설정은 모든 스킨에 적용됩니다 */
| |
| .mw-highlight pre {
| |
| font-size: 90%;
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| === 수정 후 ===
| |
| <syntaxhighlight lang='css'>
| |
| /* 이 CSS 설정은 모든 스킨에 적용됩니다 */
| |
| .mw-highlight pre {
| |
| font-size: 90%;
| |
| }
| |
|
| |
| /* 1.39 버전에서 분류 표시가 li로 표시돠는 문제 해결 */
| |
| #mw-normal-catlinks > ul {
| |
| list-style: none;
| |
| }
| |
|
| |
| #mw-normal-catlinks > ul > li {
| |
| float: left;
| |
| margin-right: 15px;
| |
| }
| |
|
| |
| /* 분류: 밑부분에 분류값이 표시되는 문제 해결 */
| |
| #mw-normal-catlinks {
| |
| display: flex;
| |
| align-items: center;
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
|
| ==구현한 기능== | | ==구현한 기능== |
| === 인디케이터 표시 ===
| | * [https://github.com/jeremenichelli/scrollProgress scrollProgress] 를 이용하여 스크롤한 범위 표시 |
| [https://github.com/merlinwarage/simple-scroll-progress simple-scroll-progress]를 이용하여 스크롤한 범위를 표시하는 기능입니다. | |
| | |
| [[파일:리버티 스킨-스크롤 범위.gif]]<ref>초기의 타 라이브러리를 사용한 모습. 현재 버전은 본 위키에 적용되어 있다.</ref>
| |
| | |
| 혹시 사용하고 싶다면, [https://github.com/gaon12/Liberty Liberty 깃허브 저장소]를 다운로드 받아 사용하면 된다. 라이브러리는 외부에서 불러오니 참고하자.
| |
| | |
| === 클라우드플레어 원본 IP 주소 표시 ===
| |
| 클라우드플레어 사용 시, 비로그인 유저가 문서를 편집하는 경우, ip주소가 클라우드플레어의 ip로 기록됩니다. 이를 수정해주는 확장기능을 개발하여 배포합니다.
| |
| | |
| {{깃허브/저장소|gaon12|mw_CloudflareRealIP}} 확장기능을 설치하면, 원본 IP 주소가 표시됩니다.
| |
| | |
| ==== 설치 ====
| |
| # 먼저 GitHub 저장소에서 확장기능을 다운로드하세요.
| |
| # 다운로드 받은 확장기능을 미디어위키의 "extensions" 폴더에 업로드합니다.
| |
| # 미디어위키의 "LocalSettings.php" 파일을 찾아 아래 코드를 추가하세요
| |
| | |
| <br>
| |
| <syntaxhighlight lang='php'>
| |
| wfLoadExtension( 'CloudflareRealIP' );
| |
| </syntaxhighlight>
| |
| | |
| ==== 사용법 ====
| |
| 이 확장기능을 설치하고 나면 아무런 추가 설정 없이 자동으로 작동합니다. CloudflareRealIP 확장기능은 미디어위키에서 로그인하지 않고 편집할 때 Cloudflare의 IP 주소 대신 원래 사용자의 IP 주소를 저장합니다.
| |
| | |
| ==== 참고 사항 ====
| |
| 이 확장기능은 미디어위키 1.25 이상과 호환됩니다. 또한 Cloudflare 서비스를 사용하는 경우에만 필요하며, Cloudflare를 사용하지 않거나 단순히 DNS만 사용하는 경우 설치할 필요가 없습니다.
| |
| | |
| ==== 원리 ====
| |
| Cloudflare Real IP 확장 기능의 작동 원리는 다음과 같습니다:
| |
| | |
| # 사용자가 미디어위키에서 로그인하지 않고 편집을 진행합니다.
| |
| # Cloudflare는 사용자의 원래 IP 주소를 "CF-Connecting-IP"라는 HTTP 헤더를 통해 전달합니다.
| |
| # 미디어위키에서는 로그인하지 않은 사용자의 IP 주소를 기록하려 할 때 UserGetIP 이벤트가 발생합니다.
| |
| # Cloudflare Real IP 확장 기능은 이 이벤트를 통해 사용자의 IP 주소를 가져옵니다.
| |
| # 확장 기능은 $_SERVER['HTTP_CF_CONNECTING_IP'] 변수를 확인하여 Cloudflare가 전달한 원래 사용자의 IP 주소가 있는지 확인합니다.
| |
| # 원래 사용자의 IP 주소가 있다면, 확장 기능은 이 IP 주소로 미디어위키에 저장되는 IP 주소를 변경합니다.
| |
| # 결과적으로, 미디어위키에서 로그인하지 않은 사용자의 편집 기록에 원래 사용자의 IP 주소가 저장됩니다.
| |
| | |
| 이 확장 기능을 사용하면 Cloudflare를 사용하는 경우에도 미디어위키에서 로그인하지 않은 사용자의 원래 IP 주소를 정확하게 기록할 수 있습니다. 이로 인해 IP 주소를 기반으로 한 사용자 관리 및 안전 조치가 훨씬 간편해집니다.
| |
| | |
| ==== 라이선스 ====
| |
| [[MIT 라이선스]]로 배포됩니다.
| |
| | |
| === 단축 URL 생성 ===
| |
| 긴 문서의 URL, 특히 문서명이 한글로 이루어져 있는 경우, URL이 길어져 공유할 때 불편합니다. 그래서 단축 URL을 생성하고, 복사할 수 있는 기능을 추가했습니다.
| |
| | |
| ==== 사용 방법 ====
| |
| 문서 최하단에 CCL 표기 부분과 '''개인정보처리방침 가온 위키 소개 면책 조항''' 링크 부분 사이에 '''• 현재 페이지 URL 줄이기''' 메뉴를 누르면, 팝업창이 뜨면서 현재 문서의 단축된 URL이 생성이 됩니다.
| |
| | |
| ==== 원리 ====
| |
| [[미디어위키]]에는 문서를 편집할 때마다, 문서의 역사에 고유한 번호를 부여합니다. 이 번호는 <code>oldid</code>로, 1부터 편집할 때마다 1씩 증가합니다. 자세한 내용은 [[미디어위키/oldid]] 문서를 참고하세요!
| |
|
| |
|
| <code>oldid</code> 값을 62진법<ref>숫자(0-9) + 알파벳 대문자(A-Z) + 알파벳 소문자(a-z)</ref>으로 변환하여 단축된 URL을 제공합니다. 일반 문서와 혼동이 생기지 않도록, <code>/a/</code> 경로로 제공됩니다.
| | [[파일:리버티 스킨-스크롤 범위.gif]] |
|
| |
|
| ==== 주의사항 ====
| | 혹시 사용하고 싶다면, [https://github.com/gaon12/Liberty Liberty 깃허브 저장소]를 다운로드 받아 [https://github.com/gaon12/Liberty/blob/master/LibertyTemplate.php LiberttTemplate.php]에서 /w/skins···로 시작하는 경로를 수정하여 사용하자. |
| * <code>oldid</code> 값은 문서가 편집되면 새롭게 바뀌므로, 예전에 생성된 URL 값과 현재의 URL 값에는 차이가 있을 수 있습니다. 하지만 둘 다 원래의 문서로 자동으로 이동하므로 걱정하지 않아도 됩니다.
| |
| * 특수 문서, 편집 페이지 등 <code>oldid</code> 값이 존재하지 않는 페이지에는 본 메뉴가 생성되지 않습니다.
| |
|
| |
|
| ==각주== | | ==각주== |