Moonglade Versions Save

The ASP.NET Core blog system of https://edi.wang, runs on Microsoft Azure

v14.3.0

2 months ago

New Features

  • Add zh-Hant language support
  • New email notification API, decouple with Azure to let user have the ability to create their own API besides Azure

Update and Fixes

  • Remove "Sort By" dropdown selector
  • Remove IP rate limiting feature, it should be managed by WAF
  • Patch .NET to 8.0.2

Upgrade from Previous Version

If you are using Email notification, please migrate to the new email API and add configuration in appsettings.json

"Email": {
    "ApiEndpoint": "",
    "ApiKey": ""
}

v14.3.3

2 months ago

New Features

  • Add zh-Hant language support
  • New email notification API, decouple with Azure to let user have the ability to create their own API besides Azure

Update and Fixes

  • Remove "Sort By" dropdown selector
  • Remove IP rate limiting feature, it should be managed by WAF
  • Upgrade to TinyMCE 7.0
  • Patch .NET to 8.0.3

Upgrade from Previous Version

If you are using Email notification, please migrate to the new email API and add configuration in appsettings.json

"Email": {
    "ApiEndpoint": "",
    "ApiKey": ""
}

v14.3.2

2 months ago

New Features

  • Add zh-Hant language support
  • New email notification API, decouple with Azure to let user have the ability to create their own API besides Azure

Update and Fixes

  • Remove "Sort By" dropdown selector
  • Remove IP rate limiting feature, it should be managed by WAF
  • Patch .NET to 8.0.3

Upgrade from Previous Version

If you are using Email notification, please migrate to the new email API and add configuration in appsettings.json

"Email": {
    "ApiEndpoint": "",
    "ApiKey": ""
}

v14.2.0

3 months ago

New Features

  • Markdown editor is now using Monaco, still with image uploading capability
  • Update default site icon
  • Use system native scrollbar
  • Small design improvements

Update and Fixes

  • Remove Experimental:ShowTwitterShareButton flag, this can be achieved by customize footer settings
  • Move "hot tag amount" settings to general settings to be more relavent
  • Remove "show admin login button" settings, nobody uses this
  • Shorten Meta Keyword to 256 characters for better web standard
  • Use RedirectPermanent() for legacy /image requests on CDN enabled systems
  • Seperate ipv4 and ipv6 display in startup console output
  • Move "RemoveTrailingSlashRule" within program control, now you don't have to set up it in web server configuration files
  • Allow 1024 characters for foot JavaScript settings
  • Upgrade TinyMCE editor
  • Remove x-xss-protection header in default web.Release.config file due to MDN doc warning
  • Remove unnecessary asp-append-version for several CSS files

v14.1.0

3 months ago

New Features

  • Support custom ranking for friend links #731
  • Support code highlight for shell and wasm language
  • New settings for adding custom script tag to HTML foot
  • Add server time zone information in Admin about page
  • Add Azure App Service information in Admin about page when the deployment is on Azure App Service

Update and Fixes

  • Remove code highlight for less language
  • Optimize favicon and webmanifest
  • Microsoft Clarity is added to default CSP rules for IIS
  • Minimal UI layout adjustment
  • Use local files instead of CDN for built-in webfonts
  • Bump Bootstrap to 5.3.2
  • Patch Monaco editor
  • Remove dependency on Spectre.Console
  • General bug fixes

Upgrade from Previous Version

If your deployment is in China

According to #767, Moonglade will not start if your deployment is in China since this version.

In order for you to backup your data during the migration process, edit appsettings.json, set DetectChina flag to "allow". Although Moonglade will continue to run, please note this is NOT a solution, future changes may remove this flag.

Run database migration script

SQL Server

-- v14.1.0

ALTER TABLE FriendLink ADD [Rank] INT
GO

UPDATE FriendLink SET [Rank] = 0
GO

ALTER TABLE FriendLink ALTER COLUMN [Rank] INT NOT NULL
GO

MySQL (by GPT4)

ALTER TABLE FriendLink ADD `Rank` INT;

UPDATE FriendLink SET `Rank` = 0;

ALTER TABLE FriendLink MODIFY `Rank` INT NOT NULL;

Other Databases

I don't know about other databases, please refer to MSSQL script and migrate them yourself.

v14.0.1

5 months ago

New Features

  • Refresh forestage UI design, more like Microsoft fluent design language
  • Improve Admin UI design, more like Microsoft fluent design language
  • Support ATOM subscription for categories
  • Comment moderator now uses a standalone Azure Function, users now have the ability to create their own APIs by any technology they like, without modifying Moonglade source code
  • Add settings to show date only or date with time for published posts
  • Add experimental app settings to show X(Twitter) share button

