This files lists changes, relevant or not, that have been made in SBWG.

-!: Changes with a notable potential to change the script output (the generated web site) or that require a change in how SBWG is used/called are marked with '-!'.
!!: Changes that require the user to make changes to the input files or source file structure of web sites are marked with '!!'.

It is recommended to read all changes before using a newer version of SBWG on an existing production site because changes to the code can sometimes only be
identified as requiring actions on the user side by somebody with sufficiant knowledge of a web site's settings file.

A pledge to not make any changes to SBWG that will result in a name of the HTML files produced has explicitely NOT been made. There are changes of this sort planned
in the future. These changes will be justified, as similar changes have been in the past, by the fact/assumtion that hardly anybody is using SBWG anyway and it is
better to not maintain past mistakes artificially.

Always test on a non-production (staging) copy of a web site after updating SBWG, switching to a newer version, editing the settings file or making other changes.

v0.10.5
2022-03-
-  Things that are generated above the entry content (re/ref/reply links and other notes) are now cached and only generated once per entry per script run.
-  Improved navigation through topic tagpages: added links to parent and child tagpages if sub-topics (sub-tags) are used.
-  Sub-categories are not a thing anymore. The idea was never fully implemented and doesn't make as much sense as I first thought. Layered tagging is still possible with topic (and sub-topic) tags.
-  Source file headers (tag headers of entry source files and page source files) can now have comment lines. Any line starting with a '#' is considered a comment.
-  Introduced new tag type 'flags:' that allows for settings that apply to individual entries.
-  Introduced new flag: nocomment (omits the comment link if the entry otherwise would have one)
-  Started new style set that will be the default and replace all previously included style sets.
-  Introduced a waiting animtion to give (me as a tester and other) bored users something to look at while waiting for new output to appear.
-  (Added hooks to the functions generating HTML above and below entry content.)
-  (Entry redirections can now be recursive. The maximum number of redirection in a row is limited to prevent loops.)
-! Redirecting entries are now omitted when generating tagpages. This removes half of the initial purpose of this feature, but it is more intuitive that way because it avoids what would happen most of the time otherwise: duplicate entries right after another. This can be turned back on by enabling the option '>'. This option can be enabled in the settings file.
-  Introduced new option '<' to ignore redirect tags site-wide. This option can be enabled in the settings file.
-  Annoying documentation updates and expansions.
-  The waiting animation is disabled now if parallel mode is enabled. I couldn't get both work simultaniously the way I want. So to not hold me up any more, this combination of features is prevented for now.
-  Fixed bug that would encode some characters wrong for HTML and XML.
-  Fixed bug that would exclude some entries that didn't use ISO date format for their createn/edited/sort date from the RSS feed.
-  Small code improvements.
-  Fixed bug that would embed non-existing images in image gallery attachments to some posts.

v0.10.4
2022-02-16
-  Added setting for a comment/email link below every entry from authors for whom an email address has been set in the settings file.
-  File attachments are now ordered and separated by filetype to allow for better styling.
-  Things that are generated below the entry content (file attachments, gallery thumbnails, comment link) are now cached and only generated once per script run.
-  It is (for now) no longer distinguished between tag pages and entry pages when the image thumbails of file attachments and gallery attachments are generated. This means there is only one thumbnails size now that will be used for both.
-  Fixed bug that would prevent web sites from being generated successfully if there exists a directory in the entries directory of the same name as an entry.

v0.10.3
2022-02-12
-  Fixed bug that would resize source images in-place in addition to placing a resized version in the output directory. (Turns out what I was using intentionally was a bug of mogrify. Switched back to convert.)
!! Because of the bug mentioned in the above line, if you have used any SBWG version from 0.9.10 to 0.10.2 together with a version of ImageMagick of 6.9.12-14 or above or 7.0.11-13 or above on a web site that has gallery images or image attachments then you should check the image files in the web site's source directory. They have very probably be replaced with smaller versions unintentionally.
-  Added more hooks for adding custom HTML in and around the header section of every generated HTML page or executing custom code when this part is generated.
-  Fixed bug that produced entries where one or two taglines weren't recognised if the content part of the entry source file was less than two lines long.

