Thursday, March 30, 2006
월별Archive에 연월(2006.03) 붙이기, 블로거(blogger.com)의 경우
원래 블로거(blogger.com)의 월별 저장 페이지 즉 "지난 글 모음"에는, 해당 연도와 달이 표시되어 있지 않다. 그래서 현재 읽고 있는 Archive 페이지가 몇월 달의 것인지 쉽게 알 수 없어, 브라우저의 타이틀바에 있는 작은 글씨를 읽어야만 했다.
"Archive 페이지가 작성된 연월(年月)"만을 표시해 주는 태그는 아무리 찾아봐도 없었다. 그렇지만 이 기능이 매우 절실했다. 내 자신이 보아도, 언제 쓴 글들인지 잘 모를 지경인데 방문객들은 오죽하겠는가.
다음과 같이 표현될 방법을 궁리해 보았다.
아무리 생각해도, 자바스크립트(JavaScript)를 사용하는 방법밖에는 없었다. mwultong Blog ― 소설 / IT: 2006.03 월호 이런 제목줄에서 연월(年月)만을 추출하는 식이다. (뒤에 있는 " 월호"는 필자가 제목줄에 덧붙여 준 것에 지나지 않음)
작년에 자바스크립트를 잠깐 사용한 후 너무 오랜만이어서 문법도 잘 생각나지 않았다. 펄(Perl)도 그렇지만, 다른 언어들도 Cookbook이 유용했다. Cookbook이 없을 때는 레퍼런스만을 보고 프로그래밍을 하느라 아주 힘들었었다.
By Danny Goodman
Publisher : O'Reilly
Pub Date : April 2003
Pages : 540
쿡북을 들추자마자, 1.7 Searching and Replacing Substrings 에서 곧 해결법이 얻어졌다.
String 오브젝트의 replace( ) method 로써, 에디터나 워드프로세서의 "바꾸기" 명령을 사용하듯 간편하게 문자열을 조작할 수 있었다.
다음과 같은 코드가 완성되었다:
필자의 블로그의 경우, <$BlogPageTitle$> 에는 "mwultong Blog ― 소설 / IT: 2006.03" 이런 문자열이 들어 있다. <$BlogTitle$> 에는 "mwultong Blog ― 소설 / IT" 이런 문자열.
따라서 <$BlogPageTitle$>에서, <$BlogTitle$>과 ": " 이것을 빼주면 연월만 남는 것이다.
자바스크립트와 블로거 전용 태그들이 뒤섞여 있어, 잘 될지 우려했지만 의외로 아주 잘 작동했다.
적용된 결과는 여기
업데이트:
"Archives를 드롭다운리스트에 넣고, 해당 월(月)이 나오게" 포스트를 보시면, 여기에 소개된 코드를, GetArchiveDate() 라는 함수로 만들어서 쓰는 방법이 있습니다. 함수로 만드는 쪽을 추천합니다.
"Archive 페이지가 작성된 연월(年月)"만을 표시해 주는 태그는 아무리 찾아봐도 없었다. 그렇지만 이 기능이 매우 절실했다. 내 자신이 보아도, 언제 쓴 글들인지 잘 모를 지경인데 방문객들은 오죽하겠는가.
다음과 같이 표현될 방법을 궁리해 보았다.
Monthly Archive
2006.03
아무리 생각해도, 자바스크립트(JavaScript)를 사용하는 방법밖에는 없었다. mwultong Blog ― 소설 / IT: 2006.03 월호 이런 제목줄에서 연월(年月)만을 추출하는 식이다. (뒤에 있는 " 월호"는 필자가 제목줄에 덧붙여 준 것에 지나지 않음)
작년에 자바스크립트를 잠깐 사용한 후 너무 오랜만이어서 문법도 잘 생각나지 않았다. 펄(Perl)도 그렇지만, 다른 언어들도 Cookbook이 유용했다. Cookbook이 없을 때는 레퍼런스만을 보고 프로그래밍을 하느라 아주 힘들었었다.
JavaScript & DHTML Cookbook
By Danny Goodman
Publisher : O'Reilly
Pub Date : April 2003
Pages : 540
쿡북을 들추자마자, 1.7 Searching and Replacing Substrings 에서 곧 해결법이 얻어졌다.
String 오브젝트의 replace( ) method 로써, 에디터나 워드프로세서의 "바꾸기" 명령을 사용하듯 간편하게 문자열을 조작할 수 있었다.
다음과 같은 코드가 완성되었다:
<script type="text/javascript">
var ArchiveTitle = new String("<$BlogPageTitle$>");
var DelStr = "<$BlogTitle$>" + ": ";
var ArchiveDate = ArchiveTitle.replace(DelStr, "");
document.write("<div style=\"font:italic bold 32pt 'Georgia'; text-align:center; color:#C5C5E6; margin-top:10px; margin-bottom:80px;\">" + ArchiveDate + "</div>");
</script>
<noscript><div style="color:red; text-align:center; margin-top:20px; margin-bottom:60px;">JavaScript Disabled</div></noscript>
var ArchiveTitle = new String("<$BlogPageTitle$>");
var DelStr = "<$BlogTitle$>" + ": ";
var ArchiveDate = ArchiveTitle.replace(DelStr, "");
document.write("<div style=\"font:italic bold 32pt 'Georgia'; text-align:center; color:#C5C5E6; margin-top:10px; margin-bottom:80px;\">" + ArchiveDate + "</div>");
</script>
<noscript><div style="color:red; text-align:center; margin-top:20px; margin-bottom:60px;">JavaScript Disabled</div></noscript>
필자의 블로그의 경우, <$BlogPageTitle$> 에는 "mwultong Blog ― 소설 / IT: 2006.03" 이런 문자열이 들어 있다. <$BlogTitle$> 에는 "mwultong Blog ― 소설 / IT" 이런 문자열.
따라서 <$BlogPageTitle$>에서, <$BlogTitle$>과 ": " 이것을 빼주면 연월만 남는 것이다.
자바스크립트와 블로거 전용 태그들이 뒤섞여 있어, 잘 될지 우려했지만 의외로 아주 잘 작동했다.
적용된 결과는 여기
업데이트:
"Archives를 드롭다운리스트에 넣고, 해당 월(月)이 나오게" 포스트를 보시면, 여기에 소개된 코드를, GetArchiveDate() 라는 함수로 만들어서 쓰는 방법이 있습니다. 함수로 만드는 쪽을 추천합니다.
tag: blogger
블로거 | 구글블로그 | Blogger.com + blogspot.com
<< Home