DaveG /
BlogCookbooksCompared
Blog Features
Core Features
- Multi-entry View: Ability to see preview of many blog-entries (usually used on the front-page)
- Single-entry View: Display entire blog-entry, with comments. Usually used when clicking from multi-entry view. Includes "Read More...".
- Entry list: Single line summary of all entries. Usually used on sidebars, for most recent entries.
- Control Panel: Contains link to blog elements
- Create new entry
- link to Entry List
- Link to templates
- Tags/Categories (tag cloud)
- Comments
- Pingback
- Google blog ping
- comments form supports blocklists
- comments form contains honeypot AND captcha
- approve comments
- approve external links
- list all unapproved posts
Requirements
- Free form titles: No requirement for dates in titles.
- Blog-entries can be in any group.
- Must work in a farm environment.
- Separate data from display.
- Meta data storage, for rss feeds, pagelists, etc.
- Easy entry form for meta-data (rather than user entering (:xxx:yyy:) variables).
Taxonomy
Blog Entry
- Author Date
- Title
- URL
- Intro
- Body
- More tag
- Author
Comments
- Title
- Comment
- Author name
- Author URL
- Author email
- Spam code
Add-on
- Comments: Recommend storing comments in a separate group, separate page for each blog entry. Embed comment block and comments at end of blog entry with GroupFooters.
- Embed video, flash, etc.
- Source code markup
- Currently listening to (LastFM)
BalusBlog?
No code required, this is more a series of instructions. Very elegant approach to implementing a blog using basic PmWiki concepts. Addition of comments and other blog features is simple, but not documented, in order to keep the concept simple.
Features
- Not required, but is documented with blog pages being named with a date, rather than page-variables. This is to make pagelists quicker. However, it does mean pages are not particularly SEO friendly.
- Blog-entry data is separate from blog-display templates. This makes changing display layout easy.
- Instructions are written assuming all blog-entries are in a single Group. Use of page-variables can easily remove this restriction.
- Provides a means of displaying a "Read more..." link.
- Recommends use of EditTemplates.
Approach
- Blog entries
- Stores all information for a single entry in a single page.
- Uses text variables to hold post meta-data.
- Uses sections to demarcate introduction and body.
- Blog entry display
- Maintains display templates as separate wiki pages. Recommend: Store all templates in a single page, delimited by sections.
- Blog-entry template holds the display format for a blog-entry (use with EditTemplate).
- Entire blog-entry is prefixed with an include of the blog-entry template, and a comment section to hide blog-entry data. Thus, when viewing the entry, the meta data is shown using the 'included' template.
BlogSimple2 (beta2)
Minimal code, primarily to set helper variables for dates.
Features
- Blog posts can exist in any group
- Post title can be anything, no date necessary
- Doesn't use page-variables for post meta-data -- no meta-data is used.
- Uses SiteHeaders and Footers to create entire blog-entry display.
Approach
- Uses page-variables to demarcate blog entries. Recommend changing from numeric to string, ie: posttype=(draft,blog,sticky)
- Potentially means lower performance due to file scanning. Likely to be low with 'usual' blog size ~200 pages, and may be managed with caching. Performance impact needs to be determined before approach is abandoned.
- Blog header is stored in a separate page (Site.BlogMeta), includes blog date, time-of-day, show/add comment links, and edit link.
- Site.SiteHeader is used to display Site.BlogMeta.
- Uses a blog-entry page-variable to determine if page is a blog-entry.
- Comments are stored in PostComments group, a comment page for each blog-entry.
- Site.SiteFooter is used to display comments, and to display comment box.
- Recommend: Use
$BaseNamePatterns
rather than$FmtPV
['$BaseName
'] - Uses pagelists with embedded blog-entry display templates; reduces ease of use.
XESBlog
- Minimal code
Features
- Blog posts cannot exist in any group. Need changes to template names.
- Post title can be anything, no date necessary
- Doesn't use page-variables for post meta-data -- no meta-data is used.
- Uses SiteHeaders and Footers to create entire blog-entry display.
- Has commenting and comment approvals. Stores approval inside the actual PmWiki page to prevent spoofing.
Approach
- Heavily utilizes other scripts.
- Uses PmForms, but doesn't abstract data from layout.
Blogger
Blogger examines approaches from existing cookbooks, and combines them.
Blog Approaches
- Store display templates in single file; separate each template with sections.
- Use EditTemplates to pre-populate blog-entries.
- Use page-variables for blog-entry meta-data; OR use PmForm for entire blog entry.
- Use dynamically assigned GroupFooter (including a base template) to display comments, when page-variable 'posttype="blog"'.
- Use PmForm for comments
- Store comments in separate Comments group, and auto-include on blog page (use page-variables for include via PageFooter).