I am trying to separate out small bits of HTML that are used on many pages of a site. In one case I use a secondary navigation on some pages in the right column that is supposed to look in the containing folder's sub-folders and list the Page Templates that is finds there. I create a folder called /templates/widgets and within there I have a Page Template called template-lister. <h2><strong>Quick Links</strong></h2> <ul tal:define="ztu modules/ZTUtils; raw python:context.objectValues('Folder'); location_folder_list python:ztu.LazyFilter(raw, skip='View')"> <li tal:repeat="location_folder location_folder_list"> <a href="" tal:attributes="href location_folder/absolute_url" tal:content="location_folder/title">Location Title</a> <span tal:define="raw python:location_folder.objectValues('Folder'); office_folder_list python:ztu.LazyFilter(raw, skip='View')"> <span tal:repeat="office_folder office_folder_list"> <span tal:content="office_folder/title" >title</span> <ul tal:define="raw python:office_folder.objectValues('Page Template'); posting_list python:ztu.LazyFilter(raw, skip='View')"> <li tal:repeat="posting posting_list" tal:condition="posting_list"> <a href="" tal:attributes="href posting/absolute_url" tal:content="posting/title">Posting Title</a> </li> <li tal:condition="not: posting_list"> No Postings at this time </li> </ul> </span> </span> </li> </ul> If I put this code directly in each Page Template that uses it, it works fine, but when removed from each Page Template and called like so: <span tal:content="structure context/templates/widgets/template-lister" tal:omit-tag="" /> it uses the context of the "/templates/widgets" folder and does not work. Because this bit of TAL is used on many pages and the style of it changes often, I really want to pull it out into one place for easy updating. I know I am missing something elemental here ... Thanks for any advice.