HedgeDoc - Ideas grow better together
Find a file
Dexter Chua e45327df5d Allow for undefined email and displayName
OAuth2 allows the user to only consent to a subset of the scopes
requested. Previously, the Generic Oauth2 implementation assumes that
the `username`, `email` and `displayName` attributes are supplied, and
may crash if they are not defined.

This commit allows for `email` and `displayName` to not be defined,
either through the user refusing consent or the OAuth2 configuration
not asking for them in the first place (by not setting
`userProfile*Attr`).

If `email` is not provided, the `emails` property is simply left empty.
If `displayName` is not provided, it is left undefined, and CodiMD uses
the `username` whenever the `displayName` is expected.

This does not deal with the case where `username` is not provided. Since
usernames are not unique in CodiMD, it is possible to deal with this by
setting a dummy username. This can be added in a future commit if
desired.

Fixes #406

Signed-off-by: Dexter Chua <dalcde@yahoo.com.hk>
2020-06-22 23:09:35 +08:00
bin
docs
locales
public
src Allow for undefined email and displayName 2020-06-22 23:09:35 +08:00
.babelrc
.editorconfig
.eslintignore Do not lint migration code 2020-05-24 18:11:47 +02:00
.eslintrc.js
.gitignore
.mailmap
.sequelizerc.example
.travis.yml
app.json
AUTHORS
CHANGELOG.md
CODE_OF_CONDUCT.md
config.json.example
CONTRIBUTING.md
LICENSE
package.json Fully dedicate our soul to yarn 2020-06-18 16:18:37 +08:00
README.md
SECURITY.md
tsconfig.json Add @types/codemirror 2020-05-25 23:33:47 +02:00
webpack.common.js
webpack.dev.js
webpack.htmlexport.js
webpack.prod.js
yarn.lock Update yarn.lock 2020-05-25 23:34:16 +02:00

CodiMD

#CodiMD on matrix.org build status version POEditor Mastodon

CodiMD lets you create real-time collaborative markdown notes. You can test-drive it by visiting our CodiMD demo server.

It is inspired by Hackpad, Etherpad and similar collaborative editors. This project originated with the team at HackMD and now forked into its own organisation. A longer writeup can be read in the history doc.

CodiMD 1.3.2 with its feature demonstration page open

Community and Contributions

We welcome contributions! There's a lot to do: If you would like to report bugs, the issue tracker is the right place. If you can help translating, find us on POEditor. To get started developing, take a look at the docs/dev directory. In any case: come talk to us, we'll be delighted to help you with the first steps.

To stay up to date with our work or get support it's recommended to join our Matrix channel, stop by our community forums or subscribe to the release feed. We also engage in regular community calls (RSS) which you are very welcome to join.

Installation / Upgrading

You can run CodiMD in a number of ways, and we created setup instructions for all of these:

If you do not wish to run your own setup, you can find a commercial offering at https://hackmd.io. This is not the same codebase as this one, but it is a very similar project.

Configuration

Theres two main ways to configure your CodiMD instance: Config file or environment variables. You can choose what works best for you.

CodiMD can integrate with

  • facebook, twitter, github, gitlab, dropbox, google, ldap, saml and oauth2 for login
  • imgur, s3, minio, azure for image/attachment storage (files can also be local!)
  • dropbox for export and import

More info about that can be found in the configuration docs above.

Browser support

To use CodiMD, your browser should match or exceed these versions:

  • Chrome Chrome >= 47, Chrome Chrome for Android >= 47
  • Safari Safari >= 9, iOS Safarai iOS Safari >= 8.4
  • Firefox Firefox >= 44
  • IE IE >= 9, Edge Edge >= 12
  • Opera Opera >= 34, Opera Mini Opera Mini not supported
  • Android Browser Android Browser >= 4.4

Our community has created related tools, we'd like to highlight codimd-cli which lets you use CodiMD from the comfort of your command line.

License

Licensed under AGPLv3. For our list of contributors, see AUTHORS.