erinPaper는 현재 이 블로그의 근간을 이루는 툴입니다.
eriny.net을 운영하는 운영자에 의해 만들어졌으며, 지극히 개인적으로만 사용될 툴입니다.
공개하거나 배포할 계획은 없습니다. 이 곳에 erinPaper의 개발진행상황을 적어볼까 합니다.
Branch에서의 Page 처리
기존에 branch 에서도 page를 넘기는 것은 가능했지만 페이지가 100개면 100개가 다 찍히는 상황이였다. '아직 페이지가 10페이지 넘지를 않았으니 10페이지 넘어갈 때쯤 만들면되지' 라는 귀차니즘으로 인하여 이때것 해결하지 않다가 이제서야 해결했다. 아무래도 이제 page가 10을 넘을 날이 얼마 남지 않았다는 판단에서였다. 오랜만에 간단한 산수하느라 머리를 잠시 사용했다.
10 pages 단위로 넘길 수 있고 넘기는 것이 가능한 상황에서 '<<', '>>'는 빨간색으로 변한다.
ErrorDocument
4xx와 5xx의 HTML Error page를 Rewrite와 DB의 힘을 빌어서 완성하였다.
현재 404 page만 완성되어 있으며 그 밖 error code는 undef로 빠지게 되어있다. 당장 급한 것도 아닌데 하나하나 천천히 시간날 때 입력해 넣어보자.
RSS feed
덧글을 허용하고 보니 RSS Feed가 필요하다고 느꼈다. 가장 크게 필요를 느낀 것은 다름아닌 iPad 2에서 쓰고 있는 Filpboard 때문이다.
이유야 어쨌든 간에 RSS Feed를 매번 파일로 생성해내는 것은 비 효율적이므로 rewrite mod와 PHP를 버무려서 만드는 것이 좋다고 판단했다.[1] 그렇게 결정하고 나서 만들어내는 것은 RSS 규약에 대한 문서를 읽어보는 것 정도의 수고로움으로 완성이 되었다고 생각했으나 복병이 있었으니,
저장되어 있는 글의 내용은 html tag가 포함되어 있거나 html tag로 오인될 수 있는 문자 '<', '>' 등이 포함되어 있을 수 있다는 문제점을 발견. strreplace()로 간단히 해결할 수 있을 꺼라 생각했지만, 생각보다 커버해야하는 문자가 많고 중복 처리되어 문제가 발생할 수도 있다는 사실을 깨달았다.
한참 code와 싸우다가 htmlentities()을 사용하면 치완할 필요없이 처리할 수 있다는 사실을 알게 되었고, 그 후 google검색을 통하여 한글을 사용하는 경우에는 htmlspecialchars() 을 사용하는 것이 좋다는 사실에 착안하여 간단히 해결하였다.
현재 RSS는 각 branch 별로 생성되도록 만들었으며, 허용하는 branch의 모든 글을 포함하는 RSS 또한 존재한다. 각 branch 별로 RSS feed를 생성할 것이냐 말 것이냐를 선택할 수 있으며, 각 branch마다 RSS feed의 존재 유무를 확인하여 header 부분에 존재할 때마다 해당 link를 추가해 두었으며, 해당 branch로의 접근시 해당 제목 오른쪽으로 rss link가 나타나도록 만들었다. 현재 여러 branch 중 'Apple'과 'CS'만 RSS feed를 허용하고 있다.
rss of All: http://eriny.net/rss
rss of branch Apple: http://eriny.net/rss/apple
rss of branch CS: http://eriny.net/rss/CS
[1] 다 만들고 나서 확인해 보니 다른 Blog tool들도 이렇게 처리하는 듯 하다.