2012-05-20 4 views
2

Python에서 정규식을 사용하여 Markdown으로 포맷 된 주석을 CoffeeScript 파일에서 가져옵니다. CS는 ###을 여러 줄 주석의 시작 및 끝 표식으로 사용합니다. 헤더 클래스를 나타 내기 위해 #이 사용되기 때문에 이것은 markdown 형식과 충돌합니다. Markdown이 % 또는^또는 다른 문자를 헤더 클래스 토큰으로 해석 할 수 있습니까?markdown에서 토큰을 대체 할 수 있습니까?

+0

귀하의 마크 다운 라이브러리에서 '#'문자를 검색하고 해당 문자를 원하는 문자로 바꿀 필요가 없습니까? –

+0

이 작업을 위해 Python Markdown 소스를 수정하는 것이 좋습니다. – JeremyFromEarth

+0

대안을 생각해 볼 수 있습니까? 당신은 markdown의 자신의 특별한 풍미를 필요로하는 것, 왜 그것을 위해 가지 마십니까? –

답변

1

markdown.extensions.Extension 클래스를 활용하여 Python Markdown의 많은 요소를 재정의 할 수 있습니다. 조금 파고 실험 한 후에는 일반 BlockParser를 확장 한 사용자 정의 헤더 파서를 작성하여 작동하도록했습니다.

은 기본적으로 그것이 내가 또 다른 발견이 연구를 통해 약 절반이

class CustomHeaderParser(BlockParser) 
    def run(params) 
     # implementation 

class CustomExtension(Extension) 
    def extendMarkdown(self, md, md_globals) 
     md.parser.blockprocessor.add('custom_header_parser', CustomHeaderParser(md.parser), '<hashheader') 
     md.registerExtension(self) 


markdown_parser = markdown.Markdown(extensions=[ CaretHeaderExtension() ]) 
markdown_parser.convert(markdown_text) 

과 같은 형태, 바람직하지, 주위에 작동합니다. markdown이 Setext와 atx를 이해하는 두 가지 유형의 헤더 스타일이 있습니다. Setext는 텍스트 아래의 줄에 ====와 -----을 사용하여 두 개의 헤더 레벨 h1과 h2를 제공합니다.

+0

setext와 atx는 무엇을 의미합니까? –

관련 문제