docsifyjs / docsifyjs/docsify

Encapsulating Docsify

Open
#2,135 6 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
31.5k
Forks
5.8k
Avg merge
9d 8h
Merged PRs (30d)
2

Description

We need allow the ability to fully encapsulate Docsify features and state.

With encapsulation, it will be possible later on to mount any number of `Docsify` instances anywhere in a web site, as well as become possible to wrap `Docsify` as a React/Vue/Svelte/etc component that can be used in any framework.

Encapsulation changes:

- [ ] progress bar currently appends to body. There should be an option to provide the location where it should be appended. It can default to body for backwards compatibility.
- [ ] Routing: it currently assumes control of the address bar. For backwards compatibility, this can be the default.
- [ ] We need an option to make it route _virtually_, without touching the address bar, for cases when that is desirable
- [ ] Perhaps add the ability to listen to a `Docsify` instance's route changes, so that they can be mapped to the address bar in a custom way. Also allow setting Docsify's route from outside, so that a website managing multiple instances can "paginate" Docsify manually.
- [ ] Some Docsify state is at the module level (singleton), including the aforementioned progress bar, but also including state variables. We should bring state into the `Docsify` class. Some of this this in #2104 in the items where we're bringing some functions into the classes as private methods.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.