1

HTML タグのホワイトリスト登録に関するこの質問に続いて、Jeremy Wall のgo-html-transformを試してみました。検索可能なドキュメントを改善することを期待して、著者を直接悩ませるのではなく、ここで質問しています...うまくいけば、これはSOにとってツール固有ではありません。

App Engine、最新の SDK。Post.Body は [] バイトです。これは機能します:

package posts

import (
    // ...      
    "html/template"
    "code.google.com/p/go-html-transform/html/transform"
    "code.google.com/p/go-html-transform/h5"
)

// ...

// Pre-process post body, then return it to the template as HTML()
// to avoid html/template's escaping allowable tags
func (p *Post) BodyHTML() template.HTML {
    doc, _ := transform.NewDoc(string(p.Body))
    t := transform.NewTransform(doc)

    // Add some text to the end of any <strong></strong> nodes.
    t.Apply(transform.AppendChildren(h5.Text("<em>Foo</em>")), "strong")
    return template.HTML(t.String())
}

結果:

<strong>Blarg.<em>Foo</em></strong>

ただし、 AppendChildren() の代わりに次のようなものを使用する場合:

t.Apply(transform.Replace(h5.Text("<em>Foo</em>")), "strong")

内部サーバー エラーが発生します。Replace() の使い方を誤解していませんか? 既存のドキュメントは、この種のことが可能であることを示唆しています。

4

1 に答える 1