2017-01-14 14 views
3

Я использую модуль "text/template".Как заменить строку в шаблоне Go?

Я STRUCT, как это для разбора XML с Blogger

type Media struct { 
    ThumbnailUrl string `xml:"url,attr"` 
} 


type Entry struct { 
    ID string `xml:"id"` 
    Published Date `xml:"published"` 
    Updated Date `xml:"updated"` 
    Draft Draft `xml:"control>draft"` 
    Title string `xml:"title"` 
    Content string `xml:"content"` 
    Tags Tags `xml:"category"` 
    Author Author `xml:"author"` 
    Media Media `xml:"thumbnail"` 
    Extra string 
} 

Затем я создаю Go шаблон как этот

[image] 
    src = "{{ replace .Media.ThumbnailUrl 's72-c' 's1600' }}" 
    link = "" 
    thumblink = "{{ .Media.ThumbnailUrl }}" 
    alt = "" 
    title = "" 
    author = "" 
    license = "" 
    licenseLink = "" 

Функция замены не определена. Я хочу, чтобы заменить URL из {{ .Media.ThumbnailUrl }}

Например:

из этого URL

https://2.bp.blogspot.com/-DEeRanrBa6s/WGWGwA2qW5I/AAAAAAAADg4/feGUc-g9rXc9B7hXpKr0ecG9UOMXU3_VQCK4B/s72-c/pemrograman%2Bjavascript%2B-%2Bpetanikode.png

Для этого URL

https://2.bp.blogspot.com/-DEeRanrBa6s/WGWGwA2qW5I/AAAAAAAADg4/feGUc-g9rXc9B7hXpKr0ecG9UOMXU3_VQCK4B/s1600/pemrograman%2Bjavascript%2B-%2Bpetanikode.png

+0

Uh, установите переменную ThumbnailUrl в URL вы хотите в любой зовёт шаблон? Я не думаю, что «замена» - вещь в шаблонах go. – 1N5818

ответ

2

Вы можете написать мнение помощника функции, подобные этому

func replace(input, from,to string) string { 
    return strings.Replace(input,from,to, -1) 
} 

funcMap = template.FuncMap{ 
     "replace": replace, 
} 
template := template.New("").Funcs(internalFuncMap) 

и использовать template для визуализации представления.

код исх ссылки

  1. https://github.com/sairam/kinli/blob/master/template_funcs.go#L57-L59
  2. https://github.com/sairam/kinli/blob/master/templates.go#L48

 Смежные вопросы

  • Нет связанных вопросов^_^