Update and Fixes

  • Upgrade to .NET 8.0
  • Rename AzureAD to EntraID according to this announcement from Microsoft
  • Deprecated Qiniu image storage provider
  • Fixed wrong RSS cache partition that will result in incorrect RSS subscription results
  • For IIS publish, removed "Redirect Misc Homepage URLs to canonical homepage URL" rule in web.config, it's up to user now
  • Most data exporting features now generate CSV on front-end, API will now provide a standard JSON object
  • Upgrade TinyMCE editor to v6.7.2
  • Upgrade Monaco editor to v0.44.0
  • Remove PHP language from code editor
  • Output ASPNETCORE_ENVIRONMENT value to console on startup
  • Connection string will be output to console on startup in Debug mode
  • Remove Microsoft CDN options in Azure Deployment script, because users will choose from varies of CDN options on and off Azure

Upgrade from Previous Version

  • Update server runtime to .NET 8.0
  • If you are using Azure AD authentication, rename AzureAd to EntraID in appsettings.json
  • Rename ForwardedForHeaderName to HeaderName in appsettings.json
  • If you are using Docker, please use port 8080 instead of 80 according to this .NET 8 breaking change from Microsoft

v12.14.0

7 months ago

New Features

  • Refresh admin UI design, more like Microsoft design language

Update and Fixes

  • Deprecate inline CSS for blog posts, because nobody uses it
  • Optimize blog page CSS, remove inline CSS and replace with external stylesheet to get better client-side cache performance
  • Update jQuery to 3.7.1
  • Update .NET to 7.0.11

Upgrade from Previous Version

SQL Server Database

CREATE TABLE [dbo].[StyleSheet](
	[Id] [uniqueidentifier] NOT NULL,
	[Hash] [nvarchar](64) NOT NULL,
	[FriendlyName] [nvarchar](32) NOT NULL,
	[CssContent] [nvarchar](max) NOT NULL,
	[LastModifiedTimeUtc] [datetime] NOT NULL,
 CONSTRAINT [PK_StyleSheet] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE CustomPage DROP COLUMN CssContent
GO

ALTER TABLE CustomPage ADD CssId NVARCHAR(64)
GO

ALTER TABLE Post DROP COLUMN InlineCss
GO

Other Database

I have no knowledge of MySQL and PostgreSql, please migrate the database schema yourself

v12.13.0

8 months ago

New Features

  • Automatically close comments on posts older than x days #736
  • Comments should be displayed with the older/newer comments at the top of each page #737

Update and Fixes

  • Fix an error in zh-CN translation
  • Use CDN for fonts
  • Add support for Docker compose for easy deployment thanks to @Anduin2017
  • Bump .NET to 7.0.10

v12.12.0

8 months ago

New Features

  • Posts can now be saved without a category

Update and Fixes

  • Fix navigation menu focus background color
  • Geomatch header name is now x-afd-geo-match
  • Merge pingback option, now pingback send and receive use one unified switch
  • Fix font size not displayed correctly in settings page
  • Update button colors in settings page to make it more consistent
  • Update a few zh-CN translations
  • Update layout of settings page UI
  • Upgrade to TinyMCE 6.6.0
  • Upgrade to .NET 7.0.9
  • Use cdnjs provider and remove all unpkg links to make it easier for admins to configure firewall

v12.11.0

10 months ago

New Features

  • Users can now mark old posts as outdated, the page will show a warning message says the content is outdated

Update and Fixes

  • Remove built in statistics feature (hits and likes count) because they are inaccurate, please consider use third party analysis plugin
  • Remove "Short description" settings, the blog will now use one unified "Description" settings for both desktop and mobile view
  • Remove "Allow JavaScript in pages" settings, JS are always allowed now
  • Client IP address will not show in /ping endpoint to reduce attack risk, it is moved to admin portal, about page
  • More SEO friendly archive URL
  • Small UI fix and enhancements
  • Upgrade to Bootstrap 5.3.0
  • Upgrade to jQuery 3.7.0
  • Upgrade to .NET 7.0.7

Upgrade from Previous Version

SQL Server Database

DROP TABLE PostExtension
GO

ALTER TABLE Post ADD IsOutdated BIT
GO
UPDATE Post SET IsOutdated = 0
GO
ALTER TABLE Post ALTER COLUMN IsOutdated BIT NOT NULL
GO

Other Database

I have no knowledge of MySQL and PostgreSql, please migrate the database schema yourself