레이블이 플러그인인 게시물을 표시합니다. 모든 게시물 표시
레이블이 플러그인인 게시물을 표시합니다. 모든 게시물 표시

2010년 11월 30일 화요일

JW Player 3.1c 재업데이트

그동안 JWPlayer가 5.3으로 업데이트되었다.
플래쉬와 더불어 HTML5를 지원하는 등 많은 변화가 있었다.

설치는 아래 파일을 다운받아 압축을 푼 뒤에 스킨 업로드를 통해 업로드 하고 나서,


스킨의 <body> 영역 맨 위에 아래의 코드를 삽입하면 된다.

<script type="text/javascript" src="http://블로그 이미지 주소/j_FLVPDF.gif"></script>
<script type="text/javascript">
//<![CDATA[
  FLVPDFHelper.all(
    1,
    1,
    680, 500,
    "http://블로그 이미지 주소/s_player.gif");
//]]>
</script>

덧1. 주의할 점이 하나 있다… 기존 버전에 비해 로고 기능이 빠졌다.
그래서, 8행 다음줄에 있었던 로고 파일 지정이 없어졌다. OTL

덧2. 물론, 기존에 있었던 외부 mp4 파일 재생 기능, 구글닥스를 이용한 PDF/PPT 임베딩 기능 등은 그대로다.

덧3. js 파일은 이전 버전에서 변하지 않았다. 변한 것은 플레이어 코어뿐.

2009년 10월 19일 월요일

JW Player 도우미 2.2a 업뎃: 플레이어 업데이트

JW Player 도우미 2.2에서 JW Player만 업데이트함.

최근 JW Player가 4.5에서 4.6으로 업데이트 되었다. (업데이트 내역 보기)
이에 따라 JW Player만 업데이트함.


덧. FLVPDF.js 파일도 약간 수정되었는데, 기능 수정이나 버그 패치는 없는, 단순 코드 관리 목적의 수정임.

2009년 10월 10일 토요일

JW Player 도우미 2.2 업뎃: 버그 패치 및 사소한 기능 수정

JW Player 도우미 2.1에서 발견된 버그를 해결하는 포스팅임.

이 문제가 이제야 리포팅되는 걸 보면 사용자가 없기는 없는 모양이다...
그저 리포팅해주신 애쉬™ 님께 무한히 감사드릴 뿐...

플러그인(이라고 쓰고는 스킨 수정이라 읽음)을 만들 때 IE에서의 동작여부는 잘 확인하지 않는다.
IE에서 동작하게 만들다보면 정상적인 브라우저에서 바보가 되는 경우가 허다하기 때문이다.

어쨌거나 도우미 2.1은(이전 버전과 마찬가지로) IE 계열에서 잘 동작하지 않았다.
문제는 1.x대에서 IE에서 잘 동작하지 않았던 문제를 수정했음에도 불구하고 동작하지 않았다는 거...

구글 닥스 화면이 뜨는 것만 보고 잘 되는 줄 알고 창을 닫아버렸는데, 내부의 창이 안 뜨는 문제가 있었던 거다. OTL

결국 애쉬™ 님 덕분에 문제점을 파악하여, 잘 동작하도록 수정했다.
또한, (애쉬™ 님의 요청대로) mp4 비디오도 재생이 가능하도록 수정했다.


1. 플러그인의 기능

- 첨부 비디오(flv/mp4) 및 오디오(mp4) 재생 (JW Player 도우미 플러그인 1.2 업데이트 참조)
- 외부 비디오(flv/mp4) 및 오디오(mp4) 재생 (JW Player 도우미 플러그인 1.5 업데이트 참조)
- 첨부 PDF 및 PPT 파일 임베드 (JW Player 도우미 2.1 업뎃 참조)


2. 수정 사항

- IE에서 잘 동작하도록 수정 (이번엔 잘 되겠지?)
- mp4 비디오를 재생할 수 있도록 수정
  mp4 비디오 파일 첨부시 파일명을 _가로x세로.mp4 로 끝나도록 지정하면 됨. (예: test_320_240.mp4)


3. 설치 방법

아래 파일을 다운받고 압축을 풀어 스킨 직접 올리기로 업로드한 뒤 스킨의 헤더 부분을 수정하면 된다.
스킨 수정 방법은 JW Player 도우미 2.1 업뎃을 참조.
(링크가 많아 거창하고 어려워보이지만, 사실 별 거 없음)


2009년 9월 28일 월요일

JW Player 도우미 2.1 업뎃: PDF/PPT 임베딩 기능 추가!

1. JW Player 도우미

JW Player 도우미 플러그인JW Player라는 걸출한 웹 임베디드 미디어플레이어를 간편하게 사용할 수 있게 도와준다.
그런데, 사소한(이라고 쓰고 거대한이라 읽는...) 버그가 하나 있었다. 바로 IE6/7에서 동작하지 않는다는 것이다.
(사실 워낙에 IE 보기를 개처럼 하는지라 아예 테스트해보지도 않았음. Win7+IE8에서 되는 거 보고 걍 패스)



