diff --git a/.github/styles/config/vocabularies/Rules/accept.txt b/.github/styles/config/vocabularies/Rules/accept.txt
new file mode 100644
index 0000000000..039d46edf7
--- /dev/null
+++ b/.github/styles/config/vocabularies/Rules/accept.txt
@@ -0,0 +1,150 @@
+[Aa]nsible
+[Aa]utostart
+[Bb]locklist
+[Bb]locklists
+[Bb]oolean
+[Bb]reakpoint
+[B]reakpoints
+[Cc]ancelation
+[Cc]lassloading
+[Cc]hargeback
+[Cc]hargebacks
+[Cc]he
+[Cc]rypto
+[Cc]ryptocurrency
+[Dd]evfile|[Dd]evfiles
+[Dd]ownstream
+[Dd]ownstreaming
+[Ff]actories|[Ff]actory
+[Gg]it
+[Gg]rafana
+[Hh]eatmap
+[Hh]elm
+[Hh]ostname
+[Ii]tem
+[Jj]etbrains
+[Kk]eycloak
+[Ll]iveness
+[Ll]ombok
+[Ll]oopback
+[Mm]aven
+[Mm]inikube
+[Mm]inishift
+[Mm]ixin|[Mm]ixins
+[Mm]odularization
+[Mm]ulticluster
+[Mm]ultihost
+[Mm]ultinode
+[Mm]ultitenant
+[Mm]ultiuser
+[Mm]ultizone
+[Nn]amespace|[Nn]amespaces
+[Nn]etcoredebug[Oo]utput
+[Nn]ginx
+[Oo]nboarding
+[Pp]podman
+[Pp]reconfigured
+[Rr]eadonly
+[Rr]epresentment
+[Rr]ollout|[Rr]ollouts
+[Rr]untime|[Rr]untimes
+[Ss]erializer
+[Ss]erverless
+[Ss]ubnetwork
+[Ss]ubpath|[Ss]ubpaths
+[Tt]heia
+[Tt]olerations
+[Tt]ruststore
+[Uu]ninstallation
+[Uu]nstaged
+[Uu]ntrusted
+[Ww]orkspace|[Ww]orkspaces
+[Yy]eoman
+\.NET
+adoc
+Antora
+API
+Apigee
+AsciiDoc
+AWS|aws
+Azure
+Bierner
+Bitbucket
+btn
+Btrfs
+CentOS
+Ceph
+Che-Theia
+CLI
+ConfigMap|ConfigMaps
+Ctrl
+DaemonSet
+Dev Workspace
+Developer Perspective
+DNS
+Docker
+Dockerfile
+Dotnet
+Endevor
+endif
+GitHub|github
+GitLab
+Gluster
+Gradle
+Grafana
+GUI
+HTTPS|https
+I/O
+IDE|ide|IDEs
+Intelephense
+IntelliJ IDEA
+Java
+Java Lombok
+JSON|json
+JVM|jvm
+kbd
+Kubespray
+Laravel
+Let\'s Encrypt
+Mattermost
+mebibytes
+Microsoft Azure
+millicores
+Mulesoft
+MySQL
+Netlify
+Node.js
+npm
+NuGet
+OAuth
+ocp
+OmniSharp
+OpenShift
+OpenTracing
+Operator
+OperatorHub
+OpenAPI
+osd
+PHP
+PostgreSQL
+Quarkus
+Rebilly
+Redoc
+Redocly
+Redocly-cli
+SCM
+Sharding
+SonarLint
+Spring Boot
+SVG
+Uber
+URI|URIs
+URL|url|URLs
+Velero
+Vercel
+Visual Studio Code
+vsix
+Webview|Webviews
+Woopra
+YAML|yaml
+Zowe
diff --git a/.github/styles/config/vocabularies/Rules/reject.txt b/.github/styles/config/vocabularies/Rules/reject.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/.github/sync.yml b/.github/sync.yml
deleted file mode 100644
index 6d3a4e3571..0000000000
--- a/.github/sync.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-group:
- - files:
- - source: docs/
- dest: docs/redoc
- repos: |
- Redocly/docs
diff --git a/.github/workflows/docs-tests.yaml b/.github/workflows/docs-tests.yaml
new file mode 100644
index 0000000000..667294559c
--- /dev/null
+++ b/.github/workflows/docs-tests.yaml
@@ -0,0 +1,37 @@
+name: Documentation tests
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+jobs:
+ markdownlint:
+ name: markdownlint
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: DavidAnson/markdownlint-cli2-action@v15
+ with:
+ config: .markdownlint.yaml
+ globs: |
+ docs/**/*.md
+ README.md
+
+ vale:
+ name: vale action
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: errata-ai/vale-action@reviewdog
+ with:
+ files: '["README.md", "docs"]'
+ filter_mode: file
+
+ linkcheck:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+ - name: Markup Link Checker (mlc)
+ uses: becheran/mlc@v0.16.1
+ with:
+ args: ./docs
diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml
index 50a6f24ba6..0bab1ca640 100644
--- a/.github/workflows/e2e-tests.yml
+++ b/.github/workflows/e2e-tests.yml
@@ -10,7 +10,7 @@ jobs:
build-and-e2e:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- run: npm ci
- run: npm run bundle
- run: npm run e2e
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index c81f8aba62..a906281aa6 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -11,13 +11,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup Node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
- name: Cache node modules
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: npm-${{ hashFiles('package-lock.json') }}
@@ -32,7 +32,7 @@ jobs:
run: npm run bundle
- name: Store bundle artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: bundles
path: bundles
@@ -43,7 +43,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Clean Install
run: npm ci
@@ -57,13 +57,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Clean Install
run: npm ci
- name: Download bundled artifact
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: bundles
path: bundles
@@ -86,16 +86,16 @@ jobs:
registry-url: 'https://registry.npmjs.org'
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Download bundled artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: bundles
path: bundles
- name: Cache node modules
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: npm-${{ hashFiles('package-lock.json') }}
@@ -143,22 +143,22 @@ jobs:
fi
- name: Setup Node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
- node-version: '14.x'
+ node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Download bundled artifacts
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: bundles
path: bundles
- name: Cache node modules
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: npm-${{ hashFiles('package-lock.json') }}
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 40a8978c41..6172d70ece 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -10,7 +10,7 @@ jobs:
build-and-unit:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- run: npm ci
- run: npm run bundle
- run: npm test
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
new file mode 100644
index 0000000000..ab1a86e51d
--- /dev/null
+++ b/.markdownlint.yaml
@@ -0,0 +1,54 @@
+---
+# Default rules: https://github.com/github/super-linter/blob/master/TEMPLATES/.markdown-lint.yml
+
+# Rules by id
+
+# Unordered list style
+MD004: false
+
+# Unordered list indentation
+MD007:
+ indent: 2
+
+MD013:
+ # TODO: Consider to decrease allowed line length
+ line_length: 800
+ tables: false
+
+## Allow same headers in siblings
+MD024:
+ siblings_only: true
+
+# Multiple top level headings in the same document
+MD025:
+ front_matter_title: ''
+
+# Trailing punctuation in heading
+MD026:
+ punctuation: '.,;:。,;:'
+
+# Ordered list item prefix
+MD029: false
+
+# Unordered lists inside of ordered lists
+MD030: false
+
+# Inline HTML
+MD033: false
+
+# No bare urls
+MD034: false
+
+# Emphasis used instead of a heading
+MD036: false
+
+# Disable "First line in file should be a top level heading"
+# We use uncommon format to add metadata.
+# TODO: Consider to use "YAML front matter".
+MD041: false
+
+# Rules by tags
+blank_lines: false
+
+MD046: false
+# code-block-style
diff --git a/.mlc.toml b/.mlc.toml
new file mode 100644
index 0000000000..46b3707200
--- /dev/null
+++ b/.mlc.toml
@@ -0,0 +1,4 @@
+# Ignore these links, we can't check them from this subproject
+ignore-links=["../*", "/docs/*"]
+# Path to the root folder used to resolve all relative paths
+root-dir="./docs"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 54afe4e77f..6132b0931d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,37 @@
+# [2.2.0](https://github.com/Redocly/redoc/compare/v2.1.5...v2.2.0) (2024-10-16)
+
+
+### Bug Fixes
+
+* show siblings schema with oneOf ([#2576](https://github.com/Redocly/redoc/issues/2576)) ([60d131b](https://github.com/Redocly/redoc/commit/60d131b0a9dab4710e900323c9ba81160cecf7d8))
+
+
+### Features
+
+* add support x-badges ([#2605](https://github.com/Redocly/redoc/issues/2605)) ([64f1877](https://github.com/Redocly/redoc/commit/64f18779e5fe7e03f25862463cbc5062e85c867c))
+
+
+
+## [2.1.5](https://github.com/Redocly/redoc/compare/v2.1.4...v2.1.5) (2024-06-10)
+
+
+### Bug Fixes
+
+* update react to 18 and react-tabs to 6 ([#2547](https://github.com/Redocly/redoc/issues/2547)) ([c664dd0](https://github.com/Redocly/redoc/commit/c664dd0d56571ce799b8eadd081d86a6b2cdefae))
+
+
+
+## [2.1.4](https://github.com/Redocly/redoc/compare/v2.1.3...v2.1.4) (2024-04-25)
+
+
+### Bug Fixes
+
+* add deprecated css to clickable property name ([#2526](https://github.com/Redocly/redoc/issues/2526)) ([b0d03d0](https://github.com/Redocly/redoc/commit/b0d03d02069c1508447ddebc2f8a3fffa9b03ce5))
+* use h2/h3 for headings instead of h1/h2 for better seo ([#2514](https://github.com/Redocly/redoc/issues/2514)) ([2b72dc0](https://github.com/Redocly/redoc/commit/2b72dc0e90f759a8ee2e47691c844e7f05928a24))
+* security vulnerability ([#2445](https://github.com/Redocly/redoc/pull/2445)) ([1f11f5](https://github.com/Redocly/redoc/commit/1f11f597c4f10ddd601db247f5034052b6ca689f))
+
+
+
## [2.1.3](https://github.com/Redocly/redoc/compare/v2.1.2...v2.1.3) (2023-10-24)
diff --git a/README.md b/README.md
index 7d6b9a8c76..543f98a10c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# This is a fork of the [Redocly/redoc](https://github.com/Redocly/redoc) project. It will be supported for the Bandwidth Organization only! If you would like to contribute or have any issues with the project, please contribute to the parent project and NOT this repository.
+# This is a fork of the [Redocly/redoc](https://github.com/Redocly/redoc) project. It will be supported for the Bandwidth Organization only! If you would like to contribute or have any issues with the project, please contribute to the parent project and NOT this repository
@@ -6,11 +6,11 @@
- # Generate interactive API documentation from OpenAPI definitions
+## Generate beautiful API documentation from OpenAPI
[![npm](http://img.shields.io/npm/v/redoc.svg)](https://www.npmjs.com/package/redoc) [![License](https://img.shields.io/npm/l/redoc.svg)](https://github.com/Redocly/redoc/blob/main/LICENSE)
- [![bundle size](http://img.badgesize.io/https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js?compression=gzip&max=300000)](https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js) [![npm](https://img.shields.io/npm/dm/redoc.svg)](https://www.npmjs.com/package/redoc) [![](https://data.jsdelivr.com/v1/package/npm/redoc/badge)](https://www.jsdelivr.com/package/npm/redoc)
+ [![bundle size](http://img.badgesize.io/https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js?compression=gzip&max=300000)](https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js) [![npm](https://img.shields.io/npm/dm/redoc.svg)](https://www.npmjs.com/package/redoc) [![jsDelivr status](https://data.jsdelivr.com/v1/package/npm/redoc/badge)](https://www.jsdelivr.com/package/npm/redoc)
@@ -39,13 +39,11 @@ enter the URL for your definition and select **TRY IT**.
- Responsive three-panel design with menu/scrolling synchronization
- Support for OpenAPI 3.1, OpenAPI 3.0, and Swagger 2.0
-- [Multiple deployment options](https://redocly.com/docs/redoc/)
-- Interactive interface so your users can try the API immediately
- Ability to integrate your API introduction into the side menu
- High-level grouping in side menu with the [`x-tagGroups`](https://redocly.com/docs/api-reference-docs/specification-extensions/x-tag-groups/) specification extension
- [Simple integration with `create-react-app`](https://redocly.com/docs/redoc/quickstart/react/)
- Code samples support (with vendor extension)
- ![](docs/images/code-samples-demo.gif)
+ ![code samples in action](docs/images/code-samples-demo.gif)
## Usage
@@ -55,8 +53,8 @@ Redoc is provided as a CLI tool (also distributed as a Docker image), HTML tag,
If you have Node installed, quickly generate documentation using `npx`:
-```
-npx @redocly/cli build-docs openapi.yaml
+```bash
+npx @redocly/cli build-docs openapi.yaml
```
The tool outputs by default to a file named `redoc-static.html` that you can open in your browser.
@@ -78,9 +76,9 @@ Add your own `spec-url` to the `` tag; this attribute can also be a local
### More usage options
-Check out the [deployment documentation](./deploment/index/md) for more options, and detailed documentation for each.
+Check out the [deployment documentation](./docs/deployment/intro.md) for more options, and detailed documentation for each.
-## Redoc vs. Reference
+## Redoc vs. Redocly API Reference
Redoc is Redocly's community-edition product. Looking for something more?
We also offer [hosted API reference documentation](https://redocly.com/docs/api-registry/guides/api-registry-quickstart/)
@@ -109,6 +107,7 @@ A sample of the organizations using Redocly tools in the wild:
- [Commbox](https://www.commbox.io/api/)
- [APIs.guru](https://apis.guru/api-doc/)
- [BoxKnight](https://www.docs.boxknight.com/)
+- [Quaderno API](https://developers.quaderno.io/api)
_Pull requests to add your own API page to the list are welcome_
@@ -122,6 +121,7 @@ Redoc uses the following [specification extensions](https://redocly.com/docs/api
* [`x-logo`](docs/redoc-vendor-extensions.md#x-logo) - is used to specify API logo
* [`x-traitTag`](docs/redoc-vendor-extensions.md#x-traitTag) - useful for tags that refer to non-navigation properties like Pagination, Rate-Limits, etc
* [`x-codeSamples`](docs/redoc-vendor-extensions.md#x-codeSamples) - specify operation code samples
+* [`x-badges`](docs/redoc-vendor-extensions.md#x-badges) - specify operation badges
* [`x-examples`](docs/redoc-vendor-extensions.md#x-examples) - specify JSON example for requests
* [`x-nullable`](docs/redoc-vendor-extensions.md#x-nullable) - mark schema param as a nullable
* [`x-displayName`](docs/redoc-vendor-extensions.md#x-displayname) - specify human-friendly names for the menu categories
diff --git a/config/docker/Dockerfile b/config/docker/Dockerfile
index b46474ca85..b56daf4d6a 100644
--- a/config/docker/Dockerfile
+++ b/config/docker/Dockerfile
@@ -5,7 +5,7 @@
# npm i -g http-server
# http-server -p 8000 --cors
-FROM node:12-alpine
+FROM node:18-alpine
RUN apk update && apk add --no-cache git
@@ -13,6 +13,7 @@ RUN apk update && apk add --no-cache git
WORKDIR /build
COPY package.json package-lock.json /build/
RUN npm ci --no-optional --ignore-scripts
+RUN npm explore esbuild -- npm run postinstall
# copy only required for the build files
COPY src /build/src
diff --git a/demo/index.html b/demo/index.html
index 8675b407c4..8d751a6b1e 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -1,46 +1,63 @@
-
-
-
- ReDoc Interactive Demo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+ Redoc Interactive Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+