v0.10.2
2022-02-07
!! 'redirect:' tags now take just the name of the target entry as a value, not the relative path, because this is more intuitive and consistent.
-! Attachments of all file and mime types are now accepted. This also means that text files will be used as attachments if they are named accordingly. So entry names may have been changed to prevent them from becoming attachments after switching to the new version.
-  Created a new tag type 'updateof:' for cross-referencing an old version of a post with an updated version.
-  Fixed bug that could produce dead HTML redirects in very rare cases.
-  Added two hooks: hook_header_before and hook_header_after to enable custom code in the header section of a web site.
-  Updated example web site.

v0.10.1
2022-02-01
-  Stickied entries are now also possible on topic tagpages.
-  Extended entry attachements to include audio files. (Just one format (a single file) per attachement but multiple attachments per entry possible)
-  Code tidying, reduced redundancy.

v0.10.0
2022-01-13
-  Started to make parallel mode proper. It's still considered experimental and buggy but not basically broken anymore.
-  Improved paging of multi-page tagpages. Fixed bug that reduced the number of entries on the second-to-last page.
-  Fixed bug that would generate empty additional HTML files for some multi-page tagpages.
-  Fixed bug that would paginate topic tagpages if they where filtered by author.
-  Fixed bug that would sort entries on combined topic tagpages wrong.
-  Fixed bug that would omit sub-topic tagpages when generating combined tagpages.
-  Started to implement entry pictures.

v0.9.18
2022-01-01
-  Improved tag value filtering again.
-  Made last decisions on tag filtering. Much has been made possible, but one thing stays: Colons just may not be used as part of a tag value.
-  More testing.
-  Updated and expanded documentation and code comments.

v0.9.17
2021-12-31
-  Improved URL encoding.
-  Improved tag value filtering.
-  More testing.
-  Yet more testing.
-  Fixed bug that would sometimes result in the wrong tag value being used if multiple tags of types of which only one should be there would exist. Always only using the first occurance now.
-  Decided against naming the next, or any, version of SBWG 1.0.0.

v0.9.16
2021-12-26
-  Extended character encoding in tags and other strings.
-  Renamed the project to "SBWG - sweet bash website generator" because I don't really want it name after myself. That was awkward.
-  Fixed several small bugs and typos that I can't be bothered to write about individually.
-  General code clean-up. Cleaned up accumulated baggage and obsolete code.
-  Improved tag based HTML classes and other variable HTML attributes.
-  Improved encoding in RSS feed.
-  Extended README file to cover RSS feeds, other documentation updates and extensions.

v0.9.15
2021-12-19
-  Added new option --settings/-S for adding or overwriting settings via command line option (for temporary settings, without editing the settings file)
-  Fixed bug that excluded the edited date of edited entries from cached entry title wrappers.
-  Added more filtering to some tagtypes.
-  Removed needleesly previously stupidly introduced bug that would not include the parents of subtopics of there were no entries directly in the parent topic.
-  Fixed bug that created empty directories for pages that are not in subdirectories.
-! Finally started to encode or replace special characters in URLs and HTML attributes so that users don't have to be aware of what is OK to use in what case in tag values. Here is quite a bit more work to be done.
-  Updated README with information about recent improvements and the new option, fixed typos.
-! Percent-encoded characters in paths are decoded now before pathreducer does its thing. They are not currently decoded when pathreducer is off though.
-  Fixed the previously broken RSS generation.

v0.9.14
2021-12-11
-  Extended several help pages with more general information.
-  Fixed more typos.
-  Removed nice from the script. Nice was used for CPU heavy tasks, which made sense to me. But it should be the user's choice to be/use nice.
-  Renamed helper scripts to have the prefix sbwg-.
-  Small improvements in the helper scripts sbwg-genentry and sbwg-editentry.
-  Extended/clarified/improved some warning and error messages.
-  Reduced some code redundancy.
-  Added filter to reduce errors in case of corrupted source files or garbage input.

v0.9.13
2021-12-03
-  Streamlined warning, error and log output. It's a mess and has to be rewritten. But it appears to work well now if you don't redirect the output of the script.
-  Fixed bug that would leave the path of the log file empty if the option was set by command line option but no path was defined in settings file.
-  Headers and links for entries/blog and for galleries in the navigation bar are not included now if there is nothing to list.

