mephisto는 현재 버젼이 0.7대이고 지금도 계속 개발이 이루어지고 있습니다. 구글 그룹을 살펴보다 gravatar 란 것을 알게 되었는데요, globally recognized avatar 를 뜻한다고 합니다. 블로그나 메시지보드 소프트웨어중 아바타를 지원하는 것들이 있는데 사용자의 아바타를 한 사이트에 등록해 놓고 사용할 수 있도록 하는 아이디어 만점의 사이트입니다.

그렇다면 아바타의 키는 무엇이 될까요. 메일 주소를 md5란 기법으로 암호화한 문자열이 되겠습니다. 즉, 코멘트난에 메일주소를 남기면 메일주소를 암호화해서 아바타를 gravatar 사이트에 링크하면 되는 것이지요. 현재 과도한 부하 때문인지 사이트 정리중이라서 새로운 아바타를 등록할 수는 없지만 mephisto에서는 gravatar 필터를 지원하고 있어서 다음과 같이 간단한 방법으로 사용할 수 있습니다.


 {{ comment | gravatar:50,  "http://somesite.com/default.gif" }}

gravatar 필터 뒤의 숫자는 아바타의 크기를 지정하는 것이고 추가로 주는 인자는 등록되어 있지 않은 경우 사용할 기본 아바타이며 gravatar의 인자로 주어지는 것이므로 이미지 파일의 전체 주소를 적어주어야 합니다.

mephisto는 기본적으로 liquid란 template를 사용합니다. rails의 기본 template는 erb란 ruby 언어 자체의 것을 사용하는데 ruby 언어 자체가 포함되어 버리므로 template가 너무 복잡해질수도 있죠. 그런 점에서 어느정도 제한적인 기능들만을 사용할 수 있도록 되어 있는 liquid가 적절할 수 있겠군요.

저의 홈페이지의 오른쪽을 보시면 pages와 caterogy로 나누어져 있는 것을 보실 수 있을겁니다. pages는 한 section 내에 하나의 글만이 표시되는 것이고 category는 blog와 같이 여럿의 글들이 함께 표시되죠.

기본적으로 설치되는 template들에는 page로 동작하는 section에서 페이지들의 목록을 무조건 표시하게 되어있는데요, liquid의 간단한 조건 검사를 추가해서 목록이 하나인 경우 표시하지 않도록 바꿀수 있습니다. 이 조건이 없는 경우출판하지 않은 글들도 함께 표시되는 경우가 있던데 liquid의 문제인지 mephisto의 문제인지는 모르겠습니다. 다음은 _page.liquid template의 마지막 부분입니다.

1
2
3
4
5
6
7
<ul>
  {% for page in section.pages %}
    {% if forloop.length > 1 %}
      <li>{{ page | link_to_page }}</li>
    {% endif %}
  {% endfor %}
</ul>

+ Recent posts