Conversation
…gfm rehype-slug rehype-autolink-headings rehype-raw rehype-sanitize @shikijs/rehype shiki"
…ethods and add slug-based lookup
…ic routing and content rendering
…Index for improved loading state
…r improved async handling
…ated read time, and heading extraction
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
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 |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||||
There was a problem hiding this comment.
Pull Request Overview
This pull request introduces a comprehensive tutorial system enhancement with markdown rendering, slug-based routing, and improved user experience. The changes focus on creating dynamic tutorial pages with full markdown support and implementing better navigation patterns.
- Adds dynamic tutorial pages with markdown rendering using ReactMarkdown and syntax highlighting
- Implements slug-based routing and API endpoints for SEO-friendly URLs
- Creates loading states with skeleton components for improved UX
Reviewed Changes
Copilot reviewed 21 out of 23 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tutorialApi.ts | Refactors API with new slug-based endpoints and consolidated auth headers |
| tutorials.controller.ts | Adds slug-based lookup endpoint for tutorials |
| tutorials.service.ts | Implements slug generation and findOneBySlug method with duplicate checking |
| tutorials.entity.ts | Extends entity with slug and isPublished fields |
| page.tsx (tutorial) | Creates dynamic tutorial page with comprehensive markdown rendering |
| TutorialsIndex.tsx | Implements tutorial listing with search and skeleton loading states |
| CardSkeleton.tsx | Provides loading skeleton component for tutorial cards |
| package.json | Adds markdown processing and syntax highlighting dependencies |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
… in TutorialService
…estimation and heading extraction
# Conflicts: # apps/web/package.json # apps/web/src/types/tutorial.ts # apps/web/src/utils/api/tutorialApi.ts # pnpm-lock.yaml
…improved code block handling and layout adjustments
…nstead of exits()
… for improved performance
Description
This pull request introduces several enhancements to the tutorials section, including the following changes:
TutorialPageto handle parameters as Promises for asynchronous capabilities.CardSkeletoncomponent and updatedTutorialsIndexfor an improved loading state display.Tutorialinterface withslugandisPublishedfields, along with updates to API and DTOs to support slug-based lookups and improve consistency.Additional updates include:
CategoriePagetoCategoriesPagefor better naming consistency.Checklist
PR Type
Enhancement, Other
Description
Add dynamic tutorial pages with markdown rendering
Implement slug-based routing and API endpoints
Create loading states with skeleton components
Enhance tutorial interface with new fields
Diagram Walkthrough
File Walkthrough
14 files
Refactor API with slug endpoints and auth headersAdd slug-based tutorial lookup endpointImplement slug generation and findOneBySlug methodAdd slug and isPublished fields to entityUpdate Tutorial interface with slug and isPublishedAdd transform decorators and validation improvementsExtend DTOs with slug, views, and isPublishedCreate table of contents extraction utilityAdd slug generation helper functionImplement dynamic tutorial page with markdown renderingCreate tutorials listing with search and skeleton loadingAdd smooth scrolling for hash navigationCreate skeleton loading component for tutorial cardsCreate tutorials index page with search params3 files
Clean up imports and validation decoratorsCreate mockup tutorial page componentRename CategoriePage to CategoriesPage for consistency1 files
Add typography plugin and Prism theme imports2 files
Add markdown processing and syntax highlighting dependenciesAdd slugify dependency to root package3 files