v0.9.12
2021-11-29
-! Made changes to pathreducer to be compatible with even more restrictive file systems than old 8.3 FAT and to improve speed. More bugs have to be murdered probably.
-  Fixed some bugs that would sometimes recreate some already existing gallery image thumbnails needlessly.
-  Added four new hooks, in the pathreducer function, to allow for custom manipulations of the function.
-  Decumented all the recent changes of the pathreducer function.
-! The files/ directory is now copied using the pathreducer if pathreducer mode is enabled.
-  Continued to test various edge cases, weird input from source files, huge amounts of tags, broken source files, etc. Further testing is necessary.
-  Fixed bug in pathreducer that allowed special characters to persist that should be removed.
-  Added additional filters to handle weird, malicious or corrupt input files better.
-  Fixed, improved and updated the help pages.
-  Fixed several bugs that would exclude some messages from the log file.
-  Fixed some other tiny bugs that would probably never have mattered.
-  Reevaluated and changed which events should throw errors and warnings to reduce unexpected terminations and the need to use force (option --force/-F).

v0.9.11
2021-11-19
-! Extended the pathreducer function to detect and be aware of filename suffixes.
-! Extended the pathreducer function to also shorten filename suffixes if the maximum filename length definition calls for it.
-  Renamed the galleries/ directory (both in the input and output) to gals/ so it won't have to be shortened on 8.3 file systems.
-  SBWG should now be able to generate a web site onto an old FAT system when option --reduce-paths/-R is used with a definition of 8.3, even if the input (tags and filenames of the web site) was not written with this limitation in mind. This still has to be tested, though.
-  Extended file caching to include entry title wrappers to speed up generation of tagpages with entries that have a lot of tags.
!! The settings file of a web site is now required to contain a SBWG version comment as its first line. See README for more information.

v0.9.10
2021-11-14
-  Continued various tests of edge cases, weird input from source files, huge amounts of tags, broken source files, etc. Further testing would be good.
-  Fixed typos and other small oversifghts.
-! Improved the pathreducer to comply with more file systems. Reduced filenames will differ from reduced filenames in previous versions.
-  Fixed two oversights of unformatted printf usages.
-  Switched from imagemagick convert to mogrify for image thumbnail generation so that malformed and slightly broken image files can be handled better.

v0.9.9
2021-11-12
-  Updated README and help pages to include recently added options.
-! The filenames of style set files (CSS files) are now shortened if necessary if pathreducer mode is enabled.
-  Continued various tests of edge cases, weird input from source files, huge amounts of tags, broken source files, etc. Further testing is necessary.
-  Option -n/--perpage is now officially dead. This functionality will be covered by option -S/--setting in the future.
-  New option -n/--navbar to generate/update only the navbar.html file if not other action to generate HTML files is given.
-  Improved reliability of pathreducer function, fixed bug that added a slash at the end of a path whose last element contained a backslash.
-  Started to reduce repetitive and similar code in the functions that generate HTML from entry files.
-  Started to expand chaching functionality to include HTML entries, not just their tags.
-  Fixed bug that prevented some entries with weird names from being included in the RSS feed.

v0.9.8
2021-11-06
-  Path and file names are now shortened to comply with the maximum allowed file name length defined in the variable $maxfnl if they would be longer and the pathreducer option is used.
-  Fixed bug that prevented re-regeneration of gallery image thumbnails.
-  Introduced new option: -R (--reduce-paths) for enabling the pathreducer. The pathreducer is off by default in order to not slow down things unnecessarily.

v0.9.7
2021-10-10
-  Added some paralell generation of the major parts of the website. This will likely be removed again before version 1.0.0 because it's not done properly and without bugs.
-  Added command line option -Q/--parallel for enabling experimental parallel processing/site generation.
-  Added date and time of messages to the log file.
-  Various tests of edge cases, weird input from source files, huge amounts of tags, broken source files, etc. Further testing is necessary.
-  Decided that the gallery feature will not get much love from me in the near future. It is a basic feature and a lot more could be done with it. But other features are more important right now.
-  Prepared for new command line options that will let the user pass single page and entry source files independently from the web site's source directory to be generated as if they were part of the web site.
-  Added new command line option: -F/--force for forcing the script to continue if it suspects something to be wrong or encounters an error.
-  Started to differentiate between warnings and errors. Warnings don't abort the script, errors only abort if force mode is not enabled.
-  Fixed line breaks in help pages. They are now fixed to 80 characters per line. (Sorry.)
-  Started implementing file caching both to speed up the generation process and to enable skipping re-generation in future runs. This will be expanded much more in the futurel. Not much is cached right now.
-  Fixed bug that prevented the temporary directory from being removed after a successful run of the script.
-  Fixed typos and orher mistakes in comments.
-  Updated README, updated and extended help pages.
-  If a desired tag, entry or page does not exist, the script aborts before doing unnecessary preparations now.

