Skip to content

Releases: xyproto/algernon

Algernon 1.17.3

26 Feb 11:16
Compare
Choose a tag to compare

Fixes

  • Only listen for the USR1 signal on some platforms. Fixes #157 (thanks for reporting, @kris6673).

New features

  • Add a run3 function, ref #158 (thanks for reporting, @myselfghost).
  • Add print_nonl that can be used in connection with flush.
  • Add the mprint_ret function that can return required JS code instead of inserting it.
  • Let flush, redirect and permanent_redirect return true if the connection was not closed when sending.
  • Add support for ie. lang: en and language: en in Markdown files.

Updates to the sample projects

  • Improve the "mathematical formulas" sample.
  • Add a typewriter / server-side flush sample.
  • Set the language to en for 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=false by default in the Makefile.
  • Add an informative message when serving README.md files without -m.
  • Update documentation.
  • Update dependencies.

Algernon 1.17.2

20 Jan 11:57
Compare
Choose a tag to compare

Fixes

New features

  • Make it possible to clear all cache by sending the USR1 signal 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

13 Jul 12:52
Compare
Choose a tag to compare

Platform compatibility

  • Patch the pingcap/tidb dependency 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 embeddedDistance Lua function take a 3rd argument: euclidean, manhattan, chebyshev, hamming or cosine.
  • 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 -m and -o are specified.

Various

  • Also cache .webp images, if caching of images is enabled.
  • Update dependencies.
  • Update documentation.

Algernon 1.17.0

26 Jun 15:25
Compare
Choose a tag to compare
  • 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) and embeddedDistance (given two embeddings, try to find how similar they are).
  • Serve HTTP with fasthttp (ref #4, thanks for the feature request @iMaxopoly)
  • Add a sanhtml function 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-llama3 model.
  • 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 base64 method to UploadedFile objects.
  • Try avoiding runtime.GOOS and detect most features at compile time instead.
  • Use two atomic.Bool variables instead of a mutex for keeping track of how traffic is being served.
  • Use github.com/pkg/browser for opening URLs in a browser.
  • Import logrus as "logrus" instead of as "log".
  • Use strconv.FormatInt instead of fmt.Sprintf whenever possible.
  • Update the Teal example.
  • Follow the advice of golint.
  • Let some variables be constants instead.
  • Remove GOEXPERIMENT=loopvar since it is no longer needed.
  • Compile the release binaries with Go 1.22.4.
  • Update documentation.
  • Update dependencies.

Algernon 1.16.0

22 Feb 15:11
Compare
Choose a tag to compare

New features

  • Add support for using AI/LLMs (Ollama) from Lua.
  • Add support for .prompt files that contains a content-type, a model name, a blank line and a prompt. See README.md for 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 alg2docker script.
  • 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

06 Dec 09:19
Compare
Choose a tag to compare
  • 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

16 Oct 14:52
Compare
Choose a tag to compare

Usability

  • Add a newline to the help output (thanks @arimal199).
  • Let the servedir Lua function check the given arguments.

Security updates

  • Compile with Go 1.21 + update the http2 dependency, ref CVE-2023-39325

Dependencies

Performance

  • Use the dkorunic/betteralign utility to align struct fields.
  • Enable profile-guided optimization (new feature in Go 1.21).

General

  • Improve the alg2docker and benchmark scripts.
  • Use the GOEXPERIMENT=loopvar feature.
  • 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

10 Aug 06:58
Compare
Choose a tag to compare
  • 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.sh script with regard to ulimit and sysctl kern.maxfiles detection.
  • Improve the --help output 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

03 Jun 12:44
Compare
Choose a tag to compare
  • Remove a duplicate word from the README.md file (thanks Philipp Gillé / @philippgille).
  • Serve Algernon web applications (.alg files) from memory if /dev/shm is writable, ref #132 (thanks Dialga / @Dialga).
  • Switch from github.com/xyproto/env to github.com/xyproto/env/v2.
  • Serve .json files a tiny bit faster.
  • Update dependencies.

Algernon 1.15.1

17 May 23:35
Compare
Choose a tag to compare
  • Switch from blackfriday to gomarkdown/markdown.
  • Add a simple example that uses the markdown function.
  • Update the CI configuration.
  • Update dependencies.
  • Update documentation.