diff --git a/README.md b/README.md index d085a03c4..637a0fa8b 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# RSCG - 289 Examples of Roslyn Source Code Generators / 16 created by Microsoft / +# RSCG - 290 Examples of Roslyn Source Code Generators / 16 created by Microsoft / -The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 289 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports. +The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 290 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports. This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem -## Latest Update : 2026-08-30 => 30 August 2026 +## Latest Update : 2026-09-04 => 04 September 2026 If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)*** @@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt ## Content -Those are the 289 Roslyn Source Code Generators that I have tested you can see and download source code example. +Those are the 290 Roslyn Source Code Generators that I have tested you can see and download source code example. ( including 16 from Microsoft ) +### 290. [MagicConstants](https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants) , in the [FilesToCode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) category + +Generated on : 2026-09-04 => 04 September 2026 + +
+ Expand + + + +Author: Liesel Thuriot + +Package Description + +Nuget: [https://www.nuget.org/packages/MagicConstants/](https://www.nuget.org/packages/MagicConstants/) + + +Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants](https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants) + +Source: [https://github.com/LieselThuriot/MagicConstants](https://github.com/LieselThuriot/MagicConstants) + +
+ ### 289. [AOP.Logging.SourceGenerator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/AOP.Logging.SourceGenerator) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category Generated on : 2026-08-30 => 30 August 2026 diff --git a/later.md b/later.md index a29036e1c..cbbb5c45f 100644 --- a/later.md +++ b/later.md @@ -1,6 +1,6 @@ # Just later -## Latest Update : 2026-08-30 => 30 August 2026 +## Latest Update : 2026-09-04 => 04 September 2026 diff --git a/v2/.tours/MagicConstants.tour b/v2/.tours/MagicConstants.tour new file mode 100644 index 000000000..9e7c1a9c6 --- /dev/null +++ b/v2/.tours/MagicConstants.tour @@ -0,0 +1,36 @@ + +{ + "$schema": "https://aka.ms/codetour-schema", + "title": "MagicConstants", + "steps": + [ + { + "file": "rscg_examples/MagicConstants/src/FolderToCode/FolderToCode.csproj", + "description": "First, we add Nuget [MagicConstants](https://www.nuget.org/packages/MagicConstants/) in csproj ", + "pattern": "MagicConstants" + } + + ,{ + "file": "rscg_examples/MagicConstants/src/FolderToCode/Program.cs", + "description": "File Program.cs \r\n>> dotnet run --project rscg_examples/MagicConstants/src/FolderToCode/FolderToCode.csproj ", + "pattern": "this is the code" + } + + + ,{ + "file": "rscg_examples/MagicConstants/src/FolderToCode/obj/GX/MagicConstants/MagicConstants.Generator/Assets.MyFolderToShow_ro_a_json.g.cs", + "description": "Generated File 2 from 2 : Assets.MyFolderToShow_ro_a_json.g.cs ", + "line": 1 + } + + ,{ + "file": "rscg_examples/MagicConstants/src/FolderToCode/obj/GX/MagicConstants/MagicConstants.Generator/Assets.MyFolderToShow_en_a_json.g.cs", + "description": "Generated File 1 from 2 : Assets.MyFolderToShow_en_a_json.g.cs ", + "line": 1 + } + + ], + + "ref": "main" + +} \ No newline at end of file diff --git a/v2/Generator/Program.cs b/v2/Generator/Program.cs index b3c9d0cc8..981a01cc0 100644 --- a/v2/Generator/Program.cs +++ b/v2/Generator/Program.cs @@ -154,7 +154,7 @@ await File.WriteAllTextAsync(Path.Combine(examples,"description.json"), long nr = await m.GenerateMSFT(); Console.WriteLine("RSCG used by MSFT :" + nr); - var lastGenerator = "SatorImaging.TDoubles"; + var lastGenerator = "AOP.Logging.SourceGenerator"; await m.WrotePost(lastGenerator); await m.WroteDocusaurusAll(lastGenerator); diff --git a/v2/Generator/all.csv b/v2/Generator/all.csv index 21abbb98e..43ed8072d 100644 --- a/v2/Generator/all.csv +++ b/v2/Generator/all.csv @@ -288,3 +288,4 @@ Nr,Key,Source,Category 287,TrimItEasy, https://github.com/phongnguyend/TrimItEasy,EnhancementClass 288,Najlot.Map.SourceGenerator, https://github.com/najlot/Map,Mapper 289,AOP.Logging.SourceGenerator, https://github.com/dborgards/aop.logging.net,EnhancementClass +290,MagicConstants, https://github.com/LieselThuriot/MagicConstants,FilesToCode diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json index 41631956c..810aa1229 100644 --- a/v2/RSCGExamplesData/GeneratorDataRec.json +++ b/v2/RSCGExamplesData/GeneratorDataRec.json @@ -1751,6 +1751,12 @@ "Category": 5, "dtStart": "2026-08-30T00:00:00", "show": true + }, + { + "ID":"MagicConstants", + "Category": 8, + "dtStart": "2026-09-04T00:00:00", + "show": true } ] \ No newline at end of file diff --git a/v2/book/examples/MagicConstants.html b/v2/book/examples/MagicConstants.html new file mode 100644 index 000000000..a1850ef7e --- /dev/null +++ b/v2/book/examples/MagicConstants.html @@ -0,0 +1,58 @@ + +

RSCG nr 290 : MagicConstants

+ +

Info

+Nuget : https://www.nuget.org/packages/MagicConstants/ + +

You can find more details at : https://github.com/LieselThuriot/MagicConstants

+ +

Author :Liesel Thuriot

+ +

Source: https://github.com/LieselThuriot/MagicConstants

+ +

About

+ +Generates constants from files to return contents. It has extension for routes and more for ASP.NET projects. + +

+ How to use +

+

+ Add reference to the MagicConstants in the csproj +

+ + +

This was for me the starting code

+ +
+ I have coded the file Program.cs +
+ +
+

And here are the generated files

+ +
+ The file generated is Assets.MyFolderToShow_en_a_json.g.cs +
+ + +
+ The file generated is Assets.MyFolderToShow_ro_a_json.g.cs +
+ + +

+ You can download the code and this page as pdf from + + https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants + +

+ + +

+ You can see the whole list at + + https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG + +

+ diff --git a/v2/book/list.html b/v2/book/list.html index 7c85e3a7a..62a5b335b 100644 --- a/v2/book/list.html +++ b/v2/book/list.html @@ -17,7 +17,7 @@

-This is the list of 289 RSCG with examples => +This is the list of 290 RSCG with examples =>

@@ -1182,6 +1182,10 @@

+ + + +
289 AOP.Logging.SourceGenerator
290MagicConstants
diff --git a/v2/book/pandocHTML.yaml b/v2/book/pandocHTML.yaml index e6c17b243..fc72e1059 100644 --- a/v2/book/pandocHTML.yaml +++ b/v2/book/pandocHTML.yaml @@ -303,6 +303,7 @@ input-files: - examples/TrimItEasy.html - examples/Najlot.Map.SourceGenerator.html - examples/AOP.Logging.SourceGenerator.html +- examples/MagicConstants.html # or you may use input-file: with a single value # defaults: diff --git a/v2/docFind.json b/v2/docFind.json index 04f6ddb5c..ce278717c 100644 --- a/v2/docFind.json +++ b/v2/docFind.json @@ -1732,5 +1732,11 @@ "category": "EnhancementClass", "href": "/RSCG_Examples/v2/docs/AOP.Logging.SourceGenerator/", "body": "Source generator for AOP.Logging framework that provides compile-time method interception and automatic logging code generation." + }, + { + "title": "MagicConstants", + "category": "FilesToCode", + "href": "/RSCG_Examples/v2/docs/MagicConstants/", + "body": "Package Description" } ] \ No newline at end of file diff --git a/v2/rscg_examples/MagicConstants/description.json b/v2/rscg_examples/MagicConstants/description.json new file mode 100644 index 000000000..3b3883dd4 --- /dev/null +++ b/v2/rscg_examples/MagicConstants/description.json @@ -0,0 +1,22 @@ +{ + "generator":{ + "name":"MagicConstants", + "nuget":[ + "https://www.nuget.org/packages/MagicConstants/" + ], + "link":"https://github.com/LieselThuriot/MagicConstants", + "author":"Liesel Thuriot", + "source":"https://github.com/LieselThuriot/MagicConstants" + }, + "data":{ + "goodFor":["Generates constants from files to return contents. It has extension for routes and more for ASP.NET projects."], + "csprojDemo":"FolderToCode.csproj", + "csFiles":["Program.cs"], + "excludeDirectoryGenerated":[""], + "includeAdditionalFiles":[""] + }, + "links":{ + "blog":"", + "video":"" + } +} \ No newline at end of file diff --git a/v2/rscg_examples/MagicConstants/nuget.txt b/v2/rscg_examples/MagicConstants/nuget.txt new file mode 100644 index 000000000..882e74f60 --- /dev/null +++ b/v2/rscg_examples/MagicConstants/nuget.txt @@ -0,0 +1 @@ +Package Description \ No newline at end of file diff --git a/v2/rscg_examples/MagicConstants/readme.txt b/v2/rscg_examples/MagicConstants/readme.txt new file mode 100644 index 000000000..e57660dc4 --- /dev/null +++ b/v2/rscg_examples/MagicConstants/readme.txt @@ -0,0 +1,89 @@ +# Magic Constants + +Magic Constants is a dotnet source generator that generates C# constants from files in your project. +It can also minify files and set cache control headers for routes. + +This is especially useful for web projects where you want to reference files in your code without hardcoding the paths nor having to manage the string constants. + +Global settings in your project: + +```xml + + public + true + false + public, max-age=604800 + true + wwwroot/ + true + +``` + +Specific settings +( Note: if not specified, global settings will be used instead ) + +```xml + + + + + + + + +``` + +When `MagicConstantsRoutes` is enabled, it will generate an ASP.NET Core route for every file. All you have to do, is call the mapping method: + +```csharp +app.MapViews(); +``` + +When `MagicConstantsFunctions` is enabled, it will generate Azure Functions with HTTP triggers for every file. Each function will serve the file content with the appropriate content type and cache control headers. + +> **Note for Azure Functions:** If you're using Azure Functions, you may need to disable the built-in source generators to avoid conflicts. Add the following properties to your `.csproj` file to fall back on reflection: +> ```xml +> +> false +> false +> +> ``` +> Without these settings, the generated functions will not load properly. + +## Context Metadata + +When routes or functions are generated, Magic Constants can optionally add metadata to the `HttpContext.Items` dictionary: + +- `MagicRoute` - The route path being served +- `MagicMimeType` - The MIME type of the content + +This metadata can be useful for logging, telemetry, or custom middleware. You can disable this behavior to reduce overhead: + +```xml + + false + +``` + +**Default:** `true` (enabled) + +## Variable Replacement + +Magic Constants also allows you to replace variables inside your .htm, .html, .css and .js files. +You can use the following syntax: +```html + + +{MAGIC_FILE test.html} +``` + +- MAGIC_TIME will use the Unix Timestamp in seconds during build, +- MAGIC_HASH will try and make a unique but consistent hash out of the timestamp. +- MAGIC_FILE is a simplistic template inliner. + +This will end up as: +```html + + +
This is the content of test.html
+``` \ No newline at end of file diff --git a/v2/rscg_examples/MagicConstants/src/FolderToCode.slnx b/v2/rscg_examples/MagicConstants/src/FolderToCode.slnx new file mode 100644 index 000000000..9feecc1be --- /dev/null +++ b/v2/rscg_examples/MagicConstants/src/FolderToCode.slnx @@ -0,0 +1,3 @@ + + + diff --git a/v2/rscg_examples/MagicConstants/src/FolderToCode/FolderToCode.csproj b/v2/rscg_examples/MagicConstants/src/FolderToCode/FolderToCode.csproj new file mode 100644 index 000000000..1fb674b4f --- /dev/null +++ b/v2/rscg_examples/MagicConstants/src/FolderToCode/FolderToCode.csproj @@ -0,0 +1,28 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + internal + false + false + + + + + + + + + true + $(BaseIntermediateOutputPath)\GX + + diff --git a/v2/rscg_examples/MagicConstants/src/FolderToCode/MyFolderToShow/en/a.json b/v2/rscg_examples/MagicConstants/src/FolderToCode/MyFolderToShow/en/a.json new file mode 100644 index 000000000..e69de29bb diff --git a/v2/rscg_examples/MagicConstants/src/FolderToCode/MyFolderToShow/ro/a.json b/v2/rscg_examples/MagicConstants/src/FolderToCode/MyFolderToShow/ro/a.json new file mode 100644 index 000000000..e69de29bb diff --git a/v2/rscg_examples/MagicConstants/src/FolderToCode/Program.cs b/v2/rscg_examples/MagicConstants/src/FolderToCode/Program.cs new file mode 100644 index 000000000..55a6d6bd1 --- /dev/null +++ b/v2/rscg_examples/MagicConstants/src/FolderToCode/Program.cs @@ -0,0 +1,4 @@ +using FolderToCode; + +Console.WriteLine(Assets.MyFolderToShow_en_a_json); +Console.WriteLine(Assets.MyFolderToShow_ro_a_json); diff --git a/v2/rscg_examples/MagicConstants/video.json b/v2/rscg_examples/MagicConstants/video.json new file mode 100644 index 000000000..45cbddf3c --- /dev/null +++ b/v2/rscg_examples/MagicConstants/video.json @@ -0,0 +1,39 @@ +{ + "scriptName": "MagicConstants", + "steps": +[ + {"typeStep":"exec","arg":"clipchamp.exe launch"}, + {"typeStep":"text","arg": "Welcome to Roslyn Examples"}, + {"typeStep":"text","arg":"If you want to see more examples , see List Of RSCG"}, + {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG"}, + {"typeStep":"text","arg": "My name is Andrei Ignat and I am deeply fond of Roslyn Source Code Generator. "}, + +{"typeStep":"text","arg": "Today I will present MagicConstants . Generates constants from files to return contents. It has extension for routes and more for ASP.NET projects. ."}, +{"typeStep":"browser","arg":"https://www.nuget.org/packages/MagicConstants/"}, +{"typeStep":"text","arg": "The whole example is here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants"}, +{"typeStep":"text","arg": "You can download the code from here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants#download-example-net--c-"}, +{"typeStep":"text","arg":"Here is the code downloaded "}, +{"typeStep":"exec","arg":"explorer.exe /select,D:\\gth\\RSCG_Examples\\v2\\Generator.sln"}, +{"typeStep":"text","arg": "So , let's start the project with Visual Studio Code "}, +{"typeStep":"stepvscode","arg": "-n D:\\gth\\RSCG_Examples\\v2"}, + +{"typeStep":"text","arg": "To use it ,you will put the Nuget MagicConstants into the csproj "}, + +{"typeStep":"stepvscode","arg": "-r -g D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\MagicConstants\\src\\FolderToCode\\FolderToCode.csproj"}, + +{"typeStep":"text","arg": "And now I will show you an example of using MagicConstants"}, + +{"typeStep":"hide","arg": "now execute the tour in VSCode"}, +{"typeStep":"tour", "arg": "src/.tours/"}, +{"typeStep":"text","arg":" And I will execute the project"}, +{"typeStep":"showproj", "arg":"FolderToCode.csproj"}, +{"typeStep":"text","arg":" This concludes the project"}, +{"typeStep":"waitseconds","arg":"30"}, +{"typeStep":"text","arg": "Remember, you can download the code from here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants#download-example-net--c-", +SpeakTest=" "}, +{"typeStep":"waitseconds","arg":"30"}, +] +} diff --git a/v2/rscg_examples_site/docs/Authors/Liesel_Thuriot.md b/v2/rscg_examples_site/docs/Authors/Liesel_Thuriot.md new file mode 100644 index 000000000..993f6e744 --- /dev/null +++ b/v2/rscg_examples_site/docs/Authors/Liesel_Thuriot.md @@ -0,0 +1,7 @@ +# Author : Liesel Thuriot + +Number RSCG: 1 + + + 1 [MagicConstants](/docs/MagicConstants) [![Nuget](https://img.shields.io/nuget/dt/MagicConstants?label=MagicConstants)](https://www.nuget.org/packages/MagicConstants/) ![GitHub Repo stars](https://img.shields.io/github/stars/LieselThuriot/MagicConstants?style=social) 2026-09-04 + diff --git a/v2/rscg_examples_site/docs/Categories/FilesToCode.md b/v2/rscg_examples_site/docs/Categories/FilesToCode.md index 9ad08d084..ae6589d8b 100644 --- a/v2/rscg_examples_site/docs/Categories/FilesToCode.md +++ b/v2/rscg_examples_site/docs/Categories/FilesToCode.md @@ -1,6 +1,6 @@

FilesToCode

-Number RSCG: 21 +Number RSCG: 22 1 [Chorn.EmbeddedResourceAccessGenerator](/docs/Chorn.EmbeddedResourceAccessGenerator) [![Nuget](https://img.shields.io/nuget/dt/Chorn.EmbeddedResourceAccessGenerator?label=Chorn.EmbeddedResourceAccessGenerator)](https://www.nuget.org/packages/Chorn.EmbeddedResourceAccessGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ChristophHornung/EmbeddedResourceGenerator?style=social) 2024-01-21 @@ -18,29 +18,31 @@ Number RSCG: 21 8 [Maestria.TypeProviders](/docs/Maestria.TypeProviders) [![Nuget](https://img.shields.io/nuget/dt/Maestria.TypeProviders?label=Maestria.TypeProviders)](https://www.nuget.org/packages/Maestria.TypeProviders/) ![GitHub Repo stars](https://img.shields.io/github/stars/MaestriaNet/TypeProviders?style=social) 2026-04-09 - 9 [NFH.FileEmbed](/docs/NFH.FileEmbed) [![Nuget](https://img.shields.io/nuget/dt/NFH.FileEmbed?label=NFH.FileEmbed)](https://www.nuget.org/packages/NFH.FileEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/SirCxyrtyx/FileEmbed?style=social) 2025-08-08 + 9 [MagicConstants](/docs/MagicConstants) [![Nuget](https://img.shields.io/nuget/dt/MagicConstants?label=MagicConstants)](https://www.nuget.org/packages/MagicConstants/) ![GitHub Repo stars](https://img.shields.io/github/stars/LieselThuriot/MagicConstants?style=social) 2026-09-04 - 10 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 + 10 [NFH.FileEmbed](/docs/NFH.FileEmbed) [![Nuget](https://img.shields.io/nuget/dt/NFH.FileEmbed?label=NFH.FileEmbed)](https://www.nuget.org/packages/NFH.FileEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/SirCxyrtyx/FileEmbed?style=social) 2025-08-08 - 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 + 11 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 - 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 + 12 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 - 13 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 + 13 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 - 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 + 14 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 - 15 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 + 15 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 - 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 + 16 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 - 17 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 + 17 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 - 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 + 18 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 - 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 + 19 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 - 20 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + 20 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 - 21 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 + 21 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + + 22 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 \ No newline at end of file diff --git a/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx b/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx index 22139deba..08da676d1 100644 --- a/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx +++ b/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx @@ -16,31 +16,33 @@ 8 [Maestria.TypeProviders](/docs/Maestria.TypeProviders) [![Nuget](https://img.shields.io/nuget/dt/Maestria.TypeProviders?label=Maestria.TypeProviders)](https://www.nuget.org/packages/Maestria.TypeProviders/) ![GitHub Repo stars](https://img.shields.io/github/stars/MaestriaNet/TypeProviders?style=social) 2026-04-09 - 9 [NFH.FileEmbed](/docs/NFH.FileEmbed) [![Nuget](https://img.shields.io/nuget/dt/NFH.FileEmbed?label=NFH.FileEmbed)](https://www.nuget.org/packages/NFH.FileEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/SirCxyrtyx/FileEmbed?style=social) 2025-08-08 + 9 [MagicConstants](/docs/MagicConstants) [![Nuget](https://img.shields.io/nuget/dt/MagicConstants?label=MagicConstants)](https://www.nuget.org/packages/MagicConstants/) ![GitHub Repo stars](https://img.shields.io/github/stars/LieselThuriot/MagicConstants?style=social) 2026-09-04 - 10 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 + 10 [NFH.FileEmbed](/docs/NFH.FileEmbed) [![Nuget](https://img.shields.io/nuget/dt/NFH.FileEmbed?label=NFH.FileEmbed)](https://www.nuget.org/packages/NFH.FileEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/SirCxyrtyx/FileEmbed?style=social) 2025-08-08 - 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 + 11 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 - 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 + 12 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 - 13 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 + 13 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 - 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 + 14 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 - 15 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 + 15 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 - 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 + 16 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 - 17 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 + 17 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 - 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 + 18 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 - 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 + 19 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 - 20 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + 20 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 - 21 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 + 21 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + + 22 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 ### See category diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/MagicConstants.md b/v2/rscg_examples_site/docs/RSCG-Examples/MagicConstants.md new file mode 100644 index 000000000..48b2e0ea4 --- /dev/null +++ b/v2/rscg_examples_site/docs/RSCG-Examples/MagicConstants.md @@ -0,0 +1,272 @@ +--- +sidebar_position: 2900 +title: 290 - MagicConstants +description: Generates constants from files to return contents. It has extension for routes and more for ASP.NET projects. +slug: /MagicConstants +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import TOCInline from '@theme/TOCInline'; +import SameCategory from '../Categories/_PrimitiveFilesToCode.mdx'; + +# MagicConstants by Liesel Thuriot + + + + +## NuGet / site data +[![Nuget](https://img.shields.io/nuget/dt/MagicConstants?label=MagicConstants)](https://www.nuget.org/packages/MagicConstants/) +[![GitHub last commit](https://img.shields.io/github/last-commit/LieselThuriot/MagicConstants?label=updated)](https://github.com/LieselThuriot/MagicConstants) +![GitHub Repo stars](https://img.shields.io/github/stars/LieselThuriot/MagicConstants?style=social) + +## Details + +### Info +:::info + +Name: **MagicConstants** + +Package Description + +Author: Liesel Thuriot + +NuGet: +*https://www.nuget.org/packages/MagicConstants/* + + +You can find more details at https://github.com/LieselThuriot/MagicConstants + +Source: https://github.com/LieselThuriot/MagicConstants + +::: + +### Author +:::note +Liesel Thuriot +![Alt text](https://github.com/LieselThuriot.png) +::: + +## Original Readme +:::note + +### Magic Constants + +Magic Constants is a dotnet source generator that generates C# constants from files in your project. +It can also minify files and set cache control headers for routes. + +This is especially useful for web projects where you want to reference files in your code without hardcoding the paths nor having to manage the string constants. + +Global settings in your project: + +```xml + + public + true + false + public, max-age=604800 + true + wwwroot/ + true + +``` + +Specific settings +( Note: if not specified, global settings will be used instead ) + +```xml + + + + + + + + +``` + +When `MagicConstantsRoutes` is enabled, it will generate an ASP.NET Core route for every file. All you have to do, is call the mapping method: + +```csharp +app.MapViews(); +``` + +When `MagicConstantsFunctions` is enabled, it will generate Azure Functions with HTTP triggers for every file. Each function will serve the file content with the appropriate content type and cache control headers. + +> **Note for Azure Functions:** If you're using Azure Functions, you may need to disable the built-in source generators to avoid conflicts. Add the following properties to your `.csproj` file to fall back on reflection: +> ```xml +> +> false +> false +> +> ``` +> Without these settings, the generated functions will not load properly. + +###### Context Metadata + +When routes or functions are generated, Magic Constants can optionally add metadata to the `HttpContext.Items` dictionary: + +- `MagicRoute` - The route path being served +- `MagicMimeType` - The MIME type of the content + +This metadata can be useful for logging, telemetry, or custom middleware. You can disable this behavior to reduce overhead: + +```xml + + false + +``` + +**Default:** `true` (enabled) + +###### Variable Replacement + +Magic Constants also allows you to replace variables inside your .htm, .html, .css and .js files. +You can use the following syntax: +```html +
+ +{MAGIC_FILE test.html} +``` + +- MAGIC_TIME will use the Unix Timestamp in seconds during build, +- MAGIC_HASH will try and make a unique but consistent hash out of the timestamp. +- MAGIC_FILE is a simplistic template inliner. + +This will end up as: +```html + + +
This is the content of test.html
+``` + +::: + +### About +:::note + +Generates constants from files to return contents. It has extension for routes and more for ASP.NET projects. + + +::: + +## How to use + +### Example (source csproj, source files) + + + + + +This is the CSharp Project that references **MagicConstants** +```xml showLineNumbers {14} + + + + Exe + net10.0 + enable + enable + + + + + + + internal + false + false + + + + + + + + + true + $(BaseIntermediateOutputPath)\GX + + + +``` + + + + + + This is the use of **MagicConstants** in *Program.cs* + +```csharp showLineNumbers +using FolderToCode; + +Console.WriteLine(Assets.MyFolderToShow_en_a_json); +Console.WriteLine(Assets.MyFolderToShow_ro_a_json); + +``` + + + + +### Generated Files + +Those are taken from $(BaseIntermediateOutputPath)\GX + + + + +```csharp showLineNumbers +namespace FolderToCode +{ + public static partial class Assets + { + +internal const string MyFolderToShow_en_a_json = @""; + + } +} + +``` + + + + +```csharp showLineNumbers +namespace FolderToCode +{ + public static partial class Assets + { + +internal const string MyFolderToShow_ro_a_json = @""; + + } +} + +``` + + + + +## Useful + +### Download Example (.NET C#) + +:::tip + +[Download Example project MagicConstants ](/sources/MagicConstants.zip) + +::: + + +### Share MagicConstants + +
+ +https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants + + + diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/index.md b/v2/rscg_examples_site/docs/RSCG-Examples/index.md index 5a087b1d9..ce4011d19 100644 --- a/v2/rscg_examples_site/docs/RSCG-Examples/index.md +++ b/v2/rscg_examples_site/docs/RSCG-Examples/index.md @@ -1,7 +1,7 @@ --- sidebar_position: 30 -title: 289 RSCG list by category -description: 289 RSCG list by category +title: 290 RSCG list by category +description: 290 RSCG list by category slug: /rscg-examples --- @@ -993,7 +993,7 @@ import DocCardList from '@theme/DocCardList'; ## FilesToCode
- Expand FilesToCode =>examples:21 + Expand FilesToCode =>examples:22 @@ -1099,6 +1099,11 @@ import DocCardList from '@theme/DocCardList'; [Pinecone.TypedPath](/docs/Pinecone.TypedPath) + + + +[MagicConstants](/docs/MagicConstants) +
@@ -2160,6 +2165,8 @@ flowchart LR; FilesToCode--> Pinecone.TypedPath((Pinecone.TypedPath)) + FilesToCode--> MagicConstants((MagicConstants)) + FunctionalProgramming--> dunet((dunet)) FunctionalProgramming--> PartiallyApplied((PartiallyApplied)) diff --git a/v2/rscg_examples_site/docs/about.md b/v2/rscg_examples_site/docs/about.md index 91785574a..f007c661e 100644 --- a/v2/rscg_examples_site/docs/about.md +++ b/v2/rscg_examples_site/docs/about.md @@ -6,7 +6,7 @@ title: About ## Content You will find here code examples -of 289 Roslyn Source Code Generator (RSCG) +of 290 Roslyn Source Code Generator (RSCG) that can be useful for you. That means, you will write more elegant and concise code - even if the generators code is not always nice to look. ## Are those examples ready for production? diff --git a/v2/rscg_examples_site/docs/indexRSCG.md b/v2/rscg_examples_site/docs/indexRSCG.md index b0c53494b..f5a487448 100644 --- a/v2/rscg_examples_site/docs/indexRSCG.md +++ b/v2/rscg_examples_site/docs/indexRSCG.md @@ -7,9 +7,9 @@ slug: /List-of-RSCG import useBaseUrl from '@docusaurus/useBaseUrl'; -## 289 RSCG with examples in descending chronological order +## 290 RSCG with examples in descending chronological order -This is the list of 289 ( 16 from Microsoft) RSCG with examples +This is the list of 290 ( 16 from Microsoft) RSCG with examples [See by category](/docs/rscg-examples) [See as json](/exports/RSCG.json) [See as Excel](/exports/RSCG.xlsx) @@ -20,6 +20,7 @@ This is the list of 289 ( 16 from Microsoft) RSCG with examples | No | Name | Date | Category | | --------- | ----- | ---- | -------- | +|290| [MagicConstants by Liesel Thuriot ](/docs/MagicConstants)|2026-09-04 => 04 September 2026 | [FilesToCode](/docs/Categories/FilesToCode) | |289| [AOP.Logging.SourceGenerator by Dietmar Borgards ](/docs/AOP.Logging.SourceGenerator)|2026-08-30 => 30 August 2026 | [EnhancementClass](/docs/Categories/EnhancementClass) | |288| [Najlot.Map.SourceGenerator by Najlot ](/docs/Najlot.Map.SourceGenerator)|2026-08-29 => 29 August 2026 | [Mapper](/docs/Categories/Mapper) | |287| [TrimItEasy by Phong Nguyen ](/docs/TrimItEasy)|2026-08-28 => 28 August 2026 | [EnhancementClass](/docs/Categories/EnhancementClass) | diff --git a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js index 766a8a0ad..eb462c613 100644 --- a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js +++ b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js @@ -4,7 +4,7 @@ import styles from './styles.module.css'; const FeatureList = [ { -title: '289 Examples (16 from MSFT)', +title: '290 Examples (16 from MSFT)', Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, description: ( <> diff --git a/v2/rscg_examples_site/static/exports/RSCG.json b/v2/rscg_examples_site/static/exports/RSCG.json index c1c4f2b77..96c53f651 100644 --- a/v2/rscg_examples_site/static/exports/RSCG.json +++ b/v2/rscg_examples_site/static/exports/RSCG.json @@ -2313,6 +2313,14 @@ "Source": "https://github.com/dborgards/aop.logging.net", "Category": "EnhancementClass", "AddedOn": "2026-08-30T00:00:00" + }, + { + "Name": "MagicConstants", + "Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/MagicConstants", + "NuGet": "https://www.nuget.org/packages/MagicConstants/", + "Source": "https://github.com/LieselThuriot/MagicConstants", + "Category": "FilesToCode", + "AddedOn": "2026-09-04T00:00:00" } ] } \ No newline at end of file diff --git a/v2/rscg_examples_site/static/exports/RSCG.xlsx b/v2/rscg_examples_site/static/exports/RSCG.xlsx index 868a9aa20..38ef93dc9 100644 Binary files a/v2/rscg_examples_site/static/exports/RSCG.xlsx and b/v2/rscg_examples_site/static/exports/RSCG.xlsx differ diff --git a/v2/rscg_examples_site/static/sources/MagicConstants.zip b/v2/rscg_examples_site/static/sources/MagicConstants.zip new file mode 100644 index 000000000..dc323f28f Binary files /dev/null and b/v2/rscg_examples_site/static/sources/MagicConstants.zip differ