serum v1.2.0 Release NotesRelease Date: 2019-08-04 // 17 days ago
🛠 Fixed an issue where the Serum development server crashes if the file system watcher backend is not available on the user's system. The server will work now, but features related to automatic reloading will be disabled.
Now the prompt text (
8080>) in the Serum development server CLI will catch up the console output, instead of lagging behind.
⚡️ Updated one of Serum's dependencies. Users will no longer see strange errors from "Tzdata" once a day.
Serum.File.read/1now checks if the value of
srckey in the input struct is nil. An error will be returned if so. Likewise,
Serum.File.write/1checks the value of
📇 Now you can add any user-defined metadata to your pages and posts. Just put some lines like
key: valuein the header, and these metadata will be available at
@post.extras) in your templates.
If you put any extra files and directories in
files/directory, they will be copied to the root of your website.
files/directory is a good place for your favicons,
robots.txt, and so on.
➕ Added support for custom templates. Pages and blog posts now recognize the
templatekey in their headers.
📄 Docs: Marked some docs for internal modules as hidden, and organized moduledocs by categories. Hidden docs are still accessible via source codes.
Overhauled codes which start and stop the Serum development server. The temporary output directory created by the server will now be cleaned up in most exit situations. Additionally, users will be able to see less horrifying error output when the server failed to start.
For developers: The Serum development server and its command line interface have been decoupled. Starting the server with
Serum.DevServer.run/2does not take you to the command line interface. Instead, you can call
Serum.DevServer.Prompt.start/1to enter the server CLI.
There are now two ways to get out of the CLI: The
quitcommand stops the development server and returns. If you want to keep the server running, use the
detachcommand. You can later enter the CLI again using the same
🔄 Changed format of the message output, with a new internal module which controls the console output.
- TODO: Disable emitting ANSI escape sequences when the output device is not a terminal.
If there are more than one identical errors, only one of them will be displayed. Usually these errors are from one source and they will be gone all together if one error in the project source gets fixed.
Previous changes from v1.1.0
- The development server now quits gracefully when the user sends EOF (Ctrl+D) (Issue #45)
👍 Serum now supports themes! Please visit the official website to learn more about Serum themes.
serum.new.themeMix task, which helps you create a new Serum theme project.
🔌 The following optional callbacks were added for plugins.
Serum.HtmlTreeHelpermodule, which provides
traverse/3function. You will find this module useful when you need to manipulate HTML trees from your plugins.
🔌 The behavior of the Table of Contents plugin has slightly changed.
- This plugin no longer prepends a
<a name="...">tag to each heading tag. Instead, it will use the
idattribute of each one of them. If a tag does not have an
id, it will be set appropriately by the plugin.
- The TOC element (
ul.serum-toc) will also be given an ID (
#toc), so that you can make hyperlinks back to the list.
- This plugin no longer prepends a
Serum now automatically generates an
idattribute for each HTML heading tag. (by @igalic, Issue #44)
- If a heading tag already has an ID, it won't be modified.
- Each ID is generated based on the tag's text content.
- Generated IDs are always unique. If a duplicate ID is to be generated, a number will be appended.