2. PDF 파일의 블로그 임베드

이와는 별도로 그동안 PDF 파일을 블로그에 임베드시키는 방식을 놓고 여러모로 고민을 했었는데, 결국 방향을 정했다.
당연히 Adobe Reader를 설치한 뒤에 이를 브라우저에서 부르는 것이 정석이지만, 이 정석께서는 크롬에서 동작을 안 하신다.

사용자 삽입 이미지

크롬 살려!


원래 이 정석 자체가 약간의 꼼수가 포함된 방식인데다(IE와 FF의 태그 해석 방식이 달라 두 브라우저를 모두 사용할 수 있도록 이상하게 만들어져 있음) 그마저도 HTML 태그에 익숙하지 않은 대부분의 블로거들에게는 결코 쉽지 않은 방식이다.
더군다나 Foxit Reader만 달랑 깔고 사용하는 사용자들에게 Adobe Reader를 깔아달라고 부탁할 수도 없는 노릇이다.
(여전히 Adobe Reader는 느려터졌다. 많이 빨라졌다곤 하지만 그건 지들 생각일 뿐이다)

Scribd에서 PDF 파일을 멋진 뷰어와 함께 게시하는 서비스를 제공하는데, (티스토리 서버가 아닌) 제 3의 서버에 올리는 것이 부담스러워 사용을 꺼리고 있었다.
(인터페이스 및 출력 품질은 이 쪽이 최강임. 사용법은 PDF를 블로그에 삽입할 수 있는 해주는 사이트 참조)

그런데, 구글 도큐먼트 뷰어를 이용하면, 간단하게 임베드시킬 수 있다는 것을 알았다. 얏호!

그래서 이 방식을 이용하는 플러그인을 만들었다.



3. 플러그인 업데이트 및 통합

처음 코딩을 할 때는 두 플러그인이 (당연히) 분리되어 있었다.
그런데, 동작방식이 완전히 동일한 플러그인을 별도로 동작시킬 필요가 없다는 생각이 들었다.
더군다나 서버 쪽이 아니라 클라이언트(자바스크립트) 쪽에서 돌아가는 코드이기 때문에 IE6같은 쓰레기 브라우저에선 미친듯이 버벅댈 가능성이 농후하다.

그래서 아예 둘을 통합시켜버렸다.

이 플러그인을 설치하면 다음과 같은 기능들을 사용할 수 있다.

1. 첨부 비디오(flv) 및 오디오(mp4) 재생 (사용법은 JW Player 도우미 플러그인 1.2 업데이트 참조)
2. 외부 비디오(flv) 및 오디오(mp4) 재생 (사용법은 JW Player 도우미 플러그인 1.5 업데이트 참조)
3. 첨부 PDF 및 PPT 파일 임베드

사용법은 구버전 링크를 참조하면 되며, 설치 방법은 다음과 같다.


a. 관련 파일 업로드

언제나 여기는 동일하다. 아래 파일을 다운받아 압축 풀고, 스킨 직접 올리기를 통해 올리면 된다.



b. 스킨 헤더 수정

스킨 헤더에 아래와 같은 코드를 스킨의 헤더 영역에 삽입하면 된다.
단, 구버전을 사용하는 블로거의 경우 기존 삽입된 코드는 삭제해야 한다.

<script type="text/javascript" src="./images/FLVPDF.js"></script>
<script type="text/javascript">
//<![CDATA[
  FLVPDFHelper.all(
1,
 1,
 680, 500,
 "./images/player.swf",
 "./images/zockrflv.png",
 27,
 "./images/modieus.swf");
//]]>
</script>

기존의 구성에 비해 추가된 것이 5, 6, 7행이다.

- 5행(1) : PDF/PPT 임베딩 기능 사용여부 지정. 0이면 사용하지 않음. 0이 아니면 사용함
- 6행(1) : 미디어 플레이어 임베딩 기능 사용여부 지정. 0이면 사용하지 않음. 0이 아니면 사용함
- 7행(680, 500) : PDF/PPT 임베딩시 폭과 높이 지정. 지정하지 않으면 각각 600, 500으로 자동지정
- 8행~11행은 각각 JW Player 주소, 인각, 스킨 컨트롤 영역 높이, 스킨파일로 플러그인 1.2의 인자들과 동일

이 중 앞의 두 인자 즉, PDF/PPT 임베딩 여부 및 미플 임베딩 여부는 생략할 수 없으며, 나머지 인자들은 생략시 내부 기본값들로 자동 지정된다.



4. 샘플

아래 보는 것과 같다. 역시 구글 킹왕짱인 것이다!




2009년 8월 8일 토요일

JW Player 도우미 플러그인 1.5 업데이트

