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 =>
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) [](https://www.nuget.org/packages/MagicConstants/)  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) [](https://www.nuget.org/packages/Chorn.EmbeddedResourceAccessGenerator/)  2024-01-21
@@ -18,29 +18,31 @@ Number RSCG: 21
8 [Maestria.TypeProviders](/docs/Maestria.TypeProviders) [](https://www.nuget.org/packages/Maestria.TypeProviders/)  2026-04-09
- 9 [NFH.FileEmbed](/docs/NFH.FileEmbed) [](https://www.nuget.org/packages/NFH.FileEmbed/)  2025-08-08
+ 9 [MagicConstants](/docs/MagicConstants) [](https://www.nuget.org/packages/MagicConstants/)  2026-09-04
- 10 [NotNotAppSettings](/docs/NotNotAppSettings) [](https://www.nuget.org/packages/NotNot.AppSettings/)  2024-01-26
+ 10 [NFH.FileEmbed](/docs/NFH.FileEmbed) [](https://www.nuget.org/packages/NFH.FileEmbed/)  2025-08-08
- 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [](https://www.nuget.org/packages/Pinecone.TypedPath/)  2026-08-24
+ 11 [NotNotAppSettings](/docs/NotNotAppSettings) [](https://www.nuget.org/packages/NotNot.AppSettings/)  2024-01-26
- 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [](https://www.nuget.org/packages/Podimo.ConstEmbed/)  2023-04-16
+ 12 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [](https://www.nuget.org/packages/Pinecone.TypedPath/)  2026-08-24
- 13 [ResXGenerator](/docs/ResXGenerator) [](https://www.nuget.org/packages/Aigamo.ResXGenerator/)  2023-10-02
+ 13 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [](https://www.nuget.org/packages/Podimo.ConstEmbed/)  2023-04-16
- 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [](https://www.nuget.org/packages/RSCG_JSON2Class/)  2024-02-29
+ 14 [ResXGenerator](/docs/ResXGenerator) [](https://www.nuget.org/packages/Aigamo.ResXGenerator/)  2023-10-02
- 15 [RSCG_Utils](/docs/RSCG_Utils) [](https://www.nuget.org/packages/rscgutils)  2023-04-16
+ 15 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [](https://www.nuget.org/packages/RSCG_JSON2Class/)  2024-02-29
- 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [](https://www.nuget.org/packages/Strings.ResourceGenerator/)  2025-07-06
+ 16 [RSCG_Utils](/docs/RSCG_Utils) [](https://www.nuget.org/packages/rscgutils)  2023-04-16
- 17 [SvgIconGenerator](/docs/SvgIconGenerator) [](https://www.nuget.org/packages/SvgIconGenerator/)  2026-04-04
+ 17 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [](https://www.nuget.org/packages/Strings.ResourceGenerator/)  2025-07-06
- 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [](https://www.nuget.org/packages/ThisAssembly.Resources/)  2023-09-16
+ 18 [SvgIconGenerator](/docs/SvgIconGenerator) [](https://www.nuget.org/packages/SvgIconGenerator/)  2026-04-04
- 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [](https://www.nuget.org/packages/ThisAssembly.Strings/)  2024-07-21
+ 19 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [](https://www.nuget.org/packages/ThisAssembly.Resources/)  2023-09-16
- 20 [TypedPaths](/docs/TypedPaths) [](https://www.nuget.org/packages/TypedPaths.Generator/)  2026-04-01
+ 20 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [](https://www.nuget.org/packages/ThisAssembly.Strings/)  2024-07-21
- 21 [Weave](/docs/Weave) [](https://www.nuget.org/packages/Weave/)  2024-01-27
+ 21 [TypedPaths](/docs/TypedPaths) [](https://www.nuget.org/packages/TypedPaths.Generator/)  2026-04-01
+
+ 22 [Weave](/docs/Weave) [](https://www.nuget.org/packages/Weave/)  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) [](https://www.nuget.org/packages/Maestria.TypeProviders/)  2026-04-09
- 9 [NFH.FileEmbed](/docs/NFH.FileEmbed) [](https://www.nuget.org/packages/NFH.FileEmbed/)  2025-08-08
+ 9 [MagicConstants](/docs/MagicConstants) [](https://www.nuget.org/packages/MagicConstants/)  2026-09-04
- 10 [NotNotAppSettings](/docs/NotNotAppSettings) [](https://www.nuget.org/packages/NotNot.AppSettings/)  2024-01-26
+ 10 [NFH.FileEmbed](/docs/NFH.FileEmbed) [](https://www.nuget.org/packages/NFH.FileEmbed/)  2025-08-08
- 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [](https://www.nuget.org/packages/Pinecone.TypedPath/)  2026-08-24
+ 11 [NotNotAppSettings](/docs/NotNotAppSettings) [](https://www.nuget.org/packages/NotNot.AppSettings/)  2024-01-26
- 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [](https://www.nuget.org/packages/Podimo.ConstEmbed/)  2023-04-16
+ 12 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [](https://www.nuget.org/packages/Pinecone.TypedPath/)  2026-08-24
- 13 [ResXGenerator](/docs/ResXGenerator) [](https://www.nuget.org/packages/Aigamo.ResXGenerator/)  2023-10-02
+ 13 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [](https://www.nuget.org/packages/Podimo.ConstEmbed/)  2023-04-16
- 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [](https://www.nuget.org/packages/RSCG_JSON2Class/)  2024-02-29
+ 14 [ResXGenerator](/docs/ResXGenerator) [](https://www.nuget.org/packages/Aigamo.ResXGenerator/)  2023-10-02
- 15 [RSCG_Utils](/docs/RSCG_Utils) [](https://www.nuget.org/packages/rscgutils)  2023-04-16
+ 15 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [](https://www.nuget.org/packages/RSCG_JSON2Class/)  2024-02-29
- 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [](https://www.nuget.org/packages/Strings.ResourceGenerator/)  2025-07-06
+ 16 [RSCG_Utils](/docs/RSCG_Utils) [](https://www.nuget.org/packages/rscgutils)  2023-04-16
- 17 [SvgIconGenerator](/docs/SvgIconGenerator) [](https://www.nuget.org/packages/SvgIconGenerator/)  2026-04-04
+ 17 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [](https://www.nuget.org/packages/Strings.ResourceGenerator/)  2025-07-06
- 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [](https://www.nuget.org/packages/ThisAssembly.Resources/)  2023-09-16
+ 18 [SvgIconGenerator](/docs/SvgIconGenerator) [](https://www.nuget.org/packages/SvgIconGenerator/)  2026-04-04
- 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [](https://www.nuget.org/packages/ThisAssembly.Strings/)  2024-07-21
+ 19 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [](https://www.nuget.org/packages/ThisAssembly.Resources/)  2023-09-16
- 20 [TypedPaths](/docs/TypedPaths) [](https://www.nuget.org/packages/TypedPaths.Generator/)  2026-04-01
+ 20 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [](https://www.nuget.org/packages/ThisAssembly.Strings/)  2024-07-21
- 21 [Weave](/docs/Weave) [](https://www.nuget.org/packages/Weave/)  2024-01-27
+ 21 [TypedPaths](/docs/TypedPaths) [](https://www.nuget.org/packages/TypedPaths.Generator/)  2026-04-01
+
+ 22 [Weave](/docs/Weave) [](https://www.nuget.org/packages/Weave/)  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
+[](https://www.nuget.org/packages/MagicConstants/)
+[](https://github.com/LieselThuriot/MagicConstants)
+
+
+## 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
+
+:::
+
+## 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