v0.9.6
2021-08-29
-  Removed option --thumbnail (-z). The implementation wasn't good, the feature was never used and something more flexible is planned for the future anyway.
-  No empty tagpages are generated when a non-existing tag is passed with option --tagpage / -t now.
-! Multi-level directory support for entries and pages is pretty much finalised now. Entries and Pages are found and non-existing entries and pages are ignored.
-  A separate navigation/menu file (navbar.html) is generated now to be used if needed for your web site theme/style.
-  Created new style set (tensum) with separated menu for small screens.

v0.9.5
2021-08-24
-  Further prepared multi-level directory support for entries.
-  Fixed an army of little bugs introduced by further preparations for multi-level directory support for entries.
-  Fixed bug that generated galleries into the wrong file when specified by command line option.
-  Fixed typos in the README file, updated the example website's content.
-  Removed support for subdirectory prefix (webbase). Since the decision that SBWG will not parse source files/HTML has been made, the usefulness of this unfinished feature has been lost. The output directory can be set accordingly in the settings file or via command line option instead.
-  Created new simple gray style (lidgrom).
-! Rudimentally completed multi-level directory support for entries and pages. Files in subdirectories of entries/ and pages/ are now used as source files.

v0.9.4
2021-07-31
-  Added option to log to file instead of or additionally to getting messages to stdout.
-  Various cute little code improvements.
-  Prepared some functions for multi-level directory support for entries.
-  Fixed bug that prevented HTML redirects from redirecting.
-  Fixed/improved source file header parsing to better recognise the end of the taglines automatically.

v0.9.3
2021-07-10
-  Fixed bug that would make SBWG not recognise a SBWG source directory automatically.
-  The --help (-h) option supports arguments now, for displaying help on different topics. Those new help pages have yet to be written though.
-  Added all the new help pages (for the --help/-h option) with short, preliminary short help texts.
-  Streamlined condition syntax all over the script.
-  Fixed bug in example web site's settings file's hook that made antries show up twice in special tagpages generated by the hook.

v0.9.2
2021-06-20
-  Fixed bug that prevented new gallery directories from being created.
-  Fixed bug that included images twice in galleries.
-  Fixed bug that prevented entries from being included in all relevant tagpages.
-  Fixed bug that prevented topic tagpages from being sorted properly in certain cases.
-  Fixed bug that had incomplete URLs included in the RSS feeds.
-  Fixed bug that made the script refuse to generate only the RSS feed and nothing else.
-  Fixed position of hook_tagpage_entry_top_before().
-  Fixed HTML tag structure mistakes, unclosed tags, missing spaces, stuff like that.
-  File permissions of all gallery images and directories obey umask now regardless of the file permissions of gallery images in the source directory.
-  Only files that are recognised as image files by 'file' are copied to galleries in the output directory now.

v0.9.1
2021-06-13
-  Finished overview page of all entries that have a topic tag (top.html) and linked it in the navigation bar.
-  Some code quality improvements.
-  Removed some small redundancies.
-  Title of corrosponding blog entries of galleries is now used in the gallery menu/list.
-  Small code readability improvement.
-  Prepared help function for multiple different help pages on multiple different topics.
-  Added overview of functions at the bottom of the script.

v0.9.0
2021-05-28
-  Finalised README and HOWTO (for now).
-  Fixed small bugs that made HTML a little bit messed up in some situations.
-  Fixed bug that resulted in no action with no output and no error, given the wrong set of options.

v0.8.10
2021-05-24
-  Fixed bug that prevented the --author option from working most of the times.
-  Fixed bug that prevented the --help option from printing the help screen only when the CWD was a SBWG site source directory.
-  Brought the README file close to its final form for v1.0.0.
-  Somewhat filled the HOWTO file a little bit more.

v0.8.9
2021-05-15
-  Filled the README file some more, completed the INSTALL file. 
-  Removed more obsolete code.
-  Again some code quality improvents (but very tiny ones)
-  More code cleanery
-  Filled the example web site with content demonstating some but not too many features. I think it's done for now.

