Skip to content

Conversation

@ignatandrei
Copy link
Owner

@ignatandrei ignatandrei commented Oct 4, 2025

Summary by CodeRabbit

  • New Features

    • Added a new “Validator” category and the “validly” example, increasing the catalog to 236 items.
    • Included a working sample project demonstrating attribute-based validation and generated validators.
  • Documentation

    • Added a dedicated “validly” page with overview, usage, code samples, and links.
    • Updated site pages, lists, diagrams, and category docs to include the new category and example.
    • Published an example page and metadata for “validly.”
  • Chores

    • Updated dates, counts, navigation, and exported data; renumbered and realigned lists.

Copilot AI review requested due to automatic review settings October 4, 2025 06:47
@ignatandrei ignatandrei linked an issue Oct 4, 2025 that may be closed by this pull request
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the "validly" source code generator to the RSCG Examples repository, bringing the total count from 235 to 236 examples. The addition includes comprehensive documentation, example code, and integration into the site's category system as a new "Validator" category.

Key changes:

  • Adds validly as RSCG example #236 in the new Validator category
  • Updates all count references from 235 to 236 throughout the documentation
  • Creates comprehensive example implementation and documentation

Reviewed Changes

Copilot reviewed 27 out of 30 changed files in this pull request and generated no comments.

Show a summary per file
File Description
RSCG.json Adds validly entry with metadata and links
indexRSCG.md Updates count and adds validly to the chronological list
validly.md Complete documentation page with usage examples and generated code
Category.cs Adds new Validator enum value
NoExample.json Removes validly from the "no example" list

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@coderabbitai
Copy link

coderabbitai bot commented Oct 4, 2025

Walkthrough

Adds a new “validly” example across docs, metadata, and site content. Introduces a new Validator category (enum value 40), registers the example in JSON/data files, adds a book page and site docs, includes a sample .NET 9 project demonstrating Validly, and updates counts/dates from 235 to 236 and 2025-10-06.

Changes

Cohort / File(s) Summary
Root documentation updates
README.md, later.md
Bumped example count to 236 and latest date to 2025-10-06; inserted “validly” entry; updated external links and list alignment in later.md.
Generator/category data
v2/GeneratorData/Category.cs, v2/RSCGExamplesData/GeneratorDataRec.json, v2/RSCGExamplesData/NoExample.json
Added enum member Validator=40; appended new GeneratorDataRec entry (ID: Validly, Category: 40, dtStart 2025-10-06); removed NoExample IDs 226 and 228.
Book site content
v2/book/examples/validly.html, v2/book/list.html, v2/book/pandocHTML.yaml
Added Validly example page; updated list to 236 with a new row; included the page in pandoc input.
Validly example project
v2/rscg_examples/validly/description.json, v2/rscg_examples/validly/nuget.txt, v2/rscg_examples/validly/readme.txt, v2/rscg_examples/validly/video.json, v2/rscg_examples/validly/src/Valid.sln, v2/rscg_examples/validly/src/.tours/validly.tour, v2/rscg_examples/validly/src/Valid/Valid.csproj, v2/rscg_examples/validly/src/Valid/Person.cs, v2/rscg_examples/validly/src/Valid/Program.cs
Added metadata, docs, video script, CodeTour; created a .NET 9 console solution/project referencing Validly packages; added a Person model with validation attributes and minimal Program invoking validation.
Docs site: categories and index
v2/rscg_examples_site/docs/Categories/Validator.md, v2/rscg_examples_site/docs/Categories/_PrimitiveValidator.mdx, v2/rscg_examples_site/docs/RSCG-Examples/index.md, v2/rscg_examples_site/docs/indexRSCG.md, v2/rscg_examples_site/docs/about.md
Added Validator category page and primitive listing; updated counts/title/description to 236; added Validator section and diagram edge to validly; appended validly to the complete list.
Docs site: example page and maintenance
v2/rscg_examples_site/docs/RSCG-Examples/validly.md, v2/rscg_examples_site/docs/NoExamples.md, v2/rscg_examples_site/docs/RSCG-Examples/Csvcsharp.md
Introduced detailed Validly example page; renumbered NoExamples entries; minor TOCInline formatting tweak in Csvcsharp.
Docs site: UI string and exported data
v2/rscg_examples_site/src/components/HomepageFeatures/index.js, v2/rscg_examples_site/static/exports/RSCG.json
Updated homepage feature count to 236; appended Validly entry to exported RSCG JSON.

Sequence Diagram(s)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

Thump-thump, a hop to two-three-six,
I nibbled bytes and shuffled bricks.
A Validator burrow, neat and spry,
Validly sprouts beneath the sky.
Docs bloom wide, the counters sing—
Another carrot in the ring! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title consists of only the single word “validly,” which matches the new entry name but does not describe the action or scope of the changeset, making it too vague to convey the primary change clearly. Please update the title to include a concise description of the change, for example “Add Validly example generator and documentation,” so that it clearly communicates the pull request’s main purpose.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 413-httpsgithubcomhookynsvalidly

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (4)
later.md (1)

