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)}}