GitHub Documentation using Docusaurus
Docusaurus is an open-source tool that allows you to easily build, deploy, and maintain a website for your documentation. Here's a step-by-step tutorial on how to get started with Docusaurus
Installation
For using docusaurus , Nodejs and NPM installation is required.
Nodejs Installation
Getting Started
npx create-docusaurus@latest my-website
my-website
├── blog
│ ├── 2019-05-28-hola.md
│ ├── 2019-05-29-hello-world.md
│ └── 2020-05-30-welcome.md
├── docs
│ ├── doc1.md
│ ├── doc2.md
│ ├── doc3.md
│ └── mdx.md
├── src
│ ├── css
│ │ └── custom.css
│ └── pages
│ ├── styles.module.css
│ └── index.js
├── static
│ └── img
├── docusaurus.config.js
├── package.json
├── README.md
├── sidebars.js
└── yarn.lock
Project Structure Details
Project structure rundown
Details on Docusaurus config:
Running Server Locally
Docusaurus server can be started locally by executing following command:
Recommended by LinkedIn
npm run start
By default server starts on http://localhost:3000/<BaseUrl>
Deployment on GitHub
# Dependencies
# /node_modules
/build
# Generated files
.docusaurus
.cache-loader
.docusaurus/*
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
deploymentBranch : 'gh-pages'
Sample: docusaurus.config.js
title: 'My-website',
tagline: 'All available docs for my-website',
url: 'https://<GitHubServer>',
baseUrl: '/my-website-docs/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
favicon: 'img/Logo.png',
organizationName: 'my-organization', // Usually your GitHub org/user name.
projectName: 'my-website-docs', // Usually your repo name.
deploymentBranch : 'gh-pages',
npm run docusaurus build
npm run docusaurus serve
https://myorg.github.io/my-website
References