Changes for Version 0.19.0 (pending)
- Remove support for renaming zettel, i.e. changing zettel identifier. Was announced as deprecated in version 0.18. (breaking: api, webui)
- Zettel content for zettel with ID starting with 0000 is not indexed any more. If you search / query for zettel content, these zettel will not be returned. (breaking: api, webui)
- Fix wrong quote translation for markdown encoder. (minor)
- Generate in table header (was: ). Also applies to SHTML encoder. (minor: webui, api)
- External links are now generatd in shtml and html with attribute rel="external" (previously: class="external"). (minor: webui, api)
- Show new format zettel identifier in zettel view, info view and delete view. (minor: webui)
Changes for Version 0.18.0 (2024-07-11)
- Remove Sx macro
defunconst
. Usedefun
instead. (breaking: webui) - The sz encoding of zettel does not make use of
(SPACE)
elements any more. Instead, space characters are encoded within the(TEXT "...")
element. This might affect any client that works with the sz encoding to produce some output. (breaking) - Format of zettel identifier will be changed in the future to a new format, instead of the current timestamp-based format. The usage of zettel identifier that are before 1970-01-01T00:00:00 is not allowed any more (with the exception of predefined identifier) (deprecation)
- Due to the planned format of zettel identifier, the “rename” operation is deprecated. It will be removed in version 0.19 or later. If you have a significant use case for the rename operation, please contact the maintainer immediate. (deprecation)
- New zettel are now created with the permission for others to read/write
them. This is important especially for Unix-like systems. If you want the
previous behaviour, set
umask
accordingly, for exampleumask 066
. (major: dirbox) - Add expert-mode zettel “Zettelstore Warnings” to help identifying zettel to upgrade for future migration to planned new zettel identifier format. (minor: webui)
- Add expert-mode zettel “Zettelstore Identifier Mapping” to show a possible mapping from the old identifier format to the new one. This should help users to possibly rename some zettel for a metter mapping. (minor: webui)
- Add metadata key
created-missing
to list zettel without stored metadata keycreated
. Needed for migration to planned new zettelstore identifier format, which is not based on timestamp of zettel creation date. (minor) - Add zettel “Zettelstore Application Directory”, which contains identifier for application specific zettel. Needed for planned new identifier format. (minor: webui)
- Update Sx prelude: make macros more robust / more general. This might break your code in the future. (minor: webui)
- Add computed expert-mode zettel “Zettelstore Memory” with
zettel identifier
00000000000008
. It shows some statistics about memory usage. (minor: webui) - Add computed expert-mode zettel “Zettelstore Sx Engine” with
zettel identifier
00000000000009
. It shows some statistics about the internal Sx engine. (Currently only the number of used symbols, but this will change in the future.) (minor: webui) - Zettelstore client is now Go package t73f.de/r/zsc. (minor)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.17.0 (2024-03-04)
- Context search operates only on explicit references. Add the directive
FULL
to follow zettel tags additionally. (breaking) - Context cost calculation has been changed. Prepare to retrieve different result. (breaking)
- Remove metadata type WordSet. It was never implemented completely, and nobody complained about this. (breaking)
- Remove logging level “sense”, “warn”, “fatal”, and “panic”. (breaking)
- Add query action
REDIRECT
which redirects to zettel that is the first in the query result list. (minor: api, webui) - Add link to
CONTEXT FULL
in the zettel info page. (minor: webui) - When generating HTML code to query set based metadata (esp. tags), also generate a query that matches all values. (minor: webui)
- Show all metadata with key ending “-url” on zettel view. (minor: webui)
- Make WebUI form elements a little bit more accessible by using HTML
search
tag andinputmode
attribute. (minor: webui) - Add UI action for role zettel, similar to tag zettel. Obviously forgotten in release 0.16.0, but thanks to the bug fix v0.16.1 detected. (minor: webui)
- If an action, which is written in uppercase letters, results in an empty list, the list of selected zettel is returned instead. This allows some backward compatibility if a new action is introduced. (minor)
- Only when query list is not empty, allow to show data and plain encoding, an optionally show the “Save As Zettel” button. (minor: webui)
- If query list is greater than three elements, show the number of elements at bottom (before other encodings). (minor: webui)
- Zettel with syntax “sxn” are pretty-printed during evaluation. This allows to retrieve parsed zettel content, which checked for syntax, but is not pretty-printed. (minor)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.16.1 (2023-12-28)
- Fix some Sxn definitions to allow role-based UI customizations. (minor: webui)
Changes for Version 0.16.0 (2023-11-30)
- Sx function
define
is removed, as announced for version 0.15.0. Usedefvar
(to define variables) ordefun
(to define functions) instead. In additiondefunconst
defines a constant function, which ensures a fixed binding of its name to its function body (performance optimization). (breaking: webui) - Allow to determine a role zettel for a given role. (major: api, webui)
- Present user the option to create a (missing) role zettel (in list view). Results in a new predefined zettel with identifier 00000000090004, which is a template for new role zettel. (minor: webui)
- Timestamp values can be abbreviated by omitting most of its components. Previously, such values that are not in the format YYYYMMDDhhmmss were ignored. Now the following formats are also allowed: YYYY, YYYYMM, YYYYMMDD, YYYYMMDDhh, YYYYMMDDhhmm. Querying and sorting work accordingly. Previously, only a sequences of zeroes were appended, resulting in illegal timestamps, e.g. for YYYY or YYYYMM. (minor)
- SHTML encoder fixed w.r.t inline quoting. Previously, an <q> tag was used, which is inappropriate. Restored smart quotes from version 0.3, but with new SxHTML infrastructure. This affect the html encoder and the WebUI too. Now, an empty quote should not result in a warning by HTML linters. (minor: api, webui)
- Add new zettelmarkup inline formatting:
##Text##
will mark / highlight the given Text. It is typically used to highlight some text, which is important for you, but not for the original author. When rendered as HTML, the <mark> tag is used. (minor: zettelmarkup) - Add configuration keys to show, not to show, or show the closed list of referencing zettel in the web user interface. You can set these configurations system-wide, per user, or per zettel. Often it is used to ensure a “clean” home zettel. Affects the list of incoming / back links, folge zettel, subordinate zettel, and successor zettel. (minor: webui)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.15.0 (2023-10-26)
- Sx function
define
is now deprecated. It will be removed in version 0.16. Usedefvar
ordefun
instead. Otherwise the WebUI will not work in version 0.16. (major: webui, deprecated) - Zettel can be re-indexed via WebUI or API query action
REINDEX
. The info page of a zettel contains a link to re-index the zettel. In a query transclusion, this action is ignored. (major: api, webui). - Allow to determine a tag zettel for a given tag. (major: api, webui)
- Present user the option to create a (missing) tag zettel (in list view). Results in a new predefined zettel with identifier 00000000090003, which is a template for new tag zettel. (minor: webui)
- ZIP file with manual now contains a zettel 00001000000000 that contains
its build date (metadata key
created
) and version (in the zettel content) (minor) - If an error page cannot be created due to template errors (or similar), a plain text error page is delivered instead. It shows the original error and the error that occurred during rendering the original error page. (minor: webui)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.14.0 (2023-09-22)
- Remove support for JSON. This was marked deprecated in version 0.12.0. Use
the
data
encoding instead, a form of symbolic expressions. (breaking: api; minor: webui) - Remove deprecated syntax for a context list:
CONTEXT zid
. Usezid CONTEXT
instead. It was deprecated in version 0.13.0. (breaking: api, webui, zettelmarkup) - Replace CSS-role-map mechanism with a more general Sx-based one: user specific code may generates parts of resulting HTML document. (breaking: webui)
- Allow meta-tags, i.e. zettel for a specific tag. Meta-tags have the tag name as a title and specify the role "tag". (major: webui)
- Allow to load sx code from multiple zettel; dependencies are specified
using
precursor
metadata. (major: webui) - Allow sx code to change WebUI for zettel with specified role. (major: webui)
- Some minor usability improvements. (minor: webui)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.13.0 (2023-08-07)
- There are for new search operators: less, not less, greater, not greater.
These use the same syntax as the operators prefix, not prefix, suffix, not
suffix. The latter are now denoted as
[</code>, <code>![</code>, <code>]
, and!]
. The first may operate numerically for metadata like numbers, timestamps, and zettel identifier. They are not supported for full-text search. (breaking: api, webui) - The API endpoint
/o/{ID}
(order of zettel ID) is no longer available. Please use the query expression{ID} ITEMS
instead. (breaking: api) - The API endpoint
/u/{ID}
(unlinked references of zettel ID) is no longer available. Please use the query expression{ID} UNLINKED
instead. (breaking: api) - All API endpoints allow to encode zettel data with the
data
encodings, incl. creating, updating, retrieving, and querying zettel. (major: api) - Change syntax for context query to
zid ... CONTEXT
. This will allow to add more directives that operate on zettel identifier. Old syntaxCONTEXT zid
will be removed in 0.14. (major, deprecated) - Add query directive
ITEMS
that will produce a list of metadata of all zettel that are referenced by the originating zettel in a top-level list. It replaces the API endpoint/o/{ID}
(and makes it more useful). (major: api, webui) - Add query directive
UNLINKED
that will produce a list of metadata of all zettel that are mentioning the originating zettel in a top-level, but do not mention them. It replaces the API endpoint/u/{ID}
(and makes it more useful). (major: api, webui) - Add query directive
IDENT
to distinguish a search for a zettel identifier (“{ID}”), that will list all metadata of zettel containing that zettel identifier, and a request to just list the metadata of given zettel (“{ID} IDENT”). The latter could be filtered further. (minor: api, webui) - Add support for metadata key
folge-role
. (minor) - Allow to create a child from a given zettel. (minor: webui)
- Make zettel entry/edit form a little friendlier: auto-prepend missing '#' to tags; ensure that role and syntax receive just a word. (minor: webui)
- Use a zettel that defines builtins for evaluating WebUI templates. (minor: webui)
- Add links to retrieve result of a query in other formats. (minor: webui)
- Always log the found configuration file. (minor: server)
- The use of the
json
zettel encoding is deprecated (since version 0.12.0). Support for this encoding will be removed in version 0.14.0. Please use the newdata
encoding instead. (deprecated: api) - Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.12.0 (2023-06-05)
- Syntax of templates for the web user interface are changed from Mustache to Sxn (S-Expressions). Mustache is no longer supported, nowhere in the software. Mustache was marked deprecated in version 0.11.0. If you modified the template zettel, you must adapt to the new syntax. (breaking: webui)
- Query expression is allowed to search for the "context" of a zettel. Previously, this was a separate call, without adding a search expression / action expression. (breaking)
- "sexpr" encoding is renamed to "sz" encoding. This will affect mostly the API. Additionally, all string "sexpr" are renamed to "sz" also. "Sz" is the short form for "symbolic expression for zettel", similar to "shtml" that is the short form for "symbolic expression for HTML". (breaking)
- Render footer zettel on all WebUI pages. (fix: webui)
- Query search operator "=" now compares for equality, ":" compares depending on the value type. (minor: api, webui)
- Search term
PICK
now respects the original sort order. This makes it more useful and orthogonal toRANDOM
andLIMIT
. As a side effect, zettel lists retrieved via the API are no longer sorted. In case you want a specific order, you must specify it explicit. (minor: api, webui) - New metadata key
expire
records a timestamp when a zettel should be treated as, well, expired. (minor) - New metadata keys
superior
andsubordinate
(calculated fromsuperior
) allow to specify a hierarchy between zettel. (minor) - Metadata keys with suffix
-date
and-time
are treated as timestamp values. (minor) sexpr
zettel encoding is now documented in the manual. (minor: manual)- Build tool allows to install / update external Go tools needed to build the software. (minor)
- Show only useful metadata on WebUI, not the internal metadata. (minor: webui)
- The use of the
json
zettel encoding is deprecated. Support for this encoding may be removed in future versions. Please use the newdata
encoding instead. (deprecated: api) - Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.11.2 (2023-04-16)
- Render footer zettel on all WebUI pages. Backported from 0.12.0. Many thanks to HK for reporting it! (fix: webui)
Changes for Version 0.11.1 (2023-03-28)
- Make
PICK
search term a little bit more deterministic so that the “Save As Zettel” button produces the same list. (fix: webui)
Changes for Version 0.11.0 (2023-03-27)
- Remove ZJSON encoding. It was announced in version 0.10.0. Use Sexpr encoding instead. (breaking)
- Title of a zettel is no longer interpreted as Zettelmarkup text. Now it is just a plain string, possibly empty. Therefore, no inline formatting (like bold text), no links, no footnotes, no citations (the latter made rendering the title often questionable, in some contexts). If you used special entities, please use the Unicode characters directly. However, as a good practice, it is often the best to printable ASCII characters. (breaking)
- Remove runtime configuration
marker-external
. It was added in version 0.0.6 and updated in 0.0.10. If you want to change the marker for an external URL, you could modify zettel 00000000020001 (Zettelstore Base CSS) or zettel 00000000025001 (Zettelstore User CSS, preferred) by changing / adding a rule to add some content after an externaltag. (breaking: webui)
- Add SHTML encoding. This allows to ensure the quality of generated HTML code. In addition, clients might use it, because it is easier to parse and manipulate than ordinary HTML. In the future, HTML template zettel will probably also use SHTML, deprecating the current Mustache syntax (which was added in 0.0.9). (major)
- Search term
PICK n
, wheren
is an integer value greater zero, will pick randomlyn
elements from the search result list. Somehow similar (and faster) asRANDOM LIMIT n
, but allows also later ordering of the resulting list. (minor) - Changed cost model for zettel context: a zettel with more outgoing/incoming references has higher cost than a zettel with less references. Also added support for traversing tags, with a similar cost model. As an effect, zettel hubs (in many cases your home zettel) will less likely add its references. Same for often used tags. The cost model might change in some details in the future, but the idea of a penalty applied to zettel / tags with many references will hold. (minor)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.10.1 (2023-01-30)
- Show button to save a query into a zettel only when the current user has authorization to do it. (fix: webui)
Changes for Version 0.10.0 (2023-01-24)
- Remove support for endpoints
/j, /m, /q, /p, /v
. Their functions are merged into endpoint/z
. This was announced in version 0.9.0. Please use only client library with at least version 0.10.0 too. (breaking: api) - Remove support for runtime configuration key
footer-html
. Usefooter-zettel
instead. Deprecated in version 0.9.0. (breaking: webui) - Save a query into a zettel to freeze it. (major: webui)
- Allow to show all used metadata keys, linked with their occurrences and their values. (minor: webui)
- Mark ZJSON encoding as deprecated for v0.11.0. Please use Sexpr encoding instead. (deprecated)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.9.0 (2022-12-12)
- Remove support syntax
pikchr
. Although it was a nice idea to include it into Zettelstore, the implementation is too brittle (w.r.t. the expected long lifetime of Zettelstore). There should be other ways to support SVG front-ends. (breaking) - Allow to upload content when creating / updating a zettel. (major: webui)
- Add syntax “draw” (again) (minor: zettelmarkup)
- Allow to encode zettel in Markdown. Please note: not every aspect of a zettel can be encoded in Markdown. Those aspects will be ignored. (minor: api)
- Enhance zettel context by raising the importance of folge zettel (and similar). (minor: api, webui)
- Interpret zettel files with extension
.webp
as an binary image file format. (minor) - Allow to specify service specific log level via startup configuration and via command line. (minor)
- Allow to specify a zettel to serve footer content via runtime
configuration
footer-zettel
. Can be overwritten by user zettel. (minor: webui) - Footer data is automatically separated by a thematic break / horizontal rule. If you do not like it, you have to update the base template. (minor: webui)
- Allow to set runtime configuration
home-zettel
in the user zettel to make it user-specific. (minor: webui) - Serve favicon.ico from the asset directory. (minor: webui)
- Zettelmarkup cheat sheet (minor: manual)
- Runtime configuration key
footer-html
will be removed in Version 0.10.0. Please usefooter-zettel
instead. (deprecated: webui) - In the next version 0.10.0, the API endpoints for a zettel
(
/j
,/p
,/v
) will be merged with endpoint/z
. Basically, the previous endpoint will be refactored as query parameter of endpoint/z
. To reduce errors, there will be no version, where the previous endpoint are still available and the new functionality is still there. This is a warning to prepare for some breaking changes in v0.10.0. This also affects the API client implementation. (warning: api) - Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.8.0 (2022-10-20)
- Remove support for tags within zettel content. Removes also property
metadata keys
all-tags
andcomputed-tags
. Deprecated in version 0.7.0. (breaking: zettelmarkup, api, webui) - Remove API endpoint
/m
, which retrieve aggregated (tags, roles) zettel identifier. Deprecated in version 0.7.0. (breaking: api) - Remove support for URL query parameter starting with an underscore. Deprecated in version 0.7.0. (breaking: api, webui)
- Ignore HTML content by default, and allow HTML gradually by setting
startup value
insecure-html
. (breaking: markup) - Endpoint
/q
returns list of full metadata, if no query action is specified. A HTTP callGET /z
(retrieving metadata of all or some zettel) is now an alias forGET /q
. (major: api) - Allow to create a zettel that acts as the new version of an existing zettel. Useful if you want to have access to older, outdated content. (minor: webui)
- Allow transclusion to reference local image via URL. (minor: zettelmarkup, webui)
- Add categories in RSS feed, based on zettel tags. (minor: api, webui)
- Add support for creating an Atom 1.0 feed using a query action. (minor: api, webui)
- Ignore entities with code point that is not allowed in HTML. (minor: zettelmarkup)
- Enhance distribution of tag sizes when show a tag cloud. (minor: webui)
- Warn user if zettelstore listens non-locally, but no authentication is enabled. (minor: server)
- Fix error that a manual zettel deletion was not always detected. (bug: dirbox)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.7.1 (2022-09-18)
- Produce a RSS feed compatible to Miniflux. (minor)
- Make sure to always produce a pubdata in RSS feed. (bug)
- Prefix search for data that looks like a zettel identifier may end with a
0
. (bug) - Fix glitch on manual zettel. (bug)
Changes for Version 0.7.0 (2022-09-17)
- Removes support for URL query parameter to search for metadata values, sorting, offset, and limit a zettel list. Deprecated in version 0.6.0 (breaking: api, webui)
- Allow to search for the existence / non-existence of a metadata key with
the "?" operator:
key?
andkey!?
. Previously, the ":" operator was used for this by specifying an empty search value. Now you can use the ":" operator to find empty / non-empty metadata values. If you specify a search operator for metadata, the specified key is assumed to exist. (breaking: api, webui) - Rename “search expression” into “query
expressions”. Similar, the reference prefix
search:
to specify a query link or a query transclusion is renamed toquery:
(breaking: zettelmarkup) - Rename query parameter for query expression from
_s
toq
. (breaking: api, webui) - Cleanup names for HTTP query parameters in WebUI. Update your bookmarks if you used them. (For API: see below) (breaking: webui)
- Allow search terms to be OR-ed. This allows to specify any search expression in disjunctive normal form. Therefore, the NEGATE term is not needed any more. (breaking: api, webui)
- Replace runtime configuration
default-lang
withlang
. Additionally,lang
set at the zettel of the current user, will provide a default value for the current user, overwriting the global default value. (breaking) - Add new syntax
pikchr
, a markup language for diagrams in technical documentation. (major) - Add endpoint
/q
to query the zettelstore and aggregate resulting values. This is done by extending the query syntax. (major: api) - Add support for query actions. Actions may aggregate w.r.t. some metadata keys, or produce an RSS feed. (major: api, webui)
- Query results can be ordered for more than one metadata key. Ordering by zettel identifier is an implicit last order expression to produce stable results. (minor: api, webui)
- Add support for an asset directory, accessible via URL prefix
/assests/
. (minor: server) - Add support for metadata key
created
, a time stamp when the zettel was created. Since keypublished
is now eithercreated
ormodified
, it will now always contains a valid time stamp. (minor) - Add support for metadata key
author
. It will be displayed on a zettel, if set. (minor: webui) - Remove CSS for lists. The browsers default value for
padding-left
will be used. (minor: webui) - Removed templates for rendering roles and tags lists. This is now done by query actions. (minor: webui)
- Tags within zettel content are deprecated in version 0.8. This affects the
computed metadata keys
content-tags
andall-tags
. They will be removed. The number sign of a content tag introduces unintended tags, esp. in the English language; content tags may occur within links → links within links, when rendered as HTML; content tags may occur in the title of a zettel; naming of content tags, zettel tags, and their union is confusing for many. Migration: use zettel tags or replace content tag with a search. (deprecated: zettelmarkup) - Cleanup names for HTTP query parameter for API calls. Essentially, underscore characters in front are removed. Please use new names, old names will be deprecated in version 0.8. (deprecated: api)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.6.2 (2022-08-22)
- Recognize renaming of zettel file external to Zettelstore. (bug)
Changes for Version 0.6.1 (2022-08-22)
- Ignore empty tags when reading metadata. (bug)
Changes for Version 0.6.0 (2022-08-11)
- Translating of "..." into horizontal ellipsis is no longer supported. Use … instead. (breaking: zettelmarkup)
- Allow to specify search expressions, which allow to specify search criteria by using a simple syntax. Can be specified in WebUI's search box and via the API by using query parameter "_s". (major: api, webui)
- A link reference is allowed to be a search expression. The WebUI will render this as a link to a list of zettel that satisfy the search expression. (major: zettelmarkup, webui)
- A block transclusion is allowed to specify a search expression. When evaluated, the transclusion is replaced by a list of zettel that satisfy the search expression. (major: zettelmarkup)
- When presenting a zettel list, allow to change the search expression. (minor: webui)
- When evaluating a zettel, ignore transclusions if current user is not allowed to read transcluded zettel. (minor)
- Added a small tutorial for Zettelmarkup. (minor: manual)
- Using URL query parameter to search for metadata values, specify an ordering, an offset, and a limit for the resulting list, will be removed in version 0.7. Replace these with the more useable search expressions. Please be aware that the = search operator is also deprecated. It was only introduced to help the migration. (deprecated: api, webui)
- Some smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.5.1 (2022-08-02)
- Log missing authentication tokens in debug level (was: sense level) (major)
- Allow to use empty metadata values of string and zmk types. (minor)
- Add IP address to some log messages, esp. when authentication fails. (minor)
Changes for Version 0.5.0 (2022-07-29)
- Removed zettel syntax “draw”. The new default syntax for inline zettel is now “text”. A drawing can now be made by using the “evaluation block” syntax (see below) by setting the generic attribute to “draw”. (breaking: zettelmarkup, api, webui)
- If authentication is enabled, a secret of at least 16 bytes must be set in the startup configuration. (breaking)
- “Sexpr” encoding replaces “Native” encoding. Sexpr encoding is much easier to parse, compared with native and ZJSON encoding. In most cases it is smaller than ZJSON. (breaking: api)
- Endpoint
/r
is changed to/m?_key=role
and returns now a map of role names to the list of zettel having this role. Endpoint/t
is changed to/m?_key=tags
. It already returned mapping described before. (breaking: api) - Remove support for a default value for metadata key title, role, and syntax. Title and role are now allowed to be empty, an empty syntax value defaults to “plain”. (breaking)
- Add support for an “evaluation block” syntax in Zettelmarkup to allow interpretation of content by external software. (minor: zettelmarkup)
- Add initial support for a TeX-like math-mode to Zettelmarkup (both block- and inline-structured elements). Currently, support only the syntax, but WebUI does not render these elements in a special way. (minor: zettelmarkup)
- For block-structured elements, attributes may now span more than one line. If a line ending occurs within a quoted attribute value, the line ending characters are part of the attributes value. (minor: zettelmarkup)
- Zettel 00000000029000 acts as a map of zettel roles to identifier of zettel that are included as additional CSS. Allows to display zettel differently depending on their role. Use case: slides that are processed by Zettel Presenter will use the same CSS if they are rendered by Zettelstore WebUI. (minor: webui)
- A zettel can be saved while creating / editing it. There is no need to manually re-edit it by using the 'e' endpoint. (minor: webui)
- Zettel role and zettel syntax are backed by a HTML5 data list element which lists supported and used values to help to enter a valid value. (minor: webui)
- Allow to use startup configuration, even if started in simple mode. (minor)
- Log authentication issues in level "sense"; add caller IP address to some web server log messages. (minor: web server)
- New startup configuration key max-request-size to limit a web request body to prevent client sending too large requests. (minor: web server)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.4 (2022-03-08)
- Encoding “djson” renamed to “zjson” (zettel json). (breaking: api; minor: webui)
- Remove inline quotation syntax
<<...<<
. Now,""...""
generates the equivalent code. Typographical quotes are generated by the browser, not by Zettelstore. (breaking: Zettelmarkup) - Remove inline formatting for mono space. Its syntax is now used by the similar syntax element of literal computer input. Mono space was just a visual element with no semantic association. Now, the syntax ++...++ is obsolete. (breaking: Zettelmarkup).
- Remove API call to parse Zettelmarkup texts and encode it as text and HTML. Was call “POST /v”. It was needed to separately encode the titles of zettel. The same effect can be achieved by fetching the ZJSON representation and encode it using the function in the Zettelstore client software. (breaking: api)
- Remove API call to retrieve all links of an zettel. This can be done more easily on the client side by traversing the ZJSON encoding of a zettel. (breaking: api)
- ZJSON will encode metadata value as pairs of a metadata type and metadata value. This allows a client to decode the associated value more easily. (minor: api)
- A sequence of inline-structured elements can be marked, not just a point in the Zettelmarkup text. (minor: zettelmarkup)
- Metadata keys with suffix -title force their value to be interpreted as Zettelmarkup. Similar, the suffix -set denotes a set/list of words and the suffix -zids a set/list of zettel identifier. (minor: api, webui)
- Change generated URLs for zettel-creation forms. If you have bookmarked them, e.g. to create a new zettel, you should update. (minor: webui)
- Remove support for metadata key
no-index
to suppress indexing selected zettel. It was introduced in v0.0.11, but disallows some future optimizations for searching zettel. (minor: api, webui) - Make some metadata-based searches a little bit faster by executing a (in-memory-based) full-text search first. Now only those zettel are loaded from file that contain the metadata value. (minor: api, webui)
- Add an API call to retrieve the version of the Zettelstore. (minor: api)
- Limit the amount of zettel and bytes to be stored in a memory box. Allows to use it with public access. (minor: box)
- Disallow to cache the authentication cookie. Will remove most unexpected log-outs when using a mobile device. (minor: webui)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.3 (2022-02-09)
- Zettel files with extension
.meta
are now treated as content files. Previously, they were interpreted as metadata files. The interpretation as metadata files was deprecated in version 0.2. (breaking: directory and file/zip box) - Add syntax “draw” to produce some graphical representations. (major)
- Add Zettelmarkup syntax to specify full transclusion of other zettel. (major: Zettelmarkup)
- Add Zettelmarkup syntax to specify inline-zettel, both for block-structured and for inline-structured elements. (major: Zettelmarkup)
- Metadata-returning API calls additionally return an indication about access rights for the given zettel. (minor: api)
- A previously duplicate file that is now useful (because another file was deleted) is now logged as such. (minor: directory and file/zip box)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.2 (2022-01-19)
- v0.2.1 (2021-02-01) updates the license year in some documents
- Remove support for
;;small text;;
Zettelmarkup. (breaking: Zettelmarkup) - On macOS, the downloadable executable program is now called “zettelstore”, as on all other Unix-like platforms. (possibly breaking: macOS)
- External metadata (e.g. for zettel with file extension other than
.zettel
) are stored in files without an extension. Metadata files with extension.meta
are still recognized, but result in a warning message. In a future version (probably v0.3),.meta
files will be treated as ordinary content files, possibly resulting in duplicate content. In other words: usage of.meta
files for storing metadata is deprecated. (possibly breaking: directory and file box) - Show unlinked references in info page of each zettel. Unlinked references are phrases within zettel content that might reference another zettel with the same title as the phase. (major: webui)
- Add endpoint
/u/{ID}
to retrieve unlinked references. (major: api) - Provide a logging facility.
Log messages are written to standard output. Messages with level
“information” are also written to a circular buffer (of length
8192) which can be retrieved via a computed zettel. There is a command
line flag
-l LEVEL
to specify an application global logging level on startup (default: “information”). Logging level can also be changed via the administrator console, even for specific (sub-) services. (major) - The internal handling of zettel files is rewritten. This allows less reloads ands detects when the directory containing the zettel files is removed. The API, WebUI, and the admin console allow to manually refresh the internal state on demand. (major: box, webui)
.zettel
files with YAML header are now correctly written. (bug)- Selecting zettel based on their metadata allows the same syntax as
searching for zettel content. For example, you can list all zettel that
have an identifier not ending with
00
by using the queryid=!<00
. (minor: api, webui) - Remove support for
//deprecated emphasized//
Zettelmarkup. (minor: Zettelmarkup) - Add options to profile the software. Profiling can be enabled at the command line or via the administrator console. (minor)
- Add computed zettel that lists all supported parser / recognized zettel syntaxes. (minor)
- Add API call to check for enabled authentication. (minor: api)
- Renewing an API access token works even if authentication is not enabled. This corresponds to the behaviour of obtaining an access token. (minor: api)
- If there is nothing to return, use HTTP status code 204, instead of 200 +
Content-Length: 0
. (minor: api) - Metadata key
duplicates
stores the duplicate file names, instead of just a boolean value that there were duplicate file names. (minor) - Document auto starting Zettelstore on Windows, macOS, and Linux. (minor)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.1 (2021-11-11)
- v0.1.3 (2021-12-15) fixes a bug where the modification date could be set when a new zettel is created.
- v0.1.2 (2021-11-18) fixes a bug when selecting zettel from a list when more than one comparison is negated.
- v0.1.1 (2021-11-12) updates the documentation, mostly related to the
deprecation of the
//
markup. - Remove visual Zettelmarkup (italic, underline). Semantic Zettelmarkup
(emphasize, insert) is still allowed, but got a different syntax. The new
syntax for inserted text is
>>inserted>>
, while its previous syntax now denotes emphasized text:__emphasized__
. The previous syntax for emphasized text is now deprecated://deprecated emphasized//
. Starting with Version 0.2.0, the deprecated syntax will not be supported. The reason is the collision with URLs that also contain the characters//
. The ZMK encoding of a zettel may help with the transition (/v/{ZettelID}?_part=zettel&_enc=zmk
, on the Info page of each zettel in the WebUI). Additionally, all deprecated uses of//
will be rendered with a dashed box within the WebUI. (breaking: Zettelmarkup). - API client software is now a separate project. (breaking)
- Initial support for HTTP security headers (Content-Security-Policy, Permissions-Policy, Referrer-Policy, X-Content-Type-Options, X-Frame-Options). Header values are currently some constant values. (possibly breaking: api, webui)
- Remove visual Zettelmarkup (bold, strike through). Semantic Zettelmarkup (strong, delete) is still allowed and replaces the visual elements syntactically. The visual appearance should not change (depends on your changes / additions to CSS zettel). (possibly breaking: Zettelmarkup).
- Add API endpoint
POST /v
to retrieve HTMl and text encoded strings from given ZettelMarkup encoded values. This will be used to render a HTML page from a given zettel: in many cases the title of a zettel must be treated separately. (minor: api) - Add API endpoint
/m
to retrieve only the metadata of a zettel. (minor: api) - New metadata value
content-tags
contains the tags that were given in the zettel content. To put it simply,all-tags
=tags
+content-tags
. (minor) - Calculating the context of a zettel stops at the home zettel. (minor: api, webui)
- When renaming or deleting a zettel, a warning will be given, if other zettel references the given zettel, or when “deleting” will uncover zettel in overlay box. (minor: webui)
- Fix: do not allow control characters in JSON-based creating/updating API. Otherwise, the created / updated zettel might not be parseable by the software (but still by a human). In certain cases, even the WebUI might be affected. (minor: api, webui)
- Fix: when a very long word (longer than width of browser window) is given, still allow to scroll horizontally. (minor: webui)
- Separate repository for contributed software. First entry is a software for creating a presentation by using zettel. (info)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.0.15 (2021-09-17)
- Move again endpoint characters for authentication to make room for future
features. WebUI authentication moves from
/a
to/i
(login) and/i?logout
(logout). API authentication moves from/v
to /a. JSON-based basic zettel handling moves from/z
to/j
and/z/{ID}
to/j/{ID}
. Since the API client is updated too, this should not be a breaking change for most users. (minor: api, webui; possibly breaking) - Add API endpoint
/v/{ID}
to retrieve an evaluated zettel in various encodings. Mostly replaces endpoint/z/{ID}
for other encodings except “json” and “raw”. Endpoint/j/{ID}
now only returns JSON data, endpoint/z/{ID}
is used to retrieve plain zettel data (previously called “raw”). See documentation for details. (major: api; breaking) - Metadata values of type tag set (the metadata with key
tags
is its most prominent example), are now compared in a case-insensitive manner. Tags that only differ in upper / lower case character are now treated identical. This might break your workflow, if you depend on case-sensitive comparison of tag values. Tag values are translated to their lower case equivalent before comparing them and when you edit a zettel through Zettelstore. If you just modify the zettel files, your tag values remain unchanged. (major; breaking) - Endpoint
/z/{ID}
allows the same methods as endpoint/j/{ID}
:GET
retrieves zettel (see above),PUT
updates a zettel,DELETE
deletes a zettel,MOVE
renames a zettel. In addition,POST /z
will create a new zettel. When zettel data must be given, the format is plain text, with metadata separated from content by an empty line. See documentation for more details. (major: api (plus WebUI for some details)) - Allows to transclude / expand the content of another zettel into a target zettel when the zettel is rendered. By using the syntax of embedding an image (which is some kind of expansion too), the first top-level paragraph of a zettel may be transcluded into the target zettel. Endless recursion is checked, as well as a possible “transclusion bomb ” (similar to a XML bomb). See manual for details. (major: zettelmarkup)
- The endpoint
/z
allows to list zettel in a simpler format than endpoint/j
: one line per zettel, and only zettel identifier plus zettel title. (minor: api) - Folgezettel are now displayed with full title at the bottom of a page. (minor: webui)
- Add API endpoint
/p/{ID}
to retrieve a parsed, but not evaluated zettel in various encodings. (minor: api) - Fix: do not list a shadowed zettel that matches the select criteria. (minor)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.0.14 (2021-07-23)
- Rename “place” into “box”. This also affects the
configuration keys to specify boxes
box-uriX
(previouslyplace-uri-X
. Older changes documented here are renamed too. (breaking) - Add API for creating, updating, renaming, and deleting zettel. (major: api)
- Initial API client for Go. (major: api)
- Remove support for paging of WebUI list. Runtime configuration key
list-page-size
is removed. If you still specify it, it will be ignored. (major: webui) - Use endpoint
/v
for user authentication via API. Endpoint/a
is now used for the web user interface only. Similar, endpoint/y
(“zettel context”) is renamed to/x
. (minor, possibly breaking) - Type of used-defined metadata is determined by suffix of key:
-number
,-url
,-zid
will result the values to be interpreted as a number, an URL, or a zettel identifier. (minor, but possibly breaking if you already used a metadata key with above suffixes, but as a string type) - New
user-role
“creator”, which is only allowed to create new zettel (except user zettel). This role may only read and update public zettel or its own user zettel. Added to support future client software (e.g. on a mobile device) that automatically creates new zettel but, in case of a password loss, should not allow to read existing zettel. (minor, possibly breaking, because new zettel template zettel must always prepend the stringnew-
before metadata keys that should be transferred to the new zettel) - New supported metadata key
box-number
, which gives an indication from which box the zettel was loaded. (minor) - New supported syntax
html
. (minor) - New predefined zettel “User CSS” that can be used to redefine some predefined CSS (without modifying the base CSS zettel). (minor: webui)
- When a user moves a zettel file with additional characters into the box directory, these characters are preserved when zettel is updated. (bug)
- The phase “filtering a zettel list” is more precise “selecting zettel” (documentation)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.0.13 (2021-06-01)
- Startup configuration
box-X-uri
(where X is a number greater than zero) has been renamed tobox-uri-X
. (breaking) - Web server processes startup configuration
url-prefix
. There is no need for stripping the prefix by a front-end web server any more. (breaking: webui, api) - Administrator console (only optional accessible locally). Enable it only on systems with a single user or with trusted users. It is disabled by default. (major: core)
- Remove visibility value “simple-expert” introduced in version 0.0.8. It was too complicated, esp. authorization. There was a name collision with the “simple” directory box sub-type. (major)
- For security reasons, HTML blocks are not encoded as HTML if they contain
certain snippets, such as
<script
or<iframe
. These may be caused by using CommonMark as a zettel syntax. (major) - Full-text search can be a prefix search or a search for equal words, in addition to the search whether a word just contains word of the search term. (minor: api, webui)
- Full-text search for URLs, with above additional operators. (minor: api, webui)
- Add system zettel about license, contributors, and dependencies (and their license). For a nicer layout of zettel identifier, the zettel about environment values and about runtime metrics got new zettel identifier. This affects only user that referenced those zettel. (minor)
- Local images that cannot be read (not found or no access rights) are substituted with the new default image, a spinning emoji. See /file?name=box/constbox/emoji_spin.gif. (minor: webui)
- Add zettelmarkup syntax for a table row that should be ignored:
|%
. This allows to paste output of the administrator console into a zettel. (minor: zmk) - Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.0.12 (2021-04-16)
- Raise the per-process limit of open files on macOS to 1.048.576. This allows most macOS users to use at least 500.000 zettel. That should be enough for the near future. (major)
- Mitigate the shortcomings of the macOS version by introducing types of directory boxes. The original directory box type is now called "notify" (the default value). There is a new type called "simple". This new type does not notify Zettelstore when some of the underlying Zettel files change. (major)
- Add new startup configuration
default-dir-box-type
, which gives the default value for specifying a directory box type. The default value is “notify”. On macOS, the default value may be changed “simple” if some errors occur while raising the per-process limit of open files. (minor)
Changes for Version 0.0.11 (2021-04-05)
- New box schema "file" allows to read zettel from a ZIP file. A zettel collection can now be packaged and distributed easier. (major: server)
- Non-restricted search is a full-text search. The search string will be normalized according to Unicode NFKD. Every character that is not a letter or a number will be ignored for the search. It is sufficient if the words to be searched are part of words inside a zettel, both content and metadata. (major: api, webui)
- A zettel can be excluded from being indexed (and excluded from being found
in a search) if it contains the metadata
no-index: true
. (minor: api, webui) - Menu bar is shown when displaying error messages. (minor: webui)
- When selecting zettel, it can be specified that a given value should not match. Previously, only the whole select criteria could be negated (which is still possible). (minor: api, webui)
- You can select a zettel by specifying that specific metadata keys must (or must not) be present. (minor: api, webui)
- Context of a zettel (introduced in version 0.0.10) does not take tags into account any more. Using some tags for determining the context resulted into erratic, non-deterministic context lists. (minor: api, webui)
- Selecting zettel depending on tag values can be both by comparing only the prefix or the whole string. If a search value begins with '#', only zettel with the exact tag will be returned. Otherwise a zettel will be returned if the search string just matches the prefix of only one of its tags. (minor: api, webui)
- Many smaller bug fixes and improvements, to the software and to the documentation.
A note for users of macOS: in the current release and with macOS's default values, a zettel directory must not contain more than approx. 250 files. There are three options to mitigate this limitation temporarily:
- You update the per-process limit of open files on macOS.
- You setup a virtualisation environment to run Zettelstore on Linux or Windows.
- You wait for version 0.0.12 which addresses this issue.
Changes for Version 0.0.10 (2021-02-26)
- Menu item “Home” now redirects to a home zettel.
Its default identifier is
000100000000
. The identifier can be changed with configuration keyhome-zettel
, which supersedes keystart
. The default home zettel contains some welcoming information for the new user. (major: webui) - Show context of a zettel by following all backward and/or forward reference up to a defined depth and list the resulting zettel. Additionally, some zettel with similar tags as the initial zettel are also taken into account. (major: api, webui)
- A zettel that references other zettel within first-level list items, can
act as a “table of contents” zettel. The API endpoint
/o/{ID}
allows to retrieve the referenced zettel in the same order as they occur in the zettel. (major: api) - The zettel “New Menu” with identifier
00000000090000
contains a list of all zettel that should act as a template for new zettel. They are listed in the WebUIs ”New“ menu. This is an application of the previous item. It supersedes the usage of a rolenew-template
introduced in version 0.0.6. Please update your zettel if you make use of the now deprecated feature. (major: webui) - A reference that starts with two slash characters
(“
//
”) it will be interpreted relative to the value ofurl-prefix
. For example, ifurl-prefix
has the value/manual/
, the reference[[Zettel list|//h]]
will render as<a href="/manual/h">Zettel list</a>
. (minor: syntax) - Searching/selecting ignores the leading '#' character of tags. (minor: api, webui)
- When result of selecting or searching is presented, the query is written as the page heading. (minor: webui)
- A reference to a zettel that contains a URL fragment, will now be processed by the indexer. (bug: server)
- Runtime configuration key
marker-external
now defaults to “➚” (“➚”). It is more beautiful than the previous “↗︎” (“↗︎”), which also needed the additional “︎” to disable the conversion to an emoji on iPadOS. (minor: webui) - A pre-build binary for macOS ARM64 (also known as Apple silicon) is available. (minor: infrastructure)
- Many smaller bug fixes and improvements, to the software and to the documentation.
Changes for Version 0.0.9 (2021-01-29)
This is the first version that is managed by Fossil instead of GitHub. To access older versions, use the Git repository under zettelstore-github.Server / API
- (major) Support for property metadata.
Metadata key
published
is the first example of such a property. - (major) A background activity (called indexer) continuously
monitors zettel changes to establish the reverse direction of
found internal links. This affects the new metadata keys
precursor
andfolge
. A user specifies the precursor of a zettel and the indexer computes the property metadata for Folgezettel. Metadata keys with type “Identifier” or “IdentifierSet” that have no inverse key (likeprecursor
andfolge
with add to the keyforward
that also collects all internal links within the content. The computed inverse isbackward
, which provides all backlinks. The keyback
is computed as the value ofbackward
, but without forward links. Therefore,back
is something like the list of “smart backlinks”. - (minor) If Zettelstore is being stopped, an appropriate message is written in the console log.
- (minor) New computed zettel with environmental data, the list of supported meta data keys, and statistics about all configured zettel boxes. Some other computed zettel got a new identifier (to make room for other variant).
- (minor) Remove zettel
00000000000004
, which contained the Go version that produced the Zettelstore executable. It was too specific to the current implementation. This information is now included in zettel00000000000006
(Zettelstore Environment Values). - (minor) Predefined templates for new zettel do not contain any value for
attribute
visibility
any more. - (minor) Add a new metadata key type called “Zettelmarkup”.
It is a non-empty string, that will be formatted with
Zettelmarkup.
title
anddefault-title
have this type. - (major) Rename zettel syntax “meta” to “none”. Please update the Zettelstore Runtime Configuration and all other zettel that previously used the value “meta”. Other zettel are typically user zettel, used for authentication. However, there is no real harm, if you do not update these zettel. In this case, the metadata is just not presented when rendered. Zettelstore will still work.
- (minor) Login will take at least 500 milliseconds to mitigate login attacks. This affects both the API and the WebUI.
- (minor) Add a sort option “_random” to produce a zettel list
in random order.
_order
/order
are now an aliases for the query parameters_sort
/sort
.
WebUI
- (major) HTML template zettel for WebUI now use Mustache syntax instead of previously used Go template syntax. This allows these zettel to be used, even when there is another Zettelstore implementation, in another programming language. Mustache is available for approx. 48 programming languages, instead of only one for Go templates. If you modified your templates, you must adapt them to the new syntax. Otherwise the WebUI will not work.
- (major) Show zettel identifier of folgezettel and precursor zettel in the header of a rendered zettel. If a zettel has real backlinks, they are shown at the botton of the page (“Additional links to this zettel”).
- (minor) All property metadata, even computed metadata is shown in the info page of a zettel.
- (minor) Rendering of metadata keys
title
anddefault-title
in info page changed to a full HTML output for these Zettelmarkup encoded values. - (minor) Always show the zettel identifier on the zettel detail view. Previously, the identifier was not shown if the zettel was not editable.
- (minor) Do not show computed metadata in edit forms anymore.
Changes for Version 0.0.8 (2020-12-23)
Server / API
- (bug) Zettel files with extension
.jpg
and without metadata will get asyntax
value “jpg”. The internal data structure got the same value internally, instead of “jpeg”. This has been fixed for all possible alternative syntax values. - (bug) If a file, e.g. an image file like
20201130190200.jpg
, is added to the directory box, its metadata are just calculated from the information available. Updated metadata did not find its way into the zettel box, because the.meta
file was not written. - (bug) If just the
.meta
file was deleted manually, the zettel was assumed to be missing. A workaround is to restart the software. If the.meta
file is deleted, metadata is now calculated in the same way when the.meta
file is non-existing at the start of the software. - (bug) A link to the current zettel, only using a fragment (e.g.
[[Title|#title]]
) is now handled correctly as a zettel link (and not as a link to external material). - (minor) Allow zettel to be marked as “read only”.
This is done through the metadata key
read-only
. - (bug) When renaming a zettel, check all boxes for the new zettel identifier, not just the first one. Otherwise it will be possible to shadow a read-only zettel from a next box, effectively modifying it.
- (minor) Add support for a configurable default value for metadata key
visibility
. - (bug) If
list-page-size
is set to a relatively small value and the authenticated user is not the owner, some zettel were not shown in the list of zettel or were not returned by the API. - (minor) Add support for new visibility “expert”.
An owner becomes an expert, if the runtime configuration key
expert-mode
is set to true. - (major) Add support for computed zettel.
These zettel have an identifier less than
0000000000100
. Most of them are only visible, ifexpert-mode
is enabled. - (bug) Fixes a memory leak that results in too many open files after approx. 125 reload operations.
- (major) Predefined templates for new zettel got an explicit value for visibility: “login”. Please update these zettel if you modified them.
- (major) Rename key
readonly
of Zettelstore Startup Configuration toread-only-mode
. This was done to avoid some confusion with the zettel metadata keyread-only
. Please adapt your startup configuration. Otherwise your Zettelstore will be accidentally writable. - (minor) References starting with “./” and “../” are treated as a local reference. Previously, only the prefix “/” was treated as a local reference.
- (major) Metadata key
modified
will be set automatically to the current local time if a zettel is updated through Zettelstore. If you used that key previously for your own, you should rename it before you upgrade. - (minor) The new visibility value “simple-expert” ensures that many computed zettel are shown for new users. This is to enable them to send useful bug reports.
- (minor) When a zettel is stored as a file, its identifier is additionally stored within the metadata. This helps for better robustness in case the file names were corrupted. In addition, there could be a tool that compares the identifier with the file name.
WebUI
- (minor) Remove list of tags in “List Zettel” and search results. There was some feedback that the additional tags were not helpful.
- (minor) Move zettel field "role" above "tags" and move "syntax" more to "content".
- (minor) Rename zettel operation “clone” to “copy”.
- (major) All predefined HTML templates have now a visibility value
“expert”. If you want to see them as an non-expert
owner, you must temporary enable
expert-mode
and change thevisibility
metadata value. - (minor) Initial support for
Folgezettel. If
you click on “Folge” (detail view or info view), a new
zettel is created with a reference (
precursor
) to the original zettel. Title, role, tags, and syntax are copied from the original zettel. - (major) Most predefined zettel have a title prefix of “Zettelstore”.
- (minor) If started in simple mode, e.g. via double click or without any command, some information for the new user is presented. In the terminal, there is a hint about opening the web browser and use a specific URL. A Welcome zettel is created, to give some more information. (This change also applies to the server itself, but it is more suited to the WebUI user.)
Changes for Version 0.0.7 (2020-11-24)
- With this version, Zettelstore and this manual got a new license, the European Union Public Licence (EUPL), version 1.2 or later. Nothing else changed. If you want to stay with the old licenses (AGPLv3+, CC BY-SA 4.0), you are free to fork from the previous version.
Changes for Version 0.0.6 (2020-11-23)
Server
- (major) Rename identifier of Zettelstore Runtime Configuration to
00000000000100
(previously00000000000001
). This is done to gain some free identifier with smaller number to be used internally. If you customized this zettel, please make sure to rename it to the new identifier. - (major) Rename the two essential metadata keys of a user zettel to
credential
anduser-id
. The previous values werecred
andident
. If you enabled user authentication and added some user zettel, make sure to change them accordingly. Otherwise these users will not authenticated any more. - (minor) Rename the scheme of the box URL where predefined zettel are stored to “const”. The previous value was “globals”.
Zettelmarkup
- (bug) Allow to specify a fragment in a reference to a zettel. Used to link to an internal position within a zettel. This applies to CommonMark too.
API
- (bug) Encoding binary content in format “json” now results in valid JSON content.
- (bug) All query parameters of selecting zettel must be true, regardless if a specific key occurs more than one or not.
- (minor) Encode all inherited meta values in all formats except
“raw”. A meta value is called inherited if
there is a key starting with
default-
in the Zettelstore Runtime Configuration. Applies to WebUI also. - (minor) Automatic calculated identifier for headings (only for
“html”, “djson”, “native”
format and for the Web user interface). You can use this to
provide a zettel reference that links to the heading, without
specifying an explicit mark (
[!mark]
). - (major) Allow to retrieve all references of a given zettel.
Web user interface (WebUI)
- (minor) Focus on the first text field on some forms (new zettel, edit zettel, rename zettel, login)
- (major) Adapt all HTML templates to a simpler structure.
- (bug) Rendered wrong URLs for internal links on info page.
- (bug) If a zettel contains binary content it cannot be cloned. For such a zettel only the metadata can be changed.
- (minor) Non-zettel references that neither have an URL scheme, user info, nor host name, are considered “local references” (in contrast to “zettel references” and “external references”). When a local reference is displayed as an URL on the WebUI, it will not opened in a new window/tab. They will receive a local marker, when encoded as “djson” or “native”. Local references are listed on the Info page of each zettel.
- (minor) Change the default value for some visual sugar put after an
external URL to
&\#8599;&\#xfe0e;
(“↗︎”). This affects the former keyicon-material
of the Zettelstore Runtime Configuration, which is renamed tomarker-external
. - (major) Allow multiple zettel to act as templates for creating new zettel.
All zettel with a role value “new-template” act as
a template to create a new zettel. The WebUI menu item
“New” changed to a drop-down list with all those
zettel, ordered by their identifier. All metadata keys with the
prefix
new-
will be translated to a new or updated keys/value without that prefix. You can use this mechanism to specify a role for the new zettel, or a different title. The title of the template zettel is used in the drop-down list. The initial template zettel “New Zettel” has now a different zettel identifier (now:00000000091001
, was:00000000040001
). Please update it, if you changed that zettel.
Note: this feature was superseded in version 0.0.10 by the “New Menu” zettel. - (minor) When a page should be opened in a new windows (e.g. for external references), the web browser is instructed to decouple the new page from the previous one for privacy and security reasons. In detail, the web browser is instructed to omit referrer information and to omit a JS object linking to the page that contained the external link.
- (minor) If the value of the Zettelstore Runtime Configuration key
list-page-size
is greater than zero, the number of WebUI list elements will be restricted and it is possible to change to the next/previous page to list more elements. - (minor) Change CSS to enhance reading: make
line-height
a little smaller (previous: 1.6, now 1.4) and move list items to the left.
Changes for Version 0.0.5 (2020-10-22)
- Application Programming Interface (API) to allow external software to retrieve zettel data from the Zettelstore.
- Specify boxes, where zettel are stored, via an URL.
- Add support for a custom footer.
Changes for Version 0.0.4 (2020-09-11)
- Optional user authentication/authorization.
- New sub-commands
file
(use Zettelstore as a command line filter),password
(for authentication), andconfig
.
Changes for Version 0.0.3 (2020-08-31)
- Starting Zettelstore has been changed by introducing sub-commands. This change is also reflected on the server installation procedures.
- Limitations on renaming zettel has been relaxed.
Changes for Version 0.0.2 (2020-08-28)
- Configuration zettel now has ID
00000000000001
(previously:00000000000000
). - The zettel with ID
00000000000000
is no longer shown in any zettel list. If you changed the configuration zettel, you should rename it manually in its file directory. - Creating a new zettel is now done by cloning an existing zettel.
To mimic the previous behaviour, a zettel with ID
00000000040001
is introduced. You can change it if you need a different template zettel.
Changes for Version 0.0.1 (2020-08-21)
- Initial public release.