html

package
v0.59.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package html 提供输出 HTML 内容的解码函数

srv := NewServer()
tpl := template.ParseFiles(...)
srv.Mimetypes().Add("text/html", html.Marshal, nil)

func handle(ctx *web.Context) Responser {
    return Object(200, html.Tpl(tpl, "index", map[string]any{...}), nil)
}

Index

Constants

View Source
const Mimetype = "text/html"

Variables

This section is empty.

Functions

func Marshal

func Marshal(v any) ([]byte, error)

Marshal 针对 HTML 内容的解码实现

参数 v 可以是以下几种可能:

  • Marshaler 接口;
  • string 或是 []byte 将内容作为 HTML 内容直接输出;
  • 其它情况下则是返回 serializer.ErrUnsupported

func Unmarshal

func Unmarshal([]byte, any) error

Types

type Marshaler

type Marshaler interface {
	MarshalHTML() ([]byte, error)
}

Marshaler 实现输出 HTML 内容的接口

func Tpl

func Tpl(t *template.Template, name string, data any) Marshaler

Tpl 将模板内容打包成 Marshaler 接口

name 表示需要引用的模板名称; data 则是传递给该模板的所有变量;

type View added in v0.58.2

type View interface {
	// View 返回输出 HTML 内容的对象
	//
	// 在模板中,用户可以使用 t 作为翻译函数,对内容进行翻译输出。
	// 其本地化的语言 ID 源自 ctx.LanguageTag。
	// t 的原型与模板内置的函数 printf 相同。
	// 同时还提供了 tt 输出指定语言的输出,相较于 t,tt 的第一个参数为语言 ID,
	// 比如 cmn-hans 等,要求必须能被 [language.Parse] 解析。
	//
	// name 为模板名称,data 为传递给模板的数据,
	// 这两个参数与 [template.Template.Execute] 中的相同。
	View(ctx *server.Context, name string, data any) Marshaler
}

View 支持本地化的模板管理

func NewLocaleView added in v0.58.2

func NewLocaleView(s *server.Server, fsys fs.FS, glob string) View

NewLocaleView 声明目录形式的本地化模板

按目录名称加载各个本地化的模板,每个模板之间相互独立,模板内可以包含本地化相关的内容。

fsys 表示模板目录,如果为空则会采用 s 作为默认值;

func NewView added in v0.58.2

func NewView(s *server.Server, fsys fs.FS, glob string) View

NewView 返回本地化的模板

适合所有不同的本地化内容都在同一个模板中的, 通过翻译函数 t 输出各种语言的内容,模板中不能存在本地化相关的内容。

fsys 表示模板目录,如果为空则会采用 s 作为默认值;

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL