diff options
Diffstat (limited to 'docs/dev')
-rw-r--r-- | docs/dev/getting-started.md | 57 | ||||
-rw-r--r-- | docs/dev/ot.md | 14 | ||||
-rw-r--r-- | docs/dev/webpack.md | 9 |
3 files changed, 79 insertions, 1 deletions
diff --git a/docs/dev/getting-started.md b/docs/dev/getting-started.md new file mode 100644 index 00000000..07524971 --- /dev/null +++ b/docs/dev/getting-started.md @@ -0,0 +1,57 @@ +Developer Notes +=== + +## Preparing for running the code + +**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` + (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 + and create configs. The setup script is written in Bash, you would need bash + as a prerequisite. +3. Setup the [config file](../configuration-config-file.md) or set up + [environment variables](../configuration-env-vars.md). + + +## Running the Code + +Now that everything is in place, we can start CodiMD: + +4. `npm run build` will build the frontend bundle. It uses webpack to do that. +5. Run the server with `node app.js` + + +## Running the Code with Auto-Reload + +The commands above are fine for production, but you're a developer and surely +you want to change things. You would need to restart both commands whenever you +change something. Luckily, you can run these commands that will automatically +rebuild the frontend or restart the server if necessary. + +The commands will stay active in your terminal, so you will need multiple tabs +to run both at the same time. + +4. Use `npm run dev` if you want webpack to continuously rebuild the frontend + code. +5. To auto-reload the server, the easiest method is to install [nodemon](https://www.npmjs.com/package/nodemon) + and run `nodemon --watch app.js --watch lib --watch locales app.js`. + + +## Structure + +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/ +├── docs/ --- documentation +├── lib/ --- server code +├── test/ --- test suite +└── public/ --- client code + ├── css/ --- css styles + ├── docs/ --- default documents + ├── js/ --- js scripts + ├── vendor/ --- vendor includes + └── views/ --- view templates +``` diff --git a/docs/dev/ot.md b/docs/dev/ot.md new file mode 100644 index 00000000..924be693 --- /dev/null +++ b/docs/dev/ot.md @@ -0,0 +1,14 @@ +Operational Transformation +=== + +From 0.3.2, we started supporting operational transformation. +It makes concurrent editing safe and will not break up other users' operations. +Additionally, now can show other clients' selections. + +See more at [https://operational-transformation.github.io/](https://operational-transformation.github.io/) + +And even more in this 2010 article series: + +* https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs_21.html +* https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs_22.html +* https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs.html diff --git a/docs/dev/webpack.md b/docs/dev/webpack.md index 7b391f3a..b05fd1d3 100644 --- a/docs/dev/webpack.md +++ b/docs/dev/webpack.md @@ -1,4 +1,11 @@ -# Webpack Docs +Webpack +=== + +Webpack is a JavaScript build system for frontend code. You can find out all +about it on [the webpack website](https://webpack.js.org/). + +Here's how we're using it: + ## `webpack.common.js` This file contains all common definition for chunks and plugins, that are needed by the whole app. |