Andy Butland d4f8754f93 Merge commit from fork
* Escape HTML in strings provided as arguments for client-side localization.

* Used HTML sanitizer from dependency.

* Moved sanitization to controller.

* Fixed path to dependency.

* fix: move constants to their own respective files to avoid circular dependencies

* fix: import through import map

* fix: import `sanitizeHTML` from importmap

* chore: consts

* feat: add more ops/sec to `term` function

* fix: check specifically for `typeof 'undefined'` before determining if an arg is valid or not

in case where the sanitizer removes everything so the arg is just an empty string (`""`) we still want it to replace the token, i.e. with the empty string

* test: add tests to verify localization controller xss

* chore: try to improve ops/sec and readability of the `term` function

* test: add more tests for the sanitizer

* fix(dictionary workspace): rely on localization sanitization

* feat: adds new function to escape html entities

* fix: use `escapeHTML` to escape/encode only HTML entities

* test: update test to reflect correct escape

* test: add tests for sanitizeHTML and escapeHTML

* fix: update function to not escape all quotes as people may want to keep those

* chore: formatting

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2025-01-20 14:43:27 +01:00
2024-11-13 16:37:46 +01:00
2025-01-20 14:43:27 +01:00
2024-12-10 10:25:50 +01:00
2024-12-11 18:40:46 +01:00
2024-12-10 10:25:50 +01:00
2022-09-27 14:22:34 +02:00
2024-11-11 13:02:33 +01:00
2024-10-01 15:03:02 +02:00
2025-01-07 10:13:54 +01:00

Umbraco CMS

GitHub license PRs Welcome Mastodon Follow Chat about Umbraco on Discord Read what's going on in the Umbraco Discord chat now Build status

Umbraco is a free and open source .NET content management system. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.

Learn more at umbraco.com

Umbraco Logo

Looking to install Umbraco?

You can get started using the following commands on Windows, Linux and MacOS (after installing the .NET Runtime and SDK):

dotnet new install Umbraco.Templates
dotnet new umbraco --name MyProject
cd MyProject
dotnet run

Documentation

Our comprehensive documentation takes you from the fundamentals on how to start with Umbraco to deploying it to production.

Some important documentation links to get you started:

Get help

If you need a bit of feedback while building your Umbraco projects, we are chatty on Discord. Our Discord server serves both a social space but also has channels for questions and answers. Feel free to lurk or join in with your own questions. Or just post your daily Wordle score, up to you!

Looking to contribute back to Umbraco?

You came to the right place! Our GitHub repository is available for all kinds of contributions:

Umbraco is contribution-focused and community-driven. If you want to contribute back to the Umbraco source code, please check out our guide to contributing.

Tip: You should not run Umbraco from source code found here. Umbraco is extremely extensible and can do whatever you need. Instead, install Umbraco as noted above and then extend it any way you want to.

Description
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
Readme 448 MiB
Languages
C# 59.5%
TypeScript 39.9%
JavaScript 0.3%
HTML 0.2%