본문 바로가기
미디어위키

Extension LinkAttributes

by 다움위키 2023. 12. 28.

LinkAttributes 확장은 rel="author"와 같은 사용자 지정 특성을 허용하도록 링크 구문을 확장합니다.

Usage

추가 속성은 링크 끝에 다음과 같이 파이프 (|) 또는 분리된 파이프 (¦)로 구분하여 추가됩니다:

 [http://www.twitter.com/me my Twitter account|rel=me]

또는

 [[User:Me|my userpage|rel=me]]

허용되는 속성은 다음과 같습니다: rel, rev, charset, type, hreflang itemprop, media, title, accesskey, target, 그리고 class.

(테이블이 있는 내부 템플릿과 같은) 일부 위치에서는, 파이프가 MediaWiki에 특별한 의미가 있기 때문에, 사용하기가 어려울 수 있습니다. 따라서 끊어진 파이프 (¦)도 이 확장자와 함께 작동합니다: Oranges¦itemprop=fruit. 주목할 것은 다음은 속성을 추가하지 않는다는 점입니다: [[User:James|rel=author]]. 확장 기능은 rel=author가 속성 또는 링크될 실제 텍스트로 되어 있는지를 알 수 없기 때문에 다음과 같이 링크를 작성해야 합니다: [[User:James|James|rel=author]]. 또한, 이 확장을 설치한 후에는, 파이프 문자는 링크 텍스트에서 작동하지 않습니다.

Installation

0.2판 내려받기 지면에서 해당 판을 내려받아서 정해진 위치(extensions)로 이동시킵니다.

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

require_once "$IP/extensions/LinkAttributes/LinkAttributes.php";

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인을 합니다.

Trobleshooting

소스가 배포되고 나서 문제가 생긴 부분의 패치가 아직 적용이 되지 않았습니다. 파일 extension/LinkAttributes/LinkAttributes.body.php을 수정합니다:

        foreach ( $arr as $a ) {

            $pair = explode( '=', $a );

            /* Only go ahead if we have a aaa=bbb pattern, and aaa i an allowed attribute */
            if ( isset( $pair[1] ) && in_array( $pair[0], self::$attrsAllowed ) ) {
                $attribs[$pair[0]] = (isset($attribs[$pair[0]])) ? $attribs[$pair[0]] . ' ' . $pair[1] : $pair[1];
            }

        }

        return true;

메인 페이지에 있는 링크 부분이 동작하지 않는 것은 0.2판에서 class 부분을 제거했기 때문입니다. 다음과 같이 extension/LinkAttributes/LinkAttributes.body.php 파일을 수정합니다.

class LinkAttributes {
    private static $attrsAllowed=array( 'rel', 'rev', 'charset ', 'type', 'hreflang', 'itemprop', 'media', 'title', 'accesskey', 'target', 'class' );

External Resources