주로 작동하는 트레 텝 (treetop) 문법 파일을 작성했습니다. [b]
과 같은 태그의 경우 해당 포럼에 구성된 BBCode의 해시가있는 함수로 전달하려고합니다. 굵은 글꼴이 허용되면 HTML을 반환하고 그렇지 않으면 BB 코드를 무시합니다.BBCode Treetop 파서와 스마트 태그가 닫히고 있습니까?
rule tag
tag:('[' [a-zA-Z]+ ']')
inner_tag:(
!('[/' [a-zA-Z]+ ']')
(tag <ForumBB::TagNode>/.)
)+
'[/' [a-zA-Z]+ ']'
end
중첩 된 태그에서는 작동하지 않습니다. 예를 들어 [b][i]Bold and italics[/i][/b]
은 첫 번째 닫기 태그 인 [/i]
과 일치하기 때문에 올바르게 처리되지 않습니다.
네가티브 표정에서 닫는 태그를 찾는 태그를 찾으면 어떻게 만들 수 있습니까?
포럼 관리자가 특정 태그를 켜고 끄는 동적 시스템이므로 BBCode의 각 유형에 대해 모든 규칙을 작성하지 않아도됩니다.
해시가 아닌 태그의 경우 변환하면 [z] invalid [/ z] 그대로 그대로 출력됩니다. 아마도 다른 접근법에서 살펴보고 문법 규칙 만 동적으로 포함하는 방법을 찾아야 할 것 같습니다. 확실히 물건을 깨끗하게합니다. – Kansha
문법 파일의 최악의 경우 허용되는 모든 태그에 대해 문자열을 만들고 루비 코드로 '평가'할 수 있습니다. 예쁜 것은 아니지만 할 가치가 있습니다. –