JW Player 도우미 플러그인 1.2를 사용하시는 블로거 한 분이 외부 파일을 재생할 수 있는 기능을 요구하셨다.
(기존 버전은 함께 업로드한 파일만 재생할 수 있었음)

원래의 취지와 맞지 않아 업데이트를 하지 않았는데, 마침 시간도 좀 나고 해서 관련 기능을 업데이트 했다.

기존의 flv/mp4 파일 및 flvi(초기 이미지) 파일의 사용방법은 변함없고, 외부 비디오/오디오 파일 지정 기능이 추가되었다.
추가된 기능은 아래와 같다.


1. 외부 비디오 파일 지정

용법: <div class='flvvideo'>비디오url 가로x세로[ 초기 이미지 url]</div>
예)
<div class="flvvideo">http://www.youtube.com/get_video?video_id=lkwh4ZaxHIA&t=vjVQa1PpcFObzVECfpqqV30tUO2IvgA9EUOYAV9j4tk%3D 400x225</div>
<div class="flvvideo">http://www.youtube.com/get_video?video_id=lkwh4ZaxHIA&t=vjVQa1PpcFObzVECfpqqV30tUO2IvgA9EUOYAV9j4tk%3D 320x240 http://farm4.static.flickr.com/3096/2787692781_6b5b27d7df_o_d.jpg</div>

초기 이미지는 생략 가능하며, 영상의 가로, 세로 크기는 역시 필수이다.



2. 외부 오디오 파일 지정

용법: <div class='mp4audio'>오디오url</div>
예)
<div class="mp4audio">http://zoc.kr/attachment/cfile5.uf.2076E8144A596495D58A51.mp4</div>

물론 aac 형식의 mp4 파일만 재생 가능하다.


설치방법은 아래 압축파일을 스킨 업로드를 통해 업로드하면 되며, 상세한 설치 방법은 기존 포스트(JW Player 도우미 플러그인 1.2 업데이트)를 참고하시기 바란다.



이제 이 플러그인을 이용하면 아래와 같은 유트브 비디오를

사용자 삽입 이미지

아래와 같이 직접 재생하는 것이 가능하다.

사용자 삽입 이미지

덧. 위 비디오는 유튜브에 올라온 Bruno Kammerl jumps이며, 참고의 목적으로만 사용되었음을 알립니다.

2009년 7월 12일 일요일

JW Player 도우미 플러그인 1.2 업데이트

JW Player 도우미 플러그인 1.1은 자체 플레이어보다 훨씬 예쁜 디자인을 제공하는 JW Player를 손쉽게 사용하게 도와준다.
하지만, 비디오만 재생이 가능하고, JW Player의 특징 중 하나인 스킨 기능을 제공하지 않는 한계가 있었다.
(플레이어의 한계가 아니라 플러그인의 한계이다)

때마침 플레이어도 4.5로 업데이트가 되어 플레이어와 함께 플러그인을 업데이트했다.

추가된 기능은 아래와 같다.

  1. JW Player 업데이트
    JW Player를 4.5로 업데이트 했다.

  2. 스킨의 지원
    JW Player의 기능 중 하나는 미려한 스킨의 지원이다.
    스킨을 지원할 수 있도록 수정했다.

  3. 오디오 재생 기능 추가
    JW Player는 flv 파일(비디오)은 물론 mp4 파일(비디오, 오디오)을 재생할 수 있다.
    전버전에선 이 중 flv 비디오만 재생이 가능했다.

    이번에는 mp4 오디오까지 재생이 가능하도록 수정했다. 정확히는 AAC 방식의 mp4 오디오만 지원한다.
    (클라이언트 사이드 플러그인의 구현의 한계로인해 mp4 비디오는 재생을 제대로 하지 못한다)

설치 방법은 아래와 같다.


1. 관련 파일의 업로드


아래 압축파일을 다운받아 열면 FLVplayer.jsplayer.swf 두 개의 파일이 나온다.
이 두 파일을 스킨-직접올리기 메뉴를 통해 업로드한다.



2. 스킨 수정

스킨을 편집해서 아래의 코드를 삽입한다.
위치는 </head>의 바로 앞이다. (사실, 헤더 내에만 위치하면 별 상관은 없다...)

<script type="text/javascript" src="./FLVplayer.js"></script>
<script type="text/javascript">
//<![CDATA[
FLVHelper.all("./images/player.swf");
//]]>
</script>

위의 코드는 기본 플레이어만 사용하는 형태이다.
스킨을 지정하고, 플레이어의 높이를 지정하는 등, 모든 옵션을 사용한 코드는 아래와 같다.

<script type="text/javascript" src="./FLVplayer.js"></script>
<script type="text/javascript">
//<![CDATA[
FLVHelper.all("./images/player.swf"
, "./images/zockrflv.png"
, 32
, "./images/modieus.swf");
//]]>
</script>

