Commit Graph

31 Commits

Author SHA1 Message Date
Sébastien Lorber 8ff28e3fe4
feat(v2): broken links detection (#3059)
* add broken links checker

* polish

* finalize broken links detection feature

* note broken links is only for prod build

* fix broken link on template

* fix test snapshot

* fix bad merge
2020-07-21 19:13:34 +02:00
Sébastien Lorber 15e73daae7
feat(v2): global data + useGlobalData + docs versions dropdown (#2971)
* doc components initial simplification

* doc components initial simplification

* add docContext test

* Add poc of global data system + use it in the theme

* Revert "doc components initial simplification"

This reverts commit f657b4c4

* revert useless changes

* avoid loosing context on docs switch

* fix docs tests

* fix @generated/globalData ts declaration / es import

* typo

* revert bad commit

* refactor navbar in multiple parts + add navbar item types validation + try to fix remaining merge bugs

* add missing watch mode for plugin debug

* fix docs global data integration, move related hooks to docs plugin + convert to TS

* change versions link label

* fix activeClassName react warning

* improve docs global data system + contextual navbar dropdown

* fix bug preventing the deployment

* refactor the global data system to namespace automatically by plugin name + plugin id

* proper NavbarItem comp

* fix tests

* fix snapshot

* extract theme config schema in separate file + rename navbar links to navbar items

* minor typos

* polish docs components/api

* polish useDocs api surface

* fix the docs version suggestions comp + data

* refactors + add docsClientUtils unit tests

* Add documentation

* typo

* Add check for duplicate plugin ids detection

* multi-instance: createData plugin data should be namespaced by plugin instance id

* remove attempt for multi-instance support
2020-07-21 11:16:08 +02:00
Sébastien Lorber 1272ab83fb
feat(v2): useDocusaurusContext().siteMetadata (#3058) 2020-07-16 12:46:21 +02:00
Sébastien Lorber 8aa6ef47e4
feat(v2): configureWebpack merge strategy + use file-loader for common asset types (#2994)
* Add some default asset loaders
Add webpack merge strategy feature to enable plugins to prepend some webpack configuration (like the ideal image plugin that should override the default image loader)

* Add documentation for using assets from markdown

* add path prefix for webpack file loader

* renaming

* document Merge strategies

* rename mergeStrategies -> mergeStrategy
2020-07-01 19:06:02 +02:00
Teik Jun 0f59cd1599
feat(v2): add option validation for remaining official plugins (#2970)
* feat(v2): add option validation lifecycle method

* chore(v2): add dependencies

* chore(v2): add yup dependency

* feat(v2): add option validation for plugin-content-docs

* chore(v2): add facebook copyright

* refactor(v2): remove unused variable

* chore(v2): add dependencies

* chore(v2): add copyright

* fix(v2): use strict for option validation

* feat(v2): add option validation for plugin-content-pages

* feat(v2): add schema for plugin-google-analytics and plugin-google-gtag

* feat(v2): add option validation for plugin-sitemap

* chore(v2): add dependency for yup

* fix(v2): remove strict to allow normalization

* refactor(v2): refactor validate method

* feat(v2): modify existing tests

* feat(v2): add tests for plugin normalization

* style(v2): use a more descriptive filename for schema

* feat(v2): add normalization tests

* feat(v2): add more tests for option validation

* refactor(v2): remove unused code

* refactor(v2): remove unused code

* refactor(v2): refactor methods and types

* feat(v2): replace Yup with Joi

* fix(v2): fix plugin-content-docs schema

* feat(v2): modify tests for plugin-content-docs

* fix(v2): fix a typo

* refactor(v2): improve tests and refactor code

* feat(v2): support both commonjs and ES modules

* refactor(v2): refactor validateOption method

* style(v2): fix eslint errors and typo in types

* chore(v2): remove unused yup dependency

* style(v2): standardize naming across official plugins

* chore(v2): update test snapshots

* chore(v2): remove obsolete snapshots

* chore(v2): fix a typo and check test

* feat(v2): add validation for new field

* feat(v2): add test for new field
2020-06-26 15:14:59 +02:00
Sam Zhou 5ccd24cc1f
feat(v2): Support swizzling TypeScript components (#2671)
* feat(v2): Support swizzling TypeScript components

* Add tsc --noEmit to tsc script in theme-classic

Now everything can pass the type checker! (although still a lot of any)

* Add tsconfig and types.d.ts to website

Improve developer experience.

As an example, I converted NotFound to tsx

* Apply type annotation suggestions

* Do not fallback to `getThemePath` if getTypeScriptThemePath is undefined

* Fix tsc

* Add module declaration for @theme-original/*

* Move babel cli to root package.json
2020-06-25 16:07:30 +02:00
Anshul Goyal 81d855355e
feat(v2): option and config validation life cycle method for official plugins (#2943)
* add validation for blog plugin

* fix wrong default component

* fix test and add yup to package.json

* remove console.log

* add validation for classic theme and code block theme

* add yup to packages

* remove console.log

* fix build

* fix logo required

* replaced yup with joi

* fix test

* remove hapi from docusuars core

* replace joi with @hapi/joi

* fix eslint

* fix remark plugin type

* change remark plugin validation to match documentation

* move schema to it's own file

* allow unknown only on outer theme object

* fix type for schema type

* fix yarn.lock

* support both commonjs and ES modules

* add docs for new lifecycle method
2020-06-24 20:08:16 +02:00
Sam Zhou 6e43c9bd34
chore(v2): Fix more eslint errors (#2976) 2020-06-21 15:09:00 +08:00
Alexey Pyltsyn 082c6212cb
feat(v2): allow deploy without building website (#2770)
* feat(v2): allow deploy without building website

* Update cli.md
2020-05-27 22:34:41 +08:00
Alexey Pyltsyn 00a8e9e365
feat(v2): allow home page for docs (#2652)
* feat(v2): allow home page for docs

* Refactor

* Remove debugging info 🤦‍♂️

* Add sort routes for first test case

* Sort child routes for consistency
2020-05-17 17:48:02 +08:00
Yangshun Tay 03070a2b8d chore: add copyright headers to missing files 2020-05-11 00:11:11 +08:00
Tom Brien 852b5e8f13
feat(v2): add CLI option for polling (#2630)
* Add CLI option to polling

Some environments (specifically docker containers) can have issues with file watching for live reloads. [Webpack Dev Server provides a polling alternative](https://webpack.js.org/configuration/watch/#watchoptionspoll) option for this

* Update docusaurus.js

* Update cli.md

Co-authored-by: Yangshun Tay <tay.yang.shun@gmail.com>
2020-04-20 10:49:43 +08:00
Sam Zhou 5f487f3b02
refactor(v2): Convert docusaurus-core to TypeScript (#2578)
* refactor(v2): Convert docusaurus-core to TypeScript

* Update types.d.ts

Co-authored-by: Yangshun Tay <tay.yang.shun@gmail.com>
2020-04-13 02:05:46 +08:00
Alexey Pyltsyn fa2e263ce8
feat(v2): add ability to create unminimized bundles (#2474) 2020-03-29 23:32:26 +08:00
ZachJW34 ce45413804
feat(v2): add custom output directory to build (#2417) 2020-03-19 23:52:26 +08:00
Alexey Pyltsyn 3cbee86e36
chore(v2): mark tagline field as optional (#2342) 2020-02-29 13:15:56 +08:00
Yangshun Tay 32c1a92b17
chore: yearless copyright headers for source code (#2320)
* chore: yearless copyright headers for source code

* update snapshots
2020-02-25 23:12:28 +08:00
Endi 97491c5cfb
feat(v2): injectHtmlTags API to inject head and/or body html tags (#2057)
* wip: define html tag definition

* feat(v2): implement injectHtmlTags api

* remove useless file

* nits

* documentation

* allow string, use prebodyTags and postBodyTags

* typo

* refactor typing

* chore(v2): bump deps
2019-11-30 11:52:26 +07:00
endiliey bd5bdb91f7 chore: add missing facebook copyright header 2019-11-27 16:50:20 +07:00
Endi 91b261af7a docs(v2): more examples on lifecycle apis, cleanup (#2051)
* docs(v2): more examples on lifecycle apis, cleanup

* typo
2019-11-25 10:31:57 -08:00
Endi 0b463a0912 refactor(v2): stronger typing for route gen (#2043) 2019-11-24 09:44:42 -08:00
Endi 9829f56b1e
feat(v2): docs versioning ❄️🔥 (#1983)
* wip: versioning

* wip again

* nits lint

* refactor metadata code so that we can have inobject properties optimization, fix typing

* remove buggy permalink code

* modify versioned docs fixture such that foo/baz only exists in v1.0.0

* refactor metadata.ts so that there is less transformon object

* more refactoring

* reduce test fixtures, refactoring

* refactoring readability

* finish metadata part

* refactor with readdir

* first pass of implementation

* fix mdx laoder

* split generated routes by version for performance & smaller bundle

* test data for demo

* refactor with set

* more tests

* typo

* fix typo

* better temporary ui

* stronger typing & docsVersion command

* add 100% test coverage for docsVersion command

* more test and delete manual docs cut

* cut 2.0.0-alpha.35 docs

* cut alpha.36 instead

* copyright

* delete versioned docs

* stronger test on metadata

* update typo
2019-11-22 16:17:40 +07:00
Endi 3be2e86546
chore: bump dev dependencies (#1955)
* chore: bump devdeps

* upd infima url
2019-11-11 17:44:26 +07:00
Endi 2bbfbf88d6
docs(v2): update plugins, presets and themes docs (#1889)
* docs(v2): update plugins, presets and themes docs

* ideal image plugin

* proof reading

* Merge master
2019-10-26 15:10:48 +07:00
Endi 2c1012b9ec fix(v2): do not show plugin data path (#1861)
* fix(v2): do not show plugin data path

* test fix

* nits
2019-10-20 10:58:22 -07:00
Alexey Pyltsyn e408d72d26 feat(v2): add ability disable to open page in browser when start command (#1856)
* feat(v2): add ability disable to open page in browser when start command

* Replace disable-open-browser with no-open

* Fixes
2019-10-19 11:17:34 +07:00
Endi b1f6951fbb
feat(v2): allow plugin to extendCli (#1843)
* feat(v2): allow plugin to extendCli

* rename to externalCommand
2019-10-16 13:16:26 +07:00
Endi 46e8e03be0
refactor(v2): fix and improve typing (#1842) 2019-10-15 20:30:10 +07:00
Endi ffd927d1d0
feat(v2): add scripts and stylesheets field to config (#1831)
* Feat(v2): add  scripts and stylesheets field to config

* Update docusaurus.config.js.md

* review
2019-10-12 10:54:07 +08:00
Endi 1591128cdd
refactor(v2): add typing for docs plugin (#1811)
* refactor(v2): add typing for docs plugin

* nits
2019-10-07 18:28:33 +07:00
Dongwoo Gim 961eb44ab1 refactor(v2): add common typing package `@docusaurus/types` (#1797)
* add common typing package `@docusaurus/typing-common`
.

* change name to `@docusaurus/types`

* refactor `packages/docusaurus/src/server/types`

* use directly `index.d.ts`
.

* add missing dependency `@docusaurus/types` on `@docusaurus/core`

* add missing dependency `@types/webpack`

* fix mistaken type

* typing package move to dev dependency

* Update package.json

see https://stackoverflow.com/questions/45176661/how-do-i-decide-whether-types-goes-into-dependencies-or-devdependencies
2019-09-25 17:48:56 +08:00