package ice import ( "net/url" "path" "strings" kit "shylinux.com/x/toolkits" ) func AddRender(key string, render func(*Message, string, ...interface{}) string) { Info.render[key] = render } func Render(m *Message, cmd string, args ...interface{}) string { if render, ok := Info.render[cmd]; ok { m.Debug("render: %v %v", cmd, kit.FileLine(render, 3)) return render(m, cmd, args...) } switch arg := kit.Simple(args...); cmd { case RENDER_ANCHOR: // [name] link return kit.Format(`%s`, kit.Select(arg[0], arg, 1), arg[0]) case RENDER_BUTTON: // name... if m._cmd == nil || m._cmd.Meta == nil { break } list := []string{} for _, k := range kit.Split(kit.Join(arg)) { list = append(list, kit.Format(``, k, kit.Select(k, kit.Value(m._cmd.Meta, kit.Keys("_trans", k)), m.Option(MSG_LANGUAGE) != "en"))) } return kit.Join(list, SP) case RENDER_IMAGES: // src [size] return kit.Format(``, arg[0], kit.Select("120", arg, 1)) case RENDER_VIDEOS: // src [size] return kit.Format(`