A lightweight Angular library for parsing and displaying README.md content with basic markdown support. This library provides a simple way to render markdown content in your Angular applications without heavy dependencies.
- 📝 Parsing of basic markdown elements
- 🔒 Secure HTML rendering with built-in sanitization
- 🎨 GitHub-like styling
- 🚀 Lightweight and performant
- 📱 Responsive design
- 🛠 Easy to customize and extend
npm install ng-readme-parser
- Headers (H3 to H6)
- Bold text
- Italic text
- Unordered lists
- Ordered lists
- Line breaks and paragraphs
Add the ReadmeParserModule to your application's module imports:
import { ReadmeParserModule } from 'ng-readme-parser';
@NgModule({
imports: [
// ... other imports
ReadmeParserModule
],
// ... rest of the module configuration
})
export class AppModule { }
Add the readme viewer component to your template:
<lib-readme-viewer [content]="readmeContent"></lib-readme-viewer>
In your component's TypeScript file:
export class YourComponent {
readmeContent = `
### Example Header
This is a paragraph with **bold** and *italic* text.
- Bullet point 1
- Bullet point 2
- Nested bullet point
1. Numbered item 1
2. Numbered item 2
`;
}
### H3 Header
#### H4 Header
##### H5 Header
###### H6 Header
**Bold Text**
*Italic Text*
Unordered lists:
- Item 1
- Item 2
- Nested item
Ordered lists:
1. First item
2. Second item
1. Nested numbered item
Input | Type | Description | Required |
---|---|---|---|
content | string | The markdown content to render | Yes |
Method | Parameters | Return Type | Description |
---|---|---|---|
parse | markdown: string | string | Converts markdown string to sanitized HTML |
The component comes with default GitHub-like styling. You can override these styles in your application:
:host ::ng-deep .readme-content {
/* Your custom styles here */
}
To add support for additional markdown elements, extend the ReadmeParserService
:
@Injectable()
export class CustomParserService extends ReadmeParserService {
parse(markdown: string): string {
let html = super.parse(markdown);
// Add your custom parsing logic here
return html;
}
}
The library implements several security measures:
- HTML sanitization using Angular's DomSanitizer
- XSS protection
- Safe HTML rendering
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Inspired by GitHub's README rendering
- Built with Angular Framework
For support, issues, or feature requests, please create an issue in the GitHub repository.