The changelog format can be found here.
[Unreleased]
Major Changes
- 2025-08-14: #37 Rename 
net.splitcells.website.Formatstonet.splitcells.website.Format, in order to make the enum's name consistent with its values. - 2024-11-05: #37 Add basic security system:
- Define and implement authorization.
 - Define and implement authentication.
 - Define and implement access control, in order to force a certain style of authorization and authentication API usage.
 - Require admin role for RAM and CPU utilization pages.
 
 - 2024-09-27: #45 Support relative links in CommonMark documents. This makes the community repo easier to handle.
 - 2024-09-24: #38 Make web server thread safe, by providing a dedicated renderer for each thread.
 - 2024-04-01: #c15 Discourage server configuration without dependency injection.
 - 2024-04-01: #c15 Speed up static website deployment
by providing Config for static website rendering.
Currently, this is used to disable tests during the execution of the 
TestExtension. - 2024-01-19: #252 
ProjectRendererInow requiredProjectsRendererin order to provide source code. - 2024-01-18: #252 Provide source code of rendered content inside XSL at 
/net.splitcells.website.server/source-code/. The previous configuration file system, which was unused, unusable and available at/net.splitcells.website/current/xml, is removed. - 2023-10-23: #252 Rename 
net.splitcells.website.server.project.RenderingResulttonet.splitcells.website.server.processor.BinaryMessagein order to have a clean abstract API for the website server communication. This API will be used as the base API for the webserver in the future. - 2023-04-24: #199 Rename project 
net.splitcells.website.default.contenttonet.splitcells.website.content.defaultin order to get more consistent project naming, when the website project for minimal content is introduced. - 2022-12-17: #27: Extend Config with detailedXslMenu.
If this value is present use its content for the detailed menu in the page layout.
This is the start to remove hard coded personal info from the default layout.
Its content is a XSL template, that declares the XSL variable 
net-splitcells-website-server-config-menu-detailed. - 2022-07-06: #114: Links to XML documents in CommonMark documents are translated to links to corresponding HTML documents
(i.e. 
/net/splitcells/gel/index.xml->/net/splitcells/gel/index.html) in order to link between different document types. - 2022-03-07:
- Move 
net.splitcells.website.server.project.ProjectsRenderertonet.splitcells.website.server.projects.ProjectsRendererIin order to have a dedicated package for combining the rendering of multiple projects. - Create interface 
ProjectsRendererused byProjectsRendererI. This way alternative web server implementations are possible. 
 - Move 
 
Minor Changes
- 2025-09-27 #8: Define 
HtmlClientImpl#evalIfExists. - 2024-08-24 #37: Provide optional multi-threading of 
net.splitcells.website.server.Server#serveToHttpAt. The multi-threading is achieved by using a copy of theProjectsRendererfor each thread. This minimizes the amount of code needed, in order to achieve thread safety. - 2024-05-09: #c11 Provide 
FileSystemViaMemory. - 2024-05-08: #c11 Provide optional basic authentication in web server
via the 
PasswordAuthenticationEnabledoption. - 2024-05-02: #c11 Create 
RedirectServerin order redirect HTTP calls to HTTPS calls. - 2024-02-16: #252 Support serving zip files.
 - 2024-01-03: #252 Provide 
isServerForGeneralPublicconfig for server, in order to only enable notifications withonly-for-general-public=true, ifisServerForGeneralPublicis also true.isServerForGeneralPublicis set to true by default. - 2023-11-05: #267 Provide table showing Dem's configuration via 
net/splitcells/dem/config.html. - 2023-10-19: #252 Add 
projectsRendererExtensionsto Config in order dynamically add extension to the server. - 2023-09-06: #249
- The menu at the top bar can now be configured via 
Config#xslWindowMenu. - Tests can now be executed by requesting the page 
net/splitcells/website/test.html. 
 - The menu at the top bar can now be configured via 
 - 2023-05-17: #s86
- Deprecate Renderer interface.
 - Make sub renderer interfaces ProjectRenderer, ProjectsRenderer and ProjectRendererExtension more uniform.
 - Provide a way to query title meta data from ProjectsRenderer.
 
 - 2023-01-22:
- \#196 Create sane default config and behaviour regarding temporary data for, i.e. logging:
- Store logs etc. at 
~./.local/state/net.splitcells.dem/src/main/[file type]/[program name]/[date time of program start]/by default. - Introduce the option 
RenderUserStateRepo, in order to render~./.local/state/net.splitcells.dem, if desired. Thereby, the logs can be found at the website's file layout (/net/splitcells/website/layout.html). - The server now has the internal file 
/net/splitcells/website/server/config/menu/detailed.xsl, that can be configured. This XSL script generates the website's menu. The result is used for the website's side menu, that is visible on most pages. A dedicated menu page, is also generated by the XSL script and available at/net/splitcells/website/main-menu.html. It has basically the same content as the side menu. While the side menu is not visible on mobile phones in the default layout, the dedicated menu page can be viewed on mobile phones as well. Mobile users have an easy access to this page, via a link at the very top of every page. 
 - Store logs etc. at 
 - \#213: If a CommonMark file starts with the standard license header, the license header is placed at the end of the file during rendering, in order to improve read flow.
 
 - \#196 Create sane default config and behaviour regarding temporary data for, i.e. logging:
 - 2023-01-14: \#27 Introduce 
