테스트 사이트 - 개발 중인 베타 버전입니다

게시글에 자동링크 주기

· 3년 전 · 4011 · 13

대부분의 에디터들은 http 또는 https 로 시작하는 주소를 주면 자동링크가 먹힙니다만

에디터에 따라 또는 텍스트 옵션으로 글쓰기를 하는 경우에는 자동링크가 걸리지 않을 수도 있습니다.

 

view.skin.php 의 가장 하단부에 아래의 스크립트를 입력합니다.

이 코드는 게시글 안에 있는 기존의 a 태그까지 보호합니다.

그래서 자동링크 옵션이 있는 스마트에디터 등에 적용을 해도 상관은 없습니다만 중복성이기에 그럴 필요는 없고 자동링크가 보장되지 않는 에디터에만 사용하세요.

 

이미지나 오디오 또는 비디오나 아이프레임의 src 와 모든 엘레먼트의 title 과 이미지의 alt 그리고 배경으로 사용하는 백그라운드 이미지 경로는 링크로 바뀌지 않습니다.

 

링크 타겟은 _blank 로 주었는데 _self 등으로 바꾸려면 그 부분(딱 한 곳)만 찾아서 고쳐주세요.

프로토콜은 http 와 https 두 개만 적용하였습니다.

 

[code]

<script>
function autoLink() {
    for (beforeLink of arguments[0].querySelectorAll("a")) beforeLink.innerHTML = beforeLink.innerHTML.replaceAll('htt', 'htt*');
    keepProtocol = arguments[0].innerHTML.replaceAll('="htt', '="htt*');
    arguments[0].innerHTML = keepProtocol.replace(new RegExp("(http|https)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)", "gi"), "<a href='$1://$2' target='_blank' rel='nofollow'>$1://$2</a>").replaceAll('="htt*', '="htt');
    for (afterLink of arguments[0].querySelectorAll("a")) afterLink.innerHTML = afterLink.innerHTML.replaceAll('htt*', 'htt');
}
autoLink(bo_v_con);
</script>

[/code]

 

autoLink(bo_v_con); 에서 bo_v_con 은 게시글의 본문을 담는 div 의 아이디입니다.

이것 대신 아래의 것들 중 본인이 편한 걸 사용해도 되겠습니다.

 

autoLink(this["bo_v_con"])
autoLink(window["bo_v_con"])
autoLink(document.getElementById("bo_v_con"))
autoLink(document.querySelector("#bo_v_con"))

 

꼭 bo_v_con 뿐 만이 아니라 다른 형태의 컨텐츠라 할지라도 아이디나 클래스 등을 가지고 같은 형태로 원하는 영역에 자동링크를 줄 수 있게끔 함수로 만들었으니 응용해서 사용하실 분은 그렇게 하세요.

 

참고로 https://sir.kr/g5_skin/51500 에서 자동링크가 안 먹는 에디터의 경우는

이 게시글의 코드를 적용하거나 아니면 이 게시글의 코드를 링크게시글 첨부파일의 가장 상단에 넣어주세요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 13개

3년 전
타 사이트에서 복사해다 붙여넣었을때 사진이 안보여서 원인을 찾다보니
본문 코드를 적용하면 이미지 붙여넣기 했을때 이미지가 안보이네요.

예를 들어 아래 https://v.daum.net/v/20220824202703438 페이지를 복붙했을 경우

// 본문 코드 없을경우
<img alt="지난 2018년 3월23일 뇌물수수 혐의로 구속영장이 발부된 이명박 전 대통령이 서울 논현동 자택에서 서울동부구치소로 향하자 이 전 대통령의 아들 이시형씨가 눈물을 흘리고 있다. /경향신문 자료사진" class="thumb_g_article" src="https://img1.daumcdn.net/thumb/R658x0.q70/?fname=https://t1.daumcdn.net/news/202208/24/khan/20220824202706871zqtx.png" width="658" style="border:0px none;width:680px;margin:0px auto;vertical-align:top;">

// 본문 코드가 있을경우
<img alt="지난 2018년 3월23일 뇌물수수 혐의로 구속영장이 발부된 이명박 전 대통령이 서울 논현동 자택에서 서울동부구치소로 향하자 이 전 대통령의 아들 이시형씨가 눈물을 흘리고 있다. /경향신문 자료사진" class="thumb_g_article" src="https://img1.daumcdn.net/thumb/R658x0.q70/?fname=<a href='https://t1.daumcdn.net/news/202208/24/khan/20220824202706871zqtx.png' target='_blank'>https://t1.daumcdn.net/news/202208/24/khan/20220824202706871zqtx.png</a>" width="658" style="border:0px none;width:680px;margin:0px auto;vertical-align:top;">


제 실력으론 소스 수정은 어림 없는지라
이런 경우 이런 문제가 있다는 말씀만 알려 드립니다.
보완해주시면 감사하겠습니다.
3년 전
@타버린나무 이건 사이트마다 이미지를 불러오는 방식이 달라서...
이미지태그 중에서 scr=" 과 " 사이의 문자열을 저장하는 정규표현식 이나 파싱구문을 만들어야 하는데 나중에 시간나면 보완할게요.
감사합니다..
아직 그누초보라 이것저것 해봐야할 것이 많은데.
많은 참고가 되고 있습니다~ ^^

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168