@@ -36,17 +36,17 @@ var (
3636)
3737
3838// HTML renders nodes as the markup for the target env.
39- func HTML (env string , nodes ... types.Node ) (htmlTemplate.HTML , error ) {
39+ func HTML (ctx Context , nodes ... types.Node ) (htmlTemplate.HTML , error ) {
4040 var buf bytes.Buffer
41- if err := WriteHTML (& buf , env , nodes ... ); err != nil {
41+ if err := WriteHTML (& buf , ctx . Env , ctx . Format , nodes ... ); err != nil {
4242 return "" , err
4343 }
4444 return htmlTemplate .HTML (buf .String ()), nil
4545}
4646
4747// WriteHTML does the same as HTML but outputs rendered markup to w.
48- func WriteHTML (w io.Writer , env string , nodes ... types.Node ) error {
49- hw := htmlWriter {w : w , env : env }
48+ func WriteHTML (w io.Writer , env string , fmt string , nodes ... types.Node ) error {
49+ hw := htmlWriter {w : w , env : env , format : fmt }
5050 return hw .write (nodes ... )
5151}
5252
@@ -64,9 +64,10 @@ func ReplaceAmpersand(s string) string {
6464}
6565
6666type htmlWriter struct {
67- w io.Writer // output writer
68- env string // target environment
69- err error // error during any writeXxx methods
67+ w io.Writer // output writer
68+ env string // target environment
69+ format string // target template
70+ err error // error during any writeXxx methods
7071}
7172
7273func (hw * htmlWriter ) matchEnv (v []string ) bool {
@@ -241,7 +242,13 @@ func (hw *htmlWriter) code(n *types.CodeNode) {
241242 }
242243 hw .writeBytes (greaterThan )
243244 }
245+ if hw .format == "devsite" {
246+ hw .writeString ("{% verbatim %}" )
247+ }
244248 hw .writeEscape (n .Value )
249+ if hw .format == "devsite" {
250+ hw .writeString ("{% endverbatim %}" )
251+ }
245252 if ! n .Term {
246253 hw .writeString ("</code>" )
247254 }
0 commit comments