webpy: как переопределить содержимое базового шаблона? - PullRequest
2 голосов
/ 04 января 2011

Я использую webpy с базовым шаблоном

render = web.template.render(basedir + 'templates/', base='layout', globals=globals_vars_custom)

в layout.html У меня есть что-то вроде:

$def with (content)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
    <head>
        <title>PAGE TITLE</title>
        <!-- Some CSS and some javascript -->
    </head>
    <body>
        $:content
    </body>
</html>

Этот базовый шаблон отлично работает на 90% моегосайт, но у меня есть страница, на которой мне нужно вставить некоторые другие данные в <head> (некоторые метатеги).

Как я могу это сделать?Как я могу поместить <head> в структуру, которую я могу легко переопределить внутри шаблона?

Спасибо!

1 Ответ

5 голосов
/ 13 января 2011

Это было проще, чем я думал:

Вы можете создать переменную в шаблоне:

в page.html вы можете определить переменную

$var title = 'specific title'

вБазовый шаблон layout.html вы можете назвать varable:

$def with (content)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
    <head>
        <title>$content.get("title","DEFAULT TITLE")</title>
        <!-- Some CSS and some javascript -->
    </head>
    <body>
        $:content
    </body>
</html>

Я надеюсь, что этот ответ может быть полезен и для других людей.

...