<py:match path="foo">
<?python
import os
href = select('@href').render()
SOMEWHERE = ... # what file contained the foo tag?
path = os.path.abspath(os.path.join(os.path.dirname(SOMEWHERE), href)
f = file(path,'r')
# (do something interesting with f)
?>
</py:match>
...
<foo href="../path/relative/to/this/template/abcd.xyz"/>
Что должно идти как "где-то" выше? Я хочу, чтобы атрибут href
относился к файлу с тегом foo
, как атрибуты href
для других тегов.
Или в каком файле содержится блок py: match? Это менее хорошо, потому что он может находиться в другом каталоге, чем файл с тегом foo
.
Еще менее хорошо: я мог бы указать путь к файлу, который я рендерил, в качестве аргумента контекста извне Genshi, но он может находиться в другом каталоге, чем оба перечисленных выше.