Merge pull request #574 from PeterDaveHello/README.md-Table-of-Contents
Add "Table of Contents" in README.md
This commit is contained in:
commit
94021e2d34
2 changed files with 83 additions and 57 deletions
136
README.md
136
README.md
|
@ -14,34 +14,32 @@ Still in the early stage, feel free to fork or contribute to HackMD.
|
||||||
|
|
||||||
Thanks for using! :smile:
|
Thanks for using! :smile:
|
||||||
|
|
||||||
[docker-hackmd](https://github.com/hackmdio/docker-hackmd)
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
---
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
|
# Table of Contents
|
||||||
|
|
||||||
Before you go too far, here is the great docker repo for HackMD.
|
- [Browsers Requirement](#browsers-requirement)
|
||||||
With docker, you can deploy a server in minutes without any downtime.
|
- [Installation](#installation)
|
||||||
|
- [Getting started (Native install)](#getting-started-native-install)
|
||||||
|
- [Prerequisite](#prerequisite)
|
||||||
|
- [Instructions](#instructions)
|
||||||
|
- [Heroku Deployment](#heroku-deployment)
|
||||||
|
- [HackMD by docker container](#hackmd-by-docker-container)
|
||||||
|
- [Upgrade](#upgrade)
|
||||||
|
- [Native setup](#native-setup)
|
||||||
|
- [Configuration](#configuration)
|
||||||
|
- [Environment variables (will overwrite other server configs)](#environment-variables-will-overwrite-other-server-configs)
|
||||||
|
- [Application settings `config.json`](#application-settings-configjson)
|
||||||
|
- [Third-party integration api key settings](#third-party-integration-api-key-settings)
|
||||||
|
- [Third-party integration oauth callback urls](#third-party-integration-oauth-callback-urls)
|
||||||
|
- [Developer Notes](#developer-notes)
|
||||||
|
- [Structure](#structure)
|
||||||
|
- [Operational Transformation](#operational-transformation)
|
||||||
|
- [License](#license)
|
||||||
|
|
||||||
Heroku Deployment
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
---
|
|
||||||
|
|
||||||
You can quickly setup a sample heroku hackmd application by clicking the button below.
|
# Browsers Requirement
|
||||||
|
|
||||||
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
|
|
||||||
|
|
||||||
[migration-to-0.5.0](https://github.com/hackmdio/migration-to-0.5.0)
|
|
||||||
---
|
|
||||||
|
|
||||||
We don't use LZString to compress socket.io data and DB data after version 0.5.0.
|
|
||||||
Please run the migration tool if you're upgrading from the old version.
|
|
||||||
|
|
||||||
[migration-to-0.4.0](https://github.com/hackmdio/migration-to-0.4.0)
|
|
||||||
---
|
|
||||||
|
|
||||||
We've dropped MongoDB after version 0.4.0.
|
|
||||||
So here is the migration tool for you to transfer the old DB data to the new DB.
|
|
||||||
This tool is also used for official service.
|
|
||||||
|
|
||||||
Browsers Requirement
|
|
||||||
---
|
|
||||||
|
|
||||||
- Chrome >= 47, Chrome for Android >= 47
|
- Chrome >= 47, Chrome for Android >= 47
|
||||||
- Safari >= 9, iOS Safari >= 8.4
|
- Safari >= 9, iOS Safari >= 8.4
|
||||||
|
@ -50,15 +48,17 @@ Browsers Requirement
|
||||||
- Opera >= 34, Opera Mini not supported
|
- Opera >= 34, Opera Mini not supported
|
||||||
- Android Browser >= 4.4
|
- Android Browser >= 4.4
|
||||||
|
|
||||||
Prerequisite
|
# Installation
|
||||||
---
|
|
||||||
|
## Getting started (Native install)
|
||||||
|
|
||||||
|
### Prerequisite
|
||||||
|
|
||||||
- Node.js 6.x or up (test up to 7.5.0)
|
- Node.js 6.x or up (test up to 7.5.0)
|
||||||
- Database (PostgreSQL, MySQL, MariaDB, SQLite, MSSQL) use charset `utf8`
|
- Database (PostgreSQL, MySQL, MariaDB, SQLite, MSSQL) use charset `utf8`
|
||||||
- npm (and its dependencies, especially [uWebSockets](https://github.com/uWebSockets/uWebSockets#nodejs-developers), [node-gyp](https://github.com/nodejs/node-gyp#installation))
|
- npm (and its dependencies, especially [uWebSockets](https://github.com/uWebSockets/uWebSockets#nodejs-developers), [node-gyp](https://github.com/nodejs/node-gyp#installation))
|
||||||
|
|
||||||
Get started
|
### Instructions
|
||||||
---
|
|
||||||
|
|
||||||
1. Download a release and unzip or clone into a directory
|
1. Download a release and unzip or clone into a directory
|
||||||
2. Enter the directory and type `bin/setup`, which will install npm dependencies and create configs. The setup script is written in Bash, you would need bash as a prerequisite.
|
2. Enter the directory and type `bin/setup`, which will install npm dependencies and create configs. The setup script is written in Bash, you would need bash as a prerequisite.
|
||||||
|
@ -67,8 +67,22 @@ Get started
|
||||||
5. Build front-end bundle by `npm run build` (use `npm run dev` if you are in development)
|
5. Build front-end bundle by `npm run build` (use `npm run dev` if you are in development)
|
||||||
6. Run the server as you like (node, forever, pm2)
|
6. Run the server as you like (node, forever, pm2)
|
||||||
|
|
||||||
Upgrade guide
|
## Heroku Deployment
|
||||||
---
|
|
||||||
|
You can quickly setup a sample heroku hackmd application by clicking the button below.
|
||||||
|
|
||||||
|
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
|
||||||
|
|
||||||
|
## HackMD by docker container
|
||||||
|
|
||||||
|
[docker-hackmd](https://github.com/hackmdio/docker-hackmd)
|
||||||
|
|
||||||
|
Before you go too far, here is the great docker repo for HackMD.
|
||||||
|
With docker, you can deploy a server in minutes without any downtime.
|
||||||
|
|
||||||
|
# Upgrade
|
||||||
|
|
||||||
|
## Native setup
|
||||||
|
|
||||||
If you are upgrading HackMD from an older version, follow these steps:
|
If you are upgrading HackMD from an older version, follow these steps:
|
||||||
|
|
||||||
|
@ -81,23 +95,18 @@ If you are upgrading HackMD from an older version, follow these steps:
|
||||||
6. Run `node_modules/.bin/sequelize db:migrate`, this step will migrate your db to the latest schema
|
6. Run `node_modules/.bin/sequelize db:migrate`, this step will migrate your db to the latest schema
|
||||||
7. Start your whole new server!
|
7. Start your whole new server!
|
||||||
|
|
||||||
Structure
|
* [migration-to-0.5.0](https://github.com/hackmdio/migration-to-0.5.0)
|
||||||
---
|
|
||||||
|
|
||||||
```text
|
We don't use LZString to compress socket.io data and DB data after version 0.5.0.
|
||||||
hackmd/
|
Please run the migration tool if you're upgrading from the old version.
|
||||||
├── tmp/ --- temporary files
|
|
||||||
├── docs/ --- document files
|
|
||||||
├── lib/ --- server libraries
|
|
||||||
└── public/ --- client files
|
|
||||||
├── css/ --- css styles
|
|
||||||
├── js/ --- js scripts
|
|
||||||
├── vendor/ --- vendor includes
|
|
||||||
└── views/ --- view templates
|
|
||||||
```
|
|
||||||
|
|
||||||
Configuration files
|
* [migration-to-0.4.0](https://github.com/hackmdio/migration-to-0.4.0)
|
||||||
---
|
|
||||||
|
We've dropped MongoDB after version 0.4.0.
|
||||||
|
So here is the migration tool for you to transfer the old DB data to the new DB.
|
||||||
|
This tool is also used for official service.
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
|
||||||
There are some configs you need to change in the files below
|
There are some configs you need to change in the files below
|
||||||
|
|
||||||
|
@ -105,8 +114,7 @@ There are some configs you need to change in the files below
|
||||||
./config.json ----application settings
|
./config.json ----application settings
|
||||||
```
|
```
|
||||||
|
|
||||||
Environment variables (will overwrite other server configs)
|
## Environment variables (will overwrite other server configs)
|
||||||
---
|
|
||||||
|
|
||||||
| variables | example values | description |
|
| variables | example values | description |
|
||||||
| --------- | ------ | ----------- |
|
| --------- | ------ | ----------- |
|
||||||
|
@ -160,8 +168,7 @@ Environment variables (will overwrite other server configs)
|
||||||
| HMD_HSTS_MAX_AGE | `31536000` | max duration in seconds to tell clients to keep HSTS status (default is a year) |
|
| HMD_HSTS_MAX_AGE | `31536000` | max duration in seconds to tell clients to keep HSTS status (default is a year) |
|
||||||
| HMD_HSTS_PRELOAD | `true` | whether to allow preloading of the site's HSTS status (e.g. into browsers) |
|
| HMD_HSTS_PRELOAD | `true` | whether to allow preloading of the site's HSTS status (e.g. into browsers) |
|
||||||
|
|
||||||
Application settings `config.json`
|
## Application settings `config.json`
|
||||||
---
|
|
||||||
|
|
||||||
| variables | example values | description |
|
| variables | example values | description |
|
||||||
| --------- | ------ | ----------- |
|
| --------- | ------ | ----------- |
|
||||||
|
@ -205,8 +212,7 @@ Application settings `config.json`
|
||||||
| s3 | `{ "accessKeyId": "YOUR_S3_ACCESS_KEY_ID", "secretAccessKey": "YOUR_S3_ACCESS_KEY", "region": "YOUR_S3_REGION" }` | When `imageUploadType` be set to `s3`, you would also need to setup this key, check our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) |
|
| s3 | `{ "accessKeyId": "YOUR_S3_ACCESS_KEY_ID", "secretAccessKey": "YOUR_S3_ACCESS_KEY", "region": "YOUR_S3_REGION" }` | When `imageUploadType` be set to `s3`, you would also need to setup this key, check our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) |
|
||||||
| s3bucket | `YOUR_S3_BUCKET_NAME` | bucket name when `imageUploadType` is set to `s3` |
|
| s3bucket | `YOUR_S3_BUCKET_NAME` | bucket name when `imageUploadType` is set to `s3` |
|
||||||
|
|
||||||
Third-party integration api key settings
|
## Third-party integration api key settings
|
||||||
---
|
|
||||||
|
|
||||||
| service | settings location | description |
|
| service | settings location | description |
|
||||||
| ------- | --------- | ----------- |
|
| ------- | --------- | ----------- |
|
||||||
|
@ -214,8 +220,7 @@ Third-party integration api key settings
|
||||||
| imgur | environment variables or `config.json` | for image upload |
|
| imgur | environment variables or `config.json` | for image upload |
|
||||||
| google drive(`google/apiKey`, `google/clientID`), dropbox(`dropbox/appKey`) | `config.json` | for export and import |
|
| google drive(`google/apiKey`, `google/clientID`), dropbox(`dropbox/appKey`) | `config.json` | for export and import |
|
||||||
|
|
||||||
Third-party integration oauth callback urls
|
## Third-party integration oauth callback urls
|
||||||
---
|
|
||||||
|
|
||||||
| service | callback url (after the server url) |
|
| service | callback url (after the server url) |
|
||||||
| ------- | --------- |
|
| ------- | --------- |
|
||||||
|
@ -226,14 +231,33 @@ Third-party integration oauth callback urls
|
||||||
| dropbox | `/auth/dropbox/callback` |
|
| dropbox | `/auth/dropbox/callback` |
|
||||||
| google | `/auth/google/callback` |
|
| google | `/auth/google/callback` |
|
||||||
|
|
||||||
Operational Transformation
|
# Developer Notes
|
||||||
---
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```text
|
||||||
|
hackmd/
|
||||||
|
├── tmp/ --- temporary files
|
||||||
|
├── docs/ --- document files
|
||||||
|
├── lib/ --- server libraries
|
||||||
|
└── public/ --- client files
|
||||||
|
├── css/ --- css styles
|
||||||
|
├── js/ --- js scripts
|
||||||
|
├── vendor/ --- vendor includes
|
||||||
|
└── views/ --- view templates
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operational Transformation
|
||||||
|
|
||||||
From 0.3.2, we started supporting operational transformation.
|
From 0.3.2, we started supporting operational transformation.
|
||||||
It makes concurrent editing safe and will not break up other users' operations.
|
It makes concurrent editing safe and will not break up other users' operations.
|
||||||
Additionally, now can show other clients' selections.
|
Additionally, now can show other clients' selections.
|
||||||
See more at [http://operational-transformation.github.io/](http://operational-transformation.github.io/)
|
See more at [http://operational-transformation.github.io/](http://operational-transformation.github.io/)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
**License under MIT.**
|
**License under MIT.**
|
||||||
|
|
||||||
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
|
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
|
||||||
|
|
|
@ -11,7 +11,8 @@
|
||||||
"dev": "webpack --config webpack.config.js --progress --colors --watch",
|
"dev": "webpack --config webpack.config.js --progress --colors --watch",
|
||||||
"build": "webpack --config webpack.production.js --progress --colors --bail",
|
"build": "webpack --config webpack.production.js --progress --colors --bail",
|
||||||
"postinstall": "bin/heroku",
|
"postinstall": "bin/heroku",
|
||||||
"start": "node app.js"
|
"start": "node app.js",
|
||||||
|
"doctoc": "doctoc --title='# Table of Contents' README.md"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
|
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
|
||||||
|
@ -152,6 +153,7 @@
|
||||||
"babel-runtime": "^6.20.0",
|
"babel-runtime": "^6.20.0",
|
||||||
"copy-webpack-plugin": "^4.0.1",
|
"copy-webpack-plugin": "^4.0.1",
|
||||||
"css-loader": "^0.26.1",
|
"css-loader": "^0.26.1",
|
||||||
|
"doctoc": "^1.3.0",
|
||||||
"ejs-loader": "^0.3.0",
|
"ejs-loader": "^0.3.0",
|
||||||
"exports-loader": "^0.6.3",
|
"exports-loader": "^0.6.3",
|
||||||
"expose-loader": "^0.7.1",
|
"expose-loader": "^0.7.1",
|
||||||
|
|
Loading…
Reference in a new issue