Replace CodiMD with HedgeDoc

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in public/views

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in README

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in SECURITY.md

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in LICENSE

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in docs/configuration.md

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in bin/setup

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in docs/guides

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in docs/dev

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in docs/guides/auth

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in docs/setup

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update various links in code to the new GitHub org.

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: codiMDVersion.js is now hedgeDocVersion.js

Signed-off-by: David Mehren <git@herrmehren.de>
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: References in docs/setup/yunohost

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rebrand to HedgeDoc: Add banner and logo

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Update links in docs/guides/migrate-etherpad

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Remove note in docs/guides/auth/github

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Replace links in public/docs/features

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Add todo placeholder in docs/history

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Replace github link in public/views/index/body

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Replace github link in README

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Add logo to README

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Rename to HedgeDoc: Add note about the renaming to the front page

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>

Removed Travis from README.md and change CodiMD to HedgeDoc in some places

Signed-off-by: Yannick Bungers <git@innay.de>

Some more renaming to HedgeDoc
- Fixed capitalization of HedgeDoc
- Added renaming for etherpad migration doc

Signed-off-by: Yannick Bungers <git@innay.de>

Changed Repo name to hedgedoc

Signed-off-by: Yannick Bungers <git@innay.de>
This commit is contained in:
Erik Michelson 2020-07-02 17:22:52 +02:00 committed by Tilman Vatteroth
parent 299301f0fe
commit b28839484d
No known key found for this signature in database
GPG key ID: DEBDB3F34641B019
85 changed files with 322 additions and 258 deletions

View file

@ -14,7 +14,7 @@ trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[{.travis.yml,npm-shrinkwrap.json,package.json}]
[{npm-shrinkwrap.json,package.json}]
indent_style = space
indent_size = 2

View file

@ -3,5 +3,5 @@
Please refer to the release notes published under
[`public/docs/release-notes.md`](public/docs/release-notes.md).
These are also available on each CodiMD instance under
These are also available on each HedgeDoc instance under
<https://[domain-name]/release-notes>

View file

@ -25,7 +25,7 @@ interactions with the project.
## Sign your work
We use the Developer Certificate of Origin (DCO) as a additional safeguard
for the CodiMD project. This is a well established and widely used
for the HedgeDoc project. This is a well established and widely used
mechanism to assure contributors have confirmed their right to license
their contribution under the project's license.
Please read [docs/legal/developer-certificate-of-origin.txt][dcofile].

View file

@ -629,12 +629,12 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
CodiMD - Realtime collaborative markdown notes on all platforms.
HedgeDoc - Realtime collaborative markdown notes on all platforms.
Copyright (C) 2019 Christoph (Sheogorath) Kern
Copyright (C) 2019 Claudius Coenen
Copyright (C) 2019 Max Wu
Copyright (C) 2017 Yukai Huang
And more can be found on https://github.com/codimd/server/graphs/contributors
And more can be found on https://github.com/hedgedoc/hedgedoc/graphs/contributors
Or in the local AUTHORS file

View file

