]> Sergey Matveev's repositories - sgblog.git/blobdiff - README.texi
More compact Base64 ETag
[sgblog.git] / README.texi
index 9409b09a938bbb3096e13d7946b15110a10f4741..20e3726ea2fa47b2014a304e269829300e3a8699 100644 (file)
@@ -3,7 +3,7 @@
 @settitle SGBlog
 
 @copying
-Copyright @copyright{} 2020 @email{stargrave@@stargrave.org, Sergey Matveev}
+Copyright @copyright{} 2020-2024 @email{stargrave@@stargrave.org, Sergey Matveev}
 @end copying
 
 @node Top
@@ -11,9 +11,11 @@ Copyright @copyright{} 2020 @email{stargrave@@stargrave.org, Sergey Matveev}
 
 SGBlog is minimalistic and simple Git-backed CGI/UCSPI
 @url{https://en.wikipedia.org/wiki/Blog, blogging} (@code{http://}/@code{https://}),
-@url{https://en.wikipedia.org/wiki/Phlog, phlogging} (@code{gopher://}) and
-gemlogging (@code{gemini://}) engine
-with email-backed comments support, written on @url{https://golang.org/, Go}.
+@url{https://en.wikipedia.org/wiki/Phlog, phlogging} (@code{gopher://}),
+@url{https://twtxt.readthedocs.io/en/latest/index.html, twtxting}, and
+@url{https://en.wikipedia.org/wiki/Gemini_(protocol), gemlogging} (@code{gemini://})
+engine with email-backed comments support,
+written on @url{https://go.dev/, Go}.
 
 Its main competitive features:
 
@@ -28,6 +30,7 @@ Its main competitive features:
     interface for working as
     @url{https://en.wikipedia.org/wiki/Gopher_(protocol), Gopher} server
 @item Topics (tags/categories) support
+@item Images linking support
 @item Supports on the fly generation of
     @url{https://en.wikipedia.org/wiki/Atom_(feed), Atom} feeds
     for posts, comments and per-post comments
@@ -45,8 +48,8 @@ But SGBlog also is able to:
 @item Convert SHA1-like hashes to blog links itself
 @item Include relative @code{<link rel>} links for ease of navigation in
     some browsers
-@item @url{https://en.wikipedia.org/wiki/Gzip, gzip} compress both HTML
-    pages and Atom feeds
+@item @url{https://facebook.github.io/zstd/, Zstandard}
+    compress both HTML pages and Atom feeds
 @item Respect @url{https://en.wikipedia.org/wiki/HTTP_ETag, ETag}
     caching for both of them above
 @end itemize
@@ -113,6 +116,19 @@ To reset incorrectly added topic:
 $ git update-ref refs/notes/topics refs/notes/topics^
 @end example
 
+@node Images
+@unnumbered Images
+
+You can link any number of image files with your post. You need to put
+them in a directory (@code{ImgPath} configuration file's option) which
+path is equal to your post's hash, with two subdirectory levels. For
+example directory for post @code{3e12180dd2b6fb3b44c77c365d355d5a3796a43f}
+will be @code{ImgPath/3e/12/180dd2b6fb3b44c77c365d355d5a3796a43f}.
+Filenames are lexically sorted. Filename without an extension will be
+image's alternative text. Currently only @file{.jxl} and @file{.webp}
+are recognized. @code{ImgDomain} configuration file's option will be
+used to construct URL to @code{//ImgDomain/3e/12/180dd2b6fb3b44c77c365d355d5a3796a43f}.
+
 @node Installation
 @unnumbered Installation
 
@@ -256,6 +272,10 @@ optional fields:
   TopicsNotesRef: refs/notes/topics
   # Optional file for topics state caching
   TopicsCachePath: /path/to/sgblog-topics-cache.gob
+
+  # If set, then images are searched in XX/YY/ZZZ...ZZZ directory
+  ImgPath: /path/to/directory/with/images
+  ImgDomain: img.blog.example.com
 @}
 @end example