Releases: xyproto/algernon
Releases Β· xyproto/algernon
Algernon 1.17.4
- Fix a missing
mcharacter when drawing the banner/logo at start. - Also show the banner/logo at start on Windows.
- Add HTML sanitization of the filename for the "file not found" page". This fixes an XSS issue.
- Switch from vt100 to the vt package.
- Update go.mod, ref #159.
- Update CI configuration.
- Remove
FUNDING.yml. - Update documentation.
- Update dependencies.
Algernon 1.17.3
Fixes
New features
- Add a
run3function, ref #158 (thanks for reporting, @myselfghost). - Add
print_nonlthat can be used in connection withflush. - Add the
mprint_retfunction that can return required JS code instead of inserting it. - Let
flush,redirectandpermanent_redirectreturntrueif the connection was not closed when sending. - Add support for ie.
lang: enandlanguage: enin Markdown files.
Updates to the sample projects
- Improve the "mathematical formulas" sample.
- Add a typewriter / server-side flush sample.
- Set the language to
enfor 3 of the samples.
Various
- Improve error handling in connection with recorders and flushing.
- Improve some warnings and error messages.
- Build with
-ldflags "-s -w" -buildvcs=falseby default in theMakefile. - Add an informative message when serving
README.mdfiles without-m. - Update documentation.
- Update dependencies.
Algernon 1.17.2
Fixes
- Use
net/httpinstead offasthttpfor serving regular HTTP to make theflush()function work again, ref #124 (thanks @diyism and @myselfghost). - Add support for SQLite, ref #134 (thanks @bearinld004 and @judell, and especially @terminar for creating permissionsqlite).
- Fix #155 by skipping empty
<h1></h1>tags (thanks @qithron).
New features
- Make it possible to clear all cache by sending the
USR1signal to Algernon, for platforms that supports this. - Add a new Markdown theme named
setconf.
Various
- Add three new samples.
- Minor performance improvements.
- Some refactoring and cleanup.
- Update documentation.
- Update dependencies.
Algernon 1.17.1
Platform compatibility
- Patch the
pingcap/tidbdependency so that Algernon still compiles for ARM 6 and ARM 7.
Ollama / LLMs
- Add the
oc:distance()Lua method for finding the distance between two LLM prompts. - Let the
embeddedDistanceLua function take a 3rd argument:euclidean,manhattan,chebyshev,hammingorcosine. - Improve the image description example.
Markdown
- Improve how images are served when serving a single Markdown document.
- Fix the double opening of the browser when both
-mand-oare specified.
Various
- Also cache
.webpimages, if caching of images is enabled. - Update dependencies.
- Update documentation.
Algernon 1.17.0
- Add three new Ollama-related functions:
base64EncodeFile(base64-encode a given file),describeImage(use Ollama and ie. the llava-llama3 model to describe a base64-encoded image) andembeddedDistance(given two embeddings, try to find how similar they are). - Serve HTTP with
fasthttp(ref #4, thanks for the feature request @iMaxopoly) - Add a
sanhtmlfunction for sanitizing HTML. - Add experimental support for mathematical formulas in Markdown using MathJax (ref #150, thanks for the feature request @xjl456852).
- Add an example for uploading and describing images with Ollama and the
llava-llama3model. - Add an example that renders mathematical formulas.
- Fix an issue with inserting JS into HTML.
- Improve the "pretty error page" that appears if there is an error in a Lua script.
- Make it possible to ignore files in a directory listing (ref #149, thanks for the feature request @alpharde).
- Improve how favicons are handled.
- Add a
base64method toUploadedFileobjects. - Try avoiding
runtime.GOOSand detect most features at compile time instead. - Use two
atomic.Boolvariables instead of a mutex for keeping track of how traffic is being served. - Use
github.com/pkg/browserfor opening URLs in a browser. - Import
logrusas "logrus" instead of as "log". - Use
strconv.FormatIntinstead offmt.Sprintfwhenever possible. - Update the Teal example.
- Follow the advice of
golint. - Let some variables be constants instead.
- Remove
GOEXPERIMENT=loopvarsince it is no longer needed. - Compile the release binaries with Go 1.22.4.
- Update documentation.
- Update dependencies.
Algernon 1.16.0
New features
- Add support for using AI/LLMs (Ollama) from Lua.
- Add support for
.promptfiles that contains a content-type, a model name, a blank line and a prompt. SeeREADME.mdfor more information. - Make it possible to clear the AI cache with
ClearCache().
Tutorials and example code
- Add a simple tutorial (
TUTORIAL.md). - Update the React jsonfile example.
- Update the TODO list example to the latest version of React.
- Update the React + JSX + database example.
Various
- Make small changes to the built-in themes.
- Minor changes to the
alg2dockerscript. - Combine several build and run scripts related to docker.
- Require Go 1.21 or later, mostly because of the QUIC dependency.
- Update CI configuration.
- Update the year in the license file.
- Add the loopvar feature to the dockerfiles.
- Use LABEL maintainer in the Dockerfiles.
- Remove some unused code.
- Update dependencies.
Algernon 1.15.5
- Compile with Go 1.21.5 which has "security fixes to the go command, and the net/http and path/filepath packages, as well as bug fixes to the compiler, the go command, the runtime, and the crypto/rand, net, os, and syscall packages." See the Go issue tracker for more details.
- Also display images when viewing a local Markdown document with
algernon -m. - Fix a typo in the moonscript sample (thanks @testwill).
- Minor improvements to the Makefile and to the form/registration example.
- Update documentation, ref #141, (thanks for reporting @ptman).
- Update dependencies.
- Fix a test.
Algernon 1.15.4
Usability
- Add a newline to the help output (thanks @arimal199).
- Let the
servedirLua function check the given arguments.
Security updates
- Compile with Go 1.21 + update the http2 dependency, ref CVE-2023-39325
Dependencies
- Use the
orsinium-labs/enumpackage for an enum inlogo_unix.go. - Remove deprecated
bmizerany/assert. - Update all dependencies.
Performance
- Use the
dkorunic/betteralignutility to align struct fields. - Enable profile-guided optimization (new feature in Go 1.21).
General
- Improve the
alg2dockerand benchmark scripts. - Use the
GOEXPERIMENT=loopvarfeature. - Update the GitHub action for Homebrew.
- Update CI configuration.
- Require Go 1.20 or Go 1.21.
- Build the release binaries with Go 1.21.
Algernon 1.15.3
- Support Go 1.21 and drop support for Go 1.19 (thanks @stefanb).
- Enable QUIC support for non-x86_64 macOS, like M1 and M2.
- Fix an issue when building with
-tags=trace, for benchmarking. - Update the
welcome.shscript with regard toulimitandsysctl kern.maxfilesdetection. - Improve the
--helpoutput and the REPL help. - Let the style for the "Welcome" page be slightly more welcoming.
- Improve the
Makefile. - Some minor changes to the code.
- Adjust the example server config.
- Update dependencies.
Algernon 1.15.2
- Remove a duplicate word from the
README.mdfile (thanks Philipp GillΓ© / @philippgille). - Serve Algernon web applications (
.algfiles) from memory if/dev/shmis writable, ref #132 (thanks Dialga / @Dialga). - Switch from
github.com/xyproto/envtogithub.com/xyproto/env/v2. - Serve
.jsonfiles a tiny bit faster. - Update dependencies.