1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-07-19 13:19:42 +02:00

First run improvements (improved DX and docs) (#169)

* add some improvements for project start up

* update development docs

* add note about npx

* fix build command in Dockerfile.prod

* doc update
This commit is contained in:
Nikita Melnikov 2022-04-12 11:29:25 +04:00 committed by GitHub
parent ce1f7db3d7
commit 331d45bf73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 520 additions and 1008 deletions

View file

@ -1,66 +1,92 @@
# CodeX Docs # CodeX Docs
Engine for documentation website using [Editor.js](//editorjs.io) CodeX Docs is a simple but powerful documentation engine for CodeX powered with [Editor.js](//editorjs.io).
You can use CodeX Docs for product documentation, for internal team docs, or for any other documentation.
![](https://capella.pics/e3b8a441-53dc-4da6-a7a9-76b12629983b.jpg) ![](https://capella.pics/e3b8a441-53dc-4da6-a7a9-76b12629983b.jpg)
## Development ## Development
### Set up the environment ### Prerequisites
Install node version manager and required version of node js - NodeJS (v16.x)
- npx (installed by default with npm)
``` - Yarn
$ chmod u+x ./bin/nvm.sh && ./bin/nvm.sh
$ nvm install
```
> For windows use [nvm for windows](https://github.com/coreybutler/nvm-windows)
Install Yarn package manager
```
$ brew install yarn --without-node
```
> Use `--without-node` flag because nvm version of Node is used
Or download it directly from the [website](https://yarnpkg.com/en/docs/install)
### Install npm packages ### Install npm packages
```shell
yarn install --frozen-lockfile
``` ```
$ yarn install --frozen-lockfile
### Create config file
```shell
cp .codexdocsrc.sample .codexdocsrc
``` ```
### Run application (both frontend and backend)
```shell
yarn dev
```
Then you can open browser and navigate to [http://localhost:3000](http://localhost:3000).
Now you can [authenticate](https://github.com/codex-team/codex.docs/#authentication) in the application and start creating your documentation.
### Available scripts ### Available scripts
#### Compile to Javascript
``` #### Start whole application (backend and frontend in watch mode)
$ yarn compile
```shell
yarn dev
``` ```
#### Start the server #### Start backend in development mode
```shell
yarn start-backend
``` ```
$ yarn start
#### Compile TypeScript files
```shell
yarn compile
```
#### Build frontend
To build frontend sources run the following command:
```shell
yarn build-frontend
```
To build frontend and watch for changes run the following command:
```shell
yarn build-frontend:dev
``` ```
#### Run ESLint with `--fix` option #### Run ESLint with `--fix` option
``` ```shell
$ yarn lint yarn lint
``` ```
#### Run tests #### Run tests
``` ```shell
$ yarn test yarn test
``` ```
### Authentication ### Authentication
To manage pages you need to authorize (available on `/auth`). To manage pages you need to authorize (available on `/auth`).
To generate password use `yarn generatePassword [password]` command. To set password use `yarn generatePassword:ts [password]` command and restart the server.
## Release process ## Release process

View file

@ -16,7 +16,7 @@ RUN yarn install
COPY . . COPY . .
RUN yarn build RUN yarn build-frontend
RUN yarn compile RUN yarn compile

View file

@ -9,18 +9,17 @@
"> 1%" "> 1%"
], ],
"scripts": { "scripts": {
"start": "cross-env NODE_ENV=production nodemon --config nodemon.json ./src/bin/server.ts", "dev": "concurrently \"yarn start-backend\" \"yarn build-frontend:dev\"",
"start:dev": "cross-env NODE_ENV=development nodemon --config nodemon.json ./src/bin/server.ts", "start-backend": "cross-env NODE_ENV=development npx nodemon --config nodemon.json ./src/bin/server.ts",
"test": "cross-env NODE_ENV=testing mocha --recursive ./dist/test --exit", "compile": "tsc && copyfiles -u 3 ./src/**/*.twig ./dist/backend/views && copyfiles -u 1 ./src/**/*.svg ./dist/",
"test:ts": "cross-env NODE_ENV=testing ts-mocha ./src/test/*.ts ./src/test/**/*.ts --exit", "build-frontend": "webpack --mode=production",
"build-frontend:dev": "webpack --mode=development --watch",
"test:js": "cross-env NODE_ENV=testing mocha --recursive ./dist/test --exit",
"test": "cross-env NODE_ENV=testing ts-mocha ./src/test/*.ts ./src/test/**/*.ts --exit",
"lint": "eslint --fix --ext .ts ./src/backend", "lint": "eslint --fix --ext .ts ./src/backend",
"build": "webpack --mode=production",
"build:dev": "webpack --mode=development --watch",
"precommit": "yarn lint && yarn test:ts",
"generatePassword:ts": "ts-node ./src/generatePassword.ts", "generatePassword:ts": "ts-node ./src/generatePassword.ts",
"generatePassword": "node ./dist/generatePassword.js", "generatePassword": "node ./dist/generatePassword.js",
"editor-upgrade": "yarn add -D @editorjs/{editorjs,header,code,delimiter,list,link,image,table,inline-code,marker,warning,checklist,raw}@latest", "editor-upgrade": "yarn add -D @editorjs/{editorjs,header,code,delimiter,list,link,image,table,inline-code,marker,warning,checklist,raw}@latest"
"compile": "tsc && copyfiles -u 3 ./src/**/*.twig ./dist/backend/views && copyfiles -u 1 ./src/**/*.svg ./dist/"
}, },
"dependencies": { "dependencies": {
"bcrypt": "^5.0.1", "bcrypt": "^5.0.1",
@ -45,9 +44,6 @@
"uuid4": "^2.0.2" "uuid4": "^2.0.2"
}, },
"devDependencies": { "devDependencies": {
"cross-env": "^7.0.3",
"ts-node": "^10.1.0",
"@editorjs/embed": "^2.5.1",
"@babel/core": "^7.17.5", "@babel/core": "^7.17.5",
"@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/polyfill": "^7.12.1", "@babel/polyfill": "^7.12.1",
@ -57,6 +53,7 @@
"@editorjs/code": "^2.7.0", "@editorjs/code": "^2.7.0",
"@editorjs/delimiter": "^1.2.0", "@editorjs/delimiter": "^1.2.0",
"@editorjs/editorjs": "^2.23.2", "@editorjs/editorjs": "^2.23.2",
"@editorjs/embed": "^2.5.1",
"@editorjs/header": "^2.6.2", "@editorjs/header": "^2.6.2",
"@editorjs/image": "^2.6.2", "@editorjs/image": "^2.6.2",
"@editorjs/inline-code": "^1.3.1", "@editorjs/inline-code": "^1.3.1",
@ -93,7 +90,9 @@
"babel-loader": "^8.2.3", "babel-loader": "^8.2.3",
"chai": "^4.1.2", "chai": "^4.1.2",
"chai-http": "^4.0.0", "chai-http": "^4.0.0",
"concurrently": "^7.1.0",
"copyfiles": "^2.4.1", "copyfiles": "^2.4.1",
"cross-env": "^7.0.3",
"css-loader": "^6.7.0", "css-loader": "^6.7.0",
"cssnano": "^5.1.0", "cssnano": "^5.1.0",
"eslint": "^7.31.0", "eslint": "^7.31.0",
@ -102,7 +101,6 @@
"eslint-plugin-import": "^2.25.4", "eslint-plugin-import": "^2.25.4",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"highlight.js": "^11.1.0", "highlight.js": "^11.1.0",
"husky": "^1.1.2",
"mini-css-extract-plugin": "^2.6.0", "mini-css-extract-plugin": "^2.6.0",
"mocha": "^5.2.0", "mocha": "^5.2.0",
"mocha-sinon": "^2.1.2", "mocha-sinon": "^2.1.2",
@ -126,6 +124,7 @@
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"sinon": "^11.1.2", "sinon": "^11.1.2",
"ts-mocha": "^8.0.0", "ts-mocha": "^8.0.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5", "typescript": "^4.3.5",
"webpack": "^5.70.0", "webpack": "^5.70.0",
"webpack-cli": "^4.9.2" "webpack-cli": "^4.9.2"

1415
yarn.lock

File diff suppressed because it is too large Load diff