1

주제: TTML의 플러그인 확장 문법

$customClass : 플러그인이 지정한 클래스 이름 (index.xml 등에 여러 개 정의 가능?)
$customID : 플러그인이 지정한 ID (옵션)
$originalContent : 플러그인이 처리할 데이터
$processedContent : 플러그인이 처리한 결과
$fallbackMsg : 플러그인이 없는 등의 이유로 작동하지 못할 때 대신 보여줄 메시지

변환되기 전:

<div class="plugin-replacer $customClass" ttml:handler="$pluginName" ttml:attr1="value1" ...>
  <div class="plugin-content">$originalContent</div>
  <div class="plugin-fallback">$fallbackMsg</div>
</div>

위에서 ttml: 네임스페이스를 가지는 것은 플러그인에게 associative array 형태로 전달. 이것만으로 충분하다면 .plugin-content 영역은 넣지 않을 수도 있음.

변환된 후:

<div class="plugin-replaced $customClass" id="$customID">$processedContent</div>

또는

<div class="plugin-fallback">$fallbackMsg</div>

이런 형태는 어떨까요?

daybreaker (2008-12-20 23:14:05)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

2

답글: TTML의 플러그인 확장 문법

부가적으로 .plugin-content div 요소에 type="application/json" encoding="utf-8"을 넣는다든가 하는 것도 가능하겠죠. 보통 때는 서버사이드에서 처리된 후 보여질 테니 필요 없지만 TTXML에 담긴 형태로 존재할 경우 다른 툴이 처리할 때 도움이 될 수 있습니다.

다만, 이 문법을 처리하지 못하는 도구에서 보여줄 경우 .plugin-content 내부 내용이 보여지기 때문에 혼란을 유발할 수 있는데 해결방법으로는 div 대신 <!-- --> 주석문을 이용하거나 항상 style="display:none;"으로 설정하는 것이 있을 수 있습니다. 이 부분도 의견 부탁드립니다.

ps. 이 쓰레드에서 대충 정리되면 텍스트큐브 코어와 구글맵 플러그인에 우선 적용해보겠습니다.

daybreaker (2008-12-20 23:18:23)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.