При использовании хамелеона я могу заменить элемент из базового шаблона, используя концепцию слота. Где вы определяете слот и заполняете его другим тегом. Поскольку в голове нет элемента-контейнера, как можно добавлять элементы в голову? :
Файл макета
<html>
<head>
<div metal:define-slot="extra_head"></div>
</head>
<body>
...
</body>
</html>
Шаблон контента, в котором необходимо указать дополнительный заголовок.
<html metal:use-macro="load: main.pt">
<div metal:fill-slot="extra_head">
<script type="text/javascript" src="http://example/script.js"></script>
</div>
...
</html>
Это отображается в:
<html>
<head>
<div metal:fill-slot="extra_head">
<script type="text/javascript" src="http://example/script.js"></script>
</div>
</head>
<body>
...
</body>
</html>
Но в голове нет тега контейнера, так как же определить слот для добавления материала в голову?