Modify ↓
#2749 closed defect (fixed)
ListTagged in 0.6 does not give the titles of the pages from the first heading
Reported by: | blyth | Owned by: | Alec Thomas |
---|---|---|---|
Priority: | normal | Component: | TagsPlugin |
Severity: | normal | Keywords: | ListTagged |
Cc: | blyth@… | Trac Release: | 0.11 |
Description
In prior versions of TracTags the full title of pages as gleaned from the first heading on the page was presented in the ListTagged list of pages making the list much more informative than just the page names
Attachments (0)
Change History (7)
comment:1 Changed 17 years ago by
Component: | TracTagsXmlrpcPlugin → TagsPlugin |
---|---|
Owner: | changed from Mike Buzzetti to Alec Thomas |
comment:2 Changed 17 years ago by
comment:4 Changed 17 years ago by
Cc: | blyth@… added; anonymous removed |
---|
This would make ListTagged so much more useful to me that I would like to re-state my enhancement request
comment:5 Changed 17 years ago by
Here is my diff to do precisely what I requested, I hope that this can be added to trunk.
Index: macros.py =================================================================== --- File macros.py (revision 3766) +++ File macros.py (working copy) @@ -13,6, +13,8 @@ from tractags.api import TagSystem from genshi.builder import tag as builder + from trac.wiki import model + import re def render_cloud(env, req, cloud, renderer=None): """Render a tag cloud @@ -70,6, +72,20 @@ class ListTaggedMacro(WikiMacroBase): + + first_head = re.compile('=\s+([^=]*)=') + + def wikipage_first_heading(self, page): + from trac.wiki import model + page = model.WikiPage(self.env, page) + title = '' + if page.exists: + ret = self.__class__.first_head.search(page.text) + title = ret and ret.group(1) or '' + + return title + + def expand_macro(self, formatter, name, content): req = formatter.req query_result = TagSystem(self.env).query(req, content) @@ -83,15, +99,21 @@ for resource, tags in sorted(query_result, key=lambda r: str(r[0].id)): tags = sorted(tags) + + if resource.realm == 'wiki': + desc = ' ' + self.wikipage_first_heading(resource.id) + else: + desc = '' + if tags: rendered_tags = [ link(resource('tag', tag)) for tag in tags ] - li = builder.li(link(resource), ' (', rendered_tags[0], + li = builder.li(link(resource), desc,' (', rendered_tags[0], [(' ', tag) for tag in rendered_tags[1:]], ')') else: - li = builder.li(link(resource)) + li = builder.li(link(resource), desc ) ul(li, '\n') return ul
comment:6 Changed 17 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
This is a "feature" of using 0.11's resource system. If people really want this behaviour back I can special-case the Wiki title.