net.splitcells.website.server.Config.cssFiles, in order to be able to replace the used css files used by the layout. This in turn improves customizability of the layout, with - 2022-11-19: \#s115 Speed up website deployment.:
Introduce 
net.splitcells.website.server.Config.mutableProjectsPathin order to state, ifprojectsPathcan be assumed to stay the same during the web servers execution. This speeds up the rendering of static websites enormously, becauseProjectsRendererIcachesprojectsPath, ifmutableProjectsPathis set to true. This in turn greatly improves the performance ofRenderingValidatorForHtmlLinks, as it usesprojectsPathin order to validate internal links. - 2022-11-18: \#8: If 
net.splitcells.website.RenderUserStateRepois set to true, add the project at~/.local/state/net.splitcells.dem/to the default set of projects for the project renderer. This project is used in order to store log files and other documents.RenderUserStateRepois set to false by default, because this should only be rendered, if the user explicitly wants it, in order to prevent leakage of private information be accident. This could otherwise happen, if the user renders a website with defaults settings and uploads it without checking the results in detail. - 2022-10-23: #s89 Fix cookie issue.
- There is now HTML guidelines regarding cookies.
 - Access to 
document.cookieis now blocked, by overwriting its getter and setter methods in the standard layout. This ensures, that cookies are not used by accident. 
 - 2022-09-04:
- Render 
DEVELOPMENT.mdof each project. - Render 
BUILD.mdof each project. - Render 
LICENSE.mdof each project. - Render 
NOTICE.mdof each project. 
 - Render 
 - 2022-08-27: The global changelog now widens the definition of events searched in other changelogs. Previously every list starting with just a date, was considered an event description. Now random strings after the date are accepted, as long as these are seperated by a whitespace from the date.
 - 2022-05-29: #s84 Centralise build instruction documentaton.:
- Render 
CONTRIBUTING.mdfor each project. - Instead of duplicate build instructions links to the 
CONTRIBUTING.mddocument is provided. 
 - Render 
 - 2022-05-28 #87 Fix links inside documents:
/net/splitcells/network/status.htmlnow shows, if from a historic perspective the number of invalid links is zero or at least improves. It checks the reponet.splitcells.network.log, if according to the filesrc/main/csv/net/splitcells/website/server/project/validator/RenderingValidatorForHtmlLinks/<build name>/<builder server>.csv, the number of invalid links of the last build is as small as the lowest number of invalid links in the complete build history. - 2022-05-02: #142 Make it easy to support arbitrary input formats and output styling.
 - 2022-04-25: #162: On the default layout,
there is now status button on the website in the top left corner.
It currently shows, if all available computers executed the build system in last 7 days.
If this is the case it states 
INFO, which is based on the log levels. If this is not the case it statesWARNING. The button leads tohttps://splitcells.net/net/splitcells/network/status.htmlwhich lists all successful and failed executions. Keep in mind, that on the version hosted athttps://splitcells.net/, the status only refers to the status during the build time of the website, as it is static. - 2022-04-17:
- #142 Deploy first draft of minimal styled version to 
splitcells.net. - #57 Render Javadoc of projects at 
<projectFolder>/javadoc/*, if a Javadoc build is located attarget/site/apidocs. 
 - #142 Deploy first draft of minimal styled version to 
 - 2022-03-29: Create renderer extension for JavaScript files.
Thereby, 
*.jsfiles can be requested and thetext/javascriptMIME type will be used. These JavaScript can be stored undersrc/main/js/**for each project. - 2022-03-20:
#125 Create global news feeds:
It is located at 
/net/splitcells/CHANGELOG.global.html. 
Patches
- 2022-05-29: #s78 Wrong Context Path:
- This is primarily caused by not passing the path of a rendered file to the rendering process.
 - Prevent usage of FileStructureTransformer inside extensions, as this class does not manage the handling of path information of a rendered document directly/explicitly. Instead, provide rendering methods in ProjectRenderer and ProjectsRenderer, which require and handle path information for a given document and pass it to the FileStructureTransformer.
 - Extensions should pass relative and not absolute paths to the Project(s)Renderers.
 
 - This is caused mainly by the usage of the FileStructureTransformer outside the ProjectRenderer. Most such usage is locateded in ProjectRendererExtensions.
 - 2022-05-23: #82: XML-Rendering can now handle the header 
<?xml version="1.0" encoding="UTF-8"?>of the input document without triggering an error. This is patch is implemented hackily. - 2022-04-29: #91: Links to sub projects READMEs in CommonMark files are now translated correctly.
 - 2022-04-10: Support rendering website to filesystem with a custom root path.
This way multiple versions of a website can be deployed to a single filesystem.
Compare 
https://splitcells.net/net/splitcells/martins/avots/website/index.htmlandhttps://splitcells.net/net/splitcells/website/minimal/net/splitcells/martins/avots/website/index.html. Previously, this was supported in theory, but there was a bug making it impossible. 
- SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
 - SPDX-FileCopyrightText: Contributors To The 
net.splitcells.*Projects