Popups 확장은 현재 지면에 다른 지면의 링크가 있을 경우에 사용되며, 사용자가 마우스를 올려서 해당 지면 링크를 가리키면 해당 지면의 최상단 컨텐츠를 현재 지면에 미리보기로 보여주는 역할을 합니다.
이것은 인기있는 Navigation popups 가젯에서 영감을 얻은, 디자인 팀에 의해 발의되었습니다. 현재 이 기능은 모든 위키 백과에서 사용할 수 있습니다(영어와 독일어 위키피디아 제외). 확장 기능이 위키미디어 프로젝트에서 어떻게 사용되는지에 대한 설명이 페이지 미리보기에서 제공됩니다.
Dependencies
이 확장이 정상적으로 동작하기 위해서는 TextExtracts 확장과 PageImages 확장이 반드시 설치되어 있어야 합니다.
추가적으로 BetaFeatures 확장(BetaFeatures가 없을 때에는, 모든 사용자에게 로딩됩니다), EventLogging 확장, WikimediaEvents 확장이 필요할 수도 있습니다.
Installation
미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.
미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:
wfLoadExtension( 'Popups' );
$wgPopupsBetaFeature = true;
데이터베이스의 변경이 필요하기 때문에 아래 명령을 수행해야 합니다.
- cd /var/www/html/w
- php maintenance/update.php
Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인을 합니다.
Configuration options
다음 선택사항은 전부 위키 관리자만 설정할 수 있습니다:
Option | Default value | Documentation |
$wgPopupsBetaFeature | false | 확장 기능을 opt-in 베타 기능으로 활성화할지 여부. 만약 true면, BetaFeatures 확장 프로그램을 설치해야 합니다. 기본값: false |
$wgPopupsHideOptInOnPreferencesPage | false | 환경 설정 페이지에서 페이지 미리보기를 활성화/비활성화하는 선택사항을 숨길 지 여부. 만약 PopupsBetaFeature가 true면, 이 선택사항은 항상 숨겨집니다. 기본값: false |
$wgPopupsOptInDefaultState | 0 | 기본 페이지 가시성 미리보기. 베타 기능 설정과의 호환성을 위한 문자열이어야 합니다. |
$wgPopupsConflictingNavPopupsGadgetName | Navigation_popups | 탐색 팝업 가젯 이름 |
$wgPopupsGateway | mwApiPlain | 팝업 데이터를 가져오는 것에 사용할 게이트웨이. 사용 가능한 선택사항: [mwApiPlain|restbasePlain|restbaseHTML]. 전체 및 항상 최신 목록은 src/gateway/index.js에서 사용할 수 있습니다. |
$wgPopupsAnonsExperimentalGroupSize | 0 | A/B 테스트를 받아야 하는 사용자의 비율을 정의합니다. 활성화 되었을 때, 이 그룹에 속한 사용자의 절반이 페이지 미리보기를 볼 수 있습니다. 나머지는 미리보기가 표시되지 않고 컨트롤 그룹 크기가 활성화된 버킷과 일치하는 두 개의 버킷 중 하나로 나뉩니다. 만약 정의되지 않거나, 또는 0이면, 사용자는 실험 대상이 아니고 $wgPopupsBetaFeature가 활성화되어 있지 않은 경우에는 모든 사용자에게 미리보기가 사용 설정됩니다. |
$wgPopupsEventLogging | false | 이벤트를 기록해야 하는지 여부. 이것은 PopupsAnonsExperimentalGroupSize와 함께 신중하게 사용해야 합니다. 주목할 것은 만약 이 변수를 사용하지 않고 이 선택사항을 활성화하면, 모든 사용자에 대해 이벤트가 기록됩니다. 조심하십시요! |
$wgPopupsExperiment | true | 데스크탑 안정에 Popup과 함께 A/B 실험을 활성화. |
$wgPopupsExperimentConfig |
$wgPopupsExperimentConfig = [
'name' => 'Popups A/B Test - May, 2016', 'enabled' => true, 'buckets' => [ 'control' => 0.5, 'A' => 0.5 ], ]; |
팝업 A/B 테스트를 위한 구성 control 및 bucket은 팝업이 활성화된 사용자의 비율을 결정합니다. Bucketing은, 사용자 계정이 아닌, 브라우저/장치별로 수행됩니다. $wgPopupsExperiment는 만약 베타 기능에서 명시적으로 활성화된 경우에 팝업을 활성화되도록 설정한 실험 설정을 덮어씁니다. |
$wgPopupsSchemaSamplingRate | 0 | 성능 데이터를 statsv에 기록하기 위한 표본화 속도 |
$wgPopupsSurveyLink | 설문 조사를 위한 URL | |
$wgPopupsPageBlacklist | [ "Special:Userlogin", "Special:CreateAccount" ] |
블랙리스트에 올라있는 페이지는 위키의 HTML 캐시 정책의 적용을 받습니다. 이 구성 변수의 효과를 보기 위해서는, 블랙리스트에 있는 페이지를 제거해야 할 수 있습니다. 모든 차단된 페이지는 정식 이름으로 정의해야 합니다, 예를 들어: Special:Userlogin |
Content
팝업에는 이미지(만약 사용 가능한 경우에), 작은 텍스트 발췌 및 마지막 편집의 타임스탬프가 표시됩니다.
Image
이미지는 Extension:PageImages에서 가져오며 기사와 관련된 가장 적합한 작은 이미지를 반환합니다. 유지 관리 템플릿, 스텁, 플래그 아이콘 등을 무시합니다.
Text
텍스트는 Extension:TextExtracts에서 제공되며 일반 텍스트 추출이 요청됩니다(제외 항목은 해당 확장 참조). 소개 섹션에서 두 문장을 요청하고 텍스트가 카드에서 넘치지 않도록 CSS를 통해 제한을 둡니다. 이것은 해당 요소에 최대-높이를 적용하여 수행됩니다. 이 접근법은 언어의 스크립트와 상관없이 동일한 시각적 해결책을 제공합니다. 큰 단점은 텍스트가 갑자기 멈추고 타원을 추가할 수 없다는 것입니다.
Show/hide timing
표시/숨기기의 타이밍은 현재 코드를 통해 조정할 수 있으며, 이 코드는 지역 Special:MyPage/Common.js 또는 MediaWiki:Common.js 파일에 추가해야 합니다:
mw.loader.using( [ 'ext.popups' ], function() { // 팝업이 로드되기를 기다립니다.
// 마우스 올렸을 때, 팝업을 표시하기 전에 ms 단위로 대기하는 시간입니다. 기본값: 500
mw.popups.render.POPUP_DELAY = 500;
// 마우스 내렸을 때, 팝업을 닫기 전에 ms 단위로 대기하는 시간입니다. 기본값: 300
mw.popups.render.POPUP_CLOSE_DELAY = 300;
// 마우스 올렸을 때, API 쿼리를 시작하기 전까지 기다리는 밀리 초 <= POPUP_DELAY 여야만 합니다. 기본값: 50
// 이것의 정확한 의미를 알지 못하면, 바꾸지 마십시오.
mw.popups.render.API_DELAY = 50;
});
Renderers
이 확장에는 현재 오직 하나의 렌더러, 즉 일반 페이지를 위한 렌더러만 있습니다.
다른 종류의 페이지에 대한 새로운 렌더러, 또는 참조 같은 것을 쉽게 추가할 수 있습니다.
다음 방법으로 새로운 객체를 만들어야 합니다:
- init
- createPopup
- getOffset
- getClasses
- processPopup
ext.popups.renderer.article.js 또는 참조를 위한 렌더러를 추가하는 패치에서 이러한 메소드의 세부 정보를 볼 수 있습니다.
Known problems
번역 확장의 사용자는 페이지 미리보기에서 페이지의 컨텐츠 언어로 미리보기를 요청합니다. 만약 미리보기에 완전한 번역 가능한 블록이 포함되어 있으면, 번역될 것입니다. 그러나, 만약 미리보기에 번역할 수 없는 불완전한 블록이 포함되어 있으면 – 문장이 잘리기 때문에 – 번역되지 않고 페이지의 컨텐츠 언어로 표시됩니다. 만약 이 행동을 관찰하는 경우에는, 리드 섹션(lead section)에서 개별 문장을 마크-업하는 것이 좋습니다.
T167852는 기술적인 청중을 위한 것이지만 근본적인 문제에 대한 자세한 정보가 있습니다.
FAQ
Why can't I copy and paste text from a preview?
글을 쓰는 시점에서, 그렇게 하는 것의 단점은 찬성보다 중요합니다. 본질적으로 그것은 터치 영역을 줄이면 전체 기사를 읽을 수 있습니다. 한번 페이지 미리보기가 영어 및 독일어 위키피디아에 배포되면, 이 작업을 다시 열고 토론을 재개하십시오. 그러나 지금은 계획이 없습니다.
How can I remove content from a page preview?
TextExtracts는 noexcerpt 클래스로 표시된 모든 요소를 제거합니다. 이 클래스는 $wgExtractsRemoveClasses 구성 변수에 있는 클래스 중 하나입니다.