commit f7eaba29429b3013fd97b8ab77e63babdc18051c
Author: Aaron J. Graves <>
Date:   Wed Feb 17 21:05:50 2016 -0600
    - DoHistory: Added link back to the page

commit 7c97c8b9856c73ac3e0c3ce624ad7a63dc157709
Author: Aaron J. Graves <>
Date:   Tue Jan 26 13:47:40 2016 -0600
    - DoEdit: Add 'Delete' button to the edit form
    - DoPostingEditing: Updated to handle 'Delete' option for whattodo.
    - DoPostingUpload: Updated to handle 'Delete' option for whattodo.

commit 32a51c3eda744d5595bc5583bf088a0475093e95
Author: Aaron J. Graves <>
Date:   Wed Dec 16 18:50:03 2015 -0600
    - InitVars: Remove "defined" on @array (PERL compatibility), RegCommand and RegRawHandler on 'view'
    - MarkupBuildLink: Handle mailto: links
    - MarkupImage: Call 'view' instead of 'download'
    - DoAdminDeleted: Handle manually deleting a file pending for delete
    - DoDownload: Re-written to actually push the file for download
    - Wrote sub DoView: Does what DoDownload previously did
    - DoHistory: Don't show word, character and line count for uploaded files
    - DoMaintDeletePages: Handle deleting one singular page
    - PageExists: Call SanitizeFileName and ReplaceSpaces
    - DoRequest: For uploaded files, give the option of viewing or downloading

commit d078944bcc8d39287041fb71363d372afc683c6e
Author: Aaron J. Graves <>
Date:   Sat Oct 31 22:22:59 2015 -0500
    - DoAdminDeleted: Began work to allow force deleting
    - SearchForm: Removed old code, fixed issue where do param was overridden under certain circumstances (Issue 25)

commit f958ea0d6f93a6d1124e502f1ac59c3d20614acf
Author: Aaron J. Graves <>
Date:   Mon Oct 19 20:29:43 2015 -0500
    - InitVars: Re-arrange the order of some things, and call SanitizeFileName(). Call RegPostAction for 'quickedit'
    - Markup: Now do <blockquote> for 4 leading spaces. Re-arrange the way lists are done to accomodate. Also, fix some paragraph errors that were causing validation errors.
    - Wrote sub SanitizeFileName - Returns a "safe" filename
    - DashboardDatabase: Add a form for "quick edit/create" page
    - SearchForm: Re-written to use
    - Wrote sub DoPostingQuickedit - For the quick edit form in the admin screen
    - DoRequest: Change the way output is shown (minor)

commit 24ed3e81f3ab3d418e08d33664bc6b81c650df6c
Author: Aaron J. Graves <>
Date:   Thu Oct 1 11:36:59 2015 -0500
    - MarkupBuildLink: Only remove everything after a # if the link address is the same as the description (otherwise any links with text including a # will be truncated)
    - DoSearch: Call UnquoteHTML on param 'search'
    - SearchForm: Call UnquoteHTML on param 'search'
    - QuoteHTML: Go back to one-off replacements rather than calling escapeHTML

commit d105275be1bfa1e1bc779743375a6a9f0fafb5a1
Author: Aaron J. Graves <>
Date:   Sun Sep 27 13:25:41 2015 -0500 (fix for issue 17)
    - WritePage: Call UnquoteHTML() on 'summary' element of the page.
    - Preview: Call UnquoteHTML() on 'summary' element of the page.

commit 56cf2edaaac973befc345e06743820e470517ecd
Author: Aaron J. Graves <>
Date:   Sat Sep 26 08:39:45 2015 -0500
    - Preview: Call UnquoteHTML() on GetParam('text') (fix for Issue 16)

commit c330cd9bc01caa28d2479ff45d524f02a248f7b5
Author: Aaron J. Graves <>
Date:   Mon Sep 7 13:33:38 2015 -0500
    - InitVars: QuoteHTML() is correct, $q->QuoteHTML() is not.

commit a00953976ff65d510547d2d9058a45ccfb558bde
Author: Aaron J. Graves <>
Date:   Mon Sep 7 13:22:06 2015 -0500
    - Replace use vars with our
    - Anywhere open is called is now called as "two-arg open", and barewords have been replaced
    - Several instances of open were replaced with FileToArray() or StringToFile())
    - QuoteHTML: Now call CGI::escapeHTML()
    - Wrote sub UnquoteHTML - Call CGI::unescapeHTML()
    - InitVars: $Page is now run through QuoteHTML()
    - GetParam: Call QuoteHTML() before returning value (partial fix for Issue 15)
    - WritePage: Call UnquoteHTML() on $content (since GetParam now sanitizes)
    - AppendPage: Call UnquoteHTML() on $content (since GetParam now sanitizes)
    - CommandDisplay: Call QuoteHTML() on $command (partial fix for Issue 15)

