From ca109b210924a14343870a887c28300c833bcc45 Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 2 Aug 2021 22:44:45 +0200 Subject: Added documentation & bumped the typedoc-theme-slick-dark dependency version --- README.md | 44 +++++-------------------------------------- documentation/hacking.md | 20 ++++++++++++++++++++ documentation/installation.md | 43 ++++++++++++++++++++++++++++++++++++++++++ package.json | 5 +++-- typedoc.json | 23 ++++++++++++++++++++-- yarn.lock | 38 ++++++++++++++++++++++++++++--------- 6 files changed, 121 insertions(+), 52 deletions(-) create mode 100644 documentation/hacking.md create mode 100644 documentation/installation.md diff --git a/README.md b/README.md index c0ac3f0..2784aca 100644 --- a/README.md +++ b/README.md @@ -30,44 +30,10 @@ Githermit requires no such thing. All the steps to get it set up are in [Usage]( - [ ] [Redesign](https://www.figma.com/file/r8P4m4SFTFkPfxkfoRrhtV/Githermit) - [ ] Documentation -# Usage -**Dependencies:** -- Git (obviously) -- Nodejs v14.16.0 -- libpcre -- libpcreposix -- libkrb5 -- libk5crypto -- libcom_err -- libssl-dev +# Installation +You can find a guide on how to install Githermit in [the documentation](/documentation/installation.md) -**Install all the Javascript dependencies** +# Contributing +Any contribution or support is very welcome. -`$ yarn install` - -Build & bundle the frontend - -`$ yarn build` - -Create a file called `settings.yml` with following content -``` -host: (Host address) -port: (Port) -dev_port: (Port for development server) -production: (Set this to true unless you're doing changes to Githermit) -title: (Title of your Githermit instance) -about: (Short description of your Githermit instance) -base_dir: (Directory where all of your bare Git repositories are located) -``` - -You can now run it with -`$ yarn start` - -# Development -You're highly encouraged to [create a merge request](https://gitlab.com/HampusMat/githermit/-/merge_requests/new) if you're willing to contribute. - -You can run the following command to easily get started with contributing - -`$ yarn dev` - -This will run an instance of Githermit with live-updating backend & frontend. +Find more info [here](/documentation/installation.md) \ No newline at end of file diff --git a/documentation/hacking.md b/documentation/hacking.md new file mode 100644 index 0000000..81a806c --- /dev/null +++ b/documentation/hacking.md @@ -0,0 +1,20 @@ +## The project structure +Githermit is what's called a monorepo and is thereof comprised of multiple packages. All of which resides in the 'packages' directory. + +### Server +This package contains the backend. The brains of the operations.
+You can find extensive information about the internals of the backend [here](/docs/modules.html) + +### Client +This package contains the frontend. Written is Vue.js, this is the soul of the project. + +### API +This package contains interfaces and types shared by the server and client packages. + +### Eslint-config-base +This package contains a base Eslint configuration for the server and client packages. Aswell as for the test environment. + +## Development utilities +You can use the following command to run a live-updating instance of Githermit. + +`$ yarn dev` diff --git a/documentation/installation.md b/documentation/installation.md new file mode 100644 index 0000000..2c68650 --- /dev/null +++ b/documentation/installation.md @@ -0,0 +1,43 @@ +## Requirements + +Githermit needs a multitude of packages to work properly. + +You'll need to have Git installed (obviously). You should be able to simply install this with your package manager.
+For example: + +`# apt-get install git` + +Githermit also requires NodeJS. You can find a comprehensive guide on how to install it in [the NodeJS documentation](https://nodejs.dev/download/package-manager/). + +And then there's a couple of packages that may or may not already be installed on your system. +- libpcre +- libpcreposix +- libkrb5 +- libk5crypto +- libcom_err +- libssl-dev + +## Setup + +You should now install the Javascript dependencies with Yarn. + +`$ yarn install` + +And finally, build the project. + +`$ yarn build` + +The final step is to create a file called `settings.yml` with the following content. +``` +host: (Host address) +port: (Port) +dev_port: (Port for development server) +production: (Set this to true unless you're doing changes to Githermit) +title: (Title of your Githermit instance) +about: (Short description of your Githermit instance) +base_dir: (Directory where all of your bare Git repositories are located) +``` + +## Starting +You can now run Githermit with +`$ yarn start` \ No newline at end of file diff --git a/package.json b/package.json index 4d1df42..b8396a7 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,9 @@ "fs-extra": "^10.0.0", "jest": "^27.0.6", "ts-jest": "^27.0.3", - "typedoc": "^0.21.4", - "typedoc-theme-slick-dark": "^1.0.1", + "typedoc": "^0.21.5", + "typedoc-plugin-pages": "^1.1.0", + "typedoc-theme-slick-dark": "^1.0.2", "typescript": "^4.3.5" } } diff --git a/typedoc.json b/typedoc.json index 41c4349..caaab57 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,4 +1,5 @@ { + "name": "Githermit docs", "entryPoints": [ "packages/server/src/git/index.ts", "packages/api/src/index.d.ts" @@ -6,6 +7,24 @@ "hideGenerator": true, "out": "docs", "tsconfig": "packages/server/tsconfig.json", - "theme": "node_modules/typedoc-theme-slick-dark/bin/default", - "highlightTheme": "dark-plus" + "theme": "../typedoc-theme-slick-dark/bin/default", + "highlightTheme": "dark-plus", + "pages": { + "reflectionNavigationTitle": "Development", + "groups": [ + { + "title": "Guides", + "pages": [ + { + "title": "Installation", + "source": "documentation/installation.md" + }, + { + "title": "Hacking", + "source": "documentation/hacking.md" + } + ] + } + ] + } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 04644b0..6dc04ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3527,6 +3527,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -7297,7 +7302,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lunr@^2.3.9: +lunr@^2.3.8, lunr@^2.3.9: version "2.3.9" resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== @@ -10470,20 +10475,35 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typedoc-default-themes@^0.10.1: + version "0.10.2" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.10.2.tgz#743380a80afe62c5ef92ca1bd4abe2ac596be4d2" + integrity sha512-zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg== + dependencies: + lunr "^2.3.8" + typedoc-default-themes@^0.12.10: version "0.12.10" resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz#614c4222fe642657f37693ea62cad4dafeddf843" integrity sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA== -typedoc-theme-slick-dark@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typedoc-theme-slick-dark/-/typedoc-theme-slick-dark-1.0.1.tgz#0d3c8e3d51bc25f4fe008a0dc0cbe02faf487da5" - integrity sha512-hsUcDF1NwaQVn756Jnk7+wB7UhjL9spbMCKCuFNr6n6QvdyBoqvZqPqcntzFZBlMWwQoZn9Dg3EWIyFQwtrAzQ== +typedoc-plugin-pages@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-pages/-/typedoc-plugin-pages-1.1.0.tgz#c51367404b87b9b2e8cc440a53ff641c42b9fd7a" + integrity sha512-pmCCp3G2aCeEWb829dcVe9Pl+pI5OsaqfyrkEutcAHZi6IMVfQ5G5NdrkIkFCGhJU/DY04rGrVdynWqnaO5/jg== + dependencies: + compare-versions "^3.6.0" + typedoc-default-themes "^0.10.1" + +typedoc-theme-slick-dark@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typedoc-theme-slick-dark/-/typedoc-theme-slick-dark-1.0.2.tgz#dada20958adafb351b8859737b5c900a4383f33c" + integrity sha512-Vo6EYbPpOJtG/WmkThnnqrj+hBOyx3S6nU5mdLL9uVCrpIHfGRBgHyTveJBzzETGRLuyEf8potjHtlyBF1FkRw== -typedoc@^0.21.4: - version "0.21.4" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.21.4.tgz#fced3cffdc30180db60a5dbfec9dbbb273cb5b31" - integrity sha512-slZQhvD9U0d9KacktYAyuNMMOXJRFNHy+Gd8xY2Qrqq3eTTTv3frv3N4au/cFnab9t3T5WA0Orb6QUjMc+1bDA== +typedoc@^0.21.5: + version "0.21.5" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.21.5.tgz#45643618ede5c3d75e2040b964d05fcffed7ca58" + integrity sha512-uRDRmYheE5Iju9Zz0X50pTASTpBorIHFt02F5Y8Dt4eBt55h3mwk1CBSY2+EfwBxY16N4Xm7f8KXhnfFZ0AmBw== dependencies: glob "^7.1.7" handlebars "^4.7.7" -- cgit v1.2.3-18-g5258