7 번째 수정본
Anchor 링크 개선
- "페이지이름#앵커" 에서, 페이지 이름이 한글일 때나 앵커가 한글일 경우 동작하지 않는 문제를 해결
- Bab2님의 패치를 적용
- 필수 요구 사항: 없음
- 선택 요구 사항: 없음
- 부작용 : 모름
- 각종 링크 패턴들을 치환하는 루틴이 오리지널 버전에서 K3 로 넘어오면서 많이 바뀌었는데, 그 와중에 링크들이 뭔가 일관성이 없게 걸리는 것 같은 느낌을 받는다.. 뭐 쓰는 데에 지장없으니 통과.
- wiki.pl 에서
###############
### added by gypark
### 패치를 위해 추가된 내부 전역 변수
use vars qw(%RevisionTs $FS_lt $FS_gt $StartTime $Sec_Revision $Sec_Ts
$ViewCount $AnchoredFreeLinkPattern); # AnchoredFreeLinkPattern 추가
###
###############
-
sub InitLinkPatterns {
...
$QDelim = '(?:"")?'; # Optional quote delimiter (not in output)
###############
### replaced by gypark
### anchor 에 한글 사용
# $AnchoredLinkPattern = $LinkPattern . '#(\\w+)' . $QDelim if $NamedAnchors;
$AnchoredLinkPattern = $LinkPattern . '#([0-9A-Za-z\xa0-\xff]+)' . $QDelim if $NamedAnchors;
###
###############
$LinkPattern .= $QDelim;
...
$FreeLinkPattern .= $QDelim;
###############
### added by gypark
### 한글패이지에 anchor 사용
### from Bab2's patch
$AnchoredFreeLinkPattern = $FreeLinkPattern . '#([0-9A-Za-z\xa0-\xff]+)' . $QDelim if $NamedAnchors;
###
###############
# Url-style links are delimited by one of:
...
}
-
sub CommonMarkup {
...
if ($FreeLinks) {
# Consider: should local free-link descriptions be conditional?
# Also, consider that one could write [[Bad Page|Good Page]]?
s/\[\[$FreeLinkPattern\|([^\]]+)\]\]/&StorePageOrEditLink($1, $2)/geo;
s/\[\[$FreeLinkPattern\]\]/&StorePageOrEditLink($1, "")/geo;
###############
### added by gypark
### 한글패이지에 anchor 사용
### from Bab2's patch
s/\[\[$AnchoredFreeLinkPattern\|([^\]]+)\]\]/&StoreBracketAnchoredLink($1, $2, $3)/geos if $NamedAnchors;
s/\[\[$AnchoredFreeLinkPattern\]\]/&StoreRaw(&GetPageOrEditAnchoredLink($1, $2, ""))/geos if $NamedAnchors;
###
###############
}
...
}
그리고 이거는 별개로... <anchor(앵커이름)> 했을때 <a name="#앵커이름"> 로 치환되는데 끝에 </a> 가 더 있어야 되지 않나 싶어서...
-
sub MacroAnchor() { return "<a name=\"\#@_\"></a>"; } # 뒤에 </a> 를 붙여줌
사용자 의견
이건 개선인지 개악인지 조금 모호한 것이...원래 앵커가 절대좌표(?)로 인식되었었는데 이제 상대좌표로 걸리게 됩니다. 누군가가 중간에 앵커를 삽입하거나 삭제하면 그 뒤의 놈들은 모두 영향을 받게 되지요. :)
오래간만에 글을 남기긴 했지만 종종 들어와서 횡설수설을 읽고 간답니다. 요즘 십자군이야기를 재미있게 읽고있네요.
- 안녕하세요~ 무슨 말씀인지 전혀 이해가 되지 않습니다. :-O 앵커의 상대좌표란게 뭔가요?
예전에는 toc에서 영어로 된 놈이 타이틀로 있다면 [[PinkFloyd#Wish_You_Were_Here]]이런 식으로 절대값을 써서 앵커를 정의할 수 있었지요. 그런데 지금은 [[PinkFloyd#H_4]]이런 식으로만 가능하다는 거지요. 이러면 중간에 타이틀이 삽입될 경우 다른 경로를 가리키게 되니까요 :)
위키위키분류