MovableType은 XHTML 1.0 Transitional에 맞춰져 있는데 이것을 XHTML 1.1로 바꾸려면 코멘트 템플릿에서 form 부분을 수정해야 합니다.
XHTML 1.0 Strict 부터는 form 속성에서 id만 유효하고 name이 없어졌는데 MovableType은 name값을 가지고 모든 것을 처리 합니다. 이 name을 id로 바꿨을 때, MovableType에서 쿠키를 읽어 들이지 못하는 문제가 발생합니다. 게다가 제 경우는 코멘트에 Dynamic Comment Previewing과 작은 에디터를 사용하고 있는데 이것 역시 쿠키 값을 기본으로 하기 때문에 이에 대한 해결책이 꼭 필요했습니다. XHTML 1.1 유효성 통과하자고 그간 만들어 놓은 것을 죄다 버릴 수는 없는 일이니까요.
이 문제를 해결하기 위한 방법입니다.
1. form에서 name을 id로 바꿔 줍니다.
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"
name="comments_form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
이 부분 에서 name="comments_form"을 id="comments_form"으로 바꿔줍니다.
2. <form method="post"..... > .....템플릿 내용.........</form> 을
<form ....><div> ........템플릿 내용.........</div></form>처럼 div를 넣어 줍니다. 혹은 <p>로 대신 해도 됩니다.
openid나 livejournal을 사용할 경우는 form이 두 번에 걸쳐서 나오고 기본 템플릿에서는 한 번 나옵니다.
여기까지만 하면 기본 템플릿에서는 XHTML 1.1을 통과하게 됩니다.
그런데 문제는 쿠키가 동작을 안 하게 되는 것입니다. 별 짓을 다 하다가 확 컴퓨터를 뽀샤버릴 즘에 Dynamic Comment Previewing에서 힌트를 얻어 쿠키설정 자바스크립트 소스를 수정했더니 잘 됩니다.
결론은 </MTEntryIfCommentsOpen> 다음에 아래 코드를 넣어줍니다.
어느 버전부터인지는 모르지만, mt-site.js 파일에 위 속성이 들어갔는데, 살펴보면 한 군데가 틀려졌습니다. 생각해보면 당연한 것인데, 자바스크립트에 무지하다보니 이걸 알아내는 데 종일 삽질을 해댔습니다.
document.comments_form.email.value = getCookie("mtcmtmail");
에서 comments_form.email 을 getElementById('email')로 바꿔준 것입니다.
document.getElementById('email').value = getCookie("mtcmtmail");
mt-site.js내에서 수정을 하셔도 좋고, 템플릿 </MTEntryIfCommentsOpen> 다음에 위의 자바스크립트 소스를 그냥 가져다 붙여도 됩니다.
여기까지면 MovableType 기본 템플릿에서 코멘트가 제대로 동작하고, XHTML 1.1유효성 검사도 통과할 수 있습니다.
여기서부터는 Dynamic Comment Previewing과 작은 에디터를 사용할 경우에 수정해야 할 부분입니다.
Dynamic Comment Previewing 의 자바스크립트 소스에서
document.comments_form.comment-author.value;
부분을 찾아 document.getElementById('comments_form').author.value; 게 바꿔줍니다.
작은 에디터에서도 마찬가지로
onclick="return formatStr(document.comments_form.text, \'strong\')"
이 부분을
onclick="return formatStr(document.getElementById( \'comments_form\' ).text, \'strong\')" 게 수정해 줍니다. 총 6군데가 있을 것입니다.
이제는 Dynamic Comment Previewing과 작은 에디터를 즐기면서(?) XHTML 1.1 유효성 검사를 통과할 수 있을 것입니다.











