A lightweight, self-hosted memo hub. Open Source and Free forever.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
andrigamerita d264f45979
fix: code blocks of unknown languages cause HTML injection (#3711)
* fix: code blocks of unknown languages cause HTML injection

A code block of unknown language (that is, a language not treated as special by Memos and not handled by highlight.js) should fall back on rendering its plaintext content. However, the content is never properly escaped before it is appended to the DOM, and thus any string that happens to contain HTML is unsafely rendered. This commit fixes the issue by ensuring that, when none of the previous cases handle the text, any HTML entities are escaped first.

* Update CodeBlock.tsx to conform to eslint
9 months ago
.github chore: fix build artifacts action 9 months ago
bin/memos feat: add public flag instead of system setting to enable signup (#3589) 10 months ago
docs chore: buf generate 9 months ago
internal refactor: update memo tags 12 months ago
plugin chore: update s3 config 11 months ago
proto feat: add snippet field to memo message (#3689) 9 months ago
scripts chore: retire outdate scripts 11 months ago
server feat: write memo UID in file names when exporting to Markdown (#3712) 9 months ago
store fix: memo content snippet 9 months ago
test feat: add public flag instead of system setting to enable signup (#3589) 10 months ago
web fix: code blocks of unknown languages cause HTML injection (#3711) 9 months ago
.dockerignore chore: update resource dialog style (#982) 2 years ago
.gitignore feat: return not found error instead internal error for local file not exist (#3543) 11 months ago
.golangci.yaml chore: update linter rules 1 year ago
.goreleaser.yaml feat: add goreleaser 1 year ago
CODEOWNERS chore: update readme (#1047) 2 years ago
Dockerfile chore: rename router package 12 months ago
LICENSE feat: responsive view (#75) 3 years ago
README.md chore: update gomark source 11 months ago
SECURITY.md chore: update security 1 year ago
go.mod chore: bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.17.4 to 1.17.7 (#3690) 9 months ago
go.sum chore: bump github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.17.4 to 1.17.7 (#3690) 9 months ago

README.md

Memos

A privacy-first, lightweight note-taking service. Easily capture and share your great thoughts.

Home PageBlogsDocsLive Demo

Docker pull Discord

demo

Key points

  • Open source and free to use. Embrace a future where creativity knows no boundaries with our open-source solution. All features are free to use and will never be charged in any form or content.
  • Self-hosting with Docker in just seconds. Enjoy the flexibility, scalability, and ease of setup that Docker provides, allowing you to have full control over your data and privacy.
  • Pure text with added Markdown support. Say goodbye to the overwhelming mental burden of rich formatting and embrace a minimalist approach.
  • Customize and share your notes effortlessly. With our intuitive sharing features, you can easily collaborate and distribute your notes with others.
  • RESTful API for third-party services. Embrace the power of integration and unleash new possibilities with our RESTful API support.

Deploy with Docker in seconds

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable

[!NOTE] This command is only applicable for Unix/Linux systems. For Windows, please refer to the detailed documentation.

The ~/.memos/ directory will be used as the data directory on your local machine, while /var/opt/memos is the directory of the volume in Docker and should not be modified.

Learn more about other installation methods.

Contribution

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. We greatly appreciate any contributions you make. Thank you for being a part of our community! 🥰

Internationalization

Memos supports multiple languages. You can help us translate Memos into your language. We use Weblate to manage translations.

Translation status

Star history

Star History Chart

Other projects

  • Slash: An open source, self-hosted bookmarks and link sharing platform. Save and share your links very easily.
  • Gomark: A markdown parser written in Go for Memos. And its WebAssembly version is also available.