a. 5행: 인각을 지정

    5행의 zockrflv.png는 화면 우측 상단에 전시되는 인각을 지정하는 곳이다.
    물론, 지정하지 않으면 비디오만 깔끔하게 재생된다.

b. 6행: 플레이어 컨트롤 영역의 높이를 지정
   화면에 표시되는 플레이어에서 컨트롤 영역의 높이를 지정한다.
    기본 스킨은 높이가 20px이며, 기본 스킨을 사용할 때는 별도로 지정할 필요가 없다.
    하지만, 별도의 스킨을 사용한다면 스킨의 컨트롤 영역 높이를 지정해줘야 깔끔하게 표시된다.

c. 7행: 스킨을 지정
   별도의 스킨을 사용하고 싶으면 스킨 파일을 업로드한 뒤에 이곳에 파일명을 지정하면 된다.
    추가적인 스킨은 JW Player 홈페이지에서 다운받을 수 있다.


3. 파일 업로드

본 플러그인이 인식하는 파일 확장자는 flv, flvi, mp4 3가지이다.

flv는 플래쉬 비디오 파일로, 업로드 형식은 파일명_폭x높이.flv 형식이다.
플레이어에서 비디오의 크기를 자동으로 인식하지 못하기 때문에 반드시 크기를 지정해줘야 한다.

flvi는 비디오 파일 재생시 초기 이미지를 지정하는 파일이다.
이미지 파일의 형식과 무관하게 확장자를 flvi로 변경해줘야 한다.

※ flv, flvi의 사용법은 JW Player 도우미 플러그인 1.1에 설명되어 있다.

mp4는 오디오 파일로, AAC 방식으로 인코딩된 오디오만 지원한다.
(원래 mp4 포맷은 mkv 파일과 유사한 수준을 지원하는 범용 비디오 컨테이너이다)
mp4 확장자가 붙은 파일을 업로드한 뒤 화면에 배치하기만 하면 플레이어가 동작한다.

오디오의 재생 화면은 아래와 같다.
(비디오를 재생하는 화면은 기존 화면과 동일한다)

사용자 삽입 이미지

modieus 스킨을 적용한 오디오 재생 화면이다


2009년 5월 1일 금요일

JW Player 도우미 플러그인 1.1 업데이트

JW Player 도우미 플러그인의 단점 중 하나가 초기 이미지를 지정할 수 없다는 점입니다.

사용을 최대한 편하게 하기 위해 단순하게 삽입 파일을 그대로 변환했기 때문에 추가로 이미지를 추가할 방법을 찾기 어려웠기 때문입니다. 하지만, 필요는 발명의 어머니... 드디어 방법을 찾았습니다!

1. 설치

기본적인 설치방법은 JW Player 도우미 플러그인 1.0과 동일하니 그 포스트를 참고하시면 됩니다.
업데이트된 파일은 아래 파일의 압축을 푼 뒤 올리기 바랍니다.



2. 초기 이미지 지정

삽입할 flv 동영상의 초기 이미지로 지정하고 싶은 파일을 업로드해야 합니다.
다만, 원래의 확장자를 사용하지 않고, 확장자를 .flvi로 변환해서 올려야 합니다.

아래 이미지에는 flv 파일과 파일명이 동일하게 되어있지만, 꼭 같을 필요는 없습니다.
삽입된 flvi 파일들을 순서대로 각각의 동영상에 추가하는 구조라는 점만 염두에 두면 됩니다.

사용자 삽입 이미지


3. 결과


위 2번을 통해 초기 이미지를 지정한 뒤 로고를 추가한 초기화면은 아래와 같습니다.

사용자 삽입 이미지




2009년 4월 28일 화요일

Total Commander용 UNALZ 플러그인 0.65 공개

kippler님께서 공개하신 unalz 라이브러리 및 소스가 4월 1일에 0.65로 업데이트 되었습니다.
이에 발맞춰서(?) Total Commander용 unalz 플러그인을 공개합니다.

사용자 삽입 이미지

이번에도 역시 자동설치 기능을 보유하고 있습니다


unalz 플러그인 0.65의 수정된 사항은 다음과 같습니다.

  • basecode changed : unalz 0.65, zlib v1.2.1
  • bzip2 1.0.5 update
  • vs2008 컴파일 관련 이슈 수정



이 플러그인은 아래 링크에서 다운받을 수 있습니다.

그리고, 컴파일할 수 있는 소스는 아래 링크에서 다운받을 수 있습니다.



2009년 3월 27일 금요일

Total Commander용 UNALZ 플러그인 0.64 공개

알시리즈를 싫어하기 때문에 알집을 설치하지는 않고 TC용 UNALZ.WCX 0.1i를 사용하고 있었습니다.
그런데, alzip으로 분할압축한 파일을 받아서 풀어보니 압축이 제대로 풀리지 않더군요.

