Commit Graph

115 Commits

Author SHA1 Message Date
Joshua Chen 898611d4ad
refactor(core): code cleanup (#7084) 2022-04-01 13:41:39 +08:00
Joshua Chen 24c205a835
refactor: replace non-prop interface with type; allow plugin lifecycles to have sync type (#7080)
* refactor: replace non-prop interface with type; allow plugin lifecycles to have sync type

* fix
2022-03-31 19:16:07 +08:00
Joshua Chen 3f33e90704
chore: upgrade dependencies (#7065)
* chore: upgrade dependencies

* fix project words
2022-03-30 11:05:50 +08:00
Joshua Chen 77662260f8
refactor(core): refactor routes generation logic (#7054)
* refactor(core): refactor routes generation logic

* fixes
2022-03-29 16:37:29 +08:00
Joshua Chen 5fb09a2946
refactor(core): reorganize files (#7042)
* refactor(core): reorganize files

* fix types
2022-03-28 21:49:37 +08:00
Joshua Chen c81d21a641
refactor: minor type improvements (#7035) 2022-03-28 11:15:37 +08:00
Joshua Chen 87592bca03
refactor: ensure all types are using index signature instead of Record (#6995)
* refactor: ensure all types are using index signature instead of Record

* kick CI
2022-03-25 18:06:30 +08:00
Joshua Chen 6e2eb44964
refactor: unify how validateOptions is handled (#6961)
* refactor: unify how validateOptions is handled

* fix types

* fix again
2022-03-22 19:40:56 +08:00
Sébastien Lorber 8a1421a938
feat(core,theme): useRouteContext + HtmlClassNameProvider (#6933)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2022-03-18 10:57:32 +01:00
Joshua Chen f70ddf7e69
refactor(core): minor routes type improvement (#6929) 2022-03-17 13:38:28 +08:00
Joshua Chen 68aaf9201f
feat(core): allow plugin lifecycles to return relative paths (#6921)
* feat(core): resolve plugin lifecycles returning relative paths

* fix typo

* fix tests

* revert

* rename path -> entryPath
2022-03-16 20:47:15 +08:00
Joshua Chen ad88f5cc87
test: improve test coverage; multiple internal refactors (#6912) 2022-03-14 21:53:57 +08:00
Joshua Chen f6baaa6b75
test(theme-common): improve test coverage (#6902)
* test(theme-common): improve test coverage

* revert
2022-03-12 13:17:21 +08:00
Joshua Chen 2a7120cc02
docs: mention configureWebpack devServer return value (#6881) 2022-03-09 20:23:38 +08:00
Joshua Chen a4e37c4054
refactor: improve types (#6866) 2022-03-07 22:14:50 +08:00
Joshua Chen 8e934450d8
refactor: remove unnecessary default values normalized during validation (#6864)
* refactor: remove unnecessary default values normalized during validation

* more
2022-03-07 19:23:30 +08:00
Joshua Chen f763ac13a9
test: improve test coverage (#6857) 2022-03-06 17:55:21 +08:00
Joshua Chen 39b66d82ef
feat(core): rework swizzle CLI (#6243)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2022-02-25 14:13:15 +01:00
Joshua Chen c3370be64d
refactor: make MDX export a flat TOC list instead of tree (#6729) 2022-02-23 15:12:04 +01:00
Joshua Chen 9562a5d203
refactor: remove deprecated Webpack utils & validation escape hatch (#6740) 2022-02-23 11:40:58 +01:00
Joshua Chen ddad9713e6
refactor: improve client modules types (#6742) 2022-02-23 15:45:23 +08:00
Joshua Chen 0c7e592d34
chore: upgrade dependencies (#6660)
* chore: upgrade dependencies

* fix types
2022-02-12 15:29:40 +08:00
Joshua Chen aa446b7a9c
chore: clean up ESLint config, enable a few rules (#6514)
* chore: clean up ESLint config, enable a few rules

* enable max-len for comments

* fix build
2022-01-31 10:31:24 +08:00
Joshua Chen 8f69f633e6
refactor(core): convert theme-fallback to TS (#6511)
* refactor(core): convert theme-fallback to TS

* add missing type

* fix snapshot
2022-01-30 18:41:13 +08:00
Joshua Chen 2553f1fb5a
refactor: improve internal typing (#6507)
* refactor: improve internal typing

* fix

* fix test
2022-01-29 22:58:40 +08:00
Joshua Chen 76a8d5f38a
fix(content-blog): generate feed by reading build output (#6454) 2022-01-26 16:54:15 +01:00
Yaroslav Serhieiev 6f892e20b0
feat(core, theme-classic): allow overriding htmlLang (#6371) 2022-01-19 12:38:42 +01:00
Joshua Chen 37b70e3ab4
refactor(core): convert serverEntry.js to TS (#6237)
* refactor(core): convert serverEntry.js to TS

* fix

* migrate template to TS

* Move templates
2022-01-05 21:34:24 +08:00
Sébastien Lorber b393700a61
feat: async plugin creator functions (#6166) 2021-12-22 19:10:49 +01:00
Joshua Chen b4ec7ec011
refactor(core): fix types for client code (#6064) 2021-12-07 19:58:36 +01:00
Fernando Maia b366ba5603
feat: shorthands for themes/plugins/presets configuration (#5930)
Co-authored-by: Josh-Cena <sidachen2003@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2021-12-03 18:23:12 +01:00
Joshua Chen bfd7fd9d8a
refactor: minor ESLint improvements (#5981)
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
2021-12-03 17:38:29 +01:00
Oliver Ullman 1366c31201
feat(core): allow sourcing from multiple static directories (#4095)
* [WIP] Implementaion of multiple directory static sourcing

* Move default to validation

* Update test

* Refactor

* Port to MDX loader

* Fix

* Move dogfooding assets

* Doc writeup

* Restore assets

* Support absolute paths

* Dogfood absolute path

* Fix

* More tests

* Fix snapshots

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2021-11-18 22:26:26 +08:00
Armano 3bf59a65a9
refactor(types): correct HtmlTags types (#5959) 2021-11-17 07:10:44 +08:00
William Poetra Yoga ca9bd244aa
feat: allow user to specify deploymentBranch property in docusaurus.config.js (#5841)
* feat: allow user to specify deploymentBranch property in docusaurus.config.js

* docs: remove extra backtick

* docs: fix broken code block
2021-10-31 12:29:22 +08:00
Joshua Chen 7f7b858cd4
refactor: make all Props defined as interface + readonly (#5636)
* Initial work

* Fix
2021-10-05 19:04:24 +02:00
Bharat Middha 09550b0535
feat: properly type-check the Docusaurus config of new sites (#5589)
* fix: makes types DocusaurusConfig optional to match docs

* add UserDocusaurusConfig with required keys for user config

* convert UserDocusaurusConfig to use util type

* Docusaurus website config should be type-checked by CI + fix all existing issues

* add doc for config typechecking

* Update template configs for TS autocompletion

* fix last config typechecking bugs

* reapply prettier

* reapply prettier-docs

* Fix TS doc: add missing ()

* fix some docu plugin types

* add "const config" for simpler jsdoc annotation

Co-authored-by: slorber <lorber.sebastien@gmail.com>
2021-09-30 17:49:44 +02:00
Joshua Chen 3f1f8255a2
chore: upgrade Prettier + regenerate lock file (#5611)
* Bump deps

* Run prettier

* Format docs

* Minor refactor

* Collapse objects

* Fix type

* Update lock file
2021-09-30 12:54:17 +02:00
Erick Zhao c86dfbda61
feat(v2): allow specifying TOC max depth (themeConfig + frontMatter) (#5578)
* feat: add all TOC levels to MDX loader

* feat: add theme-level config for heading depth

* test: add remark MDX loader test

* fix: limit maxDepth validation to H2 - H6

* refactor: set default `maxDepth` using `joi`

* refactor: `maxDepth` -> `maxHeadingLevel

* refactor: invert underlying TOC depth API

* refactor: make TOC algorithm level-aware

* feat: add support for per-doc TOC heading levels

* feat: support document-level heading levels for blog

* fix: correct validation for toc level frontmatter

* fix: ensure TOC doesn't generate redundant DOM

* perf: simpler TOC heading search alg

* docs: document heading level props for `TOCInline`

* Update website/docs/guides/markdown-features/markdown-features-inline-toc.mdx

Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>

* docs: fix docs (again)

* create dedicated  test file for heading searching logic: exhaustive tests will be simpler to write

* toc search: add real-world test

* fix test

* add dogfooding tests for toc min/max

* add test for min/max toc frontmatter

* reverse min/max order

* add theme minHeadingLevel + tests

* simpler TOC rendering logic

* simplify TOC implementation (temp, WIP)

* reverse unnatural order for minHeadingLevel/maxHeadingLevel

* add TOC dogfooding tests to all content plugins

* expose toc min/max heading level frontmatter to all 3 content plugins

* refactor blogLayout: accept toc ReactElement directly

* move toc utils to theme-common

* add tests for filterTOC

* create new generic TOCItems component

* useless css file copied

* fix toc highlighting className conflicts

* update doc

* fix types

Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
Co-authored-by: slorber <lorber.sebastien@gmail.com>
2021-09-29 11:19:11 +02:00
Joshua Chen e1f4677d04
fix(module-type-aliases): move @type packages to dependencies (#5601)
* Move devDeps to deps

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Update docs

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Update init template

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>
2021-09-22 14:49:25 +02:00
Sébastien Lorber 295e77cc09
refactor(core): replace useDocusaurusContext().isClient by useIsBrowser() (#5349)
* extract separate useIsClient() hook

* for consistency, rename to `useIsBrowser`

* useless return

* improve doc for BrowserOnly

* update snapshot

* polish
2021-08-12 19:02:29 +02:00
Joshua Chen ee6ebc4877
refactor: better typing + remove unnecessary eslint-disable (#5335)
* Initial work

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Fix a few errors

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Restore default value

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Update docs

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Use custom route config

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Address a few suggestions

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Revert logo change

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Restore key

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Oops

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Remove use of any

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Remove eslint-disable

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Put type reference back

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Remove

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>
2021-08-11 16:07:17 +02:00
Joshua Chen 650f989dbb
fix: fix various TS errors (#5261)
* Fix import errors

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Oops

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>

* Mark contentLoaded async

Signed-off-by: Josh-Cena <sidachen2003@gmail.com>
2021-08-02 11:02:43 +02:00
Alexey Pyltsyn 9536ef900d
feat(v2): redesign mobile UX: inline TOC + doc sidebar in main menu (#4273)
* feat(v2): mobile TOC

* Bug fixes and various improvements

* Redesign

* extract TOCCollapsible component

* TS improvements

* Assign sidebar name directly to the doc route => no need for either permalinkToSidebar or GlobalData

* revert changes to useWindowSize, fix FOUC issues

* extract DocSidebarDesktop component

* remove now useless menu infima classes

* TOCHeadings => rename + remove unused onClick prop

* Extract DocSidebarItem

* minor renaming

* replace GlobalData usage by a React teleport system to render in the navbar mobile sidebar menu directly from the DocPage component

* useWindowSize => simulate SSR size in dev to make FOUC issues more obvious

* fix remaining sidebar layout shift

* update docs snapshots

* remove unused code translations

* remove unused code translations

* fix minor update-code-translations bug

* Add more build-size paths to watch

* Restyle back button

* Add  missing`menu` class

* extract useShallowMemoizedObject

* fix routes tests + better routes formatting

* use Translate api for labels

* use Translate api for labels

* Update translations

* Improve dark mode support for back button

* Merge branch 'master' into lex111/inline-color-code

# Conflicts:
#	packages/core/dist/css/default-dark/default-dark-rtl.min.css
#	packages/core/dist/css/default-dark/default-dark.min.css
#	packages/core/dist/css/default/default-rtl.min.css
#	packages/core/dist/css/default/default.min.css

* replace useCollapse by new useCollapsible

* Cleanup and use clean-btn for TOCCollapsible button

* Make TOC links clickable over full width

* Cleanup

* fix uncollapsible sidebar that can be collapsed + create <Collapsible> component

* dependency array typo

* rollback sidebars community commit typo

Co-authored-by: slorber <lorber.sebastien@gmail.com>
2021-07-09 16:50:38 +02:00
Sébastien Lorber 7b2723717c
fix(v2): fix d.ts lint error (#5129) 2021-07-08 18:17:53 +02:00
Christian Flach 0acbbc3d38
fix(v2): Invalid type definition for injectHtmlTags (#5124)
This was likely a typo, and resulted in the following error when using Typescript strict mode:

node_modules/@docusaurus/types/src/index.d.ts(250,14): error TS7031: Binding element 'Content' implicitly has an 'any' type.
2021-07-08 13:09:55 +02:00
Sébastien Lorber 7592982960
fix(v2): never remove trailing slash from site root like '/baseUrl/' (#5082)
* never apply trailingSlash to site root ('/baseUrl/') => only subroutes

* add deprecation comment for loadContext.baseUrl in favor of loadContext.siteConfig.baseUrl

* commit typo

* useless code
2021-06-29 15:17:23 +02:00
Jules Sam. Randolph 0ae8a09ba5
fix(v2): fix bad @docusaurus/types Plugin type generics (#5058)
* fix(types): type `LoadedPlugin` is not generic

`LoadedPlugin` referenced line 201 is not generic, causing typescript errors on
end-user builds.

* chore(types): add typescript dev dep, tsconfig and a test script

Contributors will no longer inadvertently dump type errors since any IDE should
check types now.

* add missing plugins generic types

Co-authored-by: slorber <lorber.sebastien@gmail.com>
2021-06-25 15:18:13 +02:00
Sébastien Lorber 138b4c9975
fix(v2): allow undefined favicon (#5054)
* fix(v2): allow undefined favicon

* fix snapshots
2021-06-24 18:50:28 +02:00
Sébastien Lorber 99270dbab2
fix(v2): fix Webpack persistent caching (evict on swizzle/alias/config change) (#5047)
* webpack upgrade

* refactor docusaurus-utils hash fns

* Fix webpack cache eviction problems on config/aliases/swizzle changes

* Move/Rename InitPlugin type

* fix TS typos

* Add tests for webpack aliases

* fix windows tests
2021-06-24 12:56:56 +02:00