-
-
Notifications
You must be signed in to change notification settings - Fork 6
Add BlazorOcticons demo project #438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Introduced a new Blazor WebAssembly demo project showcasing the BlazorOcticons library. The commit includes project files, sample pages (Home, Counter, Weather, NotFound), layouts, styles, SVG assets, Bootstrap dependencies, and configuration files to demonstrate usage of BlazorOcticons components.
Introduced a new Blazor WebAssembly demo project showcasing the BlazorOcticons library. The commit includes project files, sample pages (Home, Counter, Weather, NotFound), layouts, styles, SVG assets, Bootstrap dependencies, and configuration files to demonstrate usage of BlazorOcticons components.
…Examples into BlazorOcticons
WalkthroughThis PR adds the BlazorOcticons RSCG example as item 247: a complete Blazor WebAssembly demo (components, pages, styles, sample data, csproj, Program.cs), metadata and description files, a CodeTour and video script, and updates repository/site metadata and exports to reflect the new entry with timestamp 2025-12-14. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–25 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (1)
⏰ 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)
🔇 Additional comments (3)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
v2/RSCGExamplesData/GeneratorDataRec.json (1)
1490-1500: Fix JSON syntax betweenImposterandBlazorOcticonsentriesAs currently shown, the
Imposterobject closes with}and theBlazorOcticonsobject starts immediately after, without a separating comma. That makes the JSON array invalid and will break any consumer that parses this file.You can fix it by adding a comma after the
Imposterobject; for example:- { - "ID": "Imposter", - "Category": 13, - "dtStart": "2025-12-13T00:00:00", - "show": true - } - { - "ID": "BlazorOcticons", - "Category": 21, - "dtStart": "2025-12-14T00:00:00", - "show": true - } + { + "ID": "Imposter", + "Category": 13, + "dtStart": "2025-12-13T00:00:00", + "show": true + }, + { + "ID": "BlazorOcticons", + "Category": 21, + "dtStart": "2025-12-14T00:00:00", + "show": true + }The
BlazorOcticonsmetadata itself (ID, category 21, dtStart, show) looks consistent with the rest of the catalog.README.md (1)
6144-6153: BlazorOcticons appears both as “not tested” and as example #247In the “Do not want to test 112 ( old ISourceGenerator )” section, item 11 still lists BlazorOcticons with the note “Why I have not tested : old ISourceGenerator”, but the generator is now fully documented and tested as example 247 above.
To avoid confusing readers, consider removing or updating that older entry to reflect the current status.
🧹 Nitpick comments (12)
v2/Generator/Program.cs (1)
155-160: Hard‑codedlastGeneratorlooks fine but is easy to forget to updateUsing
"Imposter"here is consistent with the new entry you’ve added; functionally this is fine.Longer term, consider deriving
lastGeneratorfrom your generator metadata (e.g., most recent MSFT-used ID) instead of a literal string to avoid having to remember to change this each time.v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Octicons/Andrei16.razor (1)
1-10: Icon component is fine; consider a small accessibility tweakThe parameterized SVG component looks correct and should work as intended.
If these icons are decorative, consider adding
aria-hidden="true"; if they convey meaning, considerrole="img"plus anaria-label/titleparameter so screen readers handle them appropriately.v2/rscg_examples/BlazorOcticons/src/BlazorDemo/BlazorDemo.csproj (1)
16-22: Consider marking the generator package asPrivateAssets="all"For
BlazorOcticonsGenerator, you can avoid leaking the generator as a transitive dependency by marking it private:<PackageReference Include="BlazorOcticonsGenerator" Version="1.3.0" PrivateAssets="all" />This is a common pattern for source generators, even in sample apps.
v2/rscg_examples/BlazorOcticons/description.json (1)
1-22: Metadata looks consistent; consider cleaning upincludeAdditionalFilesThe generator metadata (name, NuGet, GitHub,
goodFor,csprojDemo,csFiles, andexcludeDirectoryGenerated) all line up with the new sample.If
includeAdditionalFilesis meant to be “no extra files”, you might prefer an empty array:"includeAdditionalFiles": []instead of
[""], to avoid consumers having to special‑case an empty string path.v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/css/app.css (1)
5-7: Consider keeping a visible focus style forh1Removing the outline entirely can make keyboard focus harder to see when
FocusOnNavigatemoves focus to the heading. Consider using a custom visible focus style instead ofoutline: none;.v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Home.razor (1)
7-9: Addrelattribute to external link opened in a new tabFor safety and performance, add
rel="noopener noreferrer"to links usingtarget="_blank".-More icons are available at <a href="https://blazorocticons.net/" target="_blank">https://blazorocticons.net/</a> +More icons are available at <a href="https://blazorocticons.net/" target="_blank" rel="noopener noreferrer">https://blazorocticons.net/</a>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/NotFound.razor (1)
4-5: Optionally mark the message as an alert for screen readersTo make the Not Found message more prominent for assistive technologies, you could add
role="alert"to the paragraph:-<p>Sorry, the content you are looking for does not exist.</p> +<p role="alert">Sorry, the content you are looking for does not exist.</p>v2/rscg_examples_site/docs/indexRSCG.md (1)
23-23: Minor: Remove trailing space in author link.The link text has a trailing space before the closing bracket:
[BlazorOcticons by Evgeniy K. ]should be[BlazorOcticons by Evgeniy K.]Apply this diff to fix the spacing:
-|247| [BlazorOcticons by Evgeniy K. ](/docs/BlazorOcticons)|2025-12-14 => 14 December 2025 | [Blazor](/docs/Categories/Blazor) | +|247| [BlazorOcticons by Evgeniy K.](/docs/BlazorOcticons)|2025-12-14 => 14 December 2025 | [Blazor](/docs/Categories/Blazor) |v2/rscg_examples_site/docs/RSCG-Examples/BlazorOcticons.md (2)
72-74: Specify language for code fence.The fenced code block should specify a language identifier for proper syntax highlighting.
Apply this diff:
-``` +```bash dotnet add package BlazorOcticons--- `143-167`: **Use spaces instead of hard tabs for indentation.** The XML code block uses hard tabs for indentation on multiple lines. Markdown best practices recommend spaces for consistency and portability. Please replace hard tabs with spaces (2 or 4 spaces per indent level) throughout the XML code block (lines 143-167). </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/NavMenu.razor (1)</summary><blockquote> `1-8`: **Optional: improve navbar toggle accessibility with ARIA attributes** The toggle button only has `title="Navigation menu"`. For better screen‑reader support, consider adding `aria-label` and `aria-expanded` bound to `collapseNavMenu` (e.g., `aria-label="Toggle navigation"` and `aria-expanded="@(!collapseNavMenu)"`). This keeps behavior as-is while improving accessibility. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/MainLayout.razor.css (1)</summary><blockquote> `24-37`: **`::deep` usage is correct for Blazor CSS isolation; Biome warnings are benign** The `::deep` selectors here (e.g., `.top-row ::deep a`, `.top-row.auth ::deep a:first-child`) are the expected way to style descendants that may live inside child components when using Blazor’s CSS isolation. Biome flags them as unknown pseudo‑elements because it doesn’t understand framework‑specific deep selectors. You can either: - Keep the selectors as‑is (preferred for correct scoping) and adjust Biome config/rules to allow `::deep`, or - If you’re certain all targeted elements are in the same component, simplify to regular selectors and drop `::deep`. Functionally, the current CSS is fine; this is mainly a tooling configuration issue. Also applies to: 44-47, 67-71 </blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between f5516f2f3f041ffdff9909399c1d6238a8333745 and d9a26e7beb734bdbcb23989929b6b6d3cf67af05. </details> <details> <summary>⛔ Files ignored due to path filters (49)</summary> * `v2/Generator/all.csv` is excluded by `!**/*.csv` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/andrei-16.svg` is excluded by `!**/*.svg` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/favicon.png` is excluded by `!**/*.png` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/icon-192.png` is excluded by `!**/*.png` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js` is excluded by `!**/dist/**`, `!**/*.min.js` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map` is excluded by `!**/dist/**`, `!**/*.map`, `!**/*.min.js.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js` is excluded by `!**/dist/**`, `!**/*.min.js` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map` is excluded by `!**/dist/**`, `!**/*.map`, `!**/*.min.js.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.js` is excluded by `!**/dist/**` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map` is excluded by `!**/dist/**`, `!**/*.map` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js` is excluded by `!**/dist/**`, `!**/*.min.js` * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map` is excluded by `!**/dist/**`, `!**/*.map`, `!**/*.min.js.map` * `v2/rscg_examples_site/static/exports/RSCG.xlsx` is excluded by `!**/*.xlsx` </details> <details> <summary>📒 Files selected for processing (36)</summary> * `README.md` (2 hunks) * `later.md` (1 hunks) * `v2/.tours/BlazorOcticons.tour` (1 hunks) * `v2/Generator/Program.cs` (1 hunks) * `v2/RSCGExamplesData/GeneratorDataRec.json` (1 hunks) * `v2/rscg_examples/BlazorOcticons/description.json` (1 hunks) * `v2/rscg_examples/BlazorOcticons/nuget.txt` (1 hunks) * `v2/rscg_examples/BlazorOcticons/readme.txt` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo.slnx` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/App.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/BlazorDemo.csproj` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/MainLayout.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/MainLayout.razor.css` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/NavMenu.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/NavMenu.razor.css` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Octicons/Andrei16.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Counter.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Home.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/NotFound.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Weather.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Program.cs` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Properties/launchSettings.json` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/_Imports.razor` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/css/app.css` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/index.html` (1 hunks) * `v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/sample-data/weather.json` (1 hunks) * `v2/rscg_examples/BlazorOcticons/video.json` (1 hunks) * `v2/rscg_examples_site/docs/Authors/Evgeniy_K_.md` (1 hunks) * `v2/rscg_examples_site/docs/Categories/Blazor.md` (1 hunks) * `v2/rscg_examples_site/docs/Categories/_PrimitiveBlazor.mdx` (1 hunks) * `v2/rscg_examples_site/docs/RSCG-Examples/BlazorOcticons.md` (1 hunks) * `v2/rscg_examples_site/docs/RSCG-Examples/index.md` (4 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) </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>🪛 Biome (2.1.2)</summary> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/NavMenu.razor.css</summary> [error] 49-49: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 58-58: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 63-63: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) </details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/MainLayout.razor.css</summary> [error] 24-24: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 24-24: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 30-30: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 30-30: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 34-34: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 44-44: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 44-44: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) --- [error] 67-67: Unexpected unknown pseudo-elements: deep See MDN web docs for more details. Use a known pseudo-elements instead, such as: (lint/correctness/noUnknownPseudoElement) </details> <details> <summary>v2/rscg_examples/BlazorOcticons/video.json</summary> [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) </details> </details> <details> <summary>🪛 LanguageTool</summary> <details> <summary>v2/rscg_examples/BlazorOcticons/readme.txt</summary> [style] ~54-~54: Using many exclamation marks might seem excessive (in this case: 5 exclamation marks for a text that’s 1213 characters long) Context: ...ontribute All contributions are welcome! Feel free to raise any issues (bugs or ... (EN_EXCESSIVE_EXCLAMATION) --- [style] ~54-~54: Consider using a less common alternative to make your writing sound more unique and professional. Context: ...tribute All contributions are welcome! Feel free to raise any issues (bugs or feature reque... (FEEL_FREE_TO_STYLE_ME) </details> <details> <summary>v2/rscg_examples_site/docs/RSCG-Examples/BlazorOcticons.md</summary> [style] ~105-~105: Using many exclamation marks might seem excessive (in this case: 6 exclamation marks for a text that’s 2655 characters long) Context: ...ontribute All contributions are welcome! Feel free to raise any issues (bugs or ... (EN_EXCESSIVE_EXCLAMATION) --- [style] ~105-~105: Consider using a less common alternative to make your writing sound more unique and professional. Context: ...tribute All contributions are welcome! Feel free to raise any issues (bugs or feature reque... (FEEL_FREE_TO_STYLE_ME) </details> <details> <summary>v2/rscg_examples_site/docs/Categories/_PrimitiveBlazor.mdx</summary> [style] ~11-~11: Using many exclamation marks might seem excessive (in this case: 10 exclamation marks for a text that’s 1649 characters long) Context: ...ckages/GoLive.Generator.BlazorInterop/)  </details> </details> <details> <summary>🪛 markdownlint-cli2 (0.18.1)</summary> <details> <summary>v2/rscg_examples_site/docs/RSCG-Examples/BlazorOcticons.md</summary> 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) --- 72-72: Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 143-143: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 146-146: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 153-153: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 154-154: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 155-155: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 156-156: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 157-157: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 158-158: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 159-159: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 162-162: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 163-163: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 164-164: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 165-165: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 167-167: Hard tabs Column: 1 (MD010, no-hard-tabs) --- 231-231: Spaces inside link text (MD039, no-space-in-links) --- 245-245: Bare URL used (MD034, no-bare-urls) </details> <details> <summary>v2/rscg_examples_site/docs/indexRSCG.md</summary> 23-23: Spaces inside link text (MD039, no-space-in-links) </details> </details> </details> <details> <summary>⏰ 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)</summary> * GitHub Check: call-workflow-passing-data / build (24.3.0) </details> <details> <summary>🔇 Additional comments (21)</summary><blockquote> <details> <summary>v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1)</summary><blockquote> `7-7`: **Homepage feature count text is consistent** The updated title to “247 Examples (16 from MSFT)” aligns with the new example being added; looks good. </blockquote></details> <details> <summary>later.md (1)</summary><blockquote> `3-3`: **Latest update date bump looks correct** The “Latest Update” date matches the new BlazorOcticons entry (2025‑12‑14); no issues here. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/_Imports.razor (1)</summary><blockquote> `1-11`: **Global imports for the Blazor demo look good** The `_Imports.razor` setup mirrors the standard Blazor template and correctly adds your `BlazorDemo` and `BlazorOcticons.Octicons` namespaces for convenient component use. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/index.html (1)</summary><blockquote> `1-32`: **Blazor WASM entrypoint HTML looks good** Head/body structure, loading UI, error UI, and bootstrap script wiring are consistent with a typical Blazor WebAssembly app. No issues from a hosting/bootstrapping perspective. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/NavMenu.razor.css (1)</summary><blockquote> `49-66`: **`::deep` selectors are correct for Blazor CSS isolation; adjust linter instead** Biome’s `noUnknownPseudoElement` errors on `::deep` are expected here—Blazor’s CSS isolation pipeline understands `::deep` even though it’s not standard CSS. I’d keep these selectors as-is and instead configure Biome to allow `deep` (or disable that rule for this file) so you don’t lose useful diagnostics elsewhere. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Properties/launchSettings.json (1)</summary><blockquote> `1-24`: **Launch profiles are standard and consistent** HTTP/HTTPS profiles, ports, environment variables, and debug `inspectUri` all look in line with a typical Blazor WebAssembly dev setup. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/BlazorDemo.csproj (1)</summary><blockquote> `3-8`: **Double‑check `OverrideHtmlAssetPlaceholders` matches your `index.html` script placeholder** With `<OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders>`, the SDK expects specific placeholder patterns in your HTML (e.g., the `#[.{fingerprint}]` suffix you’re using on `blazor.webassembly.js`). Just verify that `_framework/blazor.webassembly#[.{fingerprint}].js` in `index.html` is the form your SDK version recognizes so asset fingerprinting works correctly at publish time. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo.slnx (1)</summary><blockquote> `1-3`: **Solution descriptor correctly targets the BlazorDemo project** The `.slnx` file cleanly references `BlazorDemo/BlazorDemo.csproj` and nothing else, which is ideal for this focused sample. </blockquote></details> <details> <summary>README.md (1)</summary><blockquote> `1-7`: **New BlazorOcticons entry and 247‑example counters are consistent** The heading, introductory paragraph, “Latest Update” date, and the new `### 247. BlazorOcticons` block (with generated‑on date, author, NuGet, link, and source) all align numerically and chronologically with the rest of the list. No content issues spotted there. Also applies to: 27-49 </blockquote></details> <details> <summary>v2/rscg_examples_site/docs/about.md (1)</summary><blockquote> `8-10`: **Generator count text is consistent** The updated “247 Roslyn Source Code Generator (RSCG)” wording matches the new example addition and looks good. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/wwwroot/sample-data/weather.json (1)</summary><blockquote> `1-27`: **Weather sample data is well-formed** JSON structure is valid and matches the typical Blazor weather forecast sample pattern. </blockquote></details> <details> <summary>v2/rscg_examples_site/docs/Categories/_PrimitiveBlazor.mdx (1)</summary><blockquote> `9-11`: **BlazorOcticons category entry looks consistent** The new BlazorOcticons row (and shifting GoLive to 5) matches the existing formatting and badge conventions for this list. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/readme.txt (1)</summary><blockquote> `1-54`: **README gives clear install and usage guidance** The badges, package table, `_Imports.razor` example, and usage snippet provide a solid quick-start for BlazorOcticons users. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/App.razor (1)</summary><blockquote> `1-6`: **Verify framework support for `Router.NotFoundPage`** The routing setup looks good, assuming your Blazor framework version supports the `NotFoundPage` parameter on `<Router>`. On older versions, this parameter doesn’t exist and you’d need the classic `<NotFound>...</NotFound>` block instead. Please confirm your target .NET/Blazor version aligns with this API surface. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Program.cs (1)</summary><blockquote> `1-11`: **LGTM! Standard Blazor WebAssembly bootstrap.** This Program.cs follows current best practices for Blazor WASM applications, correctly configuring root components and dependency injection. </blockquote></details> <details> <summary>v2/rscg_examples_site/docs/Categories/Blazor.md (1)</summary><blockquote> `3-13`: **LGTM! Category updated correctly.** The Blazor category count is properly incremented and BlazorOcticons is added with consistent formatting. </blockquote></details> <details> <summary>v2/rscg_examples_site/docs/RSCG-Examples/index.md (1)</summary><blockquote> `3-4`: **LGTM! Index properly updated for 247 examples.** All references to the example count, Blazor category, and diagram are consistently updated to include BlazorOcticons. Also applies to: 148-148, 169-173, 1598-1599 </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Layout/MainLayout.razor (1)</summary><blockquote> `1-16`: **LGTM! Standard Blazor layout implementation.** The MainLayout component follows the conventional two-pane structure with sidebar navigation and main content area. Proper use of `@inherits` and `@Body`. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Counter.razor (1)</summary><blockquote> `1-18`: **LGTM! Standard Blazor counter component.** This component follows Blazor conventions with proper routing, state management, and event handling. </blockquote></details> <details> <summary>v2/rscg_examples_site/static/exports/RSCG.json (1)</summary><blockquote> `1973-1979`: **BlazorOcticons entry structure looks consistent; just verify external links** The new `BlazorOcticons` entry matches the existing schema (Name/Link/NuGet/Source/Category/AddedOn) and preserves chronological ordering. Please just double‑check that the docs URL and NuGet package link resolve correctly once published. </blockquote></details> <details> <summary>v2/rscg_examples/BlazorOcticons/src/BlazorDemo/Pages/Weather.razor (1)</summary><blockquote> `1-57`: **Weather page implementation matches standard Blazor pattern** Routing, HttpClient usage, null checks, and table rendering all look correct and align with the typical Blazor WebAssembly weather template. No issues from a correctness perspective. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
| ,{ | ||
| "file": "rscg_examples/BlazorOcticons/src/BlazorDemo/Octicons/Andrei16.razor", | ||
| "description": "File Andrei16.razor ", | ||
| "pattern": "this is the code" | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "rscg_examples/BlazorOcticons/src/BlazorDemo/andrei-16.svg", | ||
| "description": "File andrei-16.svg ", | ||
| "pattern": "this is the code" | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "rscg_examples/BlazorOcticons/src/BlazorDemo/Program.cs", | ||
| "description": "File Program.cs \r\n>> dotnet run --project rscg_examples/BlazorOcticons/src/BlazorDemo/BlazorDemo.csproj ", | ||
| "pattern": "this is the code" | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verify CodeTour file paths and patterns (especially andrei-16.svg)
Step definitions look good overall, but two small things to check:
- Step 3 points at
rscg_examples/BlazorOcticons/src/BlazorDemo/andrei-16.svg. If the icon actually lives under anOcticonsfolder (as other files suggest), this path may be stale and the step won’t open the file. - Several steps use
"pattern": "this is the code", which probably doesn’t exist in those files. You may want a more specific pattern (or none) so CodeTour scrolls to a meaningful location.
Minor, but worth correcting so the tour works smoothly.
🤖 Prompt for AI Agents
In v2/.tours/BlazorOcticons.tour around lines 13 to 29, the tour steps reference
a possibly incorrect path for andrei-16.svg and use a placeholder pattern "this
is the code" that likely doesn't exist; update the andrei-16.svg file path to
its actual location (e.g., include the Octicons subfolder consistent with other
entries) and replace the generic "this is the code" patterns with meaningful,
file-specific patterns (or remove the pattern property) so CodeTour can open and
scroll to the intended locations.
| # Author : Evgeniy K. | ||
|
|
||
| Number RSCG: 1 | ||
|
|
||
|
|
||
| 1 [BlazorOcticons](/docs/BlazorOcticons) [](https://www.nuget.org/packages/BlazorOcticons/)  2025-12-14 | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adjust indentation so the BlazorOcticons line renders as content, not code
Line 6 starts with several spaces before 1 [BlazorOcticons].... In Markdown/MDX this typically turns the line into a code block rather than an ordered list or plain paragraph.
Consider removing the leading spaces:
- 1 [BlazorOcticons](/docs/BlazorOcticons) [](https://www.nuget.org/packages/BlazorOcticons/)  2025-12-14
+1 [BlazorOcticons](/docs/BlazorOcticons) [](https://www.nuget.org/packages/BlazorOcticons/)  2025-12-14This will render more naturally in the docs.
📝 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.
| # Author : Evgeniy K. | |
| Number RSCG: 1 | |
| 1 [BlazorOcticons](/docs/BlazorOcticons) [](https://www.nuget.org/packages/BlazorOcticons/)  2025-12-14 | |
| # Author : Evgeniy K. | |
| Number RSCG: 1 | |
| 1 [BlazorOcticons](/docs/BlazorOcticons) [](https://www.nuget.org/packages/BlazorOcticons/)  2025-12-14 | |
🤖 Prompt for AI Agents
In v2/rscg_examples_site/docs/Authors/Evgeniy_K_.md around lines 1 to 7, the
line beginning with several leading spaces (line 6) causes the BlazorOcticons
entry to be rendered as a code block; remove the leading spaces so the line
starts at column 0 (e.g., "1 [BlazorOcticons]...") or convert it to a proper
Markdown list item without indentation to ensure it renders as normal
content/list rather than code.
| @@ -0,0 +1 @@ | |||
| Package Description No newline at end of file | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace placeholder NuGet description with real text
nuget.txt currently contains only “Package Description”. If this surfaces in generated docs or the site, it will look unfinished. Consider replacing it with a short, meaningful description of BlazorOcticons (or confirm this file is unused/overwritten in your tooling).
🤖 Prompt for AI Agents
In v2/rscg_examples/BlazorOcticons/nuget.txt around lines 1 to 1, the file
contains only the placeholder "Package Description"; replace it with a concise,
meaningful NuGet package description for BlazorOcticons (e.g., one sentence
summarizing what the package provides, its main features and intended use), or
if the file is unused in your build/tooling, remove it or mark it as
intentionally blank with a comment explaining why.
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/BlazorOcticons#download-example-net--c-", | ||
| SpeakTest=" "}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Critical: Invalid JSON syntax - unquoted property key.
The property key SpeakTest on line 36 is not quoted, making this invalid JSON. This will cause parsing errors when the file is loaded.
Apply this diff to fix the syntax error:
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/BlazorOcticons#download-example-net--c-",
-SpeakTest=" "},
+"SpeakTest":" "},📝 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.
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/BlazorOcticons#download-example-net--c-", | |
| SpeakTest=" "}, | |
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/BlazorOcticons#download-example-net--c-", | |
| "SpeakTest":" "}, |
🧰 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/BlazorOcticons/video.json around lines 35-36, the property
SpeakTest is written using invalid syntax (SpeakTest=" "), causing invalid JSON;
change it to a properly quoted JSON property with a colon, e.g. "SpeakTest": "
", and ensure commas/spacing remain valid so the overall object is valid JSON.
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.