Category:Features|Blog 

TB Wiki

Login

Multipage Blog Dev Notes in 'raw' format

{{TableOfContents}}

Here are things I am working on finishing for the MultipageBlog feature.

Here are the test blogs:
 * [[https://bird.org/test/TestBlog|test:TestBlog]] - single-page
 * [[http://bird.org/test/TestProcessorMultipageBlog|test:TestProcessorMultipageBlog]] - multi-page

Here is a sample personal blog (that is multi-page), see:
 [[https://bird.org/tbwiki/TimsBlog]]

= To Do =
 * Layout:
   - Make it look like Jeff Geerling's blog
     - **1** ''' ''create preview page'' '''
       - blog page is a single-column list of shortened blog entries
     - link takes you to an individual blog entry
     - entry page:
       - title, date, content, comments, search bar
 * Housekeeping:
   - make a sidebar page for the test blog
     - define default sidebar (show most recent 3 blog entries as a linked list, excluding the current entry)
 
 * Features:
   - make a default sidebar, if no sidebar page is provided
   - don't show the entry edit link if user does not match the entry author

   - create comment section
     - have each comment be its own page? or all comments on one talk page?
       - leaning towards each comment its own page
         - page name would be: comment_for_Test_blog_2025-10-11_22:50:27.11_on_2025-10-12_8:45:23.02
           - prefix is comment_for_
           - separator is _on_
       - all on one page:
         - page name would be: Talk:Test_blog_2025-10-11_22:50:27.11
       - either parse a single page into a complex (threaded) display
       - or parse multiple pages into a complex (threaded) display
   
 * Fix bugs:
   - blog entry list shows last entry first and last in list

 * Niceties: (nice to have items)
   - add 'return to Blog' on page showing 'saved' on a page edit
     - see 'save' action in tbwiki_engine.py
   - add a 'share' button, with a fixed url for accessing a blog entry
     in blog context (not using entry number, which will change over time)

== done ==
 * 2025-10-11 - by default, show pages in reverse chronological order
 * 2025-10-11 - add instructions to Blog entry form
   - markdown help, and tags field help (use commas for separators)
 * 2025-10-11 - rename ProcessorBlogMultipage to ProcessorMultipageBlog

= Features I want the blog to have =

== Storage/Format ==
  * use individual pages for each post
    * Each page has a header with fixed data fields, and then the blog content
    * The talk page has
    * the page name has the format: 

== Layout ==
   * nicer Blog layout
     * sidebar with navigation
       * recent posts
       * categories
       * search bar
       * tags
     * page with background, layout, blog css

   * use graphics instead of characters for navigation arrows
   * customizable background image

== Comments ==
 * support for comments
   * all-in-one - use talk page, with indentation for nesting

   * create add-post form
     * page schema has title, content, date, tags, id

 * navigation to previous and next posts
   * response area
     * show threaded responses with "reply" button on each one
     * response form with "post comment button

 * show date, tags, response count
  
 * ability to drag and drop images to upload to wiki

== Features that are not done yet ==


= Ideas and references =
== Blogs that I like the look of ==
 * https://www.jeffgeerling.com/blog/2025/how-much-radiation-can-pi-handle-space
 * https://borretti.me/article/unbundling-tools-for-thought
 * https://caseyhandmer.wordpress.com/
   * obviously, this is a wordpress blog
 * https://idlewords.com/
 * https://daniel.haxx.se/blog/2025/10/10/
 * https://pebblebed.com/blog/kernel-bugs - simple and effective
   * and https://pebblebed.com/blog

== Blog idea resources ==
 * (read this first) https://borretti.me/article/unbundling-tools-for-thought
 * https://jekyllrb.com/docs/posts/
 * See https://bird.org/tbwiki/Blog_Layouts_and_Features




= design details for ProcessorMultipageBlog =

Here are some details about ProcessorMultipageBlog.

== page names ==
blog pages consist of a prefix, and a date and time stamp.

Here are some example page names:
 * Test_blog_2023-03-31_11:12:34
 * Space_blog_2023-04-03_15:21:56

Note that '_blog_' is not required.  It is a convention to use
'_blog_' in the prefix of the blog page name, though.

== discussion page names ==
Comments are saved on the talk page for a blog page, and will
thus have names like:
  * Talk:Test_blog_2023-03-31_11:12:34
  * Talk:Space_blog_2023-04-03_15:21:56

== meta data format ==
Here is a sample page from a blog, showing the meta-data format.

Note that a page can be edited as a wiki page.
{{{#!YellowBox
----
; Subject: Blog entry title
; Date: 2023-03-31_11:12:34
; Tags: test, blog, first
; Author: tbird
----
Blog entry content
 * in ''tbwiki'' Markdown!!
Hurray!
}}}

== meta data format for discussion pages ==
Here is a sample page from a blog, showing the discussion meta-data format.

Note that a page can be edited as a wiki page.
{{{#!YellowBlock
'''TBD'''
}}}


== processor arguments ==
 * prefix=<page_prefix> - a string indicating the prefix for the set of pages that make up the blog
 * title - blog title
 * sidebar=<sidebar_page_name> - the name of the wiki page which has the sidebar definition
 * entries_to_show=x - number of entries to show (default is 5)
 * show_standalone=1 - show page without wiki decorations
 * show_edit_link=1 - show a link to edit the entry
 * background_image - filename of background image
 * show_entry_list=1 - show a list of entries, rather than the blog itself

== processor actions ==
 * show_entry_form - used to show the edit form for creating a new blog entry
 * add_entry - used to save a new blog entry
 * main - show the blog

{{Category(Features|Blog)}}

TBWiki engine 2.0.1 by Tim Bird