Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit 8e2ddf5

Browse files
Escape all Code blocks for jingsa templates
1 parent c201d1b commit 8e2ddf5

10 files changed

Lines changed: 198 additions & 187 deletions

File tree

claat/cmd/export.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ func writeCodelabWriter(w io.Writer, clab *types.Codelab, extraVars map[string]s
164164
}{Context: render.Context{
165165
Env: ctx.Env,
166166
Prefix: ctx.Prefix,
167+
Format: ctx.Format,
167168
GlobalGA: ctx.MainGA,
168169
Updated: time.Time(*ctx.Updated).Format(time.RFC3339),
169170
Meta: &clab.Meta,
@@ -206,6 +207,7 @@ func writeCodelab(dir string, clab *types.Codelab, extraVars map[string]string,
206207
}{Context: render.Context{
207208
Env: ctx.Env,
208209
Prefix: ctx.Prefix,
210+
Format: ctx.Format,
209211
GlobalGA: ctx.MainGA,
210212
Updated: time.Time(*ctx.Updated).Format(time.RFC3339),
211213
Meta: &clab.Meta,

claat/render/html.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6666
type 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

7273
func (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
}

claat/render/lite.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ import (
3030
)
3131

3232
// Lite renders nodes as a standard HTML markup, without Custom Elements.
33-
func Lite(env string, nodes ...types.Node) (htmlTemplate.HTML, error) {
33+
func Lite(ctx Context, nodes ...types.Node) (htmlTemplate.HTML, error) {
3434
var buf bytes.Buffer
35-
if err := WriteLite(&buf, env, nodes...); err != nil {
35+
if err := WriteLite(&buf, ctx.Env, nodes...); err != nil {
3636
return "", err
3737
}
3838
return htmlTemplate.HTML(buf.String()), nil

claat/render/md.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ import (
2727
)
2828

2929
// MD renders nodes as markdown for the target env.
30-
func MD(env string, nodes ...types.Node) (string, error) {
30+
func MD(ctx Context, nodes ...types.Node) (string, error) {
3131
var buf bytes.Buffer
32-
if err := WriteMD(&buf, env, nodes...); err != nil {
32+
if err := WriteMD(&buf, ctx.Env, nodes...); err != nil {
3333
return "", err
3434
}
3535
return buf.String(), nil
@@ -42,12 +42,12 @@ func WriteMD(w io.Writer, env string, nodes ...types.Node) error {
4242
}
4343

4444
type mdWriter struct {
45-
w io.Writer // output writer
46-
env string // target environment
47-
err error // error during any writeXxx methods
48-
lineStart bool
49-
isWritingTableCell bool // used to override lineStart for correct cell formatting
50-
Prefix string // prefix for e.g. blockquote content
45+
w io.Writer // output writer
46+
env string // target environment
47+
err error // error during any writeXxx methods
48+
lineStart bool
49+
isWritingTableCell bool // used to override lineStart for correct cell formatting
50+
Prefix string // prefix for e.g. blockquote content
5151
}
5252

5353
func (mw *mdWriter) writeBytes(b []byte) {

claat/render/template-devsite.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
{{if $.Meta.BadgePath}}badge-path="{{$.Meta.BadgePath}}"{{end}}>
6363
</google-codelab-about>
6464
{{end}}
65-
{{.Content | renderHTML $.Env}}
65+
{{.Content | renderHTML $.Context}}
6666
</google-codelab-step>
6767
{{end}}{{end}}
6868
</google-codelab>

claat/render/template-offline.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ <h1>{{.Meta.Title}}</h1>
7070
<div class="step__body">
7171
<h1>{{.Meta.Title}}</h1>
7272
<h2>{{.StepNum}}. {{.Current.Title}}</h2>
73-
{{.Current.Content | renderLite .Env}}
73+
{{.Current.Content | renderLite $.Context}}
7474
</div>
7575

7676
</div><!-- codelab__toc -->

claat/render/template.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type Context struct {
3636
Env string
3737
Prefix string
3838
GlobalGA string
39+
Format string
3940
Meta *types.Meta
4041
Steps []*types.Step
4142
Updated string

claat/render/template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
feedback-link="{{.Meta.Feedback}}">
4343
{{range $i, $e := .Steps}}{{if matchEnv .Tags $.Env}}
4444
<google-codelab-step label="{{.Title}}" duration="{{.Duration.Minutes}}">
45-
{{.Content | renderHTML $.Env}}
45+
{{.Content | renderHTML $.Context}}
4646
</google-codelab-step>
4747
{{end}}{{end}}
4848
</google-codelab>

claat/render/template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
{{range .Steps}}{{if matchEnv .Tags $.Env}}
1010
## {{.Title}}
1111
{{if .Duration}}Duration: {{durationStr .Duration}}{{end}}
12-
{{.Content | renderMD $.Env}}
12+
{{.Content | renderMD $.Context}}
1313
{{end}}{{end}}

0 commit comments

Comments
 (0)