@ -1,21 +1,20 @@
# CodiMD
![HedgeDoc Logo](https://raw.githubusercontent.com/hedgedoc/hedgedoc-logo/main/LOGOTYPE/SVG/HedgeDoc-Logo%204b.svg)
[![#CodiMD on matrix.org][matrix.org-image]][matrix.org-url]
[![build status][travis-image]][travis-url]
# HedgeDoc
[![#HedgeDoc on matrix.org][matrix.org-image]][matrix.org-url]
[![version][github-version-badge]][github-release-page]
[![POEditor][poeditor-image]][poeditor-url]
[![Mastodon][social-mastodon-image]][social-mastodon]
CodiMD lets you create real-time collaborative markdown notes. You can test-drive
it by visiting our [CodiMD demo server][codimd-demo].
**Note**: CodiMD is in the process of [changing its name to HedgeDoc](https://github.com/codimd/server/issues/452).
HedgeDoc lets you create real-time collaborative markdown notes. You can test-drive
it by visiting our [HedgeDoc demo server][hedgedoc-demo].
It is inspired by Hackpad, Etherpad and similar collaborative editors. This
project originated with the team at [HackMD](https://hackmd.io) and now forked
into its own organisation. [A longer writeup can be read in the history doc](docs/history.md).
[![CodiMD 1.3.2 with its feature demonstration page open](docs/images/CodiMD-1.3.2-features.png)][codimd-demo-features]
[![HedgeDoc 1.3.2 with its feature demonstration page open](docs/images/CodiMD-1.3.2-features.png)][hedgedoc-demo-features]
## Community and Contributions
@ -26,13 +25,13 @@ take a look at the [docs/dev](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][matrix.org-url], stop by our [community forums][codimd-community]
[Matrix channel][matrix.org-url], stop by our [community forums][hedgedoc-community]
or subscribe to the [release feed][github-release-feed]. We also engage in
regular [community calls][codimd-community-calls] ([RSS](https://community.codimd.org/t/codimd-community-call/19.rss)) which you are very welcome to join.
regular [community calls][hedgedoc-community-calls] ([RSS](https://community.hedgedoc.org/t/codimd-community-call/19.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
You can run HedgeDoc in a number of ways, and we created setup instructions for
all of these:
- [Docker](docs/setup/docker.md)
@ -44,10 +43,10 @@ all of these:
## Configuration
Theres two main ways to [configure](docs/configuration.md) your CodiMD instance:
Theres two main ways to [configure](docs/configuration.md) your HedgeDoc instance:
config file or environment variables. You can choose what works best for you.
CodiMD can integrate with
HedgeDoc can integrate with
- facebook, twitter, github, gitlab, mattermost, dropbox, google, ldap, saml and [oauth2](docs/guides/auth/oauth.md) **for login**
- imgur, s3, minio, azure **for image/attachment storage** (files can also be local!)
@ -57,7 +56,7 @@ 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:
To use HedgeDoc, your browser should match or exceed these versions:
- ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/chrome/chrome_24x24.png) Chrome >= 47, ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/chrome/chrome_24x24.png) Chrome for Android >= 47
- ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/safari/safari_24x24.png) Safari >= 9, ![iOS Safarai](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/safari-ios/safari-ios_24x24.png) iOS Safari >= 8.4
@ -68,36 +67,36 @@ To use CodiMD, your browser should match or exceed these versions:
## Backup/restore your instance
To backup codimd, you should:
To backup HedgeDoc, you should:
- backup your database
- backup your custom config file if you have one
- backup the upload folder (see the [uploadsPath](./docs/configuration.md#codimd-paths-stuff) config directive)
- backup the upload folder (see the [uploadsPath](./docs/configuration.md#hedgedoc-paths-stuff) config directive)
Restoring an existing instance of codimd is then just a matter of restoring these elements.
Restoring an existing instance of HedgeDoc is then just a matter of restoring these elements.
## Related Tools
Our community has created related tools, we'd like to highlight [codimd-cli](https://github.com/codimd/cli)
which lets you use CodiMD from the comfort of your command line.
Our community has created related tools, we'd like to highlight [hedgedoc-cli](https://github.com/hedgedoc/cli)
which lets you use HedgeDoc from the comfort of your command line.
## License
Licensed under AGPLv3. For our list of contributors, see [AUTHORS](AUTHORS).
The license does not include the HedgeDoc logo, whose terms of usage can be found in the [github repository](https://github.com/hedgedoc/hedgedoc-logo).
[matrix.org-image]: https://img.shields.io/matrix/hedgedoc:matrix.org?logo=matrix&server_fqdn=matrix.org
[matrix.org-url]: https://matrix.to/#/#hedgedoc:matrix.org
[travis-image]: https://travis-ci.org/codimd/server.svg?branch=master
[travis-url]: https://travis-ci.org/codimd/server
[github-version-badge]: https://img.shields.io/github/release/codimd/server.svg
[github-release-page]: https://github.com/codimd/server/releases
[github-release-feed]: https://github.com/codimd/server/releases.atom
[github-issue-tracker]: https://github.com/codimd/server/issues/
[github-version-badge]: https://img.shields.io/github/release/hedgedoc/hedgedoc.svg
[github-release-page]: https://github.com/hedgedoc/hedgedoc/releases
[github-release-feed]: https://github.com/hedgedoc/hedgedoc/releases.atom
[github-issue-tracker]: https://github.com/hedgedoc/hedgedoc/issues/
[poeditor-image]: https://img.shields.io/badge/POEditor-translate-blue.svg
[poeditor-url]: https://poeditor.com/join/project/1OpGjF2Jir
[codimd-demo]: https://demo.codimd.org
[codimd-demo-features]: https://demo.codimd.org/features
[codimd-community]: https://community.codimd.org
[codimd-community-calls]: https://community.codimd.org/t/codimd-community-call/19
[social-mastodon]: https://social.codimd.org/mastodon
[hedgedoc-demo]: https://demo.hedgedoc.org
[hedgedoc-demo-features]: https://demo.hedgedoc.org/features
[hedgedoc-community]: https://community.hedgedoc.org
[hedgedoc-community-calls]: https://community.hedgedoc.org/t/codimd-community-call/19
[social-mastodon]: https://social.hedgedoc.org/mastodon
[social-mastodon-image]: https://img.shields.io/mastodon/follow/18547?domain=https%3A%2F%2Fsocial.snopyta.org&style=social

View file

@ -2,12 +2,12 @@
## Supported Versions
Only the latest release of CodiMD is supported. We don't have the
Only the latest release of HedgeDoc is supported. We don't have the
ressources to maintain multiple versions.
## Reporting a Vulnerability
If you find a vulnerability for [this repository](https://github.com/codimd/server), please report it to
If you find a vulnerability for [this repository](https://github.com/hedgedoc/hedgedoc), please report it to
[@SISheogorath](https://github.com/SISheogorath).
Please report your findings OpenPGP encrypted. If you are not aware of
@ -25,8 +25,8 @@ the fix, we want to encurage you to publish your findings as you like.
We'll also credit you in the release notes.
When your findings are not accepted as a security issue, feel free to write
a fix yourself and contribute it to CodiMD, as well as publish them as you
like and allow people to make in informed decision about using CodiMD.
a fix yourself and contribute it to HedgeDoc, as well as publish them as you
like and allow people to make in informed decision about using HedgeDoc.
If you have any further questions, feel free to reach out to the
[community chat](https://matrix.to/#/#hedgedoc:matrix.org) or the mentioned contacts above.

4
app.js
View file

@ -176,7 +176,7 @@ app.use(passport.session())
app.use(require('./lib/web/middleware/checkURIValid'))
// redirect url without trailing slashes
app.use(require('./lib/web/middleware/redirectWithoutTrailingSlashes'))
app.use(require('./lib/web/middleware/codiMDVersion'))
app.use(require('./lib/web/middleware/hedgeDocVersion'))
// routes need sessions
// template files
@ -287,7 +287,7 @@ process.on('uncaughtException', function (err) {
// install exit handler
function handleTermSignals () {
logger.info('CodiMD has been killed by signal, try to exit gracefully...')
logger.info('HedgeDoc has been killed by signal, try to exit gracefully...')
realtime.maintenance = true
// disconnect all socket.io clients
Object.keys(io.sockets.sockets).forEach(function (key) {

View file

@ -1,14 +1,14 @@
{
"name": "CodiMD",
"name": "HedgeDoc",
"description": "Realtime collaborative markdown notes on all platforms",
"keywords": [
"Collaborative",
"Markdown",
"Notes"
],
"website": "https://codimd.org",
"repository": "https://github.com/codimd/server",
"logo": "https://github.com/codimd/server/raw/master/public/codimd-icon-1024.png",
"website": "https://hedgedoc.org",
"repository": "https://github.com/hedgedoc/hedgedoc",
"logo": "https://github.com/hedgedoc/hedgedoc/raw/master/public/hedgedoc-icon-1024.png",
"success_url": "/",
"env": {
"NPM_CONFIG_PRODUCTION": {

View file

@ -35,10 +35,10 @@ yarn install --production=false --pure-lockfile
cat << EOF
Edit the following config file to setup CodiMD server and client.
Read more info at https://github.com/codimd/server#configuration-files
Edit the following config file to setup HedgeDoc server and client.
Read more info at https://github.com/hedgedoc/server#configuration-files
* config.json -- CodiMD config
* config.json -- HedgeDoc config
* .sequelizerc -- db config
EOF

View file

@ -13,7 +13,7 @@
},
"db": {
"dialect": "sqlite",
"storage": "./db.codimd.sqlite"
"storage": "./db.hedgedoc.sqlite"
},
"linkifyHeaderStyle": "gfm"
},
@ -39,7 +39,7 @@
"db": {
"username": "",
"password": "",
"database": "codimd",
"database": "hedgedoc",
"host": "localhost",
"port": "5432",
"dialect": "postgres"

View file

@ -1,6 +1,6 @@
# Configuration
You can choose to configure CodiMD with either a config file or with environment variables.
You can choose to configure HedgeDoc with either a config file or with environment variables.
Environment variables take precedence over configurations from the config files. They generally start with `CMD_` for our own options, but we also list node-specific options you can configure this way.
@ -18,18 +18,18 @@ to `config.json` before filling in your own details.
| | `NODE_ENV` | `production` or `development` | set current environment (will apply corresponding settings in the `config.json`) |
| `debug` | `DEBUG` | `true` or `false` | set debug mode, show more logs |
## CodiMD basics
## HedgeDoc basics
| config file | environment | **default** and example value | description |
| ------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `allowPDFExport` | `CMD_ALLOW_PDF_EXPORT` | **`true`** or `false` | Enable or disable PDF exports |
| | `CMD_CONFIG_FILE` | **no default**, `/path/to/config.json` | optional override for the path to CodiMD's config file |
| `db` | | **`undefined`**, `{ "dialect": "sqlite", "storage": "./db.codimd.sqlite" }` | set the db configs, [see more here](http://sequelize.readthedocs.org/en/latest/api/sequelize/) |
| | `CMD_CONFIG_FILE` | **no default**, `/path/to/config.json` | optional override for the path to HedgeDoc's config file |
| `db` | | **`undefined`**, `{ "dialect": "sqlite", "storage": "./db.hedgedoc.sqlite" }` | set the db configs, [see more here](http://sequelize.readthedocs.org/en/latest/api/sequelize/) |
| `dbURL` | `CMD_DB_URL` | **`undefined`**, `mysql://localhost:3306/database` | Set the db in URL style. If set, then the relevant `db` config entries will be overridden. |
| `loglevel` | `CMD_LOGLEVEL` | **`info`**, `debug` ... | Defines what kind of logs are provided to stdout. Available options: `debug`, `verbose`, `info`, `warn`, `error` |
| `forbiddenNoteIDs` | `CMD_FORBIDDEN_NOTE_IDS` | **`['robots.txt', 'favicon.ico', 'api', 'build', 'css', 'docs', 'fonts', 'js', 'uploads', 'vendor', 'views']`**, `['robots.txt']` or `'robots.txt'` | disallow creation of notes, even if `allowFreeUrl` or `CMD_ALLOW_FREEURL` is `true` |
| `imageUploadType` | `CMD_IMAGE_UPLOAD_TYPE` | **`filesystem`**, `imgur`, `s3`, `minio`, `azure`, `lutim` | Where to upload images. For S3, see our Image Upload Guides for [S3](guides/s3-image-upload.md) or [Minio](guides/minio-image-upload.md), also there's a whole section on their respective env vars below. |
| `sourceURL` | `CMD_SOURCE_URL` | **no default**, `https://github.com/codimd/server/tree/<current commit>` | Provides the link to the source code of CodiMD on the entry page (Please, make sure you change this when you run a modified version) |
| `sourceURL` | `CMD_SOURCE_URL` | **no default**, `https://github.com/hedgedoc/server/tree/<current commit>` | Provides the link to the source code of HedgeDoc on the entry page (Please, make sure you change this when you run a modified version) |
| `tooBusyLag` | `CMD_TOOBUSY_LAG` | **`70`** | CPU time for one event loop tick until node throttles connections. (milliseconds) |
| `staticCacheTime` | | **`1 * 24 * 60 * 60 * 1000`** | static file cache time |
| `heartbeatInterval` | | **`5000`** | socket.io heartbeat interval |
@ -37,7 +37,7 @@ to `config.json` before filling in your own details.
| `documentMaxLength` | | **`100000`** | note max length |
| `linkifyHeaderStyle` | | **`keep-case`**, `lower-case`, `gfm` | how is a header text converted into a link id |
## CodiMD paths stuff
## HedgeDoc paths stuff
these are rarely used for various reasons.
@ -46,28 +46,28 @@ these are rarely used for various reasons.
| `defaultNotePath` | | **`./public/default.md`** | default note file path<sup>1</sup>, empty notes will be created with this template. |
| `dhParamPath` | | **`undefined`**, `./cert/dhparam.pem` | SSL dhparam path<sup>1</sup> (only need when you set `useSSL`) |
| `sslCAPath` | | **`undefined`**, `['./cert/COMODORSAAddTrustCA.crt']` | SSL ca chain<sup>1</sup> (only need when you set `useSSL`) |
| `sslCertPath` | | **`undefined`**, `./cert/codimd_io.crt` | SSL cert path<sup>1</sup> (only need when you set `useSSL`) |
| `sslCertPath` | | **`undefined`**, `./cert/hedgedoc_io.crt` | SSL cert path<sup>1</sup> (only need when you set `useSSL`) |
| `sslKeyPath` | | **`undefined`**, `./cert/client.key` | SSL key path<sup>1</sup> (only need when you set `useSSL`) |
| `tmpPath` | | **`os.tmpdir()`**, `./tmp/` | temp directory path<sup>1</sup> |
| `docsPath` | | **`./public/docs`** | docs directory path<sup>1</sup> |
| `viewPath` | | **`./public/views`** | template directory path<sup>1</sup> |
| `uploadsPath` | | **`./public/uploads`** | uploads directory<sup>1</sup> - needs to be persistent when you use imageUploadType `filesystem` |
**Note:** *relative paths are based on CodiMD's base directory*
**Note:** *relative paths are based on HedgeDoc's base directory*
## CodiMD Location
## HedgeDoc Location
| config file | environment | **default** and example value | description |
| ---------------- | --------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `domain` | `CMD_DOMAIN` | **`null`**, `localhost`, `codimd.org` | domain name |
| `urlPath` | `CMD_URL_PATH` | **`null`**, `codimd` | If CodiMD is run from a subdirectory like `www.example.com/<urlpath>` |
| `domain` | `CMD_DOMAIN` | **`null`**, `localhost`, `hedgedoc.org` | domain name |
| `urlPath` | `CMD_URL_PATH` | **`null`**, `hedgedoc` | If HedgeDoc is run from a subdirectory like `www.example.com/<urlpath>` |
| `host` | `CMD_HOST` | **`0.0.0.0`**, `localhost` | interface/ip to listen on |
| `port` | `CMD_PORT` | **`3000`**, `80` | port to listen on |
| `path` | `CMD_PATH` | **no default**, `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `host` or `CMD_HOST` and `port` or `CMD_PORT` are ignored) |
| `path` | `CMD_PATH` | **no default**, `/var/run/hedgedoc.sock` | path to UNIX domain socket to listen on (if specified, `host` or `CMD_HOST` and `port` or `CMD_PORT` are ignored) |
| `protocolUseSSL` | `CMD_PROTOCOL_USESSL` | **`false`** or `true` | set to use SSL protocol for resources path (only applied when domain is set) |
| `useSSL` | | **`false`** or `true` | set to use SSL server (if `true`, will auto turn on `protocolUseSSL`) |
| `urlAddPort` | `CMD_URL_ADDPORT` | **`false`** or `true` | set to add port on callback URL (ports `80` or `443` won't be applied) (only applied when domain is set) |
| `allowOrigin` | `CMD_ALLOW_ORIGIN` | **`['localhost']`**, `['codimd.org']`, `[localhost, codimd.org]` | domain name whitelist (use comma to separate) |
| `allowOrigin` | `CMD_ALLOW_ORIGIN` | **`['localhost']`**, `['hedgedoc.org']`, `[localhost, hedgedoc.org]` | domain name whitelist (use comma to separate) |
## Web security aspects
@ -166,8 +166,8 @@ these are rarely used for various reasons.
| | `CMD_LDAP_SEARCHBASE` | **no default**, `o=users,dc=example,dc=com` | LDAP directory to begin search from |
| | `CMD_LDAP_SEARCHFILTER` | **no default**, `(uid={{username}})` | LDAP filter to search with |
| | `CMD_LDAP_SEARCHATTRIBUTES` | **no default**, `displayName, mail` | LDAP attributes to search with (use comma to separate) |
| | `CMD_LDAP_USERIDFIELD` | **no default**, `uidNumber` or `uid` or `sAMAccountName` | The LDAP field which is used uniquely identify a user on CodiMD |
| | `CMD_LDAP_USERNAMEFIELD` | **no default**, fallback to userid | The LDAP field which is used as the username on CodiMD |
| | `CMD_LDAP_USERIDFIELD` | **no default**, `uidNumber` or `uid` or `sAMAccountName` | The LDAP field which is used uniquely identify a user on HedgeDoc |
| | `CMD_LDAP_USERNAMEFIELD` | **no default**, fallback to userid | The LDAP field which is used as the username on HedgeDoc |
| | `CMD_LDAP_TLS_CA` | **no default**, `server-cert.pem, root.pem` | Root CA for LDAP TLS in PEM format (use comma to separate) |
| | `CMD_LDAP_PROVIDERNAME` | **no default**, `My institution` | Optional name to be displayed at login form indicating the LDAP provider |
@ -191,8 +191,8 @@ these are rarely used for various reasons.
| | `CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR` | **no default**, `email` | where to find the email address in the JSON from the user profile URL. (no default value) |
| | `CMD_OAUTH2_TOKEN_URL` | **no default**, `https://example.com` | sometimes called token endpoint, please refer to the documentation of your OAuth2 provider (no default value) |
| | `CMD_OAUTH2_AUTHORIZATION_URL` | **no default**, `https://example.com` | authorization URL of your provider, please refer to the documentation of your OAuth2 provider (no default value) |
| | `CMD_OAUTH2_CLIENT_ID` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register CodiMD as OAuth2-client, (no default value) |
| | `CMD_OAUTH2_CLIENT_SECRET` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register CodiMD as OAuth2-client, (no default value) |
| | `CMD_OAUTH2_CLIENT_ID` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register HedgeDoc as OAuth2-client, (no default value) |
| | `CMD_OAUTH2_CLIENT_SECRET` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register HedgeDoc as OAuth2-client, (no default value) |
| | `CMD_OAUTH2_PROVIDERNAME` | **no default**, `My institution` | Optional name to be displayed at login form indicating the oAuth2 provider |
| | `CMD_OAUTH2_SCOPE` | **no default**, `openid email profile` | Scope to request for OIDC (OpenID Connect) providers. |
@ -208,7 +208,7 @@ these are rarely used for various reasons.
| | `CMD_SAML_DISABLEREQUESTEDAUTHNCONTEXT` | **no default**, `true` or `false` | true to allow any authentication method, false restricts to password authentication (PasswordProtectedTransport) method (default: false) |
| | `CMD_SAML_IDENTIFIERFORMAT` | **`urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`** | name identifier format (optional, default: `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`) |
| | `CMD_SAML_GROUPATTRIBUTE` | **no default**, `memberOf` | attribute name for group list (optional) |
| | `CMD_SAML_REQUIREDGROUPS` | **no default**, `codimd-users` | group names that allowed (use vertical bar to separate) (optional) |
| | `CMD_SAML_REQUIREDGROUPS` | **no default**, `hedgedoc-users` | group names that allowed (use vertical bar to separate) (optional) |
| | `CMD_SAML_EXTERNALGROUPS` | **no default**, `Temporary-staff` | group names that not allowed (use vertical bar to separate) (optional) |
| | `CMD_SAML_ATTRIBUTE_ID` | **no default**, `sAMAccountName` | attribute map for `id` (optional, default: NameID of SAML response) |
| | `CMD_SAML_ATTRIBUTE_USERNAME` | **no default**, `mailNickname` | attribute map for `username` (optional, default: NameID of SAML response) |

View file

@ -1,5 +1,5 @@
# API documentation
Several tasks of CodiMD can be automated through HTTP requests.
Several tasks of HedgeDoc can be automated through HTTP requests.
The available endpoints for this api are described in this document.
For code-autogeneration there is an OpenAPIv3-compatible description available [here](openapi.yml).
@ -34,9 +34,9 @@ These endpoints return information about the current logged-in user and it's not
| `/history/<NOTE>` | `POST` | **Toggles the pinned status in the history for a note.**<br>The body must be form-encoded and contain a field `pinned` that is either `true` or `false`. |
| `/history/<NOTE>` | `DELETE` | **Deletes a note from the user's history.** |
## CodiMD-server
These endpoints return information about the running CodiMD instance.
## HedgeDoc-server
These endpoints return information about the running HedgeDoc instance.
| Endpoint | HTTP-Method | Description |
| --------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/status` | `GET` | **Returns the current status of the CodiMD instance.**<br>The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. |
| `/status` | `GET` | **Returns the current status of the HedgeDoc instance.**<br>The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. |

View file

@ -4,7 +4,7 @@
**Notice:** *There's [specialised instructions for docker](../setup/docker.md) or [heroku](../setup/heroku.md), if you prefer running code this way!*
1. Clone the repository with `git clone https://github.com/codimd/server.git codimd-server`
1. Clone the repository with `git clone https://github.com/hedgedoc/server.git hedgedoc-server`
(cloning is the preferred way, but you can also download and unzip a release)
2. Enter the directory and run `bin/setup`, which will install npm dependencies
@ -16,7 +16,7 @@
## Running the Code
Now that everything is in place, we can start CodiMD:
Now that everything is in place, we can start HedgeDoc:
1. `yarn run build` will build the frontend bundle. It uses webpack to do that.
2. Run the server with `node app.js`
@ -43,7 +43,7 @@ The repository contains two parts: a server (backend) and a client (frontend).
most of the server code is in `/lib` and most of the client code is in `public`.
```text
codimd-server/
hedgedoc-server/
├── docs/ --- documentation
├── lib/ --- server code
├── test/ --- test suite

View file

@ -1,18 +1,18 @@
openapi: 3.0.1
info:
title: CodiMD
description: CodiMD is an open source collaborative note editor. Several tasks of CodiMD can be automated through this API.
title: HedgeDoc
description: HedgeDoc is an open source collaborative note editor. Several tasks of HedgeDoc can be automated through this API.
version: 1.6.0
contact:
name: CodiMD on GitHub
url: https://github.com/codimd/server
name: HedgeDoc on GitHub
url: https://github.com/hedgedoc/server
license:
name: AGPLv3
url: https://github.com/codimd/server/blob/master/LICENSE
url: https://github.com/hedgedoc/server/blob/master/LICENSE
externalDocs:
url: https://github.com/codimd/server/blob/master/docs/dev/api.md
url: https://github.com/hedgedoc/server/blob/master/docs/dev/api.md
paths:
@ -281,7 +281,7 @@ paths:
tags:
- note
summary: Creates a new GitHub Gist with the note's content.
description: 'If [GitHub integration](https://github.com/codimd/server/blob/master/docs/configuration-env-vars.md#github-login) is configured, the user will be redirected to GitHub and a new Gist with the content of the note will be created.'
description: 'If [GitHub integration](https://github.com/hedgedoc/server/blob/master/docs/configuration-env-vars.md#github-login) is configured, the user will be redirected to GitHub and a new Gist with the content of the note will be created.'
responses:
default:
description: Redirect to the created gist (or the GitHub authentication before)
@ -432,7 +432,7 @@ paths:
get:
tags:
- server
summary: Returns the current status of the CodiMD instance.
summary: Returns the current status of the HedgeDoc instance.
description: The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more.
responses:
200:
@ -478,4 +478,4 @@ tags:
- name: user
description: These endpoints return information about the current logged-in user and it's note history. If no user is logged-in, the most of this requests will fail with either a HTTP 403 or a JSON object containing `{"status":"forbidden"}`.
- name: server
description: These endpoints return information about the running CodiMD instance.
description: These endpoints return information about the running HedgeDoc instance.

View file

@ -1,7 +1,5 @@
# Authentication guide - GitHub
*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!
1. Sign-in or sign-up for a GitHub account
2. Navigate to developer settings in your GitHub account [here](https://github.com/settings/developers) and select the "OAuth Apps" tab
@ -12,7 +10,7 @@
4. Fill out the new OAuth application registration form, and click **Register Application**
![register-oauth-application-form](../../images/auth/register-oauth-application-form.png)
**Note:** *The callback URL is <your-codimd-url>/auth/github/callback*
**Note:** *The callback URL is <your-hedgedoc-url>/auth/github/callback*
5. After successfully registering the application, you'll receive the Client ID and Client Secret for the application
![application-page](../../images/auth/application-page.png)

View file

@ -1,6 +1,6 @@
# GitLab (self-hosted)
*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!
*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!
1. Sign in to your GitLab
2. Navigate to the application management page at `https://your.gitlab.domain/admin/applications` (admin permissions required)
@ -16,7 +16,7 @@
6. In the `docker-compose.yml` add the following environment variables to `app:` `environment:`
```Dockerfile
- CMD_DOMAIN=your.codimd.domain
- CMD_DOMAIN=your.hedgedoc.domain
- CMD_URL_ADDPORT=true
- CMD_PROTOCOL_USESSL=true
- CMD_GITLAB_BASEURL=https://your.gitlab.domain
@ -25,6 +25,6 @@
```
7. Run `docker-compose up -d` to apply your settings.
8. Sign in to your CodiMD using your GitLab ID:
8. Sign in to your HedgeDoc using your GitLab ID:
![Sign in via GitLab](../../images/auth/gitlab-sign-in.png)

View file

@ -1,4 +1,4 @@
OAuth with Keycloak/Red Hat SSO (self-hosted)
# OAuth with Keycloak/Red Hat SSO (self-hosted)
## Prerequisites
@ -13,7 +13,7 @@ Where HTTPS is specified throughout, use HTTP instead. You may also have to spec
You may note that a separate realm is specified throughout this tutorial. It is best practice not to use the master realm, as it normally contains the realm-management client that federates access using the policies and permissions you can create.
2. Navigate to the client management page at `https://keycloak.example.com/auth/admin/master/console/#/realms/your-realm/clients` (admin permissions required)
3. Click **Create** to create a new client and fill out the registration form. You should set the Root URL to the fully qualified public URL of your CodiMD instance.
3. Click **Create** to create a new client and fill out the registration form. You should set the Root URL to the fully qualified public URL of your HedgeDoc instance.
4. Click **Save**
5. Set the **Access Type** of the client to `confidential`. This will make your client require a client secret upon authentication.
@ -24,7 +24,7 @@ You may note that a separate realm is specified throughout this tutorial. It is
1. Select Client Scopes from the sidebar, and begin to create a new client scope using the Create button.
2. Ensure that the **Name** field is set to `id`.
3. Create a new mapper under the Mappers tab. This should reference the User Property `id`. `Claim JSON Type` should be String and all switches below should be enabled. Save the mapper.
4. Go to the client you set up in the previous steps using the Clients page, then choose the Client Scopes tab. Apply the scope you've created. This should mitigate errors as seen in [codimd/server#56](https://github.com/codimd/server/issues/56), as the `/userinfo` endpoint should now bring back the user's ID under the `id` key as well as `sub`.
4. Go to the client you set up in the previous steps using the Clients page, then choose the Client Scopes tab. Apply the scope you've created. This should mitigate errors as seen in [hedgedoc/server#56](https://github.com/hedgedoc/server/issues/56), as the `/userinfo` endpoint should now bring back the user's ID under the `id` key as well as `sub`.
---
@ -40,10 +40,10 @@ CMD_OAUTH2_AUTHORIZATION_URL=https://keycloak.example.com/auth/realms/your-realm
CMD_OAUTH2_CLIENT_ID=<your client ID>
CMD_OAUTH2_CLIENT_SECRET=<your client secret, which you can find under the Credentials tab for your client>
CMD_OAUTH2_PROVIDERNAME=Keycloak
CMD_DOMAIN=<codimd.example.com>
CMD_DOMAIN=<hedgedoc.example.com>
CMD_PROTOCOL_USESSL=true
CMD_URL_ADDPORT=false
```
6. Run `docker-compose up -d` to apply your settings.
7. Sign in to your CodiMD using your Keycloak ID
7. Sign in to your HedgeDoc using your Keycloak ID

View file

@ -1,6 +1,6 @@
# AD LDAP auth
To setup your CodiMD instance with Active Directory you need the following configs:
To setup your HedgeDoc instance with Active Directory you need the following configs:
```env
CMD_LDAP_URL=ldap://internal.example.com

View file

@ -17,7 +17,7 @@ This guide uses the generic OAuth2 module for compatibility with Mattermost vers
5. Fill out the form and click **Save**
![mattermost-oauth-app-form](../../images/auth/mattermost-oauth-app-form.png)
*Note: The callback URL is \<your-codimd-url\>/auth/oauth2/callback*
*Note: The callback URL is \<your-hedgedoc-url\>/auth/oauth2/callback*
6. After saving the application, you'll receive the Client ID and Client Secret
![mattermost-oauth-app-done](../../images/auth/mattermost-oauth-app-done.png)

View file

@ -11,14 +11,14 @@ This guide uses the generic OAuth2 module for compatibility with Nextcloud 13 an
At the top there's OAuth 2.0-Clients.
![Where to find OAuth2 in Nextcloud](../../images/auth/nextcloud-oauth2-1-settings.png)
3. Add your CodiMD instance by giving it a *name* (perhaps CodiMD, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\<your-codimd-url\>/auth/oauth2/callback`. Click <kbd>Add</kbd>.
3. Add your HedgeDoc instance by giving it a *name* (perhaps HedgeDoc, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\<your-hedgedoc-url\>/auth/oauth2/callback`. Click <kbd>Add</kbd>.
![Adding a client to Nextcloud](../../images/auth/nextcloud-oauth2-2-client-add.png)
4. You'll now see a line containing a *client identifier* and a *Secret*.
![Successfully added OAuth2-client](../../images/auth/nextcloud-oauth2-3-clientid-secret.png)
5. That's it for Nextcloud, the rest is configured in your CodiMD `config.json` or via the `CMD_` environment variables!
5. That's it for Nextcloud, the rest is configured in your HedgeDoc `config.json` or via the `CMD_` environment variables!
6. Add the Client ID and Client Secret to your `config.json` file or pass them as environment variables. Make sure you also replace `<your-nextcloud-domain>` with the right domain name.
- `config.json`:

View file

@ -1,34 +1,34 @@
# How to setup CodiMD SAML with Keycloak
# How to setup HedgeDoc SAML with Keycloak
## Configuring Keycloak
### Get the public certificate
1. Select the Realm you want to use for your CodiMD SAML
1. Select the Realm you want to use for your HedgeDoc SAML
2. Select "Realm Settings" in left sidebar
3. Select the "Keys" tab
4. Click the button "Certificate" at `RS256` algorithm
![keycloak_idp_cert](../../images/auth/keycloak_idp_cert.png)
5. Copy this key and save it to the file specified in `saml.idpCert` property of the CodiMD configuration or `CMD_SAML_IDPCERT` environment variable
5. Copy this key and save it to the file specified in `saml.idpCert` property of the HedgeDoc configuration or `CMD_SAML_IDPCERT` environment variable
### Create a new client
1. Select "Client" in left sidebar
![keycloak_clients_overview](../../images/auth/keycloak_clients_overview.png)
2. Click on the "Create" button
3. Set a Client ID and specify this in `saml.issuer` property of the CodiMD configuration or `CMD_SAML_ISSUER` environment variable
3. Set a Client ID and specify this in `saml.issuer` property of the HedgeDoc configuration or `CMD_SAML_ISSUER` environment variable
4. Select `SAML` as Client Protocol
5. Set Client SAML Endpoint to `https://codimd.example.com/auth/saml` (replace `https://codimd.example.com` with the base URL of your CodiMD installation)
5. Set Client SAML Endpoint to `https://hedgedoc.example.com/auth/saml` (replace `https://hedgedoc.example.com` with the base URL of your HedgeDoc installation)
![keycloak_add_client](../../images/auth/keycloak_add_client.png)
6. Leave "Client Signature Required" enabled
7. Set Root URL to `https://codimd.example.com` (replace it here also with the base URL of your CodiMD installation)
8. Set Valid Redirect URIs to `https://codimd.example.com/auth/saml/callback` (you should also define all other domains of your CodiMD installtion with the suffix `/auth/saml/callback`)
7. Set Root URL to `https://hedgedoc.example.com` (replace it here also with the base URL of your HedgeDoc installation)
8. Set Valid Redirect URIs to `https://hedgedoc.example.com/auth/saml/callback` (you should also define all other domains of your HedgeDoc installtion with the suffix `/auth/saml/callback`)
9. Set Base URL to `/`
![keycloak_client_overview](../../images/auth/keycloak_client_overview.png)
10. _(optional)_ You can set which Name ID Format should be used
## Configure CodiMD
## Configure HedgeDoc
### Config file
You have to put the following block inside your `config.json`:
```json
"saml": {
"issuer": "codimd", // Change to the "Client ID" specified in the Keycloak Client
"issuer": "hedgedoc", // Change to the "Client ID" specified in the Keycloak Client
"identifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"idpSsoUrl": "https://keycloak.example.org/auth/realms/test/protocol/saml", // replace keycloak.example.org with the url of your keycloak server
"idpCert": "/path/to/the/cert.pem",
@ -40,12 +40,12 @@ You have to put the following block inside your `config.json`:
- `CMD_SAML_IDPSSOURL`: `https://keycloak.example.org/auth/realms/test/protocol/saml` (replace keycloak.example.org with the url of your keycloak server)
- `CMD_SAML_IDPCERT`: `/path/to/the/cert.pem`
- *(optional, see below)* `CMD_SAML_CLIENTCERT`: `/path/to/the/key.pem`
- `CMD_SAML_ISSUER`: `codimd` (Change to the "Client ID" specified in the Keycloak Client)
- `CMD_SAML_ISSUER`: `hedgedoc` (Change to the "Client ID" specified in the Keycloak Client)
- `CMD_SAML_IDENTIFIERFORMAT`: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`
## Client certificate *(optional)*
If you want keycloak to be able to verify CodiMD, you hava to create a client certificate. There are two options for this:
If you want keycloak to be able to verify HedgeDoc, you hava to create a client certificate. There are two options for this:
### Create Private Keys for Signing
1. Generate the private key and certificate with the following commands:
@ -56,7 +56,7 @@ openssl req -new -x509 -key priv.pem -out cert.pem
*execute the following steps in keycloak*
2. Select "Client" in left sidebar
3. Go to your CodiMD-Client
3. Go to your HedgeDoc-Client
4. Select the "SAML Keys" tab
![keycloak_saml_import_cert](../../images/auth/keycloak_saml_import_cert.png)
5. Click on "Import"
@ -64,14 +64,14 @@ openssl req -new -x509 -key priv.pem -out cert.pem
7. Now upload the generated cert.pem (in this case named `cert.pem`)
![keycloak_saml_import_cert_details](../../images/auth/keycloak_saml_import_cert_details.png)
8. Click on "Import"
9. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.clientCert` property of the CodiMD configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT`
9. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.clientCert` property of the HedgeDoc configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT`
### Convert Private Certificate generated by KeyCloak
Instead if generating you own certificate, you can also use the one generated by keycloak.
1. Select "Client" in left sidebar
2. Go to your CodiMD-Client
2. Go to your HedgeDoc-Client
3. Select the "SAML Keys" tab
![keycloak_saml_export_cert](../../images/auth/keycloak_saml_export_cert.png)
@ -83,14 +83,14 @@ Instead if generating you own certificate, you can also use the one generated by
```shell
openssl pkcs12 -in keystore.p12 -out key.pem -nocerts -nodes
```
8. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.idpCert` property of the CodiMD configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT`
8. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.idpCert` property of the HedgeDoc configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT`
## Use Persistent Identifiers
Instead of using the username as the owner-key in the CodiMD database, you can also use a persistent identifier. This allows to change the username, without them loosing access to their notes.
Instead of using the username as the owner-key in the HedgeDoc database, you can also use a persistent identifier. This allows to change the username, without them loosing access to their notes.
1. Go to the CodiMD-Client in keycloak. Now enable the option "Force Name ID Format" and select "persistent" as the "Name ID Format".
1. Go to the HedgeDoc-Client in keycloak. Now enable the option "Force Name ID Format" and select "persistent" as the "Name ID Format".
![keycloak_force_idformat](../../images/auth/keycloak_force_idformat.png)
2. For codimd to be able to use the username and email configured in keycloak, you have to create the following SAML protocol mappers:
2. For HedgeDoc to be able to use the username and email configured in keycloak, you have to create the following SAML protocol mappers:
2.1. Create a mapper with the type `User Property`. Set the Name, Property and SAML Attribute Name to `username`. Now you can specify a friendly name (for example `Username`)
![keycloak_mapper_username](../../images/auth/keycloak_mapper_username.png)
2.2 Create a mapper with the type `User Property`. Set the Name, Property and SAML Attribute Name to `email`. Now you can specify a friendly name (for example `E-Mail`)
@ -106,7 +106,7 @@ The configured mappers should look like this:
"email": "email",
}
```
It you configure CodiMD with enviroment variables, these are the ones you have to set:
It you configure HedgeDoc with enviroment variables, these are the ones you have to set:
```bash
CMD_SAML_ATTRIBUTE_USERNAME=username
CMD_SAML_ATTRIBUTE_EMAIL=email

View file

@ -1,6 +1,6 @@
# Authentication guide - SAML (OneLogin)
**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
**Note:** *This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!*
1. Sign-in or sign-up for an OneLogin account. (available free trial for 2 weeks)
@ -16,9 +16,9 @@
![onelogin-edit-app-name](../../images/auth/onelogin-edit-app-name.png)
6. After that other tabs will appear, click the **Configuration**, and fill out the below items, and click **SAVE**.
- RelayState: The base URL of your CodiMD, which is issuer. (last slash is not needed)
- RelayState: The base URL of your HedgeDoc, which is issuer. (last slash is not needed)
- ACS (Consumer) URL Validator: The callback URL of your CodiMD. (serverurl + /auth/saml/callback)
- ACS (Consumer) URL Validator: The callback URL of your HedgeDoc. (serverurl + /auth/saml/callback)
- ACS (Consumer) URL: same as above.
@ -31,7 +31,7 @@
- SAML 2.0 Endpoint (HTTP): Copy the URL ....(B)
![onelogin-copy-idp-metadata](../../images/auth/onelogin-copy-idp-metadata.png)
8. In your CodiMD server, create IdP certificate file from (A)
8. In your HedgeDoc server, create IdP certificate file from (A)
9. Add the IdP URL (B) and the Idp certificate file path to your config.json file or pass them as environment variables.
- `config.json`:
```javascript
@ -51,5 +51,5 @@
CMD_SAML_IDPCERT=/path/to/idp_cert.pem
```
10. Try sign-in with SAML from your CodiMD sign-in button or OneLogin dashboard (like the screenshot below).
10. Try sign-in with SAML from your HedgeDoc sign-in button or OneLogin dashboard (like the screenshot below).
![onelogin-use-dashboard](../../images/auth/onelogin-use-dashboard.png)

View file

@ -1,6 +1,6 @@
# Authentication guide - SAML
*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!
*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!
The basic procedure is the same as the case of OneLogin which is mentioned in [OneLogin-Guide](./saml-onelogin.md). If you want to match your IdP, you can use more configurations as below.
@ -9,7 +9,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
- *Note:* If not accessible from IdP, download to local once and upload to IdP.
- Change the value of `issuer`, `identifierFormat` to match your IdP.
- `issuer`: A unique id to identify the application to the IdP, which is the base URL of your CodiMD as default
- `issuer`: A unique id to identify the application to the IdP, which is the base URL of your HedgeDoc as default
- `identifierFormat`: A format of unique id to identify the user of IdP, which is the format based on email address as default. It is recommend that you use as below.
- urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress (default)
@ -21,7 +21,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
"production": {
"saml": {
/* omitted */
"issuer": "mycodimd"
"issuer": "myhedgedoc"
"identifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
}
}
@ -30,16 +30,16 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
- environment variables
```env
CMD_SAML_ISSUER=mycodimd
CMD_SAML_ISSUER=myhedgedoc
CMD_SAML_IDENTIFIERFORMAT=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
```
- Change mapping of attribute names to customize the displaying user name and email address to match your IdP.
- `attribute`: A dictionary to map attribute names
- `attribute.id`: A primary key of user table for your CodiMD
- `attribute.id`: A primary key of user table for your HedgeDoc
- `attribute.username`: Attribute name of displaying user name on CodiMD
- `attribute.username`: Attribute name of displaying user name on HedgeDoc
- `attribute.email`: Attribute name of email address, which will be also used for Gravatar
- *Note:* Default value of all attributes is NameID of SAML response, which is email address if `identifierFormat` is default.
@ -70,9 +70,9 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
- If you want to control permission by group membership, add group attribute name and required group (allowed) or external group (not allowed).
- `groupAttribute`: An attribute name of group membership
- `requiredGroups`: Group names array for allowed access to CodiMD. Use vertical bar to separate for environment variables.
- `requiredGroups`: Group names array for allowed access to HedgeDoc. Use vertical bar to separate for environment variables.
- `externalGroups`: Group names array for not allowed access to CodiMD. Use vertical bar to separate for environment variables.
- `externalGroups`: Group names array for not allowed access to HedgeDoc. Use vertical bar to separate for environment variables.
- *Note:* Evaluates `externalGroups` first
- `config.json`:
@ -82,7 +82,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
"saml": {
/* omitted */
"groupAttribute": "memberOf",
"requiredGroups": [ "codimd-users", "board-members" ],
"requiredGroups": [ "hedgedoc-users", "board-members" ],
"externalGroups": [ "temporary-staff" ]
}
}
@ -92,6 +92,6 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O
- environment variables
```sh
CMD_SAML_GROUPATTRIBUTE=memberOf
CMD_SAML_REQUIREDGROUPS=codimd-users|board-members
CMD_SAML_REQUIREDGROUPS=hedgedoc-users|board-members
CMD_SAML_EXTERNALGROUPS=temporary-staff
```

View file

@ -1,6 +1,6 @@
# Authentication guide - Twitter
*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!
*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!
1. Sign-in or sign-up for a Twitter account

View file

@ -1,11 +1,11 @@
# Pad migration guide from etherpad-lite
The goal of this migration is to do a "dumb" import from all the pads in Etherpad, to notes in
CodiMD. In particular, the url locations of the pads in Etherpad will be lost. Furthermore, any
HedgeDoc. In particular, the url locations of the pads in Etherpad will be lost. Furthermore, any
metadata in Etherpad, such as revisions, author data and also formatted text will not be migrated
to CodiMD (only the plain text contents).
to HedgeDoc (only the plain text contents).
Note that this guide is not really meant as a support guide. I migrated my own Etherpad to CodiMD,
Note that this guide is not really meant as a support guide. I migrated my own Etherpad to HedgeDoc,
and it turned out to be quite easy in my opinion. In this guide I share my experience. Stuff may
require some creativity to work properly in your case. When I wrote this guide, I was using
[etherpad 1.7.0][] and [codimd 1.2.1][]. Good luck!
@ -14,8 +14,8 @@ require some creativity to work properly in your case. When I wrote this guide,
- `curl`
- running Etherpad server
- running CodiMD server
- [codimd-cli][]
- running HedgeDoc server
- [hedgedoc-cli][]
## 1. Retrieve the list of pads
@ -36,26 +36,26 @@ weddingchecklist
## 2. Run the migration
Download [codimd-cli][] and put the script in the same directory as the file containing the pad names.
Download [hedgedoc-cli][] and put the script in the same directory as the file containing the pad names.
Add to this directory the file listed below, I called it `migrate-etherpad.sh`. Modify at least the
configuration settings `ETHERPAD_SERVER` and `CODIMD_SERVER`.
configuration settings `ETHERPAD_SERVER` and `HEDGEDOC_SERVER`.
```shell
#!/bin/sh
# migrate-etherpad.sh
#
# Description: Migrate pads from etherpad to codimd
# Description: Migrate pads from etherpad to HedgeDoc
# Author: Daan Sprenkels <hello@dsprenkels.com>
# This script uses the codimd command line script[1] to import a list of pads from
# [1]: https://github.com/codimd/cli/blob/master/bin/codimd
# This script uses the HedgeDoc command line script[1] to import a list of pads from
# [1]: https://github.com/hedgedoc/cli/blob/master/bin/hedgedoc
# The base url to where etherpad is hosted
ETHERPAD_SERVER="https://etherpad.example.com"
# The base url where codimd is hosted
CODIMD_SERVER="https://codimd.example.com"
# The base url where HedgeDoc is hosted
HEDGEDOC_SERVER="https://hedgedoc.example.com"
# Write a list of pads and the urls which they were migrated to
REDIRECTS_FILE="redirects.txt"
@ -73,8 +73,8 @@ for PAD_NAME in $1; do
PAD_FILE="$(mktemp)"
curl "$ETHERPAD_SERVER/p/$PAD_NAME/export/txt" >"$PAD_FILE"
# Import the pad into codimd
OUTPUT="$(./codimd import "$PAD_FILE")"
# Import the pad into HedgeDoc
OUTPUT="$(./hedgedoc import "$PAD_FILE")"
echo "$PAD_NAME -> $OUTPUT" >>"$REDIRECTS_FILE"
done
```
@ -85,7 +85,7 @@ Call this file like this:
./migrate-etherpad.sh pad_names.txt
```
This will download all the pads in `pad_names.txt` and put them on CodiMD. They will get assigned
This will download all the pads in `pad_names.txt` and put them on HedgeDoc. They will get assigned
random ids, so you won't be able to find them. The script will save the mappings to a file though
(in my case `redirects.txt`). You can use this file to redirect your users when they visit your
etherpad using a `301 Permanent Redirect` status code (see the next section).
@ -95,10 +95,10 @@ etherpad using a `301 Permanent Redirect` status code (see the next section).
I got a `redirects.txt` file that looked a bit like this:
```log
date-ideas -> Found. Redirecting to https://codimd.example.com/mPt0KfiKSBOTQ3mNcdfn
groceries -> Found. Redirecting to https://codimd.example.com/UukqgwLfhYyUUtARlcJ2_y
london -> Found. Redirecting to https://codimd.example.com/_d3wa-BE8t4Swv5w7O2_9R
weddingchecklist -> Found. Redirecting to https://codimd.example.com/XcQGqlBjl0u40wfT0N8TzQ
date-ideas -> Found. Redirecting to https://hedgedoc.example.com/mPt0KfiKSBOTQ3mNcdfn
groceries -> Found. Redirecting to https://hedgedoc.example.com/UukqgwLfhYyUUtARlcJ2_y
london -> Found. Redirecting to https://hedgedoc.example.com/_d3wa-BE8t4Swv5w7O2_9R
weddingchecklist -> Found. Redirecting to https://hedgedoc.example.com/XcQGqlBjl0u40wfT0N8TzQ
(...)
```
@ -106,16 +106,16 @@ Using some `sed` magic, I changed it to an nginx config snippet:
```nginx
location = /p/date-ideas {
return 301 https://codimd.example.com/mPt0M1KfiKSBOTQ3mNcdfn;
return 301 https://hedgedoc.example.com/mPt0M1KfiKSBOTQ3mNcdfn;
}
location = /p/groceries {
return 301 https://codimd.example.com/UukqgwLfhYyUUtARlcJ2_y;
return 301 https://hedgedoc.example.com/UukqgwLfhYyUUtARlcJ2_y;
}
location = /p/london {
return 301 https://codimd.example.com/_d3wa-BE8t4Swv5w7O2_9R;
return 301 https://hedgedoc.example.com/_d3wa-BE8t4Swv5w7O2_9R;
}
location = /p/weddingchecklist {
return 301 https://codimd.example.com/XcQGqlBjl0u40wfT0N8TzQ;
return 301 https://hedgedoc.example.com/XcQGqlBjl0u40wfT0N8TzQ;
}
```
@ -123,6 +123,6 @@ I put this file into my `etherpad.example.com` nginx config, such that all the u
redirected accordingly.
[etherpad 1.7.0]: https://github.com/ether/etherpad-lite/tree/1.7.0
[codimd 1.2.1]: https://github.com/codimd/server/tree/1.2.1
[codimd-cli]: https://github.com/codimd/cli/blob/master/bin/codimd
[codimd 1.2.1]: https://github.com/hedgedoc/server/tree/1.2.1
[hedgedoc-cli]: https://github.com/hedgedoc/cli/blob/master/bin/hedgedoc
[howtolistallpads]: https://github.com/ether/etherpad-lite/wiki/How-to-list-all-pads/49701ecdcbe07aea7ad27ffa23aed0d99c2e17db

View file

@ -9,20 +9,20 @@ We dropped support for node 6 with this version. If you have any trouble running
This is not a breaking change, but to stay up to date with the community
repository, you may need to update a few urls. This is not a breaking change.
See more at [issue #10](https://github.com/codimd/server/issues/10)
See more at [issue #10](https://github.com/hedgedoc/server/issues/10)
### Native setup using git
Change the upstream remote using `git remote set-url origin https://github.com/codimd/server.git`.
Change the upstream remote using `git remote set-url origin https://github.com/hedgedoc/server.git`.
### Docker
When you use our [container repository](https://github.com/codimd/container)
(which was previously `codimd-container`) all you can simply run `git pull` and
When you use our [container repository](https://github.com/hedgedoc/container)
(which was previously `hedgedoc-container`) all you can simply run `git pull` and
your `docker-compose.yml` will be updated.
When you setup things yourself, make sure you use the new image:
[`quay.io/codimd/server`](https://quay.io/repository/codimd/server?tab=tags).
[`quay.io/hedgedoc/server`](https://quay.io/repository/hedgedoc/server?tab=tags).
### Heroku

View file

@ -1,6 +1,6 @@
# Minio Guide for CodiMD
# Minio Guide for HedgeDoc
*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!
*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!
1. First of all you need to setup Minio itself.
@ -27,7 +27,7 @@
![minio default view](../images/minio-image-upload/default-view.png)
4. Create a bucket for CodiMD
4. Create a bucket for HedgeDoc
![minio create bucket](../images/minio-image-upload/create-bucket.png)
@ -39,7 +39,7 @@
![minio policy adding](../images/minio-image-upload/create-policy.png)
*Add policy for uploads*
6. Set credentials and configs for Minio in CodiMD's `config.json`
6. Set credentials and configs for Minio in HedgeDoc's `config.json`
```JSON
"minio": {
@ -57,7 +57,7 @@
7. Set bucket name
```JSON
"s3bucket": "codimd"
"s3bucket": "hedgedoc"
```
8. Set upload type.
@ -78,7 +78,7 @@
"port": 9000,
"secure": false
},
"s3bucket": "codimd",
"s3bucket": "hedgedoc",
"imageuploadtype": "minio"
}
```

View file

@ -4,7 +4,7 @@
To setup your terms of use, you need to provide a document called `terms-of-use.md` which contains them. Of course written in Markdown.
It has to be provided under `./public/docs/` and will be automatically turned into a CodiMD document. It will also automatically updated as soon as you change the document on disk.
It has to be provided under `./public/docs/` and will be automatically turned into a HedgeDoc document. It will also automatically updated as soon as you change the document on disk.
As soon as the file exists a link will show up in the bottom part along with the release notes and link to them.
@ -20,6 +20,6 @@ As with the terms of use, a link to the privacy notices will show up in the area
To add an imprint you can use the same technique as for the terms of use. The main difference is that the document is called `imprint.md`.
It has to be provided under `./public/docs/` and will be automatically turned into a CodiMD document. It will also automatically updated as soon as you change the document on disk.
It has to be provided under `./public/docs/` and will be automatically turned into a HedgeDoc document. It will also automatically updated as soon as you change the document on disk.
As with the terms of use, a link to the imprint will show up in the area where the release notes are provided on the index page.

View file

@ -1,6 +1,6 @@
# Guide - Setup CodiMD S3 image upload
# Guide - Setup HedgeDoc S3 image upload
**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!*
**Note:** *This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!*
1. Go to [AWS S3 console](https://console.aws.amazon.com/s3/home) and create a new bucket.
![create-bucket](../images/s3-image-upload/create-bucket.png)

View file

@ -1,4 +1,4 @@
# History of CodiMD
# History of HedgeDoc
## It started with HackMD
@ -34,4 +34,8 @@ move the repository, so we simply forked it. We still welcome the HackMD team
as part of our community, especially since a large portion of this code base
originated with them.
*For the debate that lead to this step, please refer to the [governance debate](https://github.com/hackmdio/hackmd/issues/1170) and [the announcement of the new repository](https://github.com/codimd/server/issues/10).*
*For the debate that lead to this step, please refer to the [governance debate](https://github.com/hackmdio/hackmd/issues/1170) and [the announcement of the new repository](https://github.com/hedgedoc/server/issues/10).*
## CodiMD became HedgeDoc
<to be filled>

View file

@ -1,10 +1,10 @@
# Cloudron
CodiMD is available as a 1-click install on [Cloudron](https://cloudron.io). Cloudron makes it easy to run apps like CodiMD on your server and keep them up-to-date and secure.
HedgeDoc is available as a 1-click install on [Cloudron](https://cloudron.io). Cloudron makes it easy to run apps like HedgeDoc on your server and keep them up-to-date and secure.
[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=io.hackmd.cloudronapp)
The source code for the package can be found [here](https://git.cloudron.io/cloudron/codimd-app).
There is a [demo instance](https://my.demo.cloudron.io) (username: cloudron password: cloudron) where
you can experiment with running CodiMD.
you can experiment with running HedgeDoc.

View file

@ -1,12 +1,12 @@
# LinuxServer.io CodiMD Image
# LinuxServer.io HedgeDoc Image
[![LinuxServer.io Discord](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)[![container version badge](https://images.microbadger.com/badges/version/linuxserver/codimd.svg)](https://microbadger.com/images/linuxserver/codimd "Get your own version badge on microbadger.com")[![container image size badge](https://images.microbadger.com/badges/image/linuxserver/codimd.svg)](https://microbadger.com/images/linuxserver/codimd "Get your own version badge on microbadger.com")![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/codimd.svg)![Docker Stars](https://img.shields.io/docker/stars/linuxserver/codimd.svg)[![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Pipeline-Builders/docker-codimd/master)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-codimd/job/master/)[![LinuxServer.io CI summary](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/codimd/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/codimd/latest/index.html)
[LinuxServer.io](https://linuxserver.io) have created an Ubuntu-based multi-arch container image for x86-64, arm64 and armhf which supports PDF export from all architectures using [PhantomJS](https://phantomjs.org/).
- It supports all the environment variables detailed in the [configuration documentation](../configuration-env-vars.md) to modify it according to your needs.
- It gets rebuilt on new releases from CodiMD and also weekly if necessary to update any other package changes in the underlying container, making it easy to keep your CodiMD instance up to date.
- It also details how to easily [utilize Docker networking to reverse proxy](https://github.com/linuxserver/docker-codimd/#application-setup) CodiMD using their [LetsEncrypt docker image](https://github.com/linuxserver/docker-letsencrypt)
- It gets rebuilt on new releases from HedgeDoc and also weekly if necessary to update any other package changes in the underlying container, making it easy to keep your HedgeDoc instance up to date.
- It also details how to easily [utilize Docker networking to reverse proxy](https://github.com/linuxserver/docker-codimd/#application-setup) HedgeDoc using their [LetsEncrypt docker image](https://github.com/linuxserver/docker-letsencrypt)
In order to contribute check the LinuxServer.io [GitHub repository](https://github.com/linuxserver/docker-codimd/) for CodiMD.
In order to contribute check the LinuxServer.io [GitHub repository](https://github.com/linuxserver/docker-codimd/) for HedgeDoc.
And to find all tags and versions of the image, check the [Docker Hub repository](https://hub.docker.com/r/linuxserver/codimd).

View file

@ -1,20 +1,20 @@
# CodiMD Docker Image
# HedgeDoc Docker Image
[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://github.com/codimd/container/raw/master/docker-compose.yml&stack_name=codimd)
[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://github.com/hedgedoc/container/raw/master/docker-compose.yml&stack_name=hedgedoc)
## Debian-based version
[![Docker Repository on Quay](https://quay.io/repository/codimd/server/status "Docker Repository on Quay")](https://quay.io/repository/codimd/server)
[![Docker Repository on Quay](https://quay.io/repository/hedgedoc/server/status "Docker Repository on Quay")](https://quay.io/repository/hedgedoc/server)
## Alpine-based version
[![Docker Repository on Quay](https://quay.io/repository/codimd/server/status "Docker Repository on Quay")](https://quay.io/repository/codimd/server)
[![Docker Repository on Quay](https://quay.io/repository/hedgedoc/server/status "Docker Repository on Quay")](https://quay.io/repository/hedgedoc/server)
The easiest way to setup CodiMD using docker are using the following three commands:
The easiest way to setup HedgeDoc using docker are using the following three commands:
```sh
git clone https://github.com/codimd/container.git codimd-container
cd codimd-container
git clone https://github.com/hedgedoc/container.git hedgedoc-container
cd hedgedoc-container
docker-compose up
```
Read more about it in the [container repository](https://github.com/codimd/container).
Read more about it in the [container repository](https://github.com/hedgedoc/container).

View file

@ -1,6 +1,6 @@
# Heroku Deployment
You can quickly setup a sample Heroku CodiMD application by clicking the button
You can quickly setup a sample Heroku HedgeDoc application by clicking the button
below.
[![Deploy on Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/codimd/server/tree/master)
[![Deploy on Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hedgedoc/server/tree/master)

View file

@ -2,4 +2,4 @@
To install use `helm install stable/hackmd`.
For all further details, please check out the offical CodiMD [K8s helm chart](https://github.com/kubernetes/charts/tree/master/stable/hackmd).
For all further details, please check out the offical HedgeDoc [K8s helm chart](https://github.com/kubernetes/charts/tree/master/stable/hackmd).

View file

@ -1,8 +1,8 @@
YunoHost
===
CodiMD is available as a 1-click install on [YunoHost](https://yunohost.org/). YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server.
HedgeDoc is available as a 1-click install on [YunoHost](https://yunohost.org/). YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server.
[![Install CodiMD with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd)
[![Install HedgeDoc with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd)
The source code for the package can be found [here](https://github.com/YunoHost-Apps/codimd_ynh).

View file

@ -4,7 +4,7 @@ If you're getting started with reveal.js slides, there are a few things you need
There are two types of slides, those that transition horizontally and those that transition vertically (subslides).
The following separators are used for each in the CodiMD syntax:
The following separators are used for each in the HedgeDoc syntax:
```markdown
# First Slide

View file

@ -1,6 +1,6 @@
# URL scheme
CodiMD has three different modes for viewing a stored note. Each mode has a slightly different URL for accessing it. This document gives an overview about these URLs.
HedgeDoc has three different modes for viewing a stored note. Each mode has a slightly different URL for accessing it. This document gives an overview about these URLs.
We assume that you replace `pad.example.com` with the domain of your instance.
## Default (random)

View file

@ -164,7 +164,7 @@ module.exports = {
openID: false,
// linkifyHeaderStyle - How is a header text converted into a link id.
// Header Example: "3.1. Good Morning my Friend! - Do you have 5$?"
// * 'keep-case' is the legacy CodiMD value.
// * 'keep-case' is the legacy HedgeDoc value.
// Generated id: "31-Good-Morning-my-Friend---Do-you-have-5"
// * 'lower-case' is the same like legacy (see above), but converted to lower-case.
// Generated id: "#31-good-morning-my-friend---do-you-have-5"

View file

@ -157,7 +157,7 @@ for (let i = keys.length; i--;) {
// Notify users about the prefix change and inform them they use legacy prefix for environment variables
if (Object.keys(process.env).toString().indexOf('HMD_') !== -1) {
logger.warn('Using legacy HMD prefix for environment variables. Please change your variables in future. For details see: https://github.com/codimd/server#environment-variables-will-overwrite-other-server-configs')
logger.warn('Using legacy HMD prefix for environment variables. Please change your variables in future. For details see: https://github.com/hedgedoc/server#environment-variables-will-overwrite-other-server-configs')
}
// Generate session secret if it stays on default values

View file

@ -350,7 +350,7 @@ module.exports = function (sequelize, DataTypes) {
return title || 'Untitled'
}
Note.generateWebTitle = function (title) {
title = !title || title === 'Untitled' ? 'CodiMD - Collaborative markdown notes' : title + ' - CodiMD'
title = !title || title === 'Untitled' ? 'HedgeDoc - Collaborative markdown notes' : title + ' - HedgeDoc'
return title
}
Note.extractNoteTags = function (meta, $) {

View file

@ -97,7 +97,7 @@ function githubActionGist (req, res, note) {
request({
url: gistUrl,
headers: {
'User-Agent': 'CodiMD',
'User-Agent': 'HedgeDoc',
'Authorization': 'token ' + accessToken
},
method: 'POST',

View file

@ -4,7 +4,7 @@ const config = require('../../config')
module.exports = function (req, res, next) {
res.set({
'CodiMD-Version': config.version
'HedgeDoc-Version': config.version
})
return next()
}

View file

@ -74,7 +74,7 @@ exports.showNote = function (req, res, next) {
'Cache-Control': 'private', // only cache by client
'X-Robots-Tag': 'noindex, nofollow' // prevent crawling
})
return res.render('codimd.ejs', {
return res.render('hedgedoc.ejs', {
title: title,
opengraph: opengraph
})

View file

@ -1,5 +1,5 @@
{
"name": "CodiMD",
"name": "HedgeDoc",
"version": "1.6.0",
"description": "Realtime collaborative markdown notes on all platforms.",
"main": "app.js",
@ -58,7 +58,7 @@
"jquery-mousewheel": "^3.1.13",
"jquery-ui": "^1.12.1",
"js-cookie": "^2.1.3",
"js-sequence-diagrams": "git+https://github.com/codimd/js-sequence-diagrams.git",
"js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
"js-yaml": "^3.13.1",
"jsdom-nogyp": "^0.8.3",
"keymaster": "^1.6.2",
@ -84,7 +84,7 @@
"mathjax": "^2.7.6",
"mattermost": "^3.4.0",
"mermaid": "^8.5.1",
"meta-marked": "git+https://github.com/codimd/meta-marked",
"meta-marked": "git+https://github.com/hedgedoc/meta-marked",
"method-override": "^2.3.7",
"minimist": "^1.2.0",
"minio": "^6.0.0",
@ -145,13 +145,13 @@
"engines": {
"node": ">=10.13"
},
"bugs": "https://github.com/codimd/server/issues",
"bugs": "https://github.com/hedgedoc/hedgedoc/issues",
"keywords": [
"Collaborative",
"Markdown",
"Notes"
],
"homepage": "https://codimd.org",
"homepage": "https://hedgedoc.org",
"maintainers": [
{
"name": "Claudius Coenen",
@ -165,7 +165,7 @@
],
"repository": {
"type": "git",
"url": "https://github.com/codimd/server.git"
"url": "https://github.com/hedgedoc/hedgedoc.git"
},
"devDependencies": {
"babel-cli": "^6.26.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -20,6 +20,21 @@ body.night{
background: #333 !important;
}
body.night .no-night {
display: none;
}
body:not(.night) .night {
display: none;
}
.h-100 {
height: 100%;
}
.header-brand {
padding: 6px;
}
.CodeMirror {
font-family: "Source Code Pro", Consolas, monaco, monospace;
letter-spacing: 0.025em;

View file

@ -2,11 +2,11 @@
## Introduction
<i class="fa fa-file-text"></i> **CodiMD** is a real-time, multi-platform collaborative markdown note editor.
<i class="fa fa-file-text"></i> **HedgeDoc** is a real-time, multi-platform collaborative markdown note editor.
This means that you can write notes with other people on your **desktop**, **tablet** or even on the **phone**.
You can sign-in via multiple auth providers like **Facebook**, **Twitter**, **GitHub** and many more on the [*homepage*](/).
If you experience any *issues*, feel free to report it on [**GitHub**](https://github.com/codimd/server/issues).
If you experience any *issues*, feel free to report it on [**GitHub**](https://github.com/hedgedoc/hedgedoc/issues).
Or meet us on [**Matrix.org**](https://matrix.to/#/#hedgedoc:matrix.org) for dev-talk and interactive help.
**Thank you very much!**
@ -27,7 +27,7 @@ Or meet us on [**Matrix.org**](https://matrix.to/#/#hedgedoc:matrix.org) for dev
### Night Mode
When you are tired of a white screen and like a night mode, click on the little moon <i class="fa fa-moon-o"></i> and turn on the night view of CodiMD.
When you are tired of a white screen and like a night mode, click on the little moon <i class="fa fa-moon-o"></i> and turn on the night view of HedgeDoc.
The editor view, which is in night mode by default, can also be toggled between night and day view using the the little sun<i class="fa fa-sun-o fa-fw"></i>.
@ -73,7 +73,7 @@ There are four possible options:
Notes can be embedded as follows:
```xml
<iframe width="100%" height="500" src="https://demo.codimd.io/features" frameborder="0"></iframe>
<iframe width="100%" height="500" src="https://demo.hedgedoc.org/features" frameborder="0"></iframe>
```
### [Slide Mode](./slide-example)
@ -524,7 +524,7 @@ Center aligned columns
#### Links
[link text](https://demo.codimd.org)
[link text](https://demo.hedgedoc.org)
[link with title](https://nodeca.github.io/pica/demo/ "title text!")
Autoconverted link <https://github.com/nodeca/pica>

View file

@ -5,9 +5,9 @@ We process the following data, for the following purposes:
| your data | our usage |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IP-Address | Used to communicate with your browser and our servers. It's may exposed to third-parties which provide resources for this service. These services are, depending on your login method, the document you visit and the setup of this instance: Google, Disqus, MathJax, GitHub, SlideShare/LinkedIn, yahoo, Libravatar, Imgur, Amazon, and Cloudflare. |
| Usernames and profiles | Your username as well as user profiles that are connected with it are transmitted and stored by us to provide a useful login integration with services like GitHub, Facebook, Twitter, GitLab, Dropbox, Google. Depending on the setup of this CodiMD instance there are maybe other third-parties involved using SAML, LDAP or the integration with a Mattermost instance. |
| Profile pictures | Your profile picture is either loaded from the service you used to login, the CodiMD instance or Libravatar. |
| Uploaded pictures | Pictures that are uploaded for documents are either uploaded to Amazon S3, Imgur, a minio instance or the local filesystem of the CodiMD server. |
| Usernames and profiles | Your username as well as user profiles that are connected with it are transmitted and stored by us to provide a useful login integration with services like GitHub, Facebook, Twitter, GitLab, Dropbox, Google. Depending on the setup of this HedgeDoc instance there are maybe other third-parties involved using SAML, LDAP or the integration with a Mattermost instance. |
| Profile pictures | Your profile picture is either loaded from the service you used to login, the HedgeDoc instance or Libravatar. |
| Uploaded pictures | Pictures that are uploaded for documents are either uploaded to Amazon S3, Imgur, a minio instance or the local filesystem of the HedgeDoc server. |
All account data and notes are stored in a mysql/postgres/sqlite database. Besides the user accounts and the document themselves also relationships between the documents and the user accounts are stored. This includes ownership, authorship and revisions of all changes made during the creation of a note.

View file

@ -96,7 +96,7 @@ dir: rtl
## breaks
This option means the hardbreaks in the note will be parsed or be ignore.
The original markdown syntax breaks only if you put space twice, but CodiMD choose to breaks every time you enter a break.
The original markdown syntax breaks only if you put space twice, but HedgeDoc choose to breaks every time you enter a break.
You can only use whether `true` or `false`.
> default: not set (which will be true)
@ -125,7 +125,7 @@ This option allows you to enable Disqus with your shortname.
**Example**
```yml
disqus: codimd
disqus: hedgedoc
```
## type

Binary file not shown.

Before

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/icons/mstile-150x150.png"/>
<TileColor>#b51f08</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

BIN
public/icons/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,18 @@
{
"name": "HedgeDoc",
"short_name": "HedgeDoc",
"icons": [
{
"src": "/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#303030",
"background_color": "#303030"
}

View file

@ -318,7 +318,7 @@ $('.ui-save-history').click(() => {
const blob = new Blob([history], {
type: 'application/json;charset=utf-8'
})
saveAs(blob, `codimd_history_${moment().format('YYYYMMDDHHmmss')}`, true)
saveAs(blob, `hedgedoc_history_${moment().format('YYYYMMDDHHmmss')}`, true)
})
})

View file

@ -117,9 +117,9 @@ function getTitle (view) {
export function renderTitle (view) {
let title = getTitle(view)
if (title) {
title += ' - CodiMD'
title += ' - HedgeDoc'
} else {
title = 'CodiMD - Collaborative markdown notes'
title = 'HedgeDoc - Collaborative markdown notes'
}
return title
}

View file

@ -1,15 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<%- include codimd/head %>
</head>
<body>
<%- include codimd/header %>
<%- include codimd/body %>
<%- include codimd/footer %>
<%- include codimd/foot %>
</body>
</html>

View file

@ -2,18 +2,18 @@
<html lang="en">
<head>
<%- include codimd/head %>
<%- include hedgedoc/head %>
<link rel="stylesheet" href="<%- serverURL %>/css/center.css">
</head>
<body>
<%- include codimd/header %>
<%- include hedgedoc/header %>
<div class="container-fluid text-center">
<div class="vertical-center-row">
<h1><%- code %> <%- detail %> <small><%- msg %></small></h1>
</div>
</div>
<%- include codimd/footer %>
<%- include hedgedoc/footer %>
</body>
</html>

15
public/views/hedgedoc.ejs Normal file
View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<%- include hedgedoc/head %>
</head>
<body>
<%- include hedgedoc/header %>
<%- include hedgedoc/body %>
<%- include hedgedoc/footer %>
<%- include hedgedoc/foot %>
</body>
</html>

View file

View file

@ -4,12 +4,13 @@
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<%- include ../includes/favicon %>
<% for (var og in opengraph) { %>
<% if (opengraph.hasOwnProperty(og) && opengraph[og].trim() !== '') { %>
<meta property="og:<%- og %>" content="<%- opengraph[og] %>">
<% }} if (!opengraph.hasOwnProperty('image')) { %>
<meta property="og:image" content="<%- serverURL %>/codimd-icon-1024.png">
<meta property="og:image:alt" content="CodiMD logo">
<meta property="og:image" content="<%- serverURL %>/icons/android-chrome-512x512">
<meta property="og:image:alt" content="HedgeDoc logo">
<meta property="og:image:type" content="image/png">
<% } %>
<base href="<%- serverURL %>/">

View file

@ -13,7 +13,10 @@
<ul class="dropdown-menu list" role="menu" aria-labelledby="menu">
</ul>
</div>
<a class="navbar-brand pull-left" href="<%- serverURL %>/"><i class="fa fa-file-text"></i> CodiMD</a>
<a class="navbar-brand pull-left header-brand" href="<%- serverURL %>/" title="HedgeDoc (formerly CodiMD)">
<img src="<%- serverURL %>/banner/banner_h_bw.svg" alt="HedgeDoc" class="h-100 no-night">
<img src="<%- serverURL %>/banner/banner_h_wb.svg" alt="HedgeDoc" class="h-100 night">
</a>
<div class="nav-mobile pull-right visible-xs">
<a data-toggle="dropdown" class="btn btn-link">
<i class="fa fa-caret-down"></i>

View file

@ -0,0 +1,11 @@
<link rel="apple-touch-icon" sizes="180x180" href="<%- serverURL %>/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="<%- serverURL %>/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="<%- serverURL %>/icons/favicon-16x16.png">
<link rel="manifest" href="<%- serverURL %>/icons/site.webmanifest">
<link rel="mask-icon" href="<%- serverURL %>/icons/safari-pinned-tab.svg" color="#b51f08">
<link rel="shortcut icon" href="<%- serverURL %>/icons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="HedgeDoc - <%= __('Collaborative markdown notes') %>">
<meta name="application-name" content="HedgeDoc - <%= __('Collaborative markdown notes') %>">
<meta name="msapplication-TileColor" content="#b51f08">
<meta name="msapplication-config" content="<%- serverURL %>/icons/browserconfig.xml">
<meta name="theme-color" content="#303030">

View file

@ -40,10 +40,13 @@
<div id="home" class="section"<% if(signin) { %> style="display:none;"<% } %>>
<div class="inner cover">
<h1 class="cover-heading"><i class="fa fa-file-text"></i> CodiMD</h1>
<h1 class="cover-heading"><img src="<%- serverURL %>/banner/banner_vertical_color.svg" width="400" alt="HedgeDoc logo"></h1>
<p class="lead">
<%= __('Best way to write and share your knowledge in markdown.') %>
</p>
<span class="alert alert-info" style="display: inline-block;">
CodiMD was renamed to HedgeDoc. <a href="INSERT_LINK" rel="noopener noreferrer" target="_blank" class="text-danger">Read more</a>
</span>
<% if (infoMessage && infoMessage.length > 0) { %>
<div class="alert alert-info" style="max-width: 400px; margin: 0 auto;"><%= infoMessage %></div>
<% } %>
@ -156,10 +159,10 @@
<option value="ml">മലയാളം</option>
</select>
<p>
<%- __('Powered by %s', '<a href="https://codimd.org">CodiMD</a>') %> | <a href="<%- serverURL %>/s/release-notes" target="_blank" rel="noopener"><%= __('Releases') %></a> | <a href="<%- sourceURL %>" target="_blank" rel="noopener"><%= __('Source Code') %></a><% if(imprint) { %> | <a href="<%- serverURL %>/s/imprint" target="_blank" rel="noopener"><%= __('Imprint') %></a><% } %><% if(privacyStatement) { %> | <a href="<%- serverURL %>/s/privacy" target="_blank" rel="noopener"><%= __('Privacy') %></a><% } %><% if(termsOfUse) { %> | <a href="<%- serverURL %>/s/terms-of-use" target="_blank" rel="noopener"><%= __('Terms of Use') %></a><% } %>
<%- __('Powered by %s', '<a href="https://hedgedoc.org">HedgeDoc</a>') %> | <a href="<%- serverURL %>/s/release-notes" target="_blank" rel="noopener"><%= __('Releases') %></a> | <a href="<%- sourceURL %>" target="_blank" rel="noopener"><%= __('Source Code') %></a><% if(imprint) { %> | <a href="<%- serverURL %>/s/imprint" target="_blank" rel="noopener"><%= __('Imprint') %></a><% } %><% if(privacyStatement) { %> | <a href="<%- serverURL %>/s/privacy" target="_blank" rel="noopener"><%= __('Privacy') %></a><% } %><% if(termsOfUse) { %> | <a href="<%- serverURL %>/s/terms-of-use" target="_blank" rel="noopener"><%= __('Terms of Use') %></a><% } %>
</p>
<h6 class="social-foot">
<%- __('Follow us on %s and %s.', '<a href="https://github.com/codimd/server" target="_blank" rel="noopener"><i class="fa fa-github"></i> GitHub</a>, <a href="https://community.codimd.org" target="_blank" rel="noopener"><i class="fa fa-users" aria-hidden="true"></i> Discourse</a>, <a href="https://matrix.to/#/#hedgedoc:matrix.org" target="_blank" rel="noopener"><i class="fa fa-comments"></i> Matrix</a>, <a href="https://social.codimd.org/mastodon" target="_blank" rel="noopener"><i class="fa fa-mastodon"></i> Mastodon</a>', '<a href="https://translate.codimd.org" target="_blank" rel="noopener"><i class="fa fa-globe"></i> POEditor</a>') %>
<%- __('Follow us on %s and %s.', '<a href="https://github.com/hedgedoc/server" target="_blank" rel="noopener"><i class="fa fa-github"></i> GitHub</a>, <a href="https://community.hedgedoc.org" target="_blank" rel="noopener"><i class="fa fa-users" aria-hidden="true"></i> Discourse</a>, <a href="https://matrix.to/#/#hedgedoc:matrix.org" target="_blank" rel="noopener"><i class="fa fa-comments"></i> Matrix</a>, <a href="https://social.hedgedoc.org/mastodon" target="_blank" rel="noopener"><i class="fa fa-mastodon"></i> Mastodon</a>', '<a href="https://translate.hedgedoc.org" target="_blank" rel="noopener"><i class="fa fa-globe"></i> POEditor</a>') %>
</h6>
</div>
</div>

View file

@ -6,17 +6,16 @@
<meta name="mobile-web-app-capable" content="yes">
<meta name="description" content="<%= __('Best way to write and share your knowledge in markdown.') %>">
<meta name="keywords" content="Collaborative, Markdown, Notes">
<meta property="og:title" content="CodiMD - <%= __('Collaborative markdown notes') %>">
<%- include ../includes/favicon %>
<meta property="og:title" content="HedgeDoc - <%= __('Collaborative markdown notes') %>">
<meta property="og:description" content="<%= __('Best way to write and share your knowledge in markdown.') %>">
<meta property="og:type" content="website">
<meta property="og:url" content="<%- serverURL %>">
<meta property="og:image" content="<%- serverURL %>/codimd-icon-1024.png">
<meta property="og:image:alt" content="CodiMD logo">
<meta property="og:image" content="<%- serverURL %>/icons/android-chrome-512x512">
<meta property="og:image:alt" content="HedgeDoc logo">
<meta property="og:image:type" content="image/png">
<base href="<%- serverURL %>/">
<title>CodiMD - <%= __('Collaborative markdown notes') %></title>
<link rel="icon" type="image/png" href="<%- serverURL %>/favicon.png">
<link rel="apple-touch-icon" href="<%- serverURL %>/apple-touch-icon.png">
<title>HedgeDoc - <%= __('Collaborative markdown notes') %></title>
<% if(useCDN) { %>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.0/css/bootstrap.min.css" integrity="sha256-H0KfTigpUV+0/5tn2HXC0CPwhhDhWgSawJdnFd0CGCo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.1.3/css/fork-awesome.min.css" integrity="sha256-ZhApazu+kejqTYhMF+1DzNKjIzP7KXu6AzyXcC1gMus=" crossorigin="anonymous" />

View file

@ -18,8 +18,8 @@
<% if (opengraph.hasOwnProperty(og) && opengraph[og].trim() !== '') { %>
<meta property="og:<%= og %>" content="<%= opengraph[og] %>">
<% }} if (!opengraph.hasOwnProperty('image')) { %>
<meta property="og:image" content="<%- serverURL %>/codimd-icon-1024.png">
<meta property="og:image:alt" content="CodiMD logo">
<meta property="og:image" content="<%- serverURL %>/icons/android-chrome-512x512">
<meta property="og:image:alt" content="HedgeDoc logo">
<meta property="og:image:type" content="image/png">
<% } %>
<base href="<%- serverURL %>/">

View file

@ -15,13 +15,13 @@
<h3 class="panel-title"><%= __('Contacts') %></h3>
</div>
<div class="panel-body">
<a href="https://community.codimd.org" target="_blank"><i class="fa fa-users fa-fw"></i> <%= __('Join the community') %></a>
<a href="https://community.hedgedoc.org" target="_blank"><i class="fa fa-users fa-fw"></i> <%= __('Join the community') %></a>
<br>
<a href="https://matrix.to/#/#hedgedoc:matrix.org" target="_blank"><i class="fa fa-hashtag fa-fw"></i> <%= __('Meet us on %s', 'Matrix') %></a>
<br>
<a href="https://github.com/codimd/server/issues" target="_blank"><i class="fa fa-tag fa-fw"></i> <%= __('Report an issue') %></a>
<a href="https://github.com/hedgedoc/server/issues" target="_blank"><i class="fa fa-tag fa-fw"></i> <%= __('Report an issue') %></a>
<br>
<a href="https://translate.codimd.org" target="_blank"><i class="fa fa-language fa-fw"></i> <%= __('Help us translating') %></a>
<a href="https://translate.hedgedoc.org" target="_blank"><i class="fa fa-language fa-fw"></i> <%= __('Help us translating') %></a>
</div>
</div>
<div class="panel panel-default">