X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=README.texi;h=20e3726ea2fa47b2014a304e269829300e3a8699;hb=HEAD;hp=adc60739a1a2e92c91f45883214eb0e599381c4a;hpb=b148eac3526eaf2d85756ee122549ec48396b85b;p=sgblog.git diff --git a/README.texi b/README.texi index adc6073..20e3726 100644 --- a/README.texi +++ b/README.texi @@ -3,21 +3,24 @@ @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 @top SGBlog -SGBlog is minimalistic and simple Git-backed CGI/inetd -@url{https://en.wikipedia.org/wiki/Blog, blogging} and -@url{https://en.wikipedia.org/wiki/Phlog, phlogging} engine -with email-backed comments support, written on @url{https://golang.org/, Go}. +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://}), +@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: @itemize -@item Single binary, responsible for both blog and phlog +@item Single binary, responsible for both blog, phlog and gemlog @item @url{https://git-scm.com/, Git} DVCS as a storage for posts and comments @item Single small @url{https://hjson.github.io/, Hjson} configuration file @item Uses @url{https://en.wikipedia.org/wiki/Common_Gateway_Interface, CGI} @@ -27,15 +30,16 @@ 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 @item Single binary for email-backed comments posting @item If access is granted, then everyone can easily create an offline - copy of your blog/phlog! + copy of your blog/phlog/gemlog! @end itemize -All of that, except for comments, topics and phlog, could be achieved +All of that, except for comments, topics and phlog/gemlog, could be achieved with some Git viewer like @url{https://git.zx2c4.com/cgit/about/, cgit}. But SGBlog also is able to: @@ -44,8 +48,8 @@ But SGBlog also is able to: @item Convert SHA1-like hashes to blog links itself @item Include relative @code{} 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 @@ -112,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 @@ -183,6 +200,15 @@ EOF # mv /var/service/.phlog-ipv6 /var/service/phlog-ipv6 @end example +Gemlog uses Gemini protocol that requires TLS usage, that can be +achieved with @url{go.cypherpunks.ru/ucspi} tools: + +@example +exec tcpserver -DRH -u $uid -g $gid -l 0 ::0 1965 \ + tlss -key gemlog.key.pem -cert gemlog.pem \ + sgblog -gemini /home/sgblog/gemlog.hjson 2>&1 +@end example + For comments workability you have to configure your SMTP server to feed incoming messages to @command{sgblog-comment-add} utility. For example, Postfix'es @file{/etc/aliases} can contain: @@ -246,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