v0.8.8
2021-04-22
-  Removed obsolete code, expanded comments on functions and variable usage.
-  A bit of making the code a bit cleaner. (Started simplifying and streamlining variable names.)
-  Simplified some variable names, simplified variable usage in hooks and HTML header generation function.
-  Added support for sub-topics deeper than two lebels.
-  Added more hooks for more flexibility.
-  Finally seriously started filling the README and INSTALL files.

v0.8.7
2021-04-04
-  Unimportant code tidying. Removed over 300 obsolete and empty lines.
-  Hide meta information of stickied posts. (It's not interesting what the title or last edited date of an "about this category" entry is.)
-  Fixed bug that prevented the footer file from being used on tagpages with multiple pages.
-  Marked redirection entries on tagpages as such for a small advancement in my strive to reduce the potential of confusion on the visitors' side.
-  Fixed bug that set the HTML page title wringly on multi-page tagpages.

v0.8.6
2021-03-27
-  Somewhat Cleaned up HTML output.
-  Sorted entries on topic tagpages differetly: They are sorted and separated by sub-topics now.
-  Created new tagpage "top.html" that lists all entries of all topic tags. This is not complete yet.
-  Improved preparations for HTML page generation.
-  Improved very verbose output of what task is currently performed.
-  Fixed bug that prevented usage of option -i (--input) in most scenarios.

v0.8.5
2021-03-20
-  Added generation of combined tagpages: Entries can now be filtered by author and one tag (cat, top, lang) at the same time.
-  Introduced 'redirect:' tag for creating bogus entries that pretend to be and redirect to an existing entry.
-  Improved source file header detection.
-  Introduced 'sort:' tag that is not displayed but always beats the 'created:' and 'edited:' tags.
-  A bit of code cleaning.

v0.8.4
2021-03-18
-! Changes in HTML output/CSS selectors:
   - Added entry tags to CSS classes of wrappers to enable style changes according to tags.
   - Added entry tags as classes for themselve to give more styling options apart from using tagicons on the HTML side.
-  Some tiny bit of code cleaning.
-  Added information to the very-verbose output: Listing the names of entries, pages and tagpages now.
-  Imroved RSS feed validity a bit. It's still not good, but better than before.
-  Linked RSS feed in HTML headers.
-  Fixed bug that caused some command line options to be ignored.
-  Introduced hooks for additional code on a per-website basis.

v0.8.3
2021-03-14
-  Positive code improvements.
-  Various small changes in the specifics of the HTML output. No big improvements though.
-  Entries with sub-catagories or sub-topics are assumed to belong to their parent cats/tops as well now.
-  The RSS feed for all entries (all.rss) is now basically functional and a valid enough RSS feed to be accepted by many feed readers.

v0.8.2
2021-03-13
!! Finished restructuring of source file header:
   !! Switch from HTML comment based header to flexible, just-put-tags-in-the-top header.
   -  Added support for multiple authors on the same blog.

v0.8.1
2021-03-12
-  General code cleaning.
-! Small changes to HTML structure and CSS

v0.8.0
2021-03-10
!!  Started to make the switch to new source file headers, including the following:
   !! Looking for created: and edited: now, ignoring mtime and other file dates.
   !! Looking for tags in the entire header now, support for filtering by: lang, cat, top, author.
   !! Using title tag instead of entire second line now.
   -  This has not been tested a lot, yet, and may be unfinished.

v0.7.31
2021-03-09
-! Started moving HTML headers from head and header files to the code. / Changed how gen_head works and is used.
-  Moved stylesheet rel link generation from the copy_styles function to the gen_head function so that stylesheets are linked without having to use the -s option.
-  General code cleaning.

v0.7.30
2021-03-08
-  Introduced settings file in the website's source directory to enable setting variables individually per website.

v0.7.29
2021-03-07
-  Created CHANGELOG file.
-  Re-combined the previously splitted source files into one. It's just simpler that way.
-! Renamed script file to sbwg, as that is what the project is called and the file should have been called from the beginning.
-  Added entry dates to the entrylists array as preparation for a switch in entry sorting. 
-  Changed entry sorting on tagpages to use created date only. This will be changed to a new, additional date line in the entry header in the future.