원인은 플러그인에 사용된 unalz 모듈이 너무 예전버전이기 때문이었습니다.

검색해보니 unalz.wcx는 xxfree86님께서 공개하신 0.1i가 최종버전인데, unalz 0.3 기반으로 되어있더군요.
그런데, kippler님께선 이미 0.64을 공개하셨습니다...

kippler님의 unalz 0.64 라이브러리를 0.1i 소스에 합쳐서 컴파일해보니 정상적으로 잘 컴파일되었음은 물론 구버전으로 풀리지 않던 놈까지 성공적으로 압축을 풀었습니다.

사용자 삽입 이미지

자동설치도 가능하도록 inf 파일을 추가했습니다. ^^;


이렇게 컴파일된 플러그인을 공개합니다.
0.1i에 비해 바뀐 부분은 아래와 같습니다.


1. unalz 0.64 기반으로 업데이트
2. TC에서 자동설치되도록 inf 파일 추가 (기존 0.1i는 플러그인 폴더에 저장한 뒤 직접 설치)
3. 버전번호를 0.64로 지정 (unalz 라이브러리와 버전을 맞춤)


컴파일할 수 있는 소스는 아래를 클릭하면 다운받을 수 있습니다.


덧1. unalz는 zlib에 기반을 두고 있으며, 이 라이브러리는 자유롭게 수정 및 배포가 가능한 버전입니다.

덧2. kippler님께 문의한 결과 플러그인과 소스의 공개에 문제가 없다는 답을 주셨습니다.
플러그인을 공개해주신 것에 대해 다시 한 번 감사드립니다.

덧3. 0.1i를 공개한 xxfree86님께 플러그인의 공개 가능 여부에 대해 문의를 드리려 했지만, 공개된 메일주소(신비로)는 사용이 불가하더군요.


2009년 1월 13일 화요일

Code Highlighter 마이너 버그패치

블로그팁 : Code Highlighter 더 쉽게 사용하기에 올렸던 내용의 마이너 버그패치입니다.


일부 테마에서 Code Highlighter가 약간 깨진다는 보고가 있었습니다.
(Butterfly (Purple) ver.1.0 에서 확인했습니다)
하지만, 좀 바빠서(라고 쓰고는 게을러서라고 읽는다) 손을 대지 못하고 있었는데, 오늘 수정하게 되어 올립니다.

사용자 삽입 이미지

이게 뭥미~


스킨의 css스타일과 SyntaxHighlighter.css의 css스타일이 충돌이 난 것이 원인인데요, 이럴 땐 그저 만병통치약 !important가 짱입니다.

.dp-highlighter ol li span에서 padding!important를 추가했습니다.
아래와 같이 말이죠.

.dp-highlighter ol li span 
{
 margin: 0;
 padding: 0!important;
 border: none!;
}


이것만 수정하면 아래와 같이 정상적으로 출력되는 모습을 볼 수 있습니다.

사용자 삽입 이미지

짜잔~


적용하실 때는 아래 파일을 다운받아 압축을 푼 후 스킨→직접올리기에서 업로드하면 됩니다.


2008년 6월 7일 토요일

티스토리에서 정말 고쳐주지 않는 LineCalendar 버그

사용자 삽입 이미지


티스토리 포럼에 몇 번 적고, 따로 포스팅도 했지만, 여전히 확인해보겠다는 말 외에 조치되는 모습이 없어 상세히 포스팅합니다.

티스토리에서 제공하는 플러그인 중 LineCalendar는 깔끔한 디자인을 유지하게 도와주는 좋은 플러그인입니다.
하지만, 명색이 달력임에도 불구하고, 날짜 표시 기능에 버그가 있습니다.
(제발 기본기능에 충실합시다. 업글보다 중요한 것은 디버깅입니다!)



LineCalendar에서는 새벽 0시부터 1시 사이에는 어제 날짜에 오늘이라고 표시됩니다.
(이 글을 적고 있는 지금이 0시 37분인데, 여전합니다)

웃긴 것은 마지막으로 글을 올린 날짜는 정상적으로 제대로 표시된다는 점입니다.

저 위의 그림을 보시면 알 수 있듯이, 6월 7일 0시 20분에 글을 올렸을 때
LC글 올린 날짜6월 7일,
LC오늘 날짜6월 6일,
윈도우 시스템 시계6월 7일을 가리킨다는 것이죠.

지난번 이 버그를 간략히 포스팅했을 때가 5월 23일이니 2주가 지났습니다.
그 날 득달같이 "내부적으로 검토 후 답하겠다"고 답글을 달아줬지만,
2mb 정부의 관료들처럼 걍 패스하는 분위기입니다.

워낙 증세가 뚜렷한 버그라 검토하는 시간이 많이 걸릴 것도 아니고,
수정하는 작업이 그렇게나 어려운 문제로 보이지도 않습니다.

