
- Complete NestJS TypeScript implementation with WebSocket support - Direct messaging (DM) and group chat functionality - End-to-end encryption with AES encryption and key pairs - Media file support (images, videos, audio, documents) up to 100MB - Push notifications with Firebase Cloud Messaging integration - Mention alerts and real-time typing indicators - User authentication with JWT and Passport - SQLite database with TypeORM entities and relationships - Comprehensive API documentation with Swagger/OpenAPI - File upload handling with secure access control - Online/offline status tracking and presence management - Message editing, deletion, and reply functionality - Notification management with automatic cleanup - Health check endpoint for monitoring - CORS configuration for cross-origin requests - Environment-based configuration management - Structured for Flutter SDK integration Features implemented: ✅ Real-time messaging with Socket.IO ✅ User registration and authentication ✅ Direct messages and group chats ✅ Media file uploads and management ✅ End-to-end encryption ✅ Push notifications ✅ Mention alerts ✅ Typing indicators ✅ Message read receipts ✅ Online status tracking ✅ File access control ✅ Comprehensive API documentation Ready for Flutter SDK development and production deployment.
100 lines
2.9 KiB
Markdown
100 lines
2.9 KiB
Markdown
<a href="https://marked.js.org">
|
|
<img width="60px" height="60px" src="https://marked.js.org/img/logo-black.svg" align="right" />
|
|
</a>
|
|
|
|
# Marked
|
|
|
|
[](https://www.npmjs.com/package/marked)
|
|
[](https://cdn.jsdelivr.net/npm/marked/marked.min.js)
|
|
[](https://packagephobia.now.sh/result?p=marked)
|
|
[](https://www.npmjs.com/package/marked)
|
|
[](https://github.com/markedjs/marked/actions)
|
|
[](https://snyk.io/test/npm/marked)
|
|
|
|
- ⚡ built for speed
|
|
- ⬇️ low-level compiler for parsing markdown without caching or blocking for long periods of time
|
|
- ⚖️ light-weight while implementing all markdown features from the supported flavors & specifications
|
|
- 🌐 works in a browser, on a server, or from a command line interface (CLI)
|
|
|
|
## Demo
|
|
|
|
Checkout the [demo page](https://marked.js.org/demo/) to see marked in action ⛹️
|
|
|
|
## Docs
|
|
|
|
Our [documentation pages](https://marked.js.org) are also rendered using marked 💯
|
|
|
|
Also read about:
|
|
|
|
* [Options](https://marked.js.org/#/USING_ADVANCED.md)
|
|
* [Extensibility](https://marked.js.org/#/USING_PRO.md)
|
|
|
|
## Compatibility
|
|
|
|
**Node.js:** Only [current and LTS](https://nodejs.org/en/about/releases/) Node.js versions are supported. End of life Node.js versions may become incompatible with Marked at any point in time.
|
|
|
|
**Browser:** Not IE11 :)
|
|
|
|
## Installation
|
|
|
|
**CLI:**
|
|
|
|
```sh
|
|
npm install -g marked
|
|
```
|
|
|
|
**In-browser:**
|
|
|
|
```sh
|
|
npm install marked
|
|
npm install @types/marked # For TypeScript projects
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Warning: 🚨 Marked does not [sanitize](https://marked.js.org/#/USING_ADVANCED.md#options) the output HTML. Please use a sanitize library, like [DOMPurify](https://github.com/cure53/DOMPurify) (recommended), [sanitize-html](https://github.com/apostrophecms/sanitize-html) or [insane](https://github.com/bevacqua/insane) on the *output* HTML! 🚨
|
|
|
|
```
|
|
DOMPurify.sanitize(marked.parse(`<img src="x" onerror="alert('not happening')">`));
|
|
```
|
|
|
|
**CLI**
|
|
|
|
``` bash
|
|
# Example with stdin input
|
|
$ marked -o hello.html
|
|
hello world
|
|
^D
|
|
$ cat hello.html
|
|
<p>hello world</p>
|
|
```
|
|
|
|
```bash
|
|
# Print all options
|
|
$ marked --help
|
|
```
|
|
|
|
**Browser**
|
|
|
|
```html
|
|
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<title>Marked in the browser</title>
|
|
</head>
|
|
<body>
|
|
<div id="content"></div>
|
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
<script>
|
|
document.getElementById('content').innerHTML =
|
|
marked.parse('# Marked in the browser\n\nRendered by **marked**.');
|
|
</script>
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
## License
|
|
|
|
Copyright (c) 2011-2022, Christopher Jeffrey. (MIT License)
|