commit c56f324f199719b8ae13be6f429533b9a8748b15
Author: Aaron J. Graves <>
Date:   Sun Aug 23 13:48:47 2015 -0500
    - $TemplateDir and $Template renamed to $ThemeDir and $Theme
    - InitVars: Call RegAdminPage() on 'plugins' and 'deleted'; call RegDashboardItem() for DashboardDatabase, DashboardBannedContents and DashboardBannedUsers
    - DoCSS: If a $Theme is set, and a style.css file exists in $Theme, use that.
    - DoEdit: No longer call chomp() on $contents (fed from $f{text}); use a span with red color for message about being defined as a special page
    - ListAllFiles: Remove -P option off grep call (not needed)
    - ListAllTemplates: Remove -P option off grep call (not needed)
    - Wrote sub ListDeletedPages - Will show a list of pages that are marked for deletion
    - DoAdminReIndex - Split off a sub RebuildIndex() that will handle the actual reindexing.
    - DoAdminRemoveLocks - use CGI and AdminLink()
    - Wrote sub DoAdminPlugins - plugin manager for Aneuch
    - Wrote sub DoAdminDeleted - Adds an admin page to show the list of files marked for deletion
    - Split the admin dashboard out into individual routines DashboardDatabase, DashboardBannedContents and DashboardBannedUsers, and wrote sub DoAdminDashboard
    - DoLinkedPages - Removed the -i option from the grep call... this really needs to be case sensitive.
    - DoSearch: Call -E instead of -P for grep (breakfix for platforms that don't support -P)
    - DoPostingEditing: Call return instead of exit 1 if not the right user.
    - DoPosting: Put brackets around $file is it is a GetParam() call
    - DoMaintDeletePages: Call ListDeletedPages(), call RebuildIndex() instead of DoAdminReIndex()
    - DoRequest: While checking if IsRawHandler, also make sure the command is defined. Additionally, if the page is marked to be deleted, give a friendly little warning at the top of the page.

commit 6f246106deaa92167dd83e0df047dda4f7340044
Author: Aaron J. Graves <>
Date:   Wed Apr 1 22:08:36 2015 -0500
    - Added var @DashboardItems
    - Wrote sub RegDashboardItem - registers a new item to display on the admin dashboard
    - DoEdit: Add title attribute to the template checkbox
    - SetLock: replace and statement with or statement, this is the way it should have been from the beginning. Also inform if RefreshLock() fails.
    - DoAdminDashboard: Run each item registered in @DashboardItems
    - DoPostingEditing: Check for lock before saving new version. If file is locked by another user, call ErrorPage() with code 409.
    - ErrorPage: Added code 409 'Conflict'

commit db75eb6dfee49204281029cb53f05d4624dee72d
Author: Aaron J. Graves <>
Date:   Tue Mar 24 22:04:10 2015 -0500
    - InitVars: RegAdminPage for 'templates', call DoAdminListTemplates()
    - DoEdit: Handle templates (checkbox, drop-down, etc)
    - WritePage: Handle templates
    - Wrote sub ListAllFiles - Returns an array of pages that contain uploaded files
    - Wrote sub ListAllTemplates - Returns an array of pages that are defined as templates
    - DoAdminListFiles: Call ListAllFiles now
    - Wrote sub DoAdminListTemplates - List all templates defined in the database
    - DoAdminDashboard: Show the number of files and templates in the database information section
    - Preview: Handle templates
    - DoRequest: If the page is a template, show a message at the top indicating as much

commit 94aab11a8d0e01a46b73688aa68bbd076a8565d0
Author: Aaron J. Graves <>
Date:   Mon Mar 16 17:02:28 2015 -0500

    - Updated link to

commit 297133626572087294e76e30419b34eddef5f2e5
Author: Aaron J. Graves <>
Date:   Mon Mar 16 16:51:47 2015 -0500
    - Updated copyright year
    - InitVars: Add $AdminActions{'dashboard'}
    - DoAdminPassword: Added blurb if logged in
    - DoAdminVersion: Indent plugin entries
    - DoAdminListVisitors: Show revision if it exists on default display
    - DoAdminLock: Re-write to work with new admin scren
    - DoAdminCSS: Show if the CSS is default
    - Wrote sub DoAdminDashboard - New dashboard display
    - DoAdmin: Re-write to conform to dashboard display
    - DoPostingLogin: Redirect to admin screen after login
    - DoVisit: GetParam should return empty string by default
    - CSS: Added definitions for admin dashboard

commit 0429bbb630adc147bf3d6554e028ffad170c003d
Author: Aaron J. Graves <>
Date:   Wed Dec 10 09:49:48 2014 -0600
    - Removed a lot of old, commented out code
    - Changed many instances of $ShortUrl to $Url instead

commit dddd0e9bda4a3e0d66eb097301cc99d1fb6b378d
Author: Aaron J. Graves <>
Date:   Fri Nov 21 10:31:38 2014 -0600
    - Updated $VERSION and $VERSIONID to 0.50 and 0050 respectively

commit ec1c0d2ffa75060f9f65c1164a4670dee2c0a66f
Author: Aaron J. Graves <>
Date:   Fri Nov 21 10:22:14 2014 -0600
    - InitVars: Removed some commented code, few minor changes
    - DoHeader: Removed some commented code
    - DoFooter: Removed some commented code
    - MarkupBuildLink: Split if statement to several lines (readability)
    - DoEdit: Removed some commented code, now print for AntiSpam() call
    - WriteDB: Fixed bug where the write file handle wasn't being used to lock the file
    - AntiSpam: Now return instead of print
    - DoDiscuss: print for AntiSpam() call
    - DoPostingSpam: Change to "$Page?do=spam" call