수정을 해주시기 바랍니다. -.-;;;;


  

2008년 4월 22일 화요일

티스토리용 BBCode v1.1a (역시 전문가 여러분의 도움이 필요합니다)

사용자 삽입 이미지

드디어 여러줄에 걸친 다중태그를 정확하게 해석합니다!


티스토리용 BBCode v1.0을 통해 공개한 티스토리용 BBCode를 하루동안 사용해보니 2개의 문제가 발견되었습니다.

1. 여러줄에 걸친 태그는 전혀 해석을 못함
2. 중첩된 태그를 전혀 해석 못함 (특히 [quote])

두 문제 모두 제가 정규식을 정확하게 이해하지 못해서 발생한 문제들입니다.
이 문제들을 해결한 BBCode.js 파일을 아래에 첨부합니다.


이제 버전 1.1a이라는 타이틀을 달고 올리기는 했지만, 많은 한계가 보입니다.
티스토리에서 BBCode를 정식으로 지원할 때까지는 빡세게 계속 달려보겠습니다.

덧1, [qoute]를 해석할 때는 <blockquote>로 변환하는 것이 정석입니다.
하지만, 우리의 IE6/7에 내장된 자바스크립트 엔진의 insertBefore 함수는 <blockquote>씹어먹어버리더군요.
그래서 울며 겨자먹기로 <table>로 변환했습니다.

덧2, 아주 자그마한 부분을 변경했습니다. ([quote] 태그 주변에 약간의 여백을 둠)
너무 사소한 변경이라 별도로 포스팅하지 않고, 내용만 약간 수정했습니다.


티스토리는 BBCode를 지원하라! 지원하라!



 

2008년 2월 9일 토요일

블로그팁 : Code Highlighter 더 쉽게 사용하기

티스토리에서 Google Syntax Highlighter 사용하기에서 Google의 Syntax Highlighter를 사용하는 방법을 소개했습니다.

그런데, 막상 몇 분의 글을 읽어보니 너무 어렵다고 하시더군요.
게다가, 전에 올린 버전은 약간의 문제점이 있었습니다.

그간 지적된 문제점을 개선한 버전을 더 쉽게 사용하는 방법을 소개하겠습니다.

