TestHorizontalRule >> FrontPage >> Nathans_page >> ItemNotes >> page_with_spaces 

TB Wiki

Login

TBWikiToDo in split format

This file contains notes about the status and progress of TBWiki------
This file contains notes about the status and progress of TBWiki------{{TableOfContents}}
Note that some test materials are on a separate wiki at:http://bird.org/cgi-bin/test.cgi/FrontPage
Note that some test materials are on a separate wiki at:http://bird.org/cgi-bin/test.cgi/FrontPage
Before working on this wiki any more, re-read this article by a developerwho has written 7 personal wikis: * https://borretti.me/article/unbundling-tools-for-thought * the basic idea is that there are better tools for thought than personal wikis * but that's OK - tbwiki is a hobby project that is fun to work on
Before working on this wiki any more, re-read this article by a developerwho has written 7 personal wikis: * https://borretti.me/article/unbundling-tools-for-thought   * the basic idea is that there are better tools for thought than personal wikis     * but that's OK - tbwiki is a hobby project that is fun to work on

Next major items to work on [edit section]

http://bird.org/test/Multipage_Blog_To_Do
= Next major items to work on = * add help routine to all processors (only 5 left as of November 2025) * For SpaceBlog: Add features to ProcessorBlogMultipage   * See [[http://bird.org/test/Multipage_Blog_To_Do]] * improve ProcessorChart   * fix svg tags and content-type header returned from vgchart.draw_to_str_from_text * support captions    * if caption="foo bar" is an attribute of an image, use figure, and figcaption to surround the image.   * see https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_figcaption_css
  • MacroCategory.py - show a list of pages in a particular category * See the Category Feature page for details.
 * MacroCategory.py - show a list of pages in a particular category   * See the [[Category Feature]] page for details.
  • (done) ExportSite processor * Search macro:{{{ {{Search(word or phrase)}}}}}
 * (done) ExportSite processor * Search macro:{{{ {{Search(word or phrase)}}}}}
  • do performance enhancements, possibly using the Scalene profiler
    • add a "blog" processor * for ideas, see: https://jekyllrb.com/docs/posts/ * save blog pages as: blog-YYYY-MM-DD * don't support comments * show index of blog posts, current post * research blog layouts: * see Blog Layouts and Features for ideas * figure out why I keep getting logged out (is there something wrong with the cookie expiration date?) * get css from page area of local wiki * don't retrieve from /var/www/css * Support wiki on mobile devices * (done) fix up mobile theme * change mobile.css and mobile.footer and mobile.header * some pages still show very small fonts on my phone * autodetect mobile phone browser, and use mobile theme automatically * user UserAgent field * switch to wsgi - I considered flask, see FlaskResearch
      • should switch to wsgi - I have experience with that * enhance blog system (see TBWikiToDo#Blog) * add page lock (to support multi-user)
 * do performance enhancements, possibly using the [[https://pypi.org/project/scalene/|Scalene profiler]] * add a "blog" processor   * for ideas, see: https://jekyllrb.com/docs/posts/     * save blog pages as: blog-YYYY-MM-DD     * don't support comments     * show index of blog posts, current post   * research blog layouts:     * see [[Blog Layouts and Features]] for ideas * figure out why I keep getting logged out (is there something wrong with   the cookie expiration date?) * get css from page area of local wiki   * don't retrieve from /var/www/css * Support wiki on mobile devices   * (done) fix up mobile theme     * change mobile.css and mobile.footer and mobile.header     * some pages still show very small fonts on my phone   * autodetect mobile phone browser, and use mobile theme automatically     * user UserAgent field * switch to wsgi - I considered flask, see [[FlaskResearch]]   * should switch to wsgi - I have experience with that * enhance blog system (see [[TBWikiToDo#Blog]]) * add page lock (to support multi-user)
  • make tables robust * eliminate save_table_data - placing support in appropriate routines in the io_handler (tb.handler) * one of write() or some other class method. * fix bug 017. See BugList
    • fix bug with edit-in-place on QuarterlyData table * make automated test suite for testing page rendering * fix all known bugs, with all known table types * make a table test matrix * table flow control * for transcription program (ProcessorTranscriber.py) * make a view form and edit form for the transcriber database * read documentation on view and edit forms * add processor_name to the transcriber database config * add support for hybrid tables * use case is to add a spreadsheet formula to the FIXTHIS pages, to show totals * ability to have tables with records from different sources * add io_handler per-record * need permission checks (readable, writable) per-record
 * make tables robust   * eliminate save_table_data - placing support in appropriate routines   in the io_handler (tb.handler)      * one of write() or some other class method.   * fix bug 017.  See [[BugList]]   * fix bug with edit-in-place on [[QuarterlyData]] table   * make automated test suite for testing page rendering   * fix all known bugs, with all known table types     * make a table test matrix * table flow control   * for transcription program (ProcessorTranscriber.py)     * make a view form and edit form for the transcriber database       * read documentation on view and edit forms     * add processor_name to the transcriber database config * add support for hybrid tables   * use case is to add a spreadsheet formula to the FIXTHIS pages, to show totals   * ability to have tables with records from different sources     * add io_handler per-record     * need permission checks (readable, writable) per-record

Things to do (random ideas, un-triaged) [edit section]

= Things to do (random ideas, un-triaged) = * don't allow caching a page edit page   * use http meta cache-control directive to prevent caching   * set caching relatively low anyway * add page locking for edits - to prevent collisions   * lock a page for 15 minutes when an edit is started     * create a lock file in the admin directory       * put user, start time, and page hash in lock file     * start a timer to handle lock timeout   * generate a hash of the page when the edit starts   * if someone else tries to edit, give them a warning that they have lower priority - indicate who has the lock   * when someone submits a page, compare the page hash and lock     * if page hash doesn't match, don't save the data     * remove the lock   * after 15 minutes, remove the lock * support arbitrary field addressability in json data:   * JsonPageFile:field.list_field[n].foo.bar * fix bug: edit-in-place wipes out conf entries in inline block
  • add 'tbclient list' feature * modify tbclient to send 'list' request * modify ProcessorDataHandler.py to respond to list request * add TODAY() function to spreadsheet
 * add 'tbclient list' feature   * modify tbclient to send 'list' request   * modify ProcessorDataHandler.py to respond to list request * add TODAY() function to spreadsheet
  • add websed over snapshotted values * add websed over diff of snapshotted values * add chart over snapshotted values * use plot charts? * add access-controlled content * the purpose of this is to add a page with contact information for other test projects, on the fuego wiki * see https://moinmo.in/HelpOnAccessControlLists * at the block level, with ProcessorAccessControl * at the page level, with accesscontrol directive * put required permissions at top of block * prevent reading or writing to block (or page)
 * add websed over snapshotted values   * add websed over diff of snapshotted values * add chart over snapshotted values   * use plot charts? * add access-controlled content   * the purpose of this is to add a page with contact information for other     test projects, on the fuego wiki   * see https://moinmo.in/HelpOnAccessControlLists   * at the block level, with ProcessorAccessControl   * at the page level, with accesscontrol directive   * put required permissions at top of block   * prevent reading or writing to block (or page)
  • add link to page for file column in attrdb and parsed data files (to go to page) * This is handy for FIXTHIS entries, and for editing * _bug0013 - can't edit-in-place the buglist
 * add link to page for file column in attrdb and parsed data files (to go to page)   * This is handy for FIXTHIS entries, and for editing * [[_bug0013]] - can't edit-in-place the buglist

Major Features that are not complete enough to use [edit section]

= Major Features that are not complete enough to use =

User accounts [edit section]

== User accounts == * Creating and administering user accounts   * need to re-test user accounts, with new features (next_num)   * Users can create accounts, but physical access to the server is required to change admin flags, or to remove an account     * may be able to use a special version of attrdb (raw page edit) for user accounts.  It wouldn't be great but would get the job done for now.     * is the user edit form not working??

Table usability [edit section]

== Table usability == * Specific table usability features:   * other usability feature is deciding which links to use for a table (I never use query, and always have to decide between 'edit-in-place' or 'edit')

BugList, FIXTHIS, Regressions [edit section]

BugList page for bugs that need to be worked on. * that bug list is from a database. Here is one that just text on a page: * Manual Bug List
= BugList, FIXTHIS, Regressions = * See the [[BugList]] page for bugs that need to be worked on.  * that bug list is from a database.  Here is one that just text on a page:     * [[Manual Bug List]] * See the [[CodeFixthisList]] page for a list of FIX''''''THIS items in the code * See the [[PageFixthisList]] page for a list of FIX''''''THIS items in the pages
{{{#.ToDoData||Date      ||bug_count||FIXTHIS_count||missing_FEATURES||total||||2017-03-08||15||xx||xx||=$.bug_count + $.FIXTHIS_count + $.missing_FEATURES||||2016-08-12||14||94||2||=$.bug_count + $.FIXTHIS_count + $.missing_FEATURES||||2016-08-02||13||92||3||=$.bug_count + $.FIXTHIS_count + $.missing_FEATURES||||2011-04-21  ||17||78||1||96||||2008-10-06  ||17       ||78           ||1  ||=$.bug_count + $.FIXTHIS_count + $.missing_FEATURES||||2008-02-04  ||13       ||66 (55 cgi-bin+ 11 plugin)||3||82||||2007-07-25  ||9        ||62           ||3?||74||||2007-02-06  ||9        ||41           ||5 ||55||||2006-11-15  ||8        ||35           ||6 ||49||||2006-10-06  ||8        ||37           ||7 ||52||||2006-08-25  ||6        ||35           ||5 ||46||}}}

Table of combined issues [edit section]

== Table of combined issues =={{{#!Tablesource_spec=#:.ToDoDatacols=Date:bug_count:FIXTHIS_count:missing_FEATURES:totalsortby=Date:rev_alphais_spreadsheet=1field=Datedefault_value=%(timestamp)s}}}
----------== Regression count ==Periodically, check the regression test page to see if things still work as expected.
----------== Regression count ==Periodically, check [[http://bird.org/test/Regression_Test|the regression test page]] to see if things still work as expected.
Here's a table, manually maintained, with regression testing history.{{{#!Table:regression_history||date||version||commit||OK||missing output||bad||bad page list||||2016-08-12||1.6.2||a45cce77||91||2||2||TestMarkupVariables, TestMarkupVariablesDyamicTest||||2016-07-18||1.5.3||61eb2f1e||39||31||4||TestMarkupVariablesStatic, TestSandbox, tbwiki.footer, tbwiki.header||}}}
Here's a table, manually maintained, with regression testing history.{{{#!Table:regression_history||date||version||commit||OK||missing output||bad||bad page list||||2016-08-12||1.6.2||a45cce77||91||2||2||TestMarkupVariables, TestMarkupVariablesDyamicTest||||2016-07-18||1.5.3||61eb2f1e||39||31||4||TestMarkupVariablesStatic, TestSandbox, tbwiki.footer, tbwiki.header||}}}

Other items to work on, by category [edit section]

DocThemes
  • calculate theme from user account or other variable * current use of page name is lame * allow configurable navigation links * allow configurable toolbox links * read page dressing from nested pages?? * allow header and footer pages to be HTML or TBWIKI format * if TBWIKI, allow for sub-page references that are loaded, parsed and formatted recursively * tweak mobile.css * see w3c pages about automatic layout - http://www.w3schools.com/html/html_layout.asp
    • switch to MediaWiki page syntax?? (not yet) * see http://meta.wikimedia.org/wiki/Help:Wikitext * need to switch bullets handling * need to switch table parsing * have css come from page area??? (would allow editing css using wiki)
  • = Other items to work on, by category === Style == * enhance themes feature   * see [[DocThemes]]     * for an example of self-editability - see http://kernelnewbies.org/navigation_menu   * calculate theme from user account or other variable     * current use of page name is lame   * allow configurable navigation links   * allow configurable toolbox links   * read page dressing from nested pages??     * allow header and footer pages to be HTML or TBWIKI format        * if TBWIKI, allow for sub-page references that are        loaded, parsed and formatted recursively * tweak mobile.css   * see w3c pages about automatic layout - http://www.w3schools.com/html/html_layout.asp * switch to MediaWiki page syntax?? (not yet)   * see http://meta.wikimedia.org/wiki/Help:Wikitext   * need to switch bullets handling   * need to switch table parsing * have css come from page area??? (would allow editing css using wiki)
    

    General [edit section]

    == General ==
    
    • convert upload to be a processor * allows putting upload on any page * control number of files via config * can specify link(" action=upload&dest_filename=foo") for missing files - to prompt user if file is missing * upload result should be shown in page message? * add page rename * can do create, move content, delete, but that's awkward * generate tbwiki stats from log * cache page content, for static content * change all prints to output routines (to control routing of output) * allow administrators to view and edit files in the 'admin' directory using normal tbwiki access (just like regular pages) * treat it like a MoinMoin overlay directory * put the bulk of the config in a file in the admin directory * put the header and footer files in the admin directory * change code so that if user is admin, pages show up in lists, macros, etc. * make functions that give page lists, that include the pages or admin directory in the path * when editing, keep track of which directory a page is located in * when loading a page, if user is admin, check the page dir first, then the admin directory * make a function to get a page, that handles the page dir and admin dir * make a mobile viewer * add ability to grab content at specific intervals * kind of a combination of crontab and websed * allows for charting something automatically over time * make a crontab processor * present a form for when to run, and action * make a syntax for block names that are not included in block output * we have anonymous blocks, hidden blocks, and named blocks * named blocks show both the name and the content. It would be nice to hide the name * possibly: #.BlockName ?? * make tbwiki more relocatable (for use on laptop) * on bird.org: * move *.cgi scripts from www/cgi-bin to ~/work/tbwiki/cgi-bin * put link in www/cgi-bin * add base_dir to *.cgi scripts * write script for laptop that does: * downloads latest tbwiki and tbwiki-data * adjust base_dir in *.cgi files * adjust base_url in *.cgi files * adjust plugin symlinks in tbwiki-data dirs * make unit test system - see Unit Test Notes * NOTE - already have ProcessorRegressionCheck.py * have a page specify a test * have markup, and html and compare them * here's one unit test:{{{ record=bold 1 markup=bold html=<b>bold</b>}}} * make a ProcessorUnitTest.py processor - read all "UnitTest.*" pages, convert markup to html, compare to html - report results * put this categorized todo list in a table? * change main() in tbwiki_engine.py * call main when tbwiki_engine.py is called from command line * make a tbwiki.py command? * program should have the ability to create a static page from the command line * e.g. tbwiki.py FrontPage -o FrontPage.html * program should have the ability to run unit tests?
     * convert upload to be a processor   * allows putting upload on any page   * control number of files via config   * can specify link(" action=upload&dest_filename=foo") for missing files - to prompt user if file is missing   * upload result should be shown in page message? * add page rename   * can do create, move content, delete, but that's awkward * generate tbwiki stats from log * cache page content, for static content   * change all prints to output routines (to control routing of output) * allow administrators to view and edit files in the 'admin' directory using normal tbwiki access (just like regular pages)   * treat it like a MoinMoin overlay directory   * put the bulk of the config in a file in the admin directory   * put the header and footer files in the admin directory   * change code so that if user is admin, pages show up in lists, macros, etc.     * make functions that give page lists, that include the pages or admin       directory in the path     * when editing, keep track of which directory a page is located in     * when loading a page, if user is admin, check the page dir first, then       the admin directory       * make a function to get a page, that handles the page dir and admin dir * make a mobile viewer * add ability to grab content at specific intervals   * kind of a combination of crontab and websed   * allows for charting something automatically over time   * make a crontab processor     * present a form for when to run, and action * make a syntax for block names that are not included in block output   * we have anonymous blocks, hidden blocks, and named blocks     * named blocks show both the name and the content.  It would be nice to hide the name   * possibly: #.BlockName ?? * make tbwiki more relocatable (for use on laptop)   * on bird.org:     * move *.cgi scripts from www/cgi-bin to ~/work/tbwiki/cgi-bin     * put link in www/cgi-bin     * add base_dir to *.cgi scripts   * write script for laptop that does:     * downloads latest tbwiki and tbwiki-data     * adjust base_dir in *.cgi files     * adjust base_url in *.cgi files     * adjust plugin symlinks in tbwiki-data dirs * make unit test system - see [[Unit Test Notes]]   * NOTE - already have ProcessorRegressionCheck.py   * have a page specify a test   * have markup, and html and compare them      * here's one unit test:{{{       record=bold 1       markup='''bold'''       html=<b>bold</b>}}}   * make a ProcessorUnitTest.py processor     - read all "UnitTest.*" pages, convert markup to html, compare to html     - report results * put this categorized todo list in a table? * change main() in tbwiki_engine.py   * call main when tbwiki_engine.py is called from command line   * make a tbwiki.py command?     * program should have the ability to create a static page from the command line       * e.g. tbwiki.py FrontPage -o FrontPage.html     * program should have the ability to run unit tests?
    

    Security [edit section]

    == Security == * check permissions on table write operations * allow administrators to view and edit files in the 'admin' directory using normal tbwiki access (just like regular pages)     * treat it like a MoinMoin overlay directory * have rights affect the displayed table edit links
    

    Processors [edit section]

    == Processors == * add help routines for all Processors * add a processor for "select an item"   * used for choosing a group of words to practice   * used for choosing a story to read in scriptures   * present a list of items from a database, that are unselected     * allow a user to select one   * or, select an item randomly from a list of database records     * allow user to select it or keep choosing a different one   * have 3 categories: unselected, in-progress, finished     * database must "state" field?   * processor allows only legal state transitions     * specify legal state transitions (or is this too meta?) * support mapping routines (e.g. to convert chapters to pages and back) * ProcessorScriptureLookup.py - maybe should be a macro?   * take a reference, and replace it with the text for the versus   * this should be very handy for church talks, lessons, etc. * Add a mermaid.js processor for generating charts and graphs from markup
    

    Blog [edit section]

    https://bird.org/test/Multipage_Blog_To_Do

    ProgressChart [edit section]

    === Blog === See [[https://bird.org/test/Multipage_Blog_To_Do]]=== ProgressChart === * add support for goal lines to the ProgressChart processor * handle chart attributes   * make chart_attrs_class, to generate defaults when attrs are missing   * create flat namespace for chart attributes   * translate chart atttributes into call arguments during chart creation * un-specialize pychartwrapper.py   * chart another data type using same wrapper??     * generic multi-series data chart     * scripture reading chart?     * weight chart     * running chart?? * support data entry and modification for TimsRunning data   * see ProcessorProgressChart.py   * use Add Form for table??     * support current date for date entry??
    

    SlideShow [edit section]

    === SlideShow === * SlideShow   * make sure all nested parsing works   * add sidebar list of slides (section 1 headings), with links to pages   * support show attributes and per-slide attributes (bgcolor, bgimage, margins, etc.)
    

    ImageGallery [edit section]

    === ImageGallery == * ImageGallery   * support links=1 - to show individual images in full screen   * autodetect image size for full-screen (standalone) image gallery     * use Javascript to detect browser window size??   * support num_images - to show only some of the images     * gallery has prev and next links on sides (similar to blog navigation)   * support image borders in ProcessorImageGallery   * support link to fullsize image in ProcessorImageGallery   * support displaying the filenames in ProcessorImageGallery   * add javascript zoom functions 
    

    Tables [edit section]

    DocTables has some information (one example, the FIXTHIS table) * multi-file tables * display multi-line values correctly * display '<no-data>' values correctly * auto-sense type of each field (text, select, textarea) and use for auto-form generation * handle field types with enumerated values (lists and radio buttons) * document table architecture and interfaces - see Table Architecture
    • document table attributes * document chart attributes * make ProcessorTablePick.py * See Table Pick Page * present simplified list of "unpicked" items * allow user to pick one item * save picked item with attribute "state" changed to "in-progress" * present detailed list of "in-progress" items * allow user to mark an item as "done" * save done item with attribute "state" changed to "done" * whether user wants to have multiple items in "in-progress" state is their choice * queries, query_lists
    == Tables == * add sortby=select_order - to specify that text fields should be sorted   in the order that they appear inm the select possible_values list.   * this helps the user control the sort order for things like word-based    priority: ex: very high, high, medium, low, very low * add messages to table module   * allow for outputting messages about an individual table   * table.add_table_message(msg)   * this would be handy for table-specific error messages   * should have block-specific messages in general * allow for configuration of table control links   * have user specify which links to show, and where * use better filenames     * use unique part of filename for record_id     * allow user to pick filename when creating the record * support edit-in-place for tbwikidb files   * use get_section and set_section     * modify to read/write definition lines * eliminate difference between record, record_id * use tbwikidb or attrdb for user database??   * this puts human readable filler on every page, but that's the wiki way   * this allows creating a multi-file database just by creating the template   * this is fragile - human editors will break the pages parseability * add table query cheat sheet to query table form page * make prototype family info database on bird.org   * automatically create a User account file on login???   * make MemberXX records for family members     * determine the schema (what fields)     * create a table view with contact information * table queries and views FEATURE   * support <table>RecordView * support read-only attribute on whole table * Support time-sampled database   * schedule a websed operation that grabs data at crontab-like intervals     * or that creates a new record whenever the page is accessed (and schedule something to access the page automatically at periodic intervals) * support automatic data snapshotting * write a 'table creation wizard' processor   * ask for field names and types, and create the schema file and cover file (or template file, if its a tbwikidb) * document table config concepts:   * base config (from original conf block)   * dynamic config (from request form variables)   * query config (from query conf block) * saved queries   * specify query list in conf block   * each item in list specifies a query conf block * make backup file when editing table files * finish all routines for editing a table   * use {{{Table(arg1,arg2,arg3...) notation for inline tables     * support other args:       * formspec, query line (row filter, column filter, etc.) * document Table use with data_scan module   * [[DocTables]] has some information (one example, the FIXTHIS table) * multi-file tables   * display multi-line values correctly   * display '<no-data>' values correctly   * auto-sense type of each field (text, select, textarea) and use     for auto-form generation * handle field types with enumerated values (lists and radio buttons) * document table architecture and interfaces - see [[Table Architecture]]   * document table attributes   * document chart attributes * make ProcessorTablePick.py   * See [[Table Pick Page]]   * present simplified list of "unpicked" items   * allow user to pick one item   * save picked item with attribute "state" changed to "in-progress"   * present detailed list of "in-progress" items   * allow user to mark an item as "done"     * save done item with attribute "state" changed to "done"   * whether user wants to have multiple items in "in-progress" state is their choice * queries, query_lists 
    

    Forms editing and Templates [edit section]

    == Forms editing and Templates == * use form emitter for user accounts.
    

    Users and attributes [edit section]

    == Users and attributes == * Support online creation of new users   * make a "create user" form   * create a new user account file from a form * provide help if user forgets password   * link to e-mail the password??   * password hint?? * create 'user.edit' action, which edits a user account file * support different roles (admin vs. non-admin) * allow user to edit their attribute values   * make an "edit user" form * REFACTOR - use existing form code for user forms * make user account management it's own processor module   * ProcessorUser.py - we now have sub-actions, so this should work.     * it needs to access table operations, but in a special way
    

    Long term ideas [edit section]

    ikwiki statically compiles the wiki on every page edit * documentation * table editing: * should support "save and edit again" and "save and add another row" buttons for saving edit forms. * Table Of Contents * do auto-table of contents, like wikipedia?? * handle included files and text expanded from processors??!! * check HTML and CSS on multiple browsers with BrowserCam or browsershots * see http://browsershots.org/http://bird.org/tbwiki/FrontPage * make a journal processor (based on progress chart) * (in progress) make a blog processor (with threaded comments) * make a forum processor (with threaded and voted-on comments) * make a page cache * add dependencies to a makefile, and rebuild cache when dependencies change * put config into admin page? * reduce cgi-bin to just some directory references
    = Long term ideas = * (done) add 'save expected output and show again' to RegressionTest processor * add link to backup page on history page * look at other wikis for feature ideas    * in particular, [[http://ikiwiki.info/|ikwiki]] statically compiles the wiki on every page edit * documentation * table editing:    * should support "save and edit again" and "save and add another row" buttons for saving edit forms. * Table Of Contents   * do auto-table of contents, like wikipedia??   * handle included files and text expanded from processors??!! * check HTML and CSS on multiple browsers with BrowserCam or browsershots   * see http://browsershots.org/http://bird.org/tbwiki/FrontPage * make a journal processor (based on progress chart) * (in progress) make a blog processor (with threaded comments) * make a forum processor (with threaded and voted-on comments) * make a page cache   * add dependencies to a makefile, and rebuild cache when dependencies change * put config into admin page?   * reduce cgi-bin to just some directory references
    

    Things Completed [edit section]

    http://bird.org/cgi-bin/test.cgi/FrontPage * 2014-05 make talk pages optional - see config.has_talk_page global config * 2010-10 support inline tables - FEATURE * 2010-?? websed - add websed feature to scrape other web pages * 2010-?? data-scan - add as a processor first, then make into a database grabber * 2008-10 table - back up page on table edit * 2008-09 chart - draw chart of table data * 2008-08 processor - add a charting package (pychart) * 2008-02 table - added support for sorting table rows * 2008-02 table - support col_list and row_filter specifiers * 2008-02 table - added ability to edit whole table at a time * 2008-02 macro - create Include macro * 2008-02 table - separated conf into separate class * add field_db (parsing, handling) * add field types, colors, possible values * add routine to read block from page * 2008-02 table data - separated IO handler into separate class * move tbwiki with authentication to bird.org * aug03 - add user accounts. * put user account files in an 'admin' directory * authenticate user from files in 'admin' directory in action user.login * look up user by name to process login form (in action user.login) * jul07 - add cookie code for user accounts * feb07 - use pages for page dressing (see tbwiki.header and tbwiki.footer) * jan07 - support file upload FEATURE * 11/15 - add support for inline images * change backup routine to save current version of page instead of old version of file * save edit comment and show in history * edit sections FEATURE * parse and format: * bullets * headers * horizontal rules * paragraph breaks * preformatting * write edit form for page * save edited data to file * read page from data directory and emit as html * write handlers for various actions * create add_record form (using existing edit_form code) * write mtable.save_form() routine * re-write edit_form to present whole table with edit links * support Table internal macro, with args * modified backup time in file extension to be human-readable * wrote mtable.modify_record() routine * wrote mtable.remove_record() routine * parse and display URLs as links * use pages for page dressin * make items in table of contents into links * make an anchor target for each heading * use href for anchor target in TableOfContents macro * make nicer format for table of contents box * add search form to header * support multi-page table source_spec * support e.g. "User*" as the spec * read all pages starting with User * finish parse_table_pages() routine * read each page matching the source_spec * parse out values using a page template * start with simple name=value parser * create page on add record * write page on edit record * remove page on remove record * support history action * show history from backup times * allow diff between two versions
    = Things Completed = * 2021-03 Remove '?action=save' from url in edit form * 2018-10 Add image rotate to ImageGallery app. * 2017-04 add triggerd - ability to detect triggers that are due and execute them * 2017-03 add ProcessorTrigger - ability to trigger a snapshot * 2017-03 add ProcessorSnapshot - page/block/table snapshot function * 2017-02 add tbclient - ability to get,put and edit items in the wiki * 2017-01 add page trails * 2017-01 add relative index to cell address (so you can do $.-1) * 2016-12 ProcessorImageGallery - finish showing images in full size page * 2106-11 add ability to customize table operation links (edit_links, sort_links) * 2016-9  add ability to read a specific block, by number * 2016-08 convert to per-table messages (for debugging and errors) * 2016-08 support editing sections with nested sub-sections * 2016-08 allow default_values with generated values (%%(timestamp), %%(next_int), %%(next_page_num)) * 2016-08 add page delete * 2016-07 add tbwikidb database type * 2016-07 fix data_scan module to parse multi-line fields * 2016-05 make ProcessorImageGallery * 2016-05 make ProcessorBlog * 2016-03 make better diff output * 2016-03 put engine_version in data_class, and add to footer * 2016-03 add "printable format" option for page * 2016-03 made a test wiki at: http://bird.org/cgi-bin/test.cgi/FrontPage * 2014-05 make talk pages optional - see config.has_talk_page global config * 2010-10 support inline tables - FEATURE * 2010-?? websed - add websed feature to scrape other web pages   * 2010-?? data-scan - add as a processor first, then make into a database grabber * 2008-10 table - back up page on table edit * 2008-09 chart - draw chart of table data * 2008-08 processor - add a charting package (pychart) * 2008-02 table - added support for sorting table rows * 2008-02 table - support col_list and row_filter specifiers * 2008-02 table - added ability to edit whole table at a time * 2008-02 macro - create Include macro * 2008-02 table - separated conf into separate class   * add field_db (parsing, handling)     * add field types, colors, possible values   * add routine to read block from page * 2008-02 table data - separated IO handler into separate class * move tbwiki with authentication to bird.org * aug03 - add user accounts.   * put user account files in an 'admin' directory   * authenticate user from files in 'admin' directory in action user.login   * look up user by name to process login form (in action user.login)  * jul07 - add cookie code for user accounts * feb07 - use pages for page dressing (see tbwiki.header and tbwiki.footer) * jan07 - support file upload FEATURE * 11/15 - add support for inline images * change backup routine to save current version of page instead of old version of file * save edit comment and show in history * edit sections FEATURE * parse and format:    * bullets    * headers    * horizontal rules    * paragraph breaks    * preformatting * write edit form for page * save edited data to file * read page from data directory and emit as html * write handlers for various actions * create add_record form (using existing edit_form code) * write mtable.save_form() routine * re-write edit_form to present whole table with edit links * support Table internal macro, with args * modified backup time in file extension to be human-readable * wrote mtable.modify_record() routine * wrote mtable.remove_record() routine * parse and display URLs as links * use pages for page dressin * make items in table of contents into links   * make an anchor target for each heading   * use href for anchor target in TableOfContents macro * make nicer format for table of contents box * add search form to header * support multi-page table source_spec   * support e.g. "User*" as the spec     * read all pages starting with User       * finish parse_table_pages() routine         * read each page matching the source_spec         * parse out values using a page template           * start with simple name=value parser     * create page on add record     * write page on edit record     * remove page on remove record * support history action   * show history from backup times   * allow diff between two versions
    
    TBWiki engine 1.9.3 by Tim Bird