-
: version 0.6.0
Improve interface for blog templates (all existing functionality is retained). Foremost, elements no longer need to be
<nav>
or<article>
to trigger querying for navigation or article template blocks (data-sblg-nav
anddata-sblg-article
, respectively).Similarly, article sources and standalone templates no longer require
<article>
elements to trigger scanning for article content: thedata-sblg-article
attribute suffices.Introduce
data-sblg-navstyle-content
anddata-sblg-navstyle-element
, which allow for several different ways of formatting the navigation content. The olddata-sblg-navcontent
anddata-sblg-navxml
are deprecated, but will not ever be removed. -
: version 0.5.12
Document how to esape tag symbols: use the HTML entity instead of the dollar character (e.g.,
${TOKEN}
).This brought to attention a long-standing issue: that HTML entities were discarded. Modify the parser to allow for HTML entities (e.g., $) and pass them through as text without validation. This significantly improves workflow that has well-formed HTML that would not pass through libexpat without a DTD parsed for the entities. HTML entities in attributes will still not work.
Pass keywords specified in the input (e.g., as
data-sblg-set-foo=bar
) into the JSON output in thekeys
record property. The JSON output may now be consumed in TypeScript systems with a package uploaded to npm: sblg. -
: version 0.5.11
Improve documentation, improve portability (with latest oconfigure), and add a large regression suite for testing behaviour of the system. This is run by
make regress
and requires no additional utilities to run (beyonddiff
).Allow
${sblg-source}
to be overridden and provide${sblg-real}
for the actual file. -
: version 0.5.10
Tiny updates to portability. For most systems, no functional change. Update to newest oconfigure.
-
: version 0.5.9
Extensive portability work. Internally switches to pkg-config(1) for detecting dependency locations. Now builds and installs properly on most popular UNIX systems.
-
: version 0.5.8
Add
data-sblg-const-img
variants of the existingdata-sblg-img
and friends. This behaves like implicitly grabbing from the first<img>
in that only the first invocation sets the value. The existingdata-sblg-img
attributes, on the other hand, will overwrite previous invocations. -
: version 0.5.7
Add
${sblg-setcount}
for printing the number of remaining articles in a tagged navigation series. -
: version 0.5.6
Add
data-sblg-author
attribute that can override the set author. This is like thedata-sblg-img
and so forth.Add
data-sblg-atomcontent
to mirrordata-sblg-navcontent
in that Atom entry contents are retained with symbols replaced.Atom contents are now typed as XHTML and wrapped in an
xmlns
attribute accordingly. -
: version 0.5.5
Add
LDFLAGS
to Makefile and fix typos in manpage. -
: version 0.5.4
Add two templates for photography blogs, one with a grid front page and one that's columnar. These create the blogs directly from EXIF data in your photos!
Finally remove that articles are followed by a permanent link by default that must be disabled with
data-sblg-permlink="0"
. This has now been inverted such thatdata-sblg-permlink="1"
is required to emit the permanent link.Add
${sblg-version}
and the-V
flag to the binary to emit the version. -
: version 0.5.3
Add a brutalist template to the mix. This is has a front page and per-article styles. The way templates are installed has changed, but that's not likely to change any behaviour.
-
: version 0.5.2
Provide the
${sblg-next-has}
and${sblg-prev-has}
to allow masking or showing of${sblg-next}
and friends.Add some style templates for simple blogs: one that's one article per page and one with a blogroll, and a retro blogroll. These are installed with the system and may be used a simple start to a blog.
Significant updates to the Atom functionality. This necessitates a minor version bump because Atom identifiers created by the system no longer use the
tag
scheme, but instead the URL itself. This makes the system much simpler. Also, several attributes (data-sblg-update
,data-sblg-id
) are no longer necessary to stipulate: since there can only be one element for each invocation, these are superfluous. All of these makes it much easier to combine existing Atom entries with an automated feed.While here, update the documentation to be much more specific about how the template is handled.
-
: version 0.4.29
Provide the
data-sblg-aside
attribute like the others (data-sblg-title
, etc.). Also bring up to date with latest oconfigure. -
: version 0.4.28
Documentation updates only: clarify
multi-standalone
mode as combined, remove references to amalgamation, clarify where tag symbols may be used, add more meaningful examples, etc. No code change. -
: version 0.4.26
Add
ititle
andrititle
for case-insensitive title sort. -
: version 0.4.25
Add
data-sblg-ign-once
attribute, which is recognised in the template file to indicate that adata-sblg-article
should be ignored. Theonce
part specifies that the attribute be removed when it is processed. This makes it easier to chain output to input, so a template may, for example, wrap a navigation set as an article. I use this for tag cloud collections.Fix value reported by
${sblg-abscount}
, which was off by one.Provide
data-sblg-title
anddata-sblg-datetime
overrides just like already found indata-sblg-img
.All sort types now have a
reverse
mode. Add in thetitle
sort, while here. -
: version 0.4.24
Fix typo causing compile errors on Linux.
-
: version 0.4.23
Bug-fix a coredump caused by copy-paste. This occurred when a sort was specified on a navigation.
-
: version 0.4.22
Add
${sblg-abscount}
variable. -
: version 0.4.21
No functionality changes. Speed up internal code by using hashtable lookups for element and attribute names. Conform to OpenBSD's style(9) more.
-
: version 0.4.20
In list mode (-l), allow for
long-format
listing by specifying another -l. This puts all tags (or files, with -r) to be printed on the same line. This makes it easier to use shell scripting to process tag lists. -
: version 0.4.19
When creating Atom feeds, strip away
dangerous
HTML attributes. Do this by using the W3C's Atom feed attribute whitelist, defined in their validator security considerations. In doing so, Atom feeds validate nicely. -
: version 0.4.18
Add
data-sblg-forall
to Atom generation. This makes it easy to have a single<entry>
for all Atom entries. Also fix the generated<id>
to use the current year and tidy the sblg(1) documentation.Also add
data-sblg-altlink-fmt
to allow the alternative link to be formatted arbitrarily.While there, make Atom output process its internal tags. This means you can use the
${sblg-xxxxx}
tags within documents and have them properly render within your Atom feed content. Clean up some possible memory leaks, too. -
: version 0.4.17
Add
${sblg-pos-frac}$
,${sblg-pos-pct}
, and${sblg-count
to generate nice progress bars. -
: version 0.4.16
Specify what
${sblg-pos}
actually does: shows the current navigation index regardless the filters. Add${sblg-abspos}
for the actual position in the full list of articles. (Why anybody would want that, I don't know.)Add
${sblg-get-escaped[|tag]}
, which is like${sblg-get}
except that white-space is escaped for use with thedata-sblg-navtag
anddata-sblg-articletag
attributes. -
: version 0.4.15
Introduce
${sblg-has|key}
, which tests whetherkey
has been set (e.g.,data-sblg-set-key=foo
). If it has been set, emitssblg-has-key
, or nothing otherwise. This is useful for classes whose children will be masked depending upon the existence of a key.Properly show dates in UTC instead of localtime. (Unless asking for localtime.)
-
: version 0.4.14
Allow for
data-sblg-navtag
anddata-sblg-articletag
to support an embedded${sblg-get|xxx}
. This is useful for having a navigation list (in -L or -C mode) deriving from the page itself, such as asee also
. Also bring up to date with newest oconfigure. -
: version 0.4.13
Compatibility fix for
%F
, which wasn't supported by musl. Also makedata-sblg-articletag
respect escaped spaces. -
: version 0.4.12
Allow for white-space around date processing in the input document's
<time>
element. -
: version 0.4.11
Bump to latest oconfigure. Fix up some documentation. No code change.
-
: version 0.4.10
Bump to latest oconfigure. Fix up some documentation as noted by Johan Huldtgren—thanks!
-
: version 0.4.9
Start using oconfigure for configuration.
-
: version 0.4.6
Allow for
data-sblg-navsort
attribute to override the search order set by -s. Also add the rdate search order (reverse date). -
: version 0.4.5
Allow for
data-sblg-set-xxxx="yyyy"
attributes for custom key-value pairs. These may later be extracted using the${sblg-get|xxxx}
invocation. This is very useful for having structured values within, say, navigation.Also merge Reyk Flöter's
data-sblg-navxml
tag to cause the contents of adata-sblg-nav="1"
statement to be included verbatim, not within a list. -
: version 0.4.4
Fix
<id>
element in Atom feeds as patched by Reyk Flöter. Thanks! -
: version 0.4.3
Make Atom feeds aware of the
data-sblg-striplink
attribute. This attribute strips the directory part from the altlink (if requested), allowing input files to have arbitrary directory parts harmlessly. -
: version 0.4.2
Fix
data-sblg-navtag
to also support escaped spaces. -
: version 0.4.1
Enpower -l (tag-listing mode). This is now able to emit all tags in JSON formatted output via -j, which makes it easy for dynamic sites to play with tag listings in any way they choose. (See sblg(1) for an explanation of the output format.) Also add -r, which stipulates that -l will print tag-first. This is most useful for -j, as it allows for easy browsing by tag name.
Also internally start using a new way to
configure
the build. -
: version 0.3.10
Added a new flag, -L, documented in sblg(1). This acts as if -C were specified for each article in its input without needing to run sblg(1) again and again. (Obviously, it will re-write the suffix just like -c without -o.) This makes the compile time for our divelog, which has many articles that used to be run with -C, much faster.
While plumbing, add some examples to the manpage and note the caveat regarding HTML entity names.
-
: version 0.3.9
-
: version 0.3.8
Fix the installation tarball. No code/functionality change.
-
: version 0.3.7
Add the ability to attach an image to an article. This is selected from the first
<img>
or as overriden by thedata-sblg-img
attribute. Also add the ability to list tags in an article with${sblg-tags}
, which accepts a filter prefix as${sblg-tags|filter}
. Then add${sblg-datetime}
to format time-date UTC pairs and${sblg-datetime-fmt}
for human-formatted dates and times. These collectively make date and time formatting much more rigorous. While documenting these, polish up sblg(1). -
: version 0.3.6
Implement a new option, -l, that prints all tags for a given set of filenames. Also allow tags to have spaces if backslash-escaped.
-
: version 0.3.5
Add support for JSON output with the -j flag. This generates a dump of all articles in JSON format. This makes it easy to mingle your static content with a dynamic feed, such as one coming from dblg.
-
: version 0.3.4
Add sorting by command-line (natural) invocation order. Fix an issue reported by trondd555 where text after the end of an input article would continue to be printed. Thanks!
-
: version 0.3.3
Require a valid ISO 3339 date-time for the article time, which now lets articles have a time as well as the date component. Add a
${sblg-pos}
tag for specifying the article's shown position. -
: version 0.3.2
-
: version 0.3.1
Allow multiple articles to be specified within a single input file. This warrants a minor bump because the internals changed quite significantly, as did the default behaviour of handling multiple articles per file (earlier they were just ignored).
-
: version 0.2.14
Add the
data-sblg-articletag
attribute for articles (likedata-sblg-navtag
) and allow fordata-sblg-navstart
for navigation (the first article to show of those that would be shown). Also clean up the manpage in the interests of readability. -
: version 0.2.13
-
: version 0.2.12
Implement Darwin's sandbox for security's sake.
-
: version 0.2.11
Fix
${sblg-prev-stripbase}
, which was accidentally behaving the same as${sblg-prev-base}
. Change all thestrip
tags to refer only to directory and suffix stripping, then add thelang
addition (e.g.,${sblg-striplangbase}
to remove both. Add thedata-sblg-sort
attribute to articles that allows them to override their relative positioning. Prepare for importing a read-only repository into GitHub. -
: version 0.2.10
Add a
${sblg-stripbase}
version of${sblg-base}
that also removes the directory part. The same has been added to the positional references like${sblg-next-base}
. -
: version 0.2.9
Bug-fix: when reading the time from an article (via the
<time>
element), sblg was looking only at the first attribute. This has been fixed: all attributes are examined until finding the time. -
: version 0.2.8
Bug-fix: if an amalgamation template had more entries than articles, it would crash. This was found and noted by Hiroshi Hakoyama—thanks!
-
: version 0.2.7
Spruce up documentation and web content for clarity, including fixing some of the older
Tips and Tricks
articles in the blog section. No functional change. -
: version 0.2.6
Fix the Atom generator (using the -a flag) to use the <content> tag regardless of whether displaying a summary or the content itself. This behaviour conforms to RFC 4287. Noted by Svyatoslav Mishyn–thanks! While here, spend a few hours running the system through AFL. Note: I had accidentally installed version 0.2.5 as version 0.2.6. This error pointed out by Svyatoslav–thanks again!
-
: version 0.2.5
First, actually use the -C (the prior -f was still specified). Second, have the blog amalgamation, standalone amalgamation, and compile modes properly treat the template symbols described in sblg(1). In doing so, the system was made much more efficient by re-using the saved buffer of article contents instead of re-parsing for each treatment.
-
: version 0.2.4
Add the
<article data-sblg-lang="en lv ru">
attribute for controlling how filenames are stripped for the${sblg-base}
symbol (see sblg(1)), specifically that a language of (e.g.)en
would, in a filename ofindex.en.html
orindex.html.en
, have the.en
part stripped out before the suffix is stripped. This makes multilanguage sites much easier to manage.Also add a small portability framework, automatically invoked by the Makefile, that provides compatibility functions for strlcat(3), strlcpy(3), and reallocarray(3). So now the system is portable across most UNIX systems, not just BSD!
-
: version 0.2.3
Polish documentation and web-site. No significant functional changes.
-
: version 0.2.2
Document (and fix) the
${sblg-next-base}
and${sblg-prev-base}
keywords. Add the${sblg-first-base}
and${sblg-last-base}
keywords. Allow multiple tags indata-sblg-navtag
attributes. -
: version 0.2.1
Bumped minor after changing the symbols replaced within
<nav data-sblg-navcontent="1">
. These are all now prefixed withsblg-
. Also switched-f
to-C
for consistency. Lastly, allowed all non-article and non-navigation text and attribute values within the templates for-c
and-C
to have the same symbols as for navigation replacement. -
: version 0.1.3
Fix tagging to allow for
data-sblg-tags
attributes anywhere in an article. Also fix off-by-one in replacing.xml
with.html
in -c mode. -
: version 0.1.2
Stipulate that all content is used when
data-sblg-content="1"
is used in an Atom template. Allowed<hN>
,<aside>
,<time>
, and<author>
tags to appear anywhere in the article instead of just in the<header>
. Disable expansion of internal entity references (e.g., <) so that input is completely preserved. Addedtitletext
to filled-in parameters such as to differentiate fromtitle
, which includes any markup within the parse context. While there, addauthor
andauthortext
. -
: version 0.1.1
Overhaul documentation (web, articles, manual, in-line) for simplicity. Add tag indexing (see Tags article). Simplify the flow of standalone to amalgamated articles by mandating that
data-sblg-article="1"
appear in input articles. -
: version 0.0.13
Fix download so that it compiles properly.