일단, 원래 버전의 문제점은 아래와 같습니다.

  1. 자동으로 붙는 <br/> 태그를 일일이 없애야 한다

  2. 티스토리 치환자 [##_ ~ _##]를 코드에 넣을 수 없다

  3. 설치하는 과정이 너무 복잡하다

이 문제점은 아래와 같이 수정했습니다.

  1. 코드 내부에 <br/>이 있으면 자동으로 개행처리
    단, &lt;br>과 같이 입력한 경우는 제외. 티스토리 편집기에서 자동으로 삽입한 코드에 한함
    즉, WYSIWYG 입력기에서 <br>을 입력하면 <br>로 표시됨

  2. \#를 입력하면 #로 출력
    즉, [\##_ ~ ##_]으로 입력하면 치환자 표시 가능

  3. 설치 과정을 아래에 더 쉽게 설명

그리고, (순전히 제가 사용할 목적으로) MSX-BASIC을 처리해주는 코드를 삽입했습니다. (수정사항 4번)

설치 과정은 아래와 같습니다.
원래 버전의 설치절차는 다 잊고 아래 순서만 따라하시면 쉽게 설치할 수 있습니다.

1. Highlighter 관련 파일 업로드

아래에 링크된 zip 파일을 다운받아 압축을 풉니다.
압축 형식은 zip 이므로 어떠한 프로그램으로 풀어도 상관없습니다.


다음, 관리 메뉴의 스킨→직접올리기에서 압축을 푼 파일을 모두 업로드합니다.




2. 스킨파일(skin.html) 수정

1번의 파일 업로드 화면에서 HTML/CSS 편집 메뉴를 클릭하면 skin.html 파일을 직접 편집할 수 있습니다.
이 skin.html 파일의 맨 아래는 아래와 같은 2줄입니다.
</body>
</html>

이 2줄 바로 위에 Highlighter를 활성화시키는 코드를 집어넣으면 됩니다.
아래의 코드를 붙여넣는데, 코드 바로 위의 메뉴에서 view plain이나 copy to clipboard를 이용하면 됩니다.
참고로, Firefox에서는 copy to clipboard가 제대로 작동하지 않습니다. -.-;;; (잘 동작하는군요)
<!-- google code for syntaxhighlight -->
<link type="text/css" rel="stylesheet" href="./images/SyntaxHighlighter.css"></link>
<script language="javascript" src="./images/shCoreMod.js"></script>
<script language="javascript" src="./images/shBrushCSharp.js"></script>
<script language="javascript" src="./images/shBrushXml.js"></script>
<script language="javascript" src="./images/shBrushCss.js"></script>
<script language="javascript" src="./images/shBrushCpp.js"></script>
<script language="javascript" src="./images/shBrushJScript.js"></script>
<script language="javascript" src="./images/shBrushMsx.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = './images/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
<!-- google code for syntaxhighlight -->
<!-- 이 아래는 입력할 필요 없음. skin.html에서의 위치를 표시하기 위함 -->
</body>
</html>

3. 코드에 적용

일단 WYSIWYG 편집기에서 원하는 코드를 입력합니다.
엔터를 입력하면 자동으로 <br/>로 변하는데, 신경 쓸 필요 없습니다.

가령, css 코드라면 아래와 같이 입력합니다.

@charset "utf-8";
    body {
       font-family: 돋움,Dotum,AppleGothic,sans-serif;
       font-size:12px;
       line-height: 1.5;

       /*@background-image=background-image:*/ background-image:url(./images/bnl_bluebg.jpg) /*@*/;
       /*@background-image-position=background-position:*/ background-position: center top /*@*/;
       /*@background-image-repeat=background-repeat:*/ background-repeat: no-repeat /*@*/;
       /*@background-color=background-color:*/ background-color: #ffffff /*@*/;
       padding:0; margin:0;
    }

다음, HTML 편집 모드로 들어가서 해당되는 코드의 앞에 <pre name="code" class="css"> 를, 뒤에 </pre>를 추가하면 됩니다.
위의 코드 앞뒤에 <pre> 태그를 붙인 결과는 아래와 같습니다.
@charset "utf-8";
   body {
      font-family: 돋움,Dotum,AppleGothic,sans-serif;
      font-size:12px;
      line-height: 1.5;

      /*@background-image=background-image:*/ background-image:url(./images/bnl_bluebg.jpg) /*@*/;
      /*@background-image-position=background-position:*/ background-position: center top /*@*/;
      /*@background-image-repeat=background-repeat:*/ background-repeat: no-repeat /*@*/;
      /*@background-color=background-color:*/ background-color: #ffffff /*@*/;
      padding:0; margin:0;
   }

새롭게 추가한 MSX-BASIC의 코드를 사용하려면 아래와 같이 하면 됩니다.
일단 코드를 입력합니다.

10 LET A=10
20 LET B=20
30 LET C=A
40 LET A=B
50 LET B=C
60 PRINT "A = "; A; ", B = ";B

다음 이 코드의 앞에 <pre name="code" class="msx">를, 뒤에 </pre>를 추가합니다.
결과는 아래와 같습니다.
10 LET A=10
20 LET B=20
30 LET C=A
40 LET A=B
50 LET B=C
60 PRINT "A = "; A; ", B = ";B

티스토리의 치환자를 입력하려면 아래와 같이 하면 됩니다.
아래와 같이 코드를 입력합니다. [## 사이에 \를 집어넣었습니다.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>[\##_title_##] :: [\##_page_title_##]</title>
<link href="./style.css" rel="stylesheet" type="text/css" />

다음, 앞과 마찬가지로 앞에 <pre name="code" class="html">을, 뒤에 </pre>를 추가합니다.
결과는…
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>[\##_title_##] :: [\##_page_title_##]</title>
<link href="./style.css" rel="stylesheet" type="text/css" />

짜잔~ 이렇게 쉽게 치환자를 입력할 수 있습니다 ^^;;;




어떤가요? 정말 쉽고 멋지지 않나요?
(이것도 어렵다고 하시면 어떻게 더 쉽게 만들어야할지 모르겠습니다)

많은 분들께서 이 기능을 사용하시면 좋겠습니다.

덧1. 원본의 코어 코드의 파일명은 shCore.js인데, 수정 버전은 shCoreMod.js로 변경했습니다.
       원본과 혼동을 없애기 위해서 및 서버 캐쉬로 인해 파일 수정이 즉각 반영되지 않는 문제를 피하기 위해서입니다.

덧2. 원래의 코드를 제가 작성한 것은 아니지만, GPL에 따르는 코드이기 때문에 자유롭게 수정해서 재배포합니다.

덧3. Copy to clipboard 기능에 버그가 있어 수정했습니다. (2008. 5. 22)

2008년 1월 21일 월요일

블로그팁: 티스토리에서 Google Syntax Highlighter 사용하기

블로깅을 하면서 Syntax Highlighter(code highlighter)를 사용할 일이 제법 많이 있습니다.
C/C++/C# 소스를 올리는 경우도 있고, HTML 소스나 css 설정을 올리는 경우도 있습니다.
물론, XML 소스를 올리는 경우도 있습니다.

태터툴즈를 사용하시는 분들은 CodeHighlight Plug-in을 사용하면 됩니다만,
티스토리에서는 이 플러그인을 지원하지 않습니다.

방법을 뒤지던 중 Google Code project로 개발된 Syntax Highlighter가 있다는 것을 알았습니다.
하루 동안의 삽질 끝에 이걸 티스토리에 적용할 방법을 알아냈습니다.
(위의 태터툴즈용 플러그인도 이 Google의 Highlighter를 활용한 것입니다)


Google Syntax Highlighter



이 코드는 순수하게 javascript로 작성되어 있기 때문에 설정을 하고 나면 아주 간편하게 사용할 수 있습니다.
속도가 약간 느리다는 약점이 있습니다만…

이것을 설치, 활용하는 절차는 아래와 같습니다.


1. Syntan Highlighter (이하 SH) 다운로드

SH에서 다운로드 가능합니다. : 클릭
현재 1.51까지 나와있습니다. : 다운로드


2. 필요한 파일 모으기

관련된 파일들(*.js, SyntaxHighlighter.css, clipboard.swf)를 한 폴더에 저장해야 합니다.
다운받은 SyntaxHighlighter_1.5.1.rar 파일의 압축을 풀면 dp.SyntaxHighlighter 아래에 Scripts, Styles, Uncompressed 폴더가 있습니다.


dp.SyntaxHighlighter - Scripts/Styles/Uncompressed



Scripts 폴더와 Uncompressed 폴더에는 같은 내용의 함수 파일들이 들어있는데, Uncompressed 폴더의 함수들이 사람이 읽기에 좀 더 편합니다. 설치할 때는 이 중에서 Scripts의 내용만 사용합니다.


폴더를 하나 만든 뒤에 Scripts 폴더에 있는 모든 파일들(*.js 13개, clipboard.swf)과 Styles 폴더에 있는 SyntaxHighlighter.css 파일을 몽땅 저장합니다.
이 때 별도의 서브 폴더를 만들 필요 없이 그냥 저장하면 됩니다.




위 화면은 c:\_sh_\ 폴더를 만들어서 필요한 파일을 저장한 화면입니다.


3. 파일 업로드

2번에서 c:\_sh_ 폴더에 저장한 파일 15개를 전부 업로드합니다.
업로드할 때는 스킨 메뉴에서 직접올리기 기능으로 업로드하면 됩니다.




티스토리는 파일을 업로드하면 핵심 파일들을 제외하면 모두 images 폴더에 저장합니다.
위의 화면에서 sh*.js 파일들이 images 폴더에 저장되어 있는 것을 확인할 수 있습니다.


4. 스킨파일(skin.html) 수정

티스토리에서 Google Code - Syntax Highlighter를 사용하려면 해당 javascript 코드를 스킨파일에 추가해야 합니다.
추가할 위치는 </body> 바로 앞입니다. 맨 앞에 집어넣으면 아무런 변화도 없습니다.

<!-- google code for syntaxhighlight -->
<link type="text/css" rel="stylesheet" href="./images/SyntaxHighlighter.css"></link>
<script language="javascript" src="./images/shCore.js"></script>
<script language="javascript" src="./images/shBrushCSharp.js"></script>
<script language="javascript" src="./images/shBrushXml.js"></script>
<script language="javascript" src="./images/shBrushCss.js"></script>
<script language="javascript" src="./images/shBrushCpp.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = './images/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
<!-- google code for syntaxhighlight -->
</body>
</html>
이 코드는 Google SH - Usage에서 제시하는 코드와 약간 차이가 있습니다.
3번에서 언급한 저장 위치문제 때문에 폴더를 ./images/로 수정해야 합니다.

사용할 모든 언어를 다 정해도 되지만, 사용할 것만 올리면 조금이라도 가벼워집니다.
위에서는 C#, XML(HTML), CSS, C++ 용 js 파일만 삽입했습니다.

지원 가능한 언어는 Google SH - Languages를 참고하면 됩니다.


5. 코드의 삽입

해당 코드의 앞뒤에 <pre> 태그만 붙여주면 됩니다.
<pre name="code" class="html">
... some code here ...
</pre>
형식으로 코드를 삽입하면 됩니다.
< > 등의 문자는 &lt; &gt; 등의 코드로 입력해야 하므로 기본적인 입력WYSIWYG으로 하면 편합니다.
하지만, 자동으로 입력된 </br> 태그를 삭제해야 하므로 마무리HTML 모드로 해줘야 합니다.


6. 기타사항

<pre> 태그에 옵션을 추가해서 모양을 조절할 수 있습니다.
사용 가능한 옵션은 nogutter, nocontrols, collapse, firstline[value], showcolumns의 다섯 가지가 있으며, 콜론(:)으로 구분하고 여러 개의 옵션들을 붙여서 사용할 수 있습니다.
※ 위의 코드는 nogutter 옵선을 사용해서 행번호를 표시되지 않도록 했습니다.

더 자세한 사용법은 Google SH - Configuration을 참고하시기 바랍니다.

※ 기능을 보완하고 설치 과정을 수정했습니다. Code Highlighter 더 쉽게 사용하기를 읽어주세요