58 def folder_link (from_page, folder, page=0) : |
58 def folder_link (from_page, folder, page=0) : |
59 """ |
59 """ |
60 Returns a link to the given folder from the given page |
60 Returns a link to the given folder from the given page |
61 """ |
61 """ |
62 |
62 |
63 return link_from(from_page, folder.html_file(page))(folder.title) |
63 return link_from(from_page, folder.html_page(page))(folder.title) |
64 |
64 |
65 def folder_page_link (folder, page) : |
65 def folder_page_link (folder, page) : |
66 """ |
66 """ |
67 Returns a partial a tag from the folder itself to the given page number |
67 Returns a partial a tag from the folder itself to the given page number |
68 """ |
68 """ |
69 |
69 |
70 return link_from(folder, folder.html_file(page)) |
70 return link_from(folder, folder.html_page(page)) |
71 |
71 |
72 def folder_paginate (folder, cur_page) : |
72 def folder_paginate (folder, cur_page) : |
73 """ |
73 """ |
74 Render the pagination view for a folder, if needed |
74 Render the pagination view for a folder, if needed |
75 """ |
75 """ |
132 tags.p(id='description')(folder.description) if folder.description else None, |
132 tags.p(id='description')(folder.description) if folder.description else None, |
133 |
133 |
134 # shorturl |
134 # shorturl |
135 ] |
135 ] |
136 |
136 |
137 def breadcrumb_trail (gallery, page) : |
137 def breadcrumb_trail (gallery, cur_page) : |
138 """ |
138 """ |
139 Yield the breadcrumb elements |
139 Yield the breadcrumb elements |
140 """ |
140 """ |
141 |
141 |
142 is_first = True |
142 is_first = True |
143 |
143 |
144 for segment in gallery.path_to(page) : |
144 for page in gallery.path_to(cur_page) : |
145 # spacers |
145 # spacers |
146 if is_first : |
146 if is_first : |
147 is_first = False |
147 is_first = False |
148 |
148 |
149 else : |
149 else : |
150 yield html.raw("»") |
150 yield html.raw("»") |
151 |
151 |
152 # link from this page to sub-page |
152 # link from this page to sub-page |
153 # XXX: title |
153 yield link_from(cur_page, page.html)(page.title) |
154 yield link_from(page, segment)(segment.name.title()) |
|
155 |
|
156 |
154 |
157 def breadcrumb (gallery, page) : |
155 def breadcrumb (gallery, page) : |
158 """ |
156 """ |
159 Build a breadcrumb trail from the gallery root to the given object |
157 Build a breadcrumb trail from the gallery root to the given object |
160 """ |
158 """ |
161 |
159 |
162 return tags.div(id='breadcrumb')( |
160 return tags.div(id='breadcrumb')( |
163 breadcrumb_trail(gallery, page) |
161 breadcrumb_trail(gallery, page) |
164 ) |
162 ) |
165 |
163 |
166 def master (gallery, title, page, body) : |
164 def master (gallery, page, body) : |
167 """ |
165 """ |
168 Render the full-page HTML layout for the given page with title and body |
166 Render the full-page HTML layout for the given page with title and body |
169 """ |
167 """ |
170 |
168 |
171 return html.XHTMLDocument( |
169 return html.XHTMLDocument( |
172 head=[ |
170 head=[ |
173 tags.title(title), |
171 tags.title(page.title), |
174 |
172 |
175 # stylesheet |
173 # stylesheet |
176 tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page)) |
174 tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page.html)) |
177 ], |
175 ], |
178 |
176 |
179 body=[ |
177 body=[ |
180 # top-of-page breadcrumb nav |
178 # top-of-page breadcrumb nav |
181 breadcrumb(gallery, page), |
179 breadcrumb(gallery, page), |