65-131: Consider wrapping bare URLs in angle brackets for better markdown compliance.

The markdown linter flags bare URLs at the end of each project line. While the current format [Name](url) , url may be intentional for reference purposes, consider one of these alternatives:

  • Wrap the second URL in angle brackets: [Name](url) , <url>
  • Remove the duplicate URL since it's already linked in the name

This would resolve the MD034 warnings while maintaining readability.

Apply this pattern to all affected lines:

-10) [https://github.com/pierre3/PlantUmlClassDiagramGenerator]( https://github.com/pierre3/PlantUmlClassDiagramGenerator) , https://github.com/pierre3/PlantUmlClassDiagramGenerator 
+10) [https://github.com/pierre3/PlantUmlClassDiagramGenerator]( https://github.com/pierre3/PlantUmlClassDiagramGenerator) , <https://github.com/pierre3/PlantUmlClassDiagramGenerator>
v2/rscg_examples_site/docs/RSCG-Examples/validly.md (3)

34-39: Wrap bare URLs in angle brackets for proper markdown formatting.

The markdown linter flags bare URLs. Wrap them in angle brackets for better compliance and rendering:

 NuGet: 
-*https://www.nuget.org/packages/validly/*   
+*<https://www.nuget.org/packages/validly/>*   


-You can find more details at https://github.com/Hookyns/validly
+You can find more details at <https://github.com/Hookyns/validly>

-Source: https://github.com/Hookyns/validly
+Source: <https://github.com/Hookyns/validly>

203-206: Replace hard tabs with spaces for consistency.

Lines 203-206 use hard tabs instead of spaces. Replace them with spaces to maintain consistent indentation throughout the markdown file:

-	<PropertyGroup>
-		<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
-		<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
-	</PropertyGroup>
+  <PropertyGroup>
+    <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
+    <CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
+  </PropertyGroup>

273-354: Replace hard tabs with spaces in the generated code section.

Lines 273-354 contain hard tabs. Replace them with spaces to ensure consistent formatting and avoid potential rendering issues in different markdown viewers.

This affects the entire generated code block. Use your editor's "Convert Tabs to Spaces" feature or run:

#!/bin/bash
# Replace tabs with spaces in the file
sed -i 's/\t/  /g' "v2/rscg_examples_site/docs/RSCG-Examples/validly.md"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8de8832 and e8a05cd.

⛔ Files ignored due to path filters (3)
  • v2/Generator/all.csv is excluded by !**/*.csv
  • v2/rscg_examples_site/static/exports/RSCG.xlsx is excluded by !**/*.xlsx
  • v2/rscg_examples_site/static/sources/validly.zip is excluded by !**/*.zip
📒 Files selected for processing (27)
  • README.md (3 hunks)
  • later.md (2 hunks)
  • v2/GeneratorData/Category.cs (1 hunks)
  • v2/RSCGExamplesData/GeneratorDataRec.json (1 hunks)
  • v2/RSCGExamplesData/NoExample.json (0 hunks)
  • v2/book/examples/validly.html (1 hunks)
  • v2/book/list.html (2 hunks)
  • v2/book/pandocHTML.yaml (1 hunks)
  • v2/rscg_examples/validly/description.json (1 hunks)
  • v2/rscg_examples/validly/nuget.txt (1 hunks)
  • v2/rscg_examples/validly/readme.txt (1 hunks)
  • v2/rscg_examples/validly/src/.tours/validly.tour (1 hunks)
  • v2/rscg_examples/validly/src/Valid.sln (1 hunks)
  • v2/rscg_examples/validly/src/Valid/Person.cs (1 hunks)
  • v2/rscg_examples/validly/src/Valid/Program.cs (1 hunks)
  • v2/rscg_examples/validly/src/Valid/Valid.csproj (1 hunks)
  • v2/rscg_examples/validly/video.json (1 hunks)
  • v2/rscg_examples_site/docs/Categories/Validator.md (1 hunks)
  • v2/rscg_examples_site/docs/Categories/_PrimitiveValidator.mdx (1 hunks)
  • v2/rscg_examples_site/docs/NoExamples.md (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/Csvcsharp.md (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/index.md (3 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/validly.md (1 hunks)
  • v2/rscg_examples_site/docs/about.md (1 hunks)
  • v2/rscg_examples_site/docs/indexRSCG.md (2 hunks)
  • v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1 hunks)
  • v2/rscg_examples_site/static/exports/RSCG.json (1 hunks)
💤 Files with no reviewable changes (1)
  • v2/RSCGExamplesData/NoExample.json
🧰 Additional context used
🪛 Biome (2.1.2)
v2/rscg_examples/validly/video.json

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)


[error] 37-38: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)

🪛 markdownlint-cli2 (0.18.1)
v2/rscg_examples_site/docs/NoExamples.md

305-305: Bare URL used

(MD034, no-bare-urls)


305-305: Bare URL used

(MD034, no-bare-urls)


309-309: Bare URL used

(MD034, no-bare-urls)


309-309: Bare URL used

(MD034, no-bare-urls)


313-313: Bare URL used

(MD034, no-bare-urls)


313-313: Bare URL used

(MD034, no-bare-urls)


317-317: Bare URL used

(MD034, no-bare-urls)


317-317: Bare URL used

(MD034, no-bare-urls)


321-321: Bare URL used

(MD034, no-bare-urls)


321-321: Bare URL used

(MD034, no-bare-urls)


325-325: Bare URL used

(MD034, no-bare-urls)


325-325: Bare URL used

(MD034, no-bare-urls)


329-329: Bare URL used

(MD034, no-bare-urls)


329-329: Bare URL used

(MD034, no-bare-urls)


333-333: Bare URL used

(MD034, no-bare-urls)


333-333: Bare URL used

(MD034, no-bare-urls)


337-337: Bare URL used

(MD034, no-bare-urls)


337-337: Bare URL used

(MD034, no-bare-urls)


341-341: Bare URL used

(MD034, no-bare-urls)


341-341: Bare URL used

(MD034, no-bare-urls)


345-345: Bare URL used

(MD034, no-bare-urls)


345-345: Bare URL used

(MD034, no-bare-urls)


349-349: Bare URL used

(MD034, no-bare-urls)


349-349: Bare URL used

(MD034, no-bare-urls)


353-353: Bare URL used

(MD034, no-bare-urls)


353-353: Bare URL used

(MD034, no-bare-urls)


357-357: Bare URL used

(MD034, no-bare-urls)


357-357: Bare URL used

(MD034, no-bare-urls)


361-361: Bare URL used

(MD034, no-bare-urls)


365-365: Bare URL used

(MD034, no-bare-urls)


369-369: Bare URL used

(MD034, no-bare-urls)


373-373: Bare URL used

(MD034, no-bare-urls)


377-377: Bare URL used

(MD034, no-bare-urls)


381-381: Bare URL used

(MD034, no-bare-urls)


385-385: Bare URL used

(MD034, no-bare-urls)


389-389: Bare URL used

(MD034, no-bare-urls)


393-393: Bare URL used

(MD034, no-bare-urls)


397-397: Bare URL used

(MD034, no-bare-urls)


401-401: Bare URL used

(MD034, no-bare-urls)


405-405: Bare URL used

(MD034, no-bare-urls)


409-409: Bare URL used

(MD034, no-bare-urls)


413-413: Bare URL used

(MD034, no-bare-urls)


417-417: Bare URL used

(MD034, no-bare-urls)


421-421: Bare URL used

(MD034, no-bare-urls)


425-425: Bare URL used

(MD034, no-bare-urls)


429-429: Bare URL used

(MD034, no-bare-urls)


433-433: Bare URL used

(MD034, no-bare-urls)


437-437: Bare URL used

(MD034, no-bare-urls)


441-441: Bare URL used

(MD034, no-bare-urls)


445-445: Bare URL used

(MD034, no-bare-urls)


449-449: Bare URL used

(MD034, no-bare-urls)


453-453: Bare URL used

(MD034, no-bare-urls)


457-457: Bare URL used

(MD034, no-bare-urls)


461-461: Bare URL used

(MD034, no-bare-urls)


465-465: Bare URL used

(MD034, no-bare-urls)


469-469: Bare URL used

(MD034, no-bare-urls)


473-473: Bare URL used

(MD034, no-bare-urls)


477-477: Bare URL used

(MD034, no-bare-urls)


481-481: Bare URL used

(MD034, no-bare-urls)


485-485: Bare URL used

(MD034, no-bare-urls)


489-489: Bare URL used

(MD034, no-bare-urls)


493-493: Bare URL used

(MD034, no-bare-urls)


497-497: Bare URL used

(MD034, no-bare-urls)


501-501: Bare URL used

(MD034, no-bare-urls)


505-505: Bare URL used

(MD034, no-bare-urls)


509-509: Bare URL used

(MD034, no-bare-urls)


513-513: Bare URL used

(MD034, no-bare-urls)


517-517: Bare URL used

(MD034, no-bare-urls)


521-521: Bare URL used

(MD034, no-bare-urls)


525-525: Bare URL used

(MD034, no-bare-urls)


529-529: Bare URL used

(MD034, no-bare-urls)


533-533: Bare URL used

(MD034, no-bare-urls)


537-537: Bare URL used

(MD034, no-bare-urls)


541-541: Bare URL used

(MD034, no-bare-urls)


545-545: Bare URL used

(MD034, no-bare-urls)


549-549: Bare URL used

(MD034, no-bare-urls)


553-553: Bare URL used

(MD034, no-bare-urls)


557-557: Bare URL used

(MD034, no-bare-urls)


561-561: Bare URL used

(MD034, no-bare-urls)


565-565: Bare URL used

(MD034, no-bare-urls)


569-569: Bare URL used

(MD034, no-bare-urls)


573-573: Bare URL used

(MD034, no-bare-urls)


577-577: Bare URL used

(MD034, no-bare-urls)


581-581: Bare URL used

(MD034, no-bare-urls)


585-585: Bare URL used

(MD034, no-bare-urls)


589-589: Bare URL used

(MD034, no-bare-urls)


593-593: Bare URL used

(MD034, no-bare-urls)


597-597: Bare URL used

(MD034, no-bare-urls)


601-601: Bare URL used

(MD034, no-bare-urls)


605-605: Bare URL used

(MD034, no-bare-urls)


609-609: Bare URL used

(MD034, no-bare-urls)


613-613: Bare URL used

(MD034, no-bare-urls)


617-617: Bare URL used

(MD034, no-bare-urls)


621-621: Bare URL used

(MD034, no-bare-urls)


625-625: Bare URL used

(MD034, no-bare-urls)


629-629: Bare URL used

(MD034, no-bare-urls)


633-633: Bare URL used

(MD034, no-bare-urls)


637-637: Bare URL used

(MD034, no-bare-urls)


641-641: Bare URL used

(MD034, no-bare-urls)


645-645: Bare URL used

(MD034, no-bare-urls)


649-649: Bare URL used

(MD034, no-bare-urls)


653-653: Bare URL used

(MD034, no-bare-urls)


657-657: Bare URL used

(MD034, no-bare-urls)


661-661: Bare URL used

(MD034, no-bare-urls)


665-665: Bare URL used

(MD034, no-bare-urls)


669-669: Bare URL used

(MD034, no-bare-urls)


673-673: Bare URL used

(MD034, no-bare-urls)


677-677: Bare URL used

(MD034, no-bare-urls)


681-681: Bare URL used

(MD034, no-bare-urls)


685-685: Bare URL used

(MD034, no-bare-urls)


689-689: Bare URL used

(MD034, no-bare-urls)


693-693: Bare URL used

(MD034, no-bare-urls)


697-697: Bare URL used

(MD034, no-bare-urls)


701-701: Bare URL used

(MD034, no-bare-urls)


705-705: Bare URL used

(MD034, no-bare-urls)

v2/rscg_examples_site/docs/indexRSCG.md

23-23: Spaces inside link text

(MD039, no-space-in-links)

later.md

65-65: Bare URL used

(MD034, no-bare-urls)


71-71: Bare URL used

(MD034, no-bare-urls)


77-77: Bare URL used

(MD034, no-bare-urls)


83-83: Bare URL used

(MD034, no-bare-urls)


89-89: Bare URL used

(MD034, no-bare-urls)


95-95: Bare URL used

(MD034, no-bare-urls)


101-101: Bare URL used

(MD034, no-bare-urls)


107-107: Bare URL used

(MD034, no-bare-urls)


113-113: Bare URL used

(MD034, no-bare-urls)


119-119: Bare URL used

(MD034, no-bare-urls)


125-125: Bare URL used

(MD034, no-bare-urls)


131-131: Bare URL used

(MD034, no-bare-urls)

v2/rscg_examples_site/docs/RSCG-Examples/validly.md

34-34: Bare URL used

(MD034, no-bare-urls)


37-37: Bare URL used

(MD034, no-bare-urls)


39-39: Bare URL used

(MD034, no-bare-urls)


57-57: Link fragments should be valid

(MD051, link-fragments)


102-102: Hard tabs
Column: 5

(MD010, no-hard-tabs)


203-203: Hard tabs
Column: 1

(MD010, no-hard-tabs)


204-204: Hard tabs
Column: 1

(MD010, no-hard-tabs)


205-205: Hard tabs
Column: 1

(MD010, no-hard-tabs)


206-206: Hard tabs
Column: 1

(MD010, no-hard-tabs)


273-273: Hard tabs
Column: 1

(MD010, no-hard-tabs)


274-274: Hard tabs
Column: 1

(MD010, no-hard-tabs)


275-275: Hard tabs
Column: 1

(MD010, no-hard-tabs)


276-276: Hard tabs
Column: 1

(MD010, no-hard-tabs)


277-277: Hard tabs
Column: 1

(MD010, no-hard-tabs)


278-278: Hard tabs
Column: 1

(MD010, no-hard-tabs)


278-278: Code block style
Expected: fenced; Actual: indented

(MD046, code-block-style)


279-279: Hard tabs
Column: 1

(MD010, no-hard-tabs)


280-280: Hard tabs
Column: 1

(MD010, no-hard-tabs)


281-281: Hard tabs
Column: 1

(MD010, no-hard-tabs)


282-282: Hard tabs
Column: 1

(MD010, no-hard-tabs)


283-283: Hard tabs
Column: 1

(MD010, no-hard-tabs)


284-284: Hard tabs
Column: 1

(MD010, no-hard-tabs)


285-285: Hard tabs
Column: 1

(MD010, no-hard-tabs)


286-286: Hard tabs
Column: 1

(MD010, no-hard-tabs)


287-287: Hard tabs
Column: 1

(MD010, no-hard-tabs)


288-288: Hard tabs
Column: 1

(MD010, no-hard-tabs)


289-289: Hard tabs
Column: 1

(MD010, no-hard-tabs)


290-290: Hard tabs
Column: 1

(MD010, no-hard-tabs)


291-291: Hard tabs
Column: 1

(MD010, no-hard-tabs)


292-292: Hard tabs
Column: 1

(MD010, no-hard-tabs)


293-293: Hard tabs
Column: 1

(MD010, no-hard-tabs)


294-294: Hard tabs
Column: 1

(MD010, no-hard-tabs)


295-295: Hard tabs
Column: 1

(MD010, no-hard-tabs)


296-296: Hard tabs
Column: 1

(MD010, no-hard-tabs)


297-297: Hard tabs
Column: 1

(MD010, no-hard-tabs)


298-298: Hard tabs
Column: 1

(MD010, no-hard-tabs)


299-299: Hard tabs
Column: 1

(MD010, no-hard-tabs)


300-300: Hard tabs
Column: 1

(MD010, no-hard-tabs)


301-301: Hard tabs
Column: 1

(MD010, no-hard-tabs)


302-302: Hard tabs
Column: 1

(MD010, no-hard-tabs)


303-303: Hard tabs
Column: 1

(MD010, no-hard-tabs)


304-304: Hard tabs
Column: 1

(MD010, no-hard-tabs)


305-305: Hard tabs
Column: 1

(MD010, no-hard-tabs)


306-306: Hard tabs
Column: 1

(MD010, no-hard-tabs)


307-307: Hard tabs
Column: 1

(MD010, no-hard-tabs)


308-308: Hard tabs
Column: 1

(MD010, no-hard-tabs)


309-309: Hard tabs
Column: 1

(MD010, no-hard-tabs)


310-310: Hard tabs
Column: 1

(MD010, no-hard-tabs)


311-311: Hard tabs
Column: 1

(MD010, no-hard-tabs)


312-312: Hard tabs
Column: 1

(MD010, no-hard-tabs)


313-313: Hard tabs
Column: 1

(MD010, no-hard-tabs)


314-314: Hard tabs
Column: 1

(MD010, no-hard-tabs)


315-315: Hard tabs
Column: 1

(MD010, no-hard-tabs)


316-316: Hard tabs
Column: 1

(MD010, no-hard-tabs)


317-317: Hard tabs
Column: 1

(MD010, no-hard-tabs)


318-318: Hard tabs
Column: 1

(MD010, no-hard-tabs)


319-319: Hard tabs
Column: 1

(MD010, no-hard-tabs)


320-320: Hard tabs
Column: 1

(MD010, no-hard-tabs)


321-321: Hard tabs
Column: 1

(MD010, no-hard-tabs)


322-322: Hard tabs
Column: 1

(MD010, no-hard-tabs)


323-323: Hard tabs
Column: 1

(MD010, no-hard-tabs)


324-324: Hard tabs
Column: 1

(MD010, no-hard-tabs)


325-325: Hard tabs
Column: 1

(MD010, no-hard-tabs)


326-326: Hard tabs
Column: 1

(MD010, no-hard-tabs)


327-327: Hard tabs
Column: 1

(MD010, no-hard-tabs)


328-328: Hard tabs
Column: 1

(MD010, no-hard-tabs)


329-329: Hard tabs
Column: 1

(MD010, no-hard-tabs)


330-330: Hard tabs
Column: 1

(MD010, no-hard-tabs)


331-331: Hard tabs
Column: 1

(MD010, no-hard-tabs)


332-332: Hard tabs
Column: 1

(MD010, no-hard-tabs)


333-333: Hard tabs
Column: 1

(MD010, no-hard-tabs)


334-334: Hard tabs
Column: 1

(MD010, no-hard-tabs)


335-335: Hard tabs
Column: 1

(MD010, no-hard-tabs)


336-336: Hard tabs
Column: 1

(MD010, no-hard-tabs)


337-337: Hard tabs
Column: 1

(MD010, no-hard-tabs)


338-338: Hard tabs
Column: 1

(MD010, no-hard-tabs)


339-339: Hard tabs
Column: 1

(MD010, no-hard-tabs)


340-340: Hard tabs
Column: 1

(MD010, no-hard-tabs)


341-341: Hard tabs
Column: 1

(MD010, no-hard-tabs)


342-342: Hard tabs
Column: 1

(MD010, no-hard-tabs)


343-343: Hard tabs
Column: 1

(MD010, no-hard-tabs)


344-344: Hard tabs
Column: 1

(MD010, no-hard-tabs)


345-345: Hard tabs
Column: 1

(MD010, no-hard-tabs)


346-346: Hard tabs
Column: 1

(MD010, no-hard-tabs)


347-347: Hard tabs
Column: 1

(MD010, no-hard-tabs)


348-348: Hard tabs
Column: 1

(MD010, no-hard-tabs)


349-349: Hard tabs
Column: 1

(MD010, no-hard-tabs)


350-350: Hard tabs
Column: 1

(MD010, no-hard-tabs)


351-351: Hard tabs
Column: 1

(MD010, no-hard-tabs)


352-352: Hard tabs
Column: 1

(MD010, no-hard-tabs)


354-354: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

README.md

5579-5579: Bare URL used

(MD034, no-bare-urls)


5583-5583: Bare URL used

(MD034, no-bare-urls)


5586-5586: Bare URL used

(MD034, no-bare-urls)


5590-5590: Bare URL used

(MD034, no-bare-urls)


5593-5593: Bare URL used

(MD034, no-bare-urls)


5597-5597: Bare URL used

(MD034, no-bare-urls)


5600-5600: Bare URL used

(MD034, no-bare-urls)


5604-5604: Bare URL used

(MD034, no-bare-urls)


5607-5607: Bare URL used

(MD034, no-bare-urls)


5611-5611: Bare URL used

(MD034, no-bare-urls)


5614-5614: Bare URL used

(MD034, no-bare-urls)


5618-5618: Bare URL used

(MD034, no-bare-urls)


5621-5621: Bare URL used

(MD034, no-bare-urls)


5625-5625: Bare URL used

(MD034, no-bare-urls)


5628-5628: Bare URL used

(MD034, no-bare-urls)


5632-5632: Bare URL used

(MD034, no-bare-urls)


5635-5635: Bare URL used

(MD034, no-bare-urls)


5639-5639: Bare URL used

(MD034, no-bare-urls)


5642-5642: Bare URL used

(MD034, no-bare-urls)


5646-5646: Bare URL used

(MD034, no-bare-urls)


5649-5649: Bare URL used

(MD034, no-bare-urls)


5653-5653: Bare URL used

(MD034, no-bare-urls)


5656-5656: Bare URL used

(MD034, no-bare-urls)


5660-5660: Bare URL used

(MD034, no-bare-urls)


5663-5663: Bare URL used

(MD034, no-bare-urls)


5667-5667: Bare URL used

(MD034, no-bare-urls)


5670-5670: Bare URL used

(MD034, no-bare-urls)


5674-5674: Bare URL used

(MD034, no-bare-urls)


5677-5677: Bare URL used

(MD034, no-bare-urls)


5681-5681: Bare URL used

(MD034, no-bare-urls)


5684-5684: Bare URL used

(MD034, no-bare-urls)


5688-5688: Bare URL used

(MD034, no-bare-urls)


5691-5691: Bare URL used

(MD034, no-bare-urls)


5695-5695: Bare URL used

(MD034, no-bare-urls)


5698-5698: Bare URL used

(MD034, no-bare-urls)


5702-5702: Bare URL used

(MD034, no-bare-urls)


5705-5705: Bare URL used

(MD034, no-bare-urls)


5709-5709: Bare URL used

(MD034, no-bare-urls)


5712-5712: Bare URL used

(MD034, no-bare-urls)


5716-5716: Bare URL used

(MD034, no-bare-urls)


5719-5719: Bare URL used

(MD034, no-bare-urls)


5723-5723: Bare URL used

(MD034, no-bare-urls)


5726-5726: Bare URL used

(MD034, no-bare-urls)


5730-5730: Bare URL used

(MD034, no-bare-urls)


5733-5733: Bare URL used

(MD034, no-bare-urls)


5737-5737: Bare URL used

(MD034, no-bare-urls)


5740-5740: Bare URL used

(MD034, no-bare-urls)


5744-5744: Bare URL used

(MD034, no-bare-urls)


5747-5747: Bare URL used

(MD034, no-bare-urls)


5751-5751: Bare URL used

(MD034, no-bare-urls)


5754-5754: Bare URL used

(MD034, no-bare-urls)


5758-5758: Bare URL used

(MD034, no-bare-urls)


5761-5761: Bare URL used

(MD034, no-bare-urls)


5765-5765: Bare URL used

(MD034, no-bare-urls)


5768-5768: Bare URL used

(MD034, no-bare-urls)


5772-5772: Bare URL used

(MD034, no-bare-urls)


5775-5775: Bare URL used

(MD034, no-bare-urls)


5779-5779: Bare URL used

(MD034, no-bare-urls)


5782-5782: Bare URL used

(MD034, no-bare-urls)


5786-5786: Bare URL used

(MD034, no-bare-urls)


5789-5789: Bare URL used

(MD034, no-bare-urls)


5793-5793: Bare URL used

(MD034, no-bare-urls)


5796-5796: Bare URL used

(MD034, no-bare-urls)


5800-5800: Bare URL used

(MD034, no-bare-urls)


5803-5803: Bare URL used

(MD034, no-bare-urls)


5807-5807: Bare URL used

(MD034, no-bare-urls)


5810-5810: Bare URL used

(MD034, no-bare-urls)


5814-5814: Bare URL used

(MD034, no-bare-urls)


5817-5817: Bare URL used

(MD034, no-bare-urls)


5821-5821: Bare URL used

(MD034, no-bare-urls)


5824-5824: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: call-workflow-passing-data / build (24.3.0)
🔇 Additional comments (29)
v2/rscg_examples_site/docs/indexRSCG.md (2)

10-12: LGTM!

The count updates from 235 to 236 are correct and consistent with the addition of the new validly example.


23-23: LGTM!

The new entry for validly follows the correct format and is consistent with other rows in the table.

v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1)

7-7: LGTM!

The count update from 235 to 236 is correct and aligns with the addition of the new validly example.

v2/book/pandocHTML.yaml (1)

252-252: LGTM!

The addition of the validly example to the input files list is correct and follows the expected format.

v2/rscg_examples_site/docs/RSCG-Examples/Csvcsharp.md (1)

15-15: LGTM!

The extra whitespace is a minor formatting change that doesn't affect functionality.

v2/rscg_examples_site/docs/NoExamples.md (1)

305-706: LGTM!

The renumbering of items is a mechanical update that maintains consistent numbering throughout the list.

README.md (1)

1-49: New “validly” entry reads well

The updated counts, metadata, and links for the 236th example line up with the rest of the document. The added Validator category link also matches. Nicely done.

Also applies to: 25-49, 5579-5824

v2/GeneratorData/Category.cs (1)

45-45: Enum extension looks correct

Assigning Validator = 40 keeps the sequence tidy and matches the new data.

v2/rscg_examples_site/docs/Categories/Validator.md (1)

1-6: Category page fits the pattern

The Validator page follows the existing layout and links to the new example as expected.

v2/rscg_examples_site/static/exports/RSCG.json (1)

1885-1891: Validly entry looks consistent.

Category “Validator” and AddedOn 2025-10-06 align with the rest of the data and the new enum value. No issues spotted.

v2/RSCGExamplesData/GeneratorDataRec.json (1)

1426-1430: Data row aligns with the new Validator category.

ID, category value 40, and dtStart 2025-10-06 follow the established structure and ordering. Looks good.

v2/rscg_examples_site/docs/about.md (1)

8-10: Count update is accurate.

Reflecting the new total of 236 generators keeps the doc in sync with the dataset.

v2/rscg_examples/validly/src/Valid/Program.cs (1)

1-7: Sample entry point looks good.

Simple top-level usage of Person.Validate() cleanly showcases the Validly generator.

v2/rscg_examples/validly/nuget.txt (1)

1-1: NuGet blurb reads well.

Concise description captures Validly’s value proposition.

v2/book/examples/validly.html (1)

1-59: LGTM!

The HTML documentation page is well-structured with proper external link handling and consistent image reference patterns.

v2/rscg_examples_site/docs/Categories/_PrimitiveValidator.mdx (1)

1-7: LGTM!

The documentation fragment correctly defines the Validator category and links to the validly example.

v2/rscg_examples/validly/readme.txt (1)

1-119: LGTM!

The README documentation is comprehensive and well-structured, covering features, installation, usage examples, and rationale for the library.

v2/rscg_examples/validly/src/.tours/validly.tour (2)

27-30: Generated file path may not be portable.

The tour references a generated file at Valid/obj/GX/Validly.SourceGenerator/Validly.SourceGenerator.ValidatableSourceGenerator/Person.Validator.g.cs. This path depends on the intermediate output directory structure, which may not exist until after a build and could vary across environments.

Consider verifying that this path is accessible in typical usage scenarios. If users need to build the project before the tour works correctly, this should be documented in the tour description.


1-36: Tour structure is well-defined.

The CodeTour JSON structure is valid and provides a clear walkthrough of the Validly example, from project setup through generated code.

v2/rscg_examples/validly/description.json (1)

1-22: LGTM!

The description JSON correctly defines metadata for the Validly generator with proper structure and all required fields.

v2/book/list.html (2)

20-20: Count correctly updated.

The total RSCG examples count has been properly incremented to 236.


969-972: New entry follows established pattern.

The table row for validly (item 236) is correctly structured and consistent with other entries in the list.

v2/rscg_examples/validly/src/Valid.sln (1)

1-25: LGTM!

The Visual Studio solution file follows standard conventions with proper project references and configuration mappings.

v2/rscg_examples/validly/src/Valid/Valid.csproj (1)

15-17: Package references validated and secure. All specified versions exist in NuGet and no known vulnerabilities were found. Version disparity for Validly.Extensions.Validators (1.1.3) vs. the others (1.1.5) is confirmed.

later.md (1)

3-3: LGTM: Date update is correct.

The latest update date has been properly incremented to 2025-10-06.

v2/rscg_examples_site/docs/RSCG-Examples/index.md (3)

3-4: LGTM: Count updated correctly.

The title and description have been properly updated from 235 to 236 to reflect the addition of the new validly example.


1439-1449: LGTM: New Validator category follows existing pattern.

The new Validator category section is structured consistently with other categories, including the collapsible details block and link to the validly documentation.


1942-1942: LGTM: Mermaid diagram edge added correctly.

The new graph edge Validator--> validly((validly)) follows the existing pattern and properly represents the relationship between the category and the example.

v2/rscg_examples/validly/src/Valid/Person.cs (1)

1-14: LGTM: Well-structured example demonstrating Validly library.

The Person class correctly demonstrates the Validly library usage:

  • [Validatable] attribute enables source generation
  • partial modifier allows the generator to add validation methods
  • Validation attributes ([Range], [Required], [MinLength]) are properly applied
  • Default value for Name prevents null reference issues

This is clear, idiomatic example code for the Validly library.

[![NuGet](https://img.shields.io/nuget/v/Validly)](https://www.nuget.org/packages/Validly)
[![License MIT](https://img.shields.io/badge/License-MIT-brightgreen?style=flat-square)](https://opensource.org/licenses/MIT)
[![Support Ukraine](https://img.shields.io/badge/Support-Ukraine-FFDD00?labelColor=0057B7)](https://donate.redcross.org.uk/appeal/ukraine-crisis-appeal)<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify the link fragment points to a valid anchor.

The markdown linter flags this link fragment as potentially invalid. Ensure the #contributors- anchor exists in the document, or update the link to point to the correct section.


🏁 Script executed:

#!/bin/bash
# Verify if the contributors section exists in the document
rg -n "contributors" "v2/rscg_examples_site/docs/RSCG-Examples/validly.md"

Length of output: 118


🏁 Script executed:

rg -n -i '^#{1,6}.*contributors' v2/rscg_examples_site/docs/RSCG-Examples/validly.md

Length of output: 19


Fix contributors link fragment Change (#contributors-) to (#contributors) to match the existing ## Contributors heading. (validly.md:57)

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

57-57: Link fragments should be valid

(MD051, link-fragments)

🤖 Prompt for AI Agents
In v2/rscg_examples_site/docs/RSCG-Examples/validly.md around line 57, the
contributors link uses the fragment "(#contributors-)" which doesn't match the
actual "## Contributors" heading; update the link fragment to "(#contributors)"
so it points to the correct section anchor.

Comment on lines +35 to +37
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-",
SpeakTest=" "},
{"typeStep":"waitseconds","arg":"30"},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix JSON syntax error.

The JSON is malformed at line 35-36. The property SpeakTest=" " has invalid syntax.

Apply this diff to fix the JSON syntax:

 {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-",
-SpeakTest=" "},
+"SpeakTest": " "},

If SpeakTest is not a valid property for the browser typeStep, consider removing it entirely:

-{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-",
-SpeakTest=" "},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-"},
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-",
SpeakTest=" "},
{"typeStep":"waitseconds","arg":"30"},
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/validly#download-example-net--c-",
"SpeakTest": " "},
{"typeStep":"waitseconds","arg":"30"},
🧰 Tools
🪛 Biome (2.1.2)

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)

🤖 Prompt for AI Agents
In v2/rscg_examples/validly/video.json around lines 35-37 the JSON is malformed
because the property is written as SpeakTest=" " (invalid syntax); fix by either
removing the SpeakTest property entirely if it isn't a valid field for a
"browser" typeStep, or convert it to valid JSON by changing it to "SpeakTest": "
" (ensure double quotes around the key, a colon separator, and a string value),
and then verify surrounding commas and array/object structure remain valid.

@ignatandrei ignatandrei merged commit 42dc0ab into main Oct 6, 2025
3 checks passed
@ignatandrei ignatandrei deleted the 413-httpsgithubcomhookynsvalidly branch October 6, 2025 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

https://github.com/Hookyns/validly

2 participants