문제

나는 최근에 발견 genshi.빌더 모듈에 있습니다.의 Divmod Nevow 의 스탠 모듈이 있습니다.어떻게 한 사용 genshi.빌더입니다.태그 빌드를 HTML 문서로 특정 doctype?또는 이에도 좋은 일을 할까?하지 않을 경우,무엇입 방법?

도움이 되었습니까?

해결책

그것은 가능하지 않을 구축하는 전체 페이지를 사용하여 genshi.builder.tag --할을 수행 할 필요가 일부에 수술의 결과 스트림을 삽입하 doctype.또한,결과 코드는 보이는 것이 무서운.권장하는 방법을 사용하 Genshi 을 사용하여 별도의 템플릿 파일 생성 스트림에서,그리고 다음을 렌더링하는 스트림을 출력 유형을 당하고 싶습니다.

genshi.builder.tag 은 대부분 이용이 필요할 때를 생성하는 간단한 마크업 내에서 Python 등을 때 당신이 건축 양식 또는 어떤 종류의 논리거의 수정 출력됩니다.

은 설명서를 참조하십시오:

당신이 정말로 원하는 경우를 생성하는 전체 문서를 사용하여만 builder.tag, 이(완전하게 검증되지 않은)코드 수있는 좋은 출발점이 될:

from itertools import chain
from genshi.core import DOCTYPE, Stream
from genshi.output import DocType
from genshi.builder import tag as t

# Build the page using `genshi.builder.tag`
page = t.html (t.head (t.title ("Hello world!")), t.body (t.div ("Body text")))

# Convert the page element into a stream
stream = page.generate ()

# Chain the page stream with a stream containing only an HTML4 doctype declaration
stream = Stream (chain ([(DOCTYPE, DocType.get ('html4'), None)], stream))

# Convert the stream to text using the "html" renderer (could also be xml, xhtml, text, etc)
text = stream.render ('html')

결과 페이지에 없을 것이다 공백에서-그것을 보면 정상적인,하지만 당신은 힘든 시간을 읽어의 소스 코드는 것이기 때문에 완전히 중 하나는 라인입니다.을 구현하는 적절한 필터가 추가하는 공백은 왼쪽으로 운동을 리더입니다.

다른 팁

Genshi.빌더는"프로그래밍 방식으로 생성 마크업 스트림"[1].내가 믿고 그것의 목적으로드 템플릿 언어입니다.당신은 아마를 찾고 계 템플릿 생성 언어를 생성하는 전체 페이지입니다.

당신은 할 수 있습니다,그러나 다음을 수행:

>>> import genshi.output
>>> genshi.output.DocType('html')
('html', '-//W3C//DTD HTML 4.01//EN', 'http://www.w3.org/TR/html4/strict.dtd')

다른 Doctypes 여기: http://genshi.edgewall.org/wiki/ApiDocs/genshi.output#genshi.output:DocType

[1] genshi.builder.__doc__
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top