
Constantine
01.11.2016
23:21:15
он тебе пишет список файлов )

Maxim
01.11.2016
23:21:16
Файл есть, Gin его видит

Denis
01.11.2016
23:21:17
?

Constantine
01.11.2016
23:21:20
а не название тмиплейта

Google

Constantine
01.11.2016
23:21:35
ты ж не в пхп и жс, где require это на все случаи жизни

Maxim
01.11.2016
23:22:10
Так что шутка для меня слишком тонкая

Constantine
01.11.2016
23:22:34
ты это go run объясни )
define оставил?
в файле аналитики
Дык, уже ведь:
func customRender() multitemplate.Render {
render := multitemplate.New()
render.AddFromFiles("index", templatesPath+"layout.html", templatesPath+"index.html")
render.AddFromFiles("view", templatesPath+"layout.html", templatesPath+"view.html")
render.AddFromFiles("embed", templatesPath+"embed.html", templatesPath+"embed.html")
render.AddFromFiles("error", templatesPath+"layout.html", templatesPath+"error.html")
return render
}
вот тут не видно твой analytics, почему?

Maxim
01.11.2016
23:25:35
Я психанул и заново пишу эту хрень.

Constantine
01.11.2016
23:25:58
юзай адвансед пример
где файло грузит с помощью glob

Maxim
01.11.2016
23:26:42

Constantine
01.11.2016
23:27:16
https://github.com/gin-gonic/contrib/tree/master/renders/multitemplate
ну здесь же

Google

Maxim
01.11.2016
23:27:41

Constantine
01.11.2016
23:27:43
да

Maxim
01.11.2016
23:28:03
Я пробовал - всё нахрел ломалось. Да и у меня шаблонов не так уж и много

Constantine
01.11.2016
23:28:12
у тебя сейчас ничего не работает )

Denis
01.11.2016
23:31:18
а где лежит define аналитики
в layout?
либо в analytics.tpl.html

Maxim
01.11.2016
23:32:37

Denis
01.11.2016
23:33:00
засунб в лейаут

Maxim
01.11.2016
23:33:21
Хотел покомпактней всё сделать. :с

Denis
01.11.2016
23:33:56
у тебя беретя лейаут и соединяется с обычной страницей
образуются пары layout - page 1
layput - page 2
layput - page 3
другие файлы не делят их темплейты
page1 - page2 например
такой связи не существует
юзай мой код :)

Maxim
01.11.2016
23:35:43

Denis
01.11.2016
23:35:59
не, не уверен

Maxim
01.11.2016
23:36:08
А, это уже чутка другое

Google

Denis
01.11.2016
23:36:30
это решение того, с чем ты столкнулся
ну или либо разберись как работает Multitemplate для gin
там строк 20

Constantine
01.11.2016
23:37:36
+

Maxim
01.11.2016
23:37:36

Denis
01.11.2016
23:39:06
в обычном темплейте это делается так
page1 := template.New("").Parse(layout1).Parse(layout2) ... .Parse(page1)
и так для каждой страницы
потом собирается в мап
и отдается gin
главное соблюдать порядок парсинга лейаутов

Constantine
01.11.2016
23:40:48
чую Максим через неделю на ириску вернется )
если уж там всё просто

Denis
01.11.2016
23:40:55
?
не сдавайся, потом легче будет

Maxim
01.11.2016
23:41:23
Собсно, я на ириску пересел как раз потому что там для вставки блока шаблона достаточно указать {{render "partials/navbar.html"}} и можно назначить один layout с динамической начинкой на месте {{ yield }}.

Denis
01.11.2016
23:42:59
ща будет тебе решение без боли

Constantine
01.11.2016
23:43:36

Denis
01.11.2016
23:45:54
не, там готовое Jade-like решение
https://github.com/CloudyKit/jet

Google

Denis
01.11.2016
23:46:32
единственное придется чутка разобраться

Maxim
01.11.2016
23:47:11

Admin
ERROR: S client not available

Denis
01.11.2016
23:47:36
и рендерить через view.Execute а не через с.HTML(или что там в gin)

Maxim
01.11.2016
23:48:02

Constantine
01.11.2016
23:48:34

Denis
01.11.2016
23:49:20
о, у меня напротив, эталон архитектуры темплейтов)

Maxim
01.11.2016
23:49:46

Denis
01.11.2016
23:51:48
не, block и yield было в родных темплейтах рельс, джанго (вроде бы уже не помню) и в jade

Constantine
01.11.2016
23:52:16
еще у усов вроде

Denis
01.11.2016
23:52:58
ты не сможешь рендерить в gin как ты делаешь это обычно
как там сейчас это происходит?
c.HTML("nameofpage", &data) ?
там gin вообще не будет учавствоать

Maxim
01.11.2016
23:54:00
как там сейчас это происходит?
func homePage(client *gin.Context) {
client.HTML(fasthttp.StatusOK, "index.html", gin.H{
"pageTitle": "Home",
"totalDBs": "1",
"totalPosts": "3,410,000+",
"totalUsers": "620+",
})
}

Constantine
01.11.2016
23:54:23
ну значит у тебя просто view.Render будет или как там

Maxim
01.11.2016
23:54:24
Как пример.

Denis
01.11.2016
23:54:33
ну а теперь будет точно также как родные темплейты go
тот же интерфейс
то есть вместо вот этого будет чутка другая конструкция

Google

Denis
01.11.2016
23:56:29
посмотри пример в репах Jet
var w bytes.Buffer // needs to conform to io.Writer interface (like gin's context.Writer for example)
vars := map[string]interface{}
if err = t.Execute(&w, vars, nil); err != nil {
// error when executing template
}
вместо &w будет &client.Writer
и предварительно выставить статус
client.StatusOK() \\ что-то такое
https://github.com/CloudyKit/jet/blob/master/example/main.go#L100
var views = jet.NewHTMLSet("./views")
views.SetDevelopmentMode(true)
потом конкретно в хандлерах
view, err := views.GetTemplate("todos/index.jet")
view.Execute(client.Writer, gin.H{}, nil)
изи

Maxim
02.11.2016
00:09:35
Если она сломается - отпишусь

Constantine
02.11.2016
00:14:43
а тебе принципиально?)

Denis
02.11.2016
00:15:29
Нет

Maxim
02.11.2016
00:15:32