|
|
Category Feature in split format
|
This describes an implementation of the Category feature for this wiki.
|
This describes an implementation of the Category feature for this wiki.
|
|
|
== Design == * MacroCategory.py - show a list of pages in a particular category * implement category tags, like this:{{{ {{Category(Tasklist,2023)}} {{Category(New Feature)}}}}}
|
|
This set of macros would render a single box at the bottom of thepage that looked like this:{{{#!YellowBoxcolor=lightgreyCategories: Tasklist|2023|New Feature}}}Where each item was a link to a category page for that category of pages.And 'Categories' was a link to the Categories page.(ie 'Tasklist' would be a link to Category:Tasklist.)If no such page existed, the page is generated on demand using the{{Category(show:Tasklist)}} macro and some default text.
|
This set of macros would render a single box at the bottom of thepage that looked like this:{{{#!YellowBoxcolor=lightgreyCategories: Tasklist|2023|New Feature}}}Where each item was a link to a category page for that category of pages.And 'Categories' was a link to the [[Categories]] page.(ie 'Tasklist' would be a link to [[Category:Tasklist]].)If no such page existed, the page is generated on demand using the{''''''{Category(show:Tasklist)}} macro and some default text.
|
- implement category reference, like this:{{{ {{Category(show:Tasklist)}}}}}
|
* implement category reference, like this:{{{ {{Category(show:Tasklist)}}}}}
|
|
This shows the pages in the Tasklist category.This could be used inside a specific page: like the Category:Tasklist page,after some custom text for that category.
|
This shows the pages in the Tasklist category.This could be used inside a specific page: like the [[Category:Tasklist]] page,after some custom text for that category.
|
|
|
== Implementation (todo) == * create MacroCategory.py script * have main: - check if it's a 'show' or a tag instance - if show, * parse all pages for references to the indicated category tag * present them as a list (return html with a list of pages) - if tag, * scan page and find all categories * add display at bottom of page * add to page footer display list * add code to tbwiki_engine to print lines from page footer display list * find existing categories line, if any, and and add new tag * maybe see add_to_msg for inspiration * substitute category display for one of the macro instantiations * remove other macro instantiations (do this during page render)
|
- create the "Categories" page * create a default page for use when a category page is missing * modify tbwiki_engine.py to convert a reference to a missing category page into the default category page body content (use a macro action for this?)
|
* create the "Categories" page * create a default page for use when a category page is missing * modify tbwiki_engine.py to convert a reference to a missing category page into the default category page body content (use a macro action for this?)
|
|
|