From d189b43fda4580687d1bb3722a14228e6d34ebb2 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Thu, 25 Feb 2021 22:47:24 +0700 Subject: [PATCH 01/26] feat: add getting started doc at classic inital templates --- .../templates/classic/docs/gettingStarted.md | 108 ++++++++++++++++++ .../templates/classic/sidebars.js | 2 +- 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/gettingStarted.md diff --git a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md new file mode 100644 index 000000000000..86579362aa9a --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md @@ -0,0 +1,108 @@ +--- +id: getting-started +title: Getting Started +--- + +import TOCInline from '@theme/TOCInline'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This page will help you to get started to build your documentation site with Docusaurus. + +## Creating a Docusaurus site + +Docusaurus has a command line utility package to help you generate a new documentation project. You can access it without installing anything globally by using `npx` or if you prefer, you can install the package `@docusaurus/init` globally. + +### Installing Docusaurus Init CLI (Optional) + +:::caution +Skip to the next step, if you prefer to use `npx` rather than installing the package globally. +::: + +In order to use the initial templates by Docusaurus, you have to install `@docusaurus/init` which is a command line utility to generate packages. Depending on your preferred package manager, install it globally. + + + + +```shell + npm install -g @docusaurus/init@latest +``` + + + + +```shell + yarn global add @docusaurus/init@latest +``` + + + + +### Create a new Docusaurus site + +Currently, we have a few initial templates available to kickstart your Docusaurus site. + +- Classic +- Bootstrap +- Facebook + +In order to generate the template with the command line utility, You can run this command anywhere either in a new empty repository or within an existing repository. + +```shell +npx @docusaurus/init@latest init [name] [template] +``` + +Example: + +```shell +npx @docusaurus/init@latest init my-documentation classic +``` + +### Running your Docusaurus site + +#### Step 1: Install Dependencies + +First, you will need to install the dependencies needed to be able to run Docusaurus. + +To install dependencies, run the install command from your preferred package manager in the root directory of the project: + + + + +```shell +npm install +``` + + + + +```shell +yarn +``` + + + + +a folder called `node_modules` should be generated if the installation process went correctly. + +#### Step 2: Start your Docusaurus site + +Let the Docusaurus's development server to start developing and adding content to your documentation site. Open a new terminal inside your Docusaurus project folder and run this command: + +```shell +npx docusaurus start +``` + +If everything is set up correctly, you should be able to see your Docusaurus site running. diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 8765a2edf33e..4d33c75f64e6 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -1,6 +1,6 @@ module.exports = { someSidebar: { - Docusaurus: ['doc1', 'doc2', 'doc3'], + Docusaurus: ['doc1', 'doc2', 'doc3', 'getting-started'], Features: ['mdx'], }, }; From 2ad200e41e85fb415199b26c50d0f0632450509f Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Fri, 26 Feb 2021 20:25:41 +0700 Subject: [PATCH 02/26] fix: improve the contents of getting started page --- .../templates/classic/docs/doc1.md | 203 ------------------ .../templates/classic/docs/doc2.md | 6 - .../templates/classic/docs/doc3.md | 14 -- .../templates/classic/docs/gettingStarted.md | 74 ++----- .../templates/classic/sidebars.js | 2 +- 5 files changed, 19 insertions(+), 280 deletions(-) delete mode 100644 packages/docusaurus-init/templates/classic/docs/doc1.md delete mode 100644 packages/docusaurus-init/templates/classic/docs/doc2.md delete mode 100644 packages/docusaurus-init/templates/classic/docs/doc3.md diff --git a/packages/docusaurus-init/templates/classic/docs/doc1.md b/packages/docusaurus-init/templates/classic/docs/doc1.md deleted file mode 100644 index 247481e9f639..000000000000 --- a/packages/docusaurus-init/templates/classic/docs/doc1.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -id: doc1 -title: Style Guide -sidebar_label: Style Guide -slug: / ---- - -You can write content using [GitHub-flavored Markdown syntax](https://github.github.com/gfm/). - -## Markdown Syntax - -To serve as an example page when styling markdown based Docusaurus sites. - -## Headers - -# H1 - Create the best documentation - -## H2 - Create the best documentation - -### H3 - Create the best documentation - -#### H4 - Create the best documentation - -##### H5 - Create the best documentation - -###### H6 - Create the best documentation - ---- - -## Emphasis - -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ - ---- - -## Lists - -1. First ordered list item -1. Another item - - Unordered sub-list. -1. Actual numbers don't matter, just that it's a number - 1. Ordered sub-list -1. And another item. - -* Unordered list can use asterisks - -- Or minuses - -+ Or pluses - ---- - -## Links - -[I'm an inline-style link](https://www.google.com/) - -[I'm an inline-style link with title](https://www.google.com/ "Google's Homepage") - -[I'm a reference-style link][arbitrary case-insensitive reference text] - -[You can use numbers for reference-style link definitions][1] - -Or leave it empty and use the [link text itself]. - -URLs and URLs in angle brackets will automatically get turned into links. http://www.example.com/ or and sometimes example.com (but not on GitHub, for example). - -Some text to show that the reference links can follow later. - -[arbitrary case-insensitive reference text]: https://www.mozilla.org/ -[1]: http://slashdot.org/ -[link text itself]: http://www.reddit.com/ - ---- - -## Images - -Here's our logo (hover to see the title text): - -Inline-style: ![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png 'Logo Title Text 1') - -Reference-style: ![alt text][logo] - -[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png 'Logo Title Text 2' - -Images from any folder can be used by providing path to file. Path should be relative to the original markdown file or absolute to the `/static` folder. - -![img](/img/logo.svg) - ---- - -## Code - -```javascript -var s = 'JavaScript syntax highlighting'; -alert(s); -``` - -```python -s = "Python syntax highlighting" -print(s) -``` - -``` -No language indicated, so no syntax highlighting. -But let's throw in a tag. -``` - -```js {2} -function highlightMe() { - console.log('This line can be highlighted!'); -} -``` - ---- - -## Tables - -Colons can be used to align columns. - -| Tables | Are | Cool | -| ------------- | :-----------: | -----: | -| col 3 is | right-aligned | \$1600 | -| col 2 is | centered | \$12 | -| zebra stripes | are neat | \$1 | - -There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown. - -| Markdown | Less | Pretty | -| -------- | --------- | ---------- | -| _Still_ | `renders` | **nicely** | -| 1 | 2 | 3 | - ---- - -## Blockquotes - -> Blockquotes are very handy in email to emulate reply text. This line is part of the same quote. - -Quote break. - -> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can _put_ **Markdown** into a blockquote. - ---- - -## Inline HTML - -
-
Definition list
-
Is something people use sometimes.
- -
Markdown in HTML
-
Does *not* work **very** well. Use HTML tags.
-
- ---- - -## Line Breaks - -Here's a line for us to start with. - -This line is separated from the one above by two newlines, so it will be a _separate paragraph_. - -This line is also a separate paragraph, but... This line is only separated by a single newline, so it's a separate line in the _same paragraph_. - ---- - -## Admonitions - -:::note - -This is a note - -::: - -:::tip - -This is a tip - -::: - -:::important - -This is important - -::: - -:::caution - -This is a caution - -::: - -:::warning - -This is a warning - -::: diff --git a/packages/docusaurus-init/templates/classic/docs/doc2.md b/packages/docusaurus-init/templates/classic/docs/doc2.md deleted file mode 100644 index 16cfce40824b..000000000000 --- a/packages/docusaurus-init/templates/classic/docs/doc2.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: doc2 -title: Document Number 2 ---- - -This is a link to [another document.](doc3.md) This is a link to an [external page.](http://www.example.com/) diff --git a/packages/docusaurus-init/templates/classic/docs/doc3.md b/packages/docusaurus-init/templates/classic/docs/doc3.md deleted file mode 100644 index 2c40cc680f5b..000000000000 --- a/packages/docusaurus-init/templates/classic/docs/doc3.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: doc3 -title: This is Document Number 3 ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ac euismod odio, eu consequat dui. Nullam molestie consectetur risus id imperdiet. Proin sodales ornare turpis, non mollis massa ultricies id. Nam at nibh scelerisque, feugiat ante non, dapibus tortor. Vivamus volutpat diam quis tellus elementum bibendum. Praesent semper gravida velit quis aliquam. Etiam in cursus neque. Nam lectus ligula, malesuada et mauris a, bibendum faucibus mi. Phasellus ut interdum felis. Phasellus in odio pulvinar, porttitor urna eget, fringilla lectus. Aliquam sollicitudin est eros. Mauris consectetur quam vitae mauris interdum hendrerit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. - -Duis et egestas libero, imperdiet faucibus ipsum. Sed posuere eget urna vel feugiat. Vivamus a arcu sagittis, fermentum urna dapibus, congue lectus. Fusce vulputate porttitor nisl, ac cursus elit volutpat vitae. Nullam vitae ipsum egestas, convallis quam non, porta nibh. Morbi gravida erat nec neque bibendum, eu pellentesque velit posuere. Fusce aliquam erat eu massa eleifend tristique. - -Sed consequat sollicitudin ipsum eget tempus. Integer a aliquet velit. In justo nibh, pellentesque non suscipit eget, gravida vel lacus. Donec odio ante, malesuada in massa quis, pharetra tristique ligula. Donec eros est, tristique eget finibus quis, semper non nisl. Vivamus et elit nec enim ornare placerat. Sed posuere odio a elit cursus sagittis. - -Phasellus feugiat purus eu tortor ultrices finibus. Ut libero nibh, lobortis et libero nec, dapibus posuere eros. Sed sagittis euismod justo at consectetur. Nulla finibus libero placerat, cursus sapien at, eleifend ligula. Vivamus elit nisl, hendrerit ac nibh eu, ultrices tempus dui. Nam tellus neque, commodo non rhoncus eu, gravida in risus. Nullam id iaculis tortor. - -Nullam at odio in sem varius tempor sit amet vel lorem. Etiam eu hendrerit nisl. Fusce nibh mauris, vulputate sit amet ex vitae, congue rhoncus nisl. Sed eget tellus purus. Nullam tempus commodo erat ut tristique. Cras accumsan massa sit amet justo consequat eleifend. Integer scelerisque vitae tellus id consectetur. diff --git a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md index 86579362aa9a..c1477d83a329 100644 --- a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md +++ b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md @@ -7,70 +7,28 @@ import TOCInline from '@theme/TOCInline'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -This page will help you to get started to build your documentation site with Docusaurus. +This page will help you to get started with the development process of your Docusaurus project. -## Creating a Docusaurus site -Docusaurus has a command line utility package to help you generate a new documentation project. You can access it without installing anything globally by using `npx` or if you prefer, you can install the package `@docusaurus/init` globally. +## Setting up the development environment -### Installing Docusaurus Init CLI (Optional) +If you haven't setup your development environment. Let's go through a small step-by-step tutorial to get started with your Docusaurus project. -:::caution -Skip to the next step, if you prefer to use `npx` rather than installing the package globally. +:::note +Feel free to edit this page as you follow the tutorial! ::: -In order to use the initial templates by Docusaurus, you have to install `@docusaurus/init` which is a command line utility to generate packages. Depending on your preferred package manager, install it globally. +### Step 1: Generate a Docusaurus site - - - -```shell - npm install -g @docusaurus/init@latest -``` - - - - -```shell - yarn global add @docusaurus/init@latest -``` - - - - -### Create a new Docusaurus site - -Currently, we have a few initial templates available to kickstart your Docusaurus site. - -- Classic -- Bootstrap -- Facebook - -In order to generate the template with the command line utility, You can run this command anywhere either in a new empty repository or within an existing repository. - -```shell -npx @docusaurus/init@latest init [name] [template] -``` - -Example: +Let's run a command to generate the classic template. You can run this command anywhere either in a new empty repository or within an existing repository. ```shell npx @docusaurus/init@latest init my-documentation classic ``` -### Running your Docusaurus site - -#### Step 1: Install Dependencies +### Step 2: Install Dependencies -First, you will need to install the dependencies needed to be able to run Docusaurus. - -To install dependencies, run the install command from your preferred package manager in the root directory of the project: +Don't forget to install the dependencies required, run the install command from your preferred package manager in the root directory of the project: -a folder called `node_modules` should be generated if the installation process went correctly. - -#### Step 2: Start your Docusaurus site +### Step 3: Start your Docusaurus site -Let the Docusaurus's development server to start developing and adding content to your documentation site. Open a new terminal inside your Docusaurus project folder and run this command: +Run this command to start the Docusaurus development server and start developing by adding content to your docusaurus project: ```shell npx docusaurus start ``` -If everything is set up correctly, you should be able to see your Docusaurus site running. +Open up `gettingStarted.md` in your project folder and try to edit some lines. The site should reload automatically after you save your changes. + +### That's it! + +Congratulations! You've successfully run and modified your Docusaurus project. + + diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 4d33c75f64e6..0e59416569ec 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -1,6 +1,6 @@ module.exports = { someSidebar: { - Docusaurus: ['doc1', 'doc2', 'doc3', 'getting-started'], + Docusaurus: ['getting-started'], Features: ['mdx'], }, }; From aa9354fcad3f863b34cbb5253a7f9aee1507dce0 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Fri, 26 Feb 2021 21:28:19 +0700 Subject: [PATCH 03/26] fix: fix slug routing --- .../templates/classic/docs/gettingStarted.md | 1 + .../docusaurus-init/templates/classic/docusaurus.config.js | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md index c1477d83a329..3416c4e70d4b 100644 --- a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md +++ b/packages/docusaurus-init/templates/classic/docs/gettingStarted.md @@ -1,6 +1,7 @@ --- id: getting-started title: Getting Started +slug: / --- import TOCInline from '@theme/TOCInline'; diff --git a/packages/docusaurus-init/templates/classic/docusaurus.config.js b/packages/docusaurus-init/templates/classic/docusaurus.config.js index a842d6b2a959..50817231dfbb 100644 --- a/packages/docusaurus-init/templates/classic/docusaurus.config.js +++ b/packages/docusaurus-init/templates/classic/docusaurus.config.js @@ -38,13 +38,9 @@ module.exports = { title: 'Docs', items: [ { - label: 'Style Guide', + label: 'Getting Started', to: 'docs/', }, - { - label: 'Second Doc', - to: 'docs/doc2/', - }, ], }, { From e72eb71bc1f51a71ca4aba66d5df7cbb622f8959 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sat, 27 Feb 2021 19:55:16 +0700 Subject: [PATCH 04/26] fix: rename gettingStarted to getting-started and re-adjust the content --- .../{gettingStarted.md => getting-started.md} | 39 ++----------------- .../classic/docs/markdown-features.mdx | 31 +++++++++++++++ 2 files changed, 35 insertions(+), 35 deletions(-) rename packages/docusaurus-init/templates/classic/docs/{gettingStarted.md => getting-started.md} (55%) create mode 100644 packages/docusaurus-init/templates/classic/docs/markdown-features.mdx diff --git a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md b/packages/docusaurus-init/templates/classic/docs/getting-started.md similarity index 55% rename from packages/docusaurus-init/templates/classic/docs/gettingStarted.md rename to packages/docusaurus-init/templates/classic/docs/getting-started.md index 3416c4e70d4b..e140fbd81394 100644 --- a/packages/docusaurus-init/templates/classic/docs/gettingStarted.md +++ b/packages/docusaurus-init/templates/classic/docs/getting-started.md @@ -1,22 +1,18 @@ --- -id: getting-started title: Getting Started slug: / --- -import TOCInline from '@theme/TOCInline'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - This page will help you to get started with the development process of your Docusaurus project. - ## Setting up the development environment If you haven't setup your development environment. Let's go through a small step-by-step tutorial to get started with your Docusaurus project. :::note + Feel free to edit this page as you follow the tutorial! + ::: ### Step 1: Generate a Docusaurus site @@ -27,34 +23,7 @@ Let's run a command to generate the classic template. You can run this command a npx @docusaurus/init@latest init my-documentation classic ``` -### Step 2: Install Dependencies - -Don't forget to install the dependencies required, run the install command from your preferred package manager in the root directory of the project: - - - - -```shell -npm install -``` - - - - -```shell -yarn -``` - - - - -### Step 3: Start your Docusaurus site +### Step 2: Start your Docusaurus site Run this command to start the Docusaurus development server and start developing by adding content to your docusaurus project: @@ -62,7 +31,7 @@ Run this command to start the Docusaurus development server and start developing npx docusaurus start ``` -Open up `gettingStarted.md` in your project folder and try to edit some lines. The site should reload automatically after you save your changes. +Open up `getting-started.md` in your project folder and try to edit some lines. The site should reload automatically after you save your changes. ### That's it! diff --git a/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx new file mode 100644 index 000000000000..67d1cdc8095c --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx @@ -0,0 +1,31 @@ +--- +title: Markdown Features +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Tabs Example: + + + + +```shell +npm install +``` + + + + +```shell +yarn +``` + + + From e6677a4463bb1e784f0649809e4fb733ce416205 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sun, 28 Feb 2021 00:00:55 +0700 Subject: [PATCH 05/26] feat: add markdown-features docs --- .../classic/docs/markdown-features.mdx | 253 ++++++++++++++++-- .../templates/classic/sidebars.js | 11 +- 2 files changed, 243 insertions(+), 21 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx index 67d1cdc8095c..a5404fa15cb2 100644 --- a/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx +++ b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx @@ -2,30 +2,249 @@ title: Markdown Features --- +In this page, we will see some of the tools that will help you to build your documentation site with Docusaurus. + +## Markdown headers + +You will see markdown headers a lot when you're building your documentations. They define your documentation content in fields. For example: + +```md +--- +id: slash +title: Slash, Our Mascot! +hide_title: false +hide_table_of_contents: false +sidebar_label: Say Hello to Slash! +description: We named our mascot Slash because most documentations start with // +keywords: + - docs + - docusaurus + - mascot +--- +``` + +## Referencing other documents + +You can reference to another document file that you have in your documentation by using the file name of that documentation. + +For example, if you want to reference `create-a-page.md`: + +```md +I am referencing [this](create-a-page.md) tutorial. +``` + +## Embedding React components with MDX + +Docusaurus allows you to write JSX inside your Markdown files, thanks to `MDX`. + +For example, this code below: + +```jsx +export const Highlight = ({children, color}) => ( + + {children} + +); + +Docusaurus green and Facebook blue are my favorite colors. +``` + +export const Highlight = ({children, color}) => ( + + {children} + +); + +You can see the effect of the highlight component below! + +Docusaurus green and + Facebook blue + are my favorite colors. + +## Tabs + +Docusaurus provides `` component that you can use to show tabbed contents. + +```jsx import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Tabs Example: + + + This is React + + + This is Vue + + + This is Angular + +; +``` + +The component above will render the following: + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; - - -```shell -npm install + defaultValue="react" + values={[ + {label: 'React', value: 'react'}, + {label: 'Vue', value: 'vue'}, + {label: 'Angular', value: 'angular'}, + ]}> + + This is React + + + This is Vue + + + This is Angular + + + +:::info + +You can load each tab lazily by passing the `lazy` prop to the `Tabs` component. + +::: + +## Inline Table of Contents + +If you didn't notice already, each markdown document displays a tab of content on the top-right corner. + +You can display those table of contents inside a markdown document, inline by using the `` component. + +```jsx +import TOCInline from '@theme/TOCInline'; + +; ``` - - +will render the following: + +import TOCInline from '@theme/TOCInline'; + + + +## Callouts/Admonitions + +Docusaurus supports adminitions that you can utilize below: + + :::note -```shell -yarn + The content and title *can* include markdown. + + ::: + + :::tip You can specify an optional title + + Heads up! Here's a pro-tip. + + ::: + + :::info + + Useful information. + + ::: + + :::caution + + Warning! You better pay attention! + + ::: + + :::danger + + Danger danger, mayday! + + ::: + +:::note + +The content and title _can_ include markdown. + +::: + +:::tip You can specify an optional title + +Heads up! Here's a pro-tip. + +::: + +:::info + +Useful information. + +::: + +:::caution + +Warning! You better pay attention! + +::: + +:::danger + +Danger danger, mayday! + +::: + +## Code Blocks + +You can showcase your code better when you are using code block as it will format and provide syntax highlighting for your code blocks. + + ```jsx title="src/components/HelloDocusaurus.js" + function HelloDocusaurus() { + return ( +

Hello, Docusaurus!

+ ) + } + ``` + +The markdown above will render the code block with `jsx` syntax highlighting and show the provided title: + +```jsx title="src/components/HelloDocusaurus.js" +function HelloDocusaurus() { + return

Hello, Docusaurus!

; +} ``` -
-
+## Assets + +You can use images, files, and even inline SVGs in Docusaurus. + +For example, if we want to render an inline SVG: + +```jsx +import DocusaurusSVG from '/static/img/logo.svg'; + +; +``` + +This will render our little mascot friend, _Slash_. + +import DocusaurusSVG from '/static/img/logo.svg'; + + diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 0e59416569ec..9ac7d6457b05 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -1,6 +1,9 @@ module.exports = { - someSidebar: { - Docusaurus: ['getting-started'], - Features: ['mdx'], - }, + docs: [ + { + type: 'category', + label: 'Docusaurus Tutorial', + items: ['getting-started', 'markdown-features'], + }, + ], }; From bb12e5faa9267cdfb534278b06b60b574adb2e93 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sun, 28 Feb 2021 00:22:37 +0700 Subject: [PATCH 06/26] feat: add a page on how to create a simple document --- .../templates/classic/docs/create-a-doc.md | 78 +++++++++++++++++++ .../templates/classic/sidebars.js | 2 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/create-a-doc.md diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-doc.md b/packages/docusaurus-init/templates/classic/docs/create-a-doc.md new file mode 100644 index 000000000000..222af564d0ed --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/create-a-doc.md @@ -0,0 +1,78 @@ +--- +title: Create a Document +slug: / +--- + +This page will help you to create your first document with Docusaurus. + +## Creating a simple document + +Create a markdown file `docs/hello.md`. + +```md +website # root directory of your site +├── docs +│ └── hello.md +├── src +│ └── pages +├── docusaurus.config.js +├── ... +``` + +At the top of the file, specify the `id` and `title` of your document. The purpose is so that Docusaurus can identify your document when generating your site. After that you can start adding your document's content. + +```mdx +--- +id: hello +title: Hello, World! +--- + +## Hello, World! + +This is your first document in **Docusaurus**, Congratulations! +``` + +:::note + +By default, id of the document is the `filename` of the document. So, you can omit it if your filename already resembles the id. + +::: + + + +After creating and saving the file, run your development server and go to `http://localhost:3000/docs/hello` in your browser. + +## Adding your document to the sidebar + +You can add `hello.md` to the sidebar by adding it to `sidebars.js` + +Open `sidebars.js` and add the `id` of `hello.md` which is `hello` to the items in docs sidebar. + +```js +module.exports = { + docs: [ + { + type: 'category', + label: 'Docusaurus Tutorial', + items: ['getting-started', 'markdown-features', 'create-a-doc', 'hello'], + }, + ], +}; +``` + +Check your sidebar now, and you can access `hello.md` from the docs sidebar now! + + +## Making your document as the home page + +If you want to make `hello.md` as your docs home page, then you can add `slug` to the header fields. + +```mdx +--- +id: hello +title: Hello, World! +slug: / +--- + +Hello, World! +``` \ No newline at end of file diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 9ac7d6457b05..dc6d6e8d9646 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -3,7 +3,7 @@ module.exports = { { type: 'category', label: 'Docusaurus Tutorial', - items: ['getting-started', 'markdown-features'], + items: ['getting-started', 'markdown-features', 'create-a-doc'], }, ], }; From 7b34e443d169ad288b9dd43a9949311769df25f7 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sun, 28 Feb 2021 00:34:35 +0700 Subject: [PATCH 07/26] feat: add a page on how to create pages --- .../templates/classic/docs/create-a-doc.md | 1 - .../templates/classic/docs/create-a-page.md | 50 +++++++++++++++++++ .../templates/classic/sidebars.js | 7 ++- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/create-a-page.md diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-doc.md b/packages/docusaurus-init/templates/classic/docs/create-a-doc.md index 222af564d0ed..f33a67caa9ce 100644 --- a/packages/docusaurus-init/templates/classic/docs/create-a-doc.md +++ b/packages/docusaurus-init/templates/classic/docs/create-a-doc.md @@ -1,6 +1,5 @@ --- title: Create a Document -slug: / --- This page will help you to create your first document with Docusaurus. diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-page.md b/packages/docusaurus-init/templates/classic/docs/create-a-page.md new file mode 100644 index 000000000000..7576555b8280 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/create-a-page.md @@ -0,0 +1,50 @@ +--- +title: Create a Page +--- + +This page will help you to create standalone pages in Docusaurus, either with React or Markdown. + +## Creating a React Page + +Create a file: `/src/pages/react.js` + +```jsx title="/src/pages/react.js" +import React from "react"; + +function HelloWorld() { + return ( +
+

Hello, World!

+
+ ) +} +``` + +Save the file, and the development server will automatically reload the changes. Open `http://localhost:3000/react`, to see the page that you just created with React. + +## Creating a Markdown Page + +Create a file: `/src/pages/markdown.md` + +```mdx title="/src/pages/markdown.md" +--- +title: Hello, World! +description: This is a page created with Markdown +hide_table_of_contents: true +--- + +# Hello, World! + +``` + +Save the file, and the development server will automatically reload the changes. Open `http://localhost:3000/markdown`, to see the page that you just created with Markdown. + +## Routing + +Any JavaScript (React) or Markdown files that you create under `/src/pages` directory will be automatically converted into a website page. + +Here are some examples: + +- `/src/pages/index.js` -> `` +- `/src/pages/foo.js` -> `/foo` +- `/src/pages/foo/bar.js` -> `/foo/bar` \ No newline at end of file diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index dc6d6e8d9646..30f141ef4919 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -3,7 +3,12 @@ module.exports = { { type: 'category', label: 'Docusaurus Tutorial', - items: ['getting-started', 'markdown-features', 'create-a-doc'], + items: [ + 'getting-started', + 'markdown-features', + 'create-a-doc', + 'create-a-page', + ], }, ], }; From 1c4503b5d573e8cde0b3e30ead1d8c1988eca55e Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sun, 28 Feb 2021 01:18:15 +0700 Subject: [PATCH 08/26] feat: add create a post doc --- .../templates/classic/docs/create-a-post.md | 31 +++++++++++++++++++ .../templates/classic/sidebars.js | 1 + 2 files changed, 32 insertions(+) create mode 100644 packages/docusaurus-init/templates/classic/docs/create-a-post.md diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-post.md b/packages/docusaurus-init/templates/classic/docs/create-a-post.md new file mode 100644 index 000000000000..a8123b59cac8 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/create-a-post.md @@ -0,0 +1,31 @@ +--- +title: Create a Post +--- + +This page will help you on how to create blog posts in Docusaurus. + +## Adding Posts + +In order to add a post in the blog, create a file: `/blog/2021-02-28-greetings`. + +The format for filename of a post is `YYYY-MM-DD-post-title.md`, you have to follow this format because the post date is extracted from the file name. + +```md +--- +slug: greetings +title: Greetings! +author: Steven Hansel +author_title: Docusaurus Contributor +author_url: https://github.com/ShinteiMai +author_image_url: https://avatars.githubusercontent.com/u/54180475?s=460&u=dea92f5adfe1adb82d983200553508851c3a96a0&v=4 +tags: [greetings, docusaurus] +--- + +Congratulations, you have made your first post! + +Feel free to play around and edit this post as much you like. + +``` + +The post should be generated automatically after you save the file. Open `http://localhost:3000/blog/greetings`, and you should see your created post! + diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 30f141ef4919..159f9080a912 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -8,6 +8,7 @@ module.exports = { 'markdown-features', 'create-a-doc', 'create-a-page', + 'create-a-post', ], }, ], From 054e414c3764c8a4d81ea74aba52aa7bd3a73211 Mon Sep 17 00:00:00 2001 From: ShinteiMai Date: Sun, 28 Feb 2021 01:46:22 +0700 Subject: [PATCH 09/26] feat: add thank you page with whats next --- .../templates/classic/docs/thank-you.md | 12 ++++++++++++ .../docusaurus-init/templates/classic/sidebars.js | 1 + 2 files changed, 13 insertions(+) create mode 100644 packages/docusaurus-init/templates/classic/docs/thank-you.md diff --git a/packages/docusaurus-init/templates/classic/docs/thank-you.md b/packages/docusaurus-init/templates/classic/docs/thank-you.md new file mode 100644 index 000000000000..c3089df9ec15 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/thank-you.md @@ -0,0 +1,12 @@ +--- +title: Thank you! +--- + +Congratulations on making it this far! You have learned the basics of Docusaurus and made some changes to the initial template. If you want to continue to learn about Docusaurus, you can refer to the list below. + +## What's next? + +- [Design and Layout your Docusaurus site](https://v2.docusaurus.io/docs/styling-layout) +- [Integrate a search bar into your site](https://v2.docusaurus.io/docs/search) +- [Find inspirations in Docusaurus showcase](https://v2.docusaurus.io/showcase) +- [Get involved in the Docusaurus Community](https://v2.docusaurus.io/community/support). diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 159f9080a912..3632fec017b2 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -9,6 +9,7 @@ module.exports = { 'create-a-doc', 'create-a-page', 'create-a-post', + 'thank-you', ], }, ], From 3b4be4f6fa768a7673023e32e7d70bb8c7648fb7 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 1 Mar 2021 12:51:14 +0000 Subject: [PATCH 10/26] feat : update sidebar.js --- packages/docusaurus-init/templates/classic/sidebars.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 3632fec017b2..e7534f3e7cfb 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -12,5 +12,10 @@ module.exports = { 'thank-you', ], }, + { + type: 'category', + label: 'Extras', + items: ['deploy-your-site'], + }, ], }; From 0c3f70a424c386e73f1f6a1c93ca6b06c5d189c1 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 1 Mar 2021 12:52:11 +0000 Subject: [PATCH 11/26] feat : add introduction content --- .../templates/classic/docs/deploy-your-site.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 packages/docusaurus-init/templates/classic/docs/deploy-your-site.md diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md new file mode 100644 index 000000000000..c75c217b56b5 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -0,0 +1,16 @@ +--- +title: Deploy your site +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This page will discuss multiple options available when it comes to +deploying your docs site. Before even this happens, you need to build the files +of your website for production. To do this, run : + +```bash +npm run build +``` +The static files will be generate in the build/ directory. + From 7e920e1339fef6d2ebb8ceab33afdca825951719 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 1 Mar 2021 12:52:35 +0000 Subject: [PATCH 12/26] feat : add self hosting content --- .../templates/classic/docs/deploy-your-site.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index c75c217b56b5..a6e55c79b877 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -14,3 +14,16 @@ npm run build ``` The static files will be generate in the build/ directory. +## Self Hosting + +:::warning +It is not the most performant solution +::: + + +Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `--host` to match appropriately. + +```bash +npm run serve --build --port 80 --host 0.0.0.0 +``` + From 37a47eb60f418a6b77b2a8477b2c5e600d9c3fba Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 1 Mar 2021 12:52:53 +0000 Subject: [PATCH 13/26] feat : add GitHub pages content --- .../classic/docs/deploy-your-site.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index a6e55c79b877..b9bc93a8040d 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -27,3 +27,141 @@ Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `- npm run serve --build --port 80 --host 0.0.0.0 ``` +## Deploying to GitHub Pages +Docusaurus comes with an easy way to publish to Github Pages which is free +hosting that comes with every GitHub repo. + +`docusaurus.config.js` settings
+Make changes to your `docusaurus.config.js` and add the required parameters + +| Name | Description | +| --- | --- | +| `organizationName` | The GitHub user or organization that owns the repository. If you are the owner, it is your GitHub username. In the case of Docusaurus, it is "_facebook_" which is the GitHub organization that owns Docusaurus. | +| `projectName` | The name of the GitHub repository. For example, the repository name for Docusaurus is "docusaurus", so the project name is "docusaurus". | +| `url` | URL for your GitHub Page's user/organization page. This is commonly https://_username_.github.io. | +| `baseUrl` | Base URL for your project. For projects hosted on GitHub pages, it follows the format "/_projectName_/". For https://github.com/facebook/docusaurus, `baseUrl` is `/docusaurus/`. | + + +`Environmental` variables
+Below are a few environmental variables you can pass to the deploy command + +| Name | Description | +| --- | --- | +| `GIT_USER` | The username for a GitHub account that has commit access to this repo. For your own repositories, this will usually be your GitHub username. The specified `GIT_USER` must have push access to the repository specified in the combination of `organizationName` and `projectName`. | + +You can also pass these optional parameters : + +| Name | Description | +| --- | --- | +| `USE_SSH` | Set to `true` to use SSH instead of the default HTTPS for the connection to the GitHub repo. | +| `DEPLOYMENT_BRANCH` | The branch that the website will be deployed to, defaults to `gh-pages` for normal repos and `master` for repository names ending in `github.io`. | +| `CURRENT_BRANCH` | The branch that contains the latest docs changes that will be deployed. Usually, the branch will be `master`, but it could be any branch (default or otherwise) except for `gh-pages`. If nothing is set for this variable, then the current branch will be used. | +| `GIT_PASS` | Password (or token) of the `git` user (specified by `GIT_USER`). For example, to facilitate non-interactive deployment (e.g. continuous deployment) | + + +`Deploy` +To deploy your site to GitHub pages, run : + +````mdx-code-block + + + +```bash +GIT_USER= yarn deploy +``` + + + + +```batch +cmd /C "set "GIT_USER=" && yarn deploy" +``` + + + + +```powershell +cmd /C 'set "GIT_USER=" && yarn deploy' +``` + + + +```` + +## Automatically Deployment with GitHub Actions +[GitHub Actions](https://help.github.com/en/actions) allows you to run code in response to events like when new code is pushed or merged into a branch. This allows you to execute software development workflows very easily. + +This workflow assumes your documentation resided in `documentation` branch of your repository and your [publishing source](https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) is configured for `gh-pages` branch. + +1. Generate a new [SSH key](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). +1. By default, your public key should have been created in `~/.ssh/id_rsa.pub` or use the name you've provided in the previous step to add your key to [GitHub deploy keys](https://developer.github.com/v3/guides/managing-deploy-keys/). +1. Copy key to clipboard with `xclip -sel clip < ~/.ssh/id_rsa.pub` and paste it as a [deploy key](https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys) in your repository. Copy file content if the command line doesn't work for you. Check the box for `Allow write access` before saving your deployment key. +1. You'll need your private key as a [GitHub secret](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) to allow Docusaurus to run the deployment for you. +1. Copy your private key with `xclip -sel clip < ~/.ssh/id_rsa` and paste a GitHub secret with name `GH_PAGES_DEPLOY`. Copy file content if the command line doesn't work for you. Save your secret. +1. Create you [documentation workflow file](https://help.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#creating-a-workflow-file) in `.github/workflows/`. In this example it's `documentation.yml`. + +```yaml title="documentation.yml" +name: documentation + +on: + pull_request: + branches: [documentation] + push: + branches: [documentation] + +jobs: + checks: + if: github.event_name != 'push' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Test Build + run: | + if [ -e yarn.lock ]; then + yarn install --frozen-lockfile + elif [ -e package-lock.json ]; then + npm ci + else + npm i + fi + npm run build + gh-release: + if: github.event_name != 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - uses: webfactory/ssh-agent@v0.5.0 + with: + ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }} + - name: Release to GitHub Pages + env: + USE_SSH: true + GIT_USER: git + run: | + git config --global user.email "actions@github.com" + git config --global user.name "gh-actions" + if [ -e yarn.lock ]; then + yarn install --frozen-lockfile + elif [ -e package-lock.json ]; then + npm ci + else + npm i + fi + npm run deploy +``` + +1. Now when a new pull request arrives towards your repository in branch `documentation` it will automatically ensure that Docusaurus build is successful. +1. When pull request is merged to `documentation` branch or someone pushes to `documentation` branch directly it will be built and deployed to `gh-pages` branch. +1. After this step, your updated documentation will be available on the GitHub pages. From d3276c211087a8716dfeb84fc8b84aa518fb7454 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 15 Mar 2021 12:07:59 +0000 Subject: [PATCH 14/26] fix : remove automatically deploying with github actions content --- .../classic/docs/deploy-your-site.md | 71 ------------------- 1 file changed, 71 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index b9bc93a8040d..bd2ef0bbeb65 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -94,74 +94,3 @@ cmd /C 'set "GIT_USER=" && yarn deploy' ```` -## Automatically Deployment with GitHub Actions -[GitHub Actions](https://help.github.com/en/actions) allows you to run code in response to events like when new code is pushed or merged into a branch. This allows you to execute software development workflows very easily. - -This workflow assumes your documentation resided in `documentation` branch of your repository and your [publishing source](https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) is configured for `gh-pages` branch. - -1. Generate a new [SSH key](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). -1. By default, your public key should have been created in `~/.ssh/id_rsa.pub` or use the name you've provided in the previous step to add your key to [GitHub deploy keys](https://developer.github.com/v3/guides/managing-deploy-keys/). -1. Copy key to clipboard with `xclip -sel clip < ~/.ssh/id_rsa.pub` and paste it as a [deploy key](https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys) in your repository. Copy file content if the command line doesn't work for you. Check the box for `Allow write access` before saving your deployment key. -1. You'll need your private key as a [GitHub secret](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) to allow Docusaurus to run the deployment for you. -1. Copy your private key with `xclip -sel clip < ~/.ssh/id_rsa` and paste a GitHub secret with name `GH_PAGES_DEPLOY`. Copy file content if the command line doesn't work for you. Save your secret. -1. Create you [documentation workflow file](https://help.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#creating-a-workflow-file) in `.github/workflows/`. In this example it's `documentation.yml`. - -```yaml title="documentation.yml" -name: documentation - -on: - pull_request: - branches: [documentation] - push: - branches: [documentation] - -jobs: - checks: - if: github.event_name != 'push' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: '12.x' - - name: Test Build - run: | - if [ -e yarn.lock ]; then - yarn install --frozen-lockfile - elif [ -e package-lock.json ]; then - npm ci - else - npm i - fi - npm run build - gh-release: - if: github.event_name != 'pull_request' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: '12.x' - - uses: webfactory/ssh-agent@v0.5.0 - with: - ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }} - - name: Release to GitHub Pages - env: - USE_SSH: true - GIT_USER: git - run: | - git config --global user.email "actions@github.com" - git config --global user.name "gh-actions" - if [ -e yarn.lock ]; then - yarn install --frozen-lockfile - elif [ -e package-lock.json ]; then - npm ci - else - npm i - fi - npm run deploy -``` - -1. Now when a new pull request arrives towards your repository in branch `documentation` it will automatically ensure that Docusaurus build is successful. -1. When pull request is merged to `documentation` branch or someone pushes to `documentation` branch directly it will be built and deployed to `gh-pages` branch. -1. After this step, your updated documentation will be available on the GitHub pages. From 6c8cc2757df4786e9f7f5669ff9d7c2b4670fe8e Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 15 Mar 2021 12:42:23 +0000 Subject: [PATCH 15/26] feat : add deploying to netlify --- .../classic/docs/deploy-your-site.md | 74 +++---------------- 1 file changed, 10 insertions(+), 64 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index bd2ef0bbeb65..6046fbee8a31 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -27,70 +27,16 @@ Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `- npm run serve --build --port 80 --host 0.0.0.0 ``` -## Deploying to GitHub Pages -Docusaurus comes with an easy way to publish to Github Pages which is free -hosting that comes with every GitHub repo. - -`docusaurus.config.js` settings
-Make changes to your `docusaurus.config.js` and add the required parameters - -| Name | Description | -| --- | --- | -| `organizationName` | The GitHub user or organization that owns the repository. If you are the owner, it is your GitHub username. In the case of Docusaurus, it is "_facebook_" which is the GitHub organization that owns Docusaurus. | -| `projectName` | The name of the GitHub repository. For example, the repository name for Docusaurus is "docusaurus", so the project name is "docusaurus". | -| `url` | URL for your GitHub Page's user/organization page. This is commonly https://_username_.github.io. | -| `baseUrl` | Base URL for your project. For projects hosted on GitHub pages, it follows the format "/_projectName_/". For https://github.com/facebook/docusaurus, `baseUrl` is `/docusaurus/`. | - - -`Environmental` variables
-Below are a few environmental variables you can pass to the deploy command - -| Name | Description | -| --- | --- | -| `GIT_USER` | The username for a GitHub account that has commit access to this repo. For your own repositories, this will usually be your GitHub username. The specified `GIT_USER` must have push access to the repository specified in the combination of `organizationName` and `projectName`. | - -You can also pass these optional parameters : - -| Name | Description | -| --- | --- | -| `USE_SSH` | Set to `true` to use SSH instead of the default HTTPS for the connection to the GitHub repo. | -| `DEPLOYMENT_BRANCH` | The branch that the website will be deployed to, defaults to `gh-pages` for normal repos and `master` for repository names ending in `github.io`. | -| `CURRENT_BRANCH` | The branch that contains the latest docs changes that will be deployed. Usually, the branch will be `master`, but it could be any branch (default or otherwise) except for `gh-pages`. If nothing is set for this variable, then the current branch will be used. | -| `GIT_PASS` | Password (or token) of the `git` user (specified by `GIT_USER`). For example, to facilitate non-interactive deployment (e.g. continuous deployment) | - - -`Deploy` -To deploy your site to GitHub pages, run : - -````mdx-code-block - - - -```bash -GIT_USER= yarn deploy -``` - - - - -```batch -cmd /C "set "GIT_USER=" && yarn deploy" -``` - - - - -```powershell -cmd /C 'set "GIT_USER=" && yarn deploy' +## Deploying to Netlify +One of the fastest ways to deploy is through [Netlify](https://www.netlify.com/). Configure your `docusaurus.config.js` +```js {2-3} title="docusaurus.config.js" +module.exports = { + url: 'https://docusaurus-2.netlify.com', // Url to your site with no trailing slash + baseUrl: '/', // Base directory of your site relative to your repo + // ... +}; ``` - - -```` +After you're done, [setup your site with Netlify](https://app.netlify.com/start). +Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. \ No newline at end of file From c177c57de7799c6dd0ac28548c2cd8f6969dc817 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 15 Mar 2021 12:55:22 +0000 Subject: [PATCH 16/26] feat : add Translate your site --- .../classic/docs/translate-your-site.md | 39 +++++++++++++++++++ .../templates/classic/sidebars.js | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/translate-your-site.md diff --git a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md new file mode 100644 index 000000000000..7cd1479c7187 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md @@ -0,0 +1,39 @@ +--- +title: Translate your site +--- + +In this page we would cover translate .md files. We are going to translate the +`Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". + +### Site Configuration +Use the [site i18n configuration](https://v2.docusaurus.io/docs/next/docusaurus.config.js#i18n) to add the fr locale" + +```js title="docusaurus.config.js" +module.exports = { + i18n: { + defaultLocale: 'en', + locales: ['en', 'fr'], + localeConfigs: { + en: { + label: 'English', + }, + fr: { + label: 'Français', + }, + }, + }, +}; +``` + +### Translate the page +To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. + + +### Start your site +Start your localized site in dev mode, using the fr local. + +```bash +npm run start -- --locale fr +``` + +Your site is accessible at **`http://localhost:3000/fr/`**. diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 5e27cd558537..f954579e72e5 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -15,7 +15,7 @@ module.exports = { { type: 'category', label: 'Extras', - items: ['deploy-your-site'], + items: ['deploy-your-site', 'translate-your-site'], }, ], }; From f98adef040cdd609c2f924216f69f3212295d000 Mon Sep 17 00:00:00 2001 From: besemuna Date: Mon, 15 Mar 2021 13:18:43 +0000 Subject: [PATCH 17/26] add : Manage versions --- .../templates/classic/docs/manage-versions.md | 28 +++++++++++++++++++ .../templates/classic/sidebars.js | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/manage-versions.md diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-versions.md new file mode 100644 index 000000000000..6fe8e6fd00b6 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/manage-versions.md @@ -0,0 +1,28 @@ +--- +title: Manage Versions +--- + +Docusaurus gives you the option to have different versions of your docs, +allowing you to update and have previous versions available. + + +### Tagging a new version +To tag a new version make sure the content in the `docs` directory is ready to be +frozen as a version. Run the following command to tag a version + + +```bash +npm run docusaurus docs:version +``` +When a new `version` is tagged, the `docs/` directory content will be copied into `versioned_docs/version-/` folder. A [sidebar](https://v2.docusaurus.io/docs/docs-introduction#sidebar) configuration will also be copiend and the version number added to `versions.json`. + +## Updating an existing version +You can edit any version in its specific folder, comit and push changes and it will be published to that version. +Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` + + +## Deleting an existing version +You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, +Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. + +After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. \ No newline at end of file diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index f954579e72e5..1f0145abe82e 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -15,7 +15,7 @@ module.exports = { { type: 'category', label: 'Extras', - items: ['deploy-your-site', 'translate-your-site'], + items: ['deploy-your-site', 'translate-your-site', 'manage-versions'], }, ], }; From af8c0b48396ea40e7aea8421b601e802364ad720 Mon Sep 17 00:00:00 2001 From: besemuna Date: Tue, 16 Mar 2021 19:21:09 +0000 Subject: [PATCH 18/26] fix : formatted docs with prettier --- .../classic/docs/deploy-your-site.md | 19 +++++++---------- .../templates/classic/docs/manage-versions.md | 21 ++++++++----------- .../classic/docs/translate-your-site.md | 9 ++++---- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index 6046fbee8a31..b898d24f362c 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -1,25 +1,20 @@ --- -title: Deploy your site +title: Deploy your site --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -This page will discuss multiple options available when it comes to -deploying your docs site. Before even this happens, you need to build the files -of your website for production. To do this, run : +This page will discuss multiple options available when it comes to deploying your docs site. Before even this happens, you need to build the files of your website for production. To do this, run : ```bash npm run build ``` + The static files will be generate in the build/ directory. ## Self Hosting -:::warning -It is not the most performant solution -::: - +:::warning It is not the most performant solution ::: Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `--host` to match appropriately. @@ -28,7 +23,9 @@ npm run serve --build --port 80 --host 0.0.0.0 ``` ## Deploying to Netlify + One of the fastest ways to deploy is through [Netlify](https://www.netlify.com/). Configure your `docusaurus.config.js` + ```js {2-3} title="docusaurus.config.js" module.exports = { url: 'https://docusaurus-2.netlify.com', // Url to your site with no trailing slash @@ -39,4 +36,4 @@ module.exports = { After you're done, [setup your site with Netlify](https://app.netlify.com/start). -Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. \ No newline at end of file +Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-versions.md index 6fe8e6fd00b6..c2c512c05e06 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-versions.md @@ -1,28 +1,25 @@ --- -title: Manage Versions +title: Manage Versions --- -Docusaurus gives you the option to have different versions of your docs, -allowing you to update and have previous versions available. - +Docusaurus gives you the option to have different versions of your docs, allowing you to update and have previous versions available. ### Tagging a new version -To tag a new version make sure the content in the `docs` directory is ready to be -frozen as a version. Run the following command to tag a version +To tag a new version make sure the content in the `docs` directory is ready to be frozen as a version. Run the following command to tag a version -```bash +```bash npm run docusaurus docs:version ``` + When a new `version` is tagged, the `docs/` directory content will be copied into `versioned_docs/version-/` folder. A [sidebar](https://v2.docusaurus.io/docs/docs-introduction#sidebar) configuration will also be copiend and the version number added to `versions.json`. ## Updating an existing version -You can edit any version in its specific folder, comit and push changes and it will be published to that version. -Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` +You can edit any version in its specific folder, comit and push changes and it will be published to that version. Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` ## Deleting an existing version -You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, -Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. -After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. \ No newline at end of file +You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. + +After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. diff --git a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md index 7cd1479c7187..8b0cef7a020d 100644 --- a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md @@ -2,10 +2,10 @@ title: Translate your site --- -In this page we would cover translate .md files. We are going to translate the -`Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". +In this page we would cover translate .md files. We are going to translate the `Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". ### Site Configuration + Use the [site i18n configuration](https://v2.docusaurus.io/docs/next/docusaurus.config.js#i18n) to add the fr locale" ```js title="docusaurus.config.js" @@ -26,13 +26,14 @@ module.exports = { ``` ### Translate the page -To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. +To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. ### Start your site + Start your localized site in dev mode, using the fr local. -```bash +```bash npm run start -- --locale fr ``` From 7112acdbb9f69cb9b836888584023cb4f95df787 Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 11:03:59 +0100 Subject: [PATCH 19/26] Revert "fix : formatted docs with prettier" This reverts commit af8c0b48 --- .../classic/docs/deploy-your-site.md | 19 ++++++++++------- .../templates/classic/docs/manage-versions.md | 21 +++++++++++-------- .../classic/docs/translate-your-site.md | 9 ++++---- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index b898d24f362c..6046fbee8a31 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -1,20 +1,25 @@ --- -title: Deploy your site +title: Deploy your site --- -import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -This page will discuss multiple options available when it comes to deploying your docs site. Before even this happens, you need to build the files of your website for production. To do this, run : +This page will discuss multiple options available when it comes to +deploying your docs site. Before even this happens, you need to build the files +of your website for production. To do this, run : ```bash npm run build ``` - The static files will be generate in the build/ directory. ## Self Hosting -:::warning It is not the most performant solution ::: +:::warning +It is not the most performant solution +::: + Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `--host` to match appropriately. @@ -23,9 +28,7 @@ npm run serve --build --port 80 --host 0.0.0.0 ``` ## Deploying to Netlify - One of the fastest ways to deploy is through [Netlify](https://www.netlify.com/). Configure your `docusaurus.config.js` - ```js {2-3} title="docusaurus.config.js" module.exports = { url: 'https://docusaurus-2.netlify.com', // Url to your site with no trailing slash @@ -36,4 +39,4 @@ module.exports = { After you're done, [setup your site with Netlify](https://app.netlify.com/start). -Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. +Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. \ No newline at end of file diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-versions.md index c2c512c05e06..6fe8e6fd00b6 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-versions.md @@ -1,25 +1,28 @@ --- -title: Manage Versions +title: Manage Versions --- -Docusaurus gives you the option to have different versions of your docs, allowing you to update and have previous versions available. +Docusaurus gives you the option to have different versions of your docs, +allowing you to update and have previous versions available. + ### Tagging a new version +To tag a new version make sure the content in the `docs` directory is ready to be +frozen as a version. Run the following command to tag a version -To tag a new version make sure the content in the `docs` directory is ready to be frozen as a version. Run the following command to tag a version -```bash +```bash npm run docusaurus docs:version ``` - When a new `version` is tagged, the `docs/` directory content will be copied into `versioned_docs/version-/` folder. A [sidebar](https://v2.docusaurus.io/docs/docs-introduction#sidebar) configuration will also be copiend and the version number added to `versions.json`. ## Updating an existing version +You can edit any version in its specific folder, comit and push changes and it will be published to that version. +Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` -You can edit any version in its specific folder, comit and push changes and it will be published to that version. Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` ## Deleting an existing version +You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, +Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. -You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. - -After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. +After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. \ No newline at end of file diff --git a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md index 8b0cef7a020d..7cd1479c7187 100644 --- a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md @@ -2,10 +2,10 @@ title: Translate your site --- -In this page we would cover translate .md files. We are going to translate the `Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". +In this page we would cover translate .md files. We are going to translate the +`Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". ### Site Configuration - Use the [site i18n configuration](https://v2.docusaurus.io/docs/next/docusaurus.config.js#i18n) to add the fr locale" ```js title="docusaurus.config.js" @@ -26,14 +26,13 @@ module.exports = { ``` ### Translate the page +To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. -To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. ### Start your site - Start your localized site in dev mode, using the fr local. -```bash +```bash npm run start -- --locale fr ``` From 3d1eab3e11af0181c73b03ac4d60060c19b61daa Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 11:16:24 +0100 Subject: [PATCH 20/26] run prettier to init templates with fixes --- .prettierignore | 1 - .../classic/docs/deploy-your-site.md | 15 +++++++------ .../templates/classic/docs/manage-versions.md | 21 ++++++++----------- .../classic/docs/translate-your-site.md | 9 ++++---- packages/docusaurus-init/tsconfig.json | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.prettierignore b/.prettierignore index f1381c97b0d1..24918d15cdbd 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,5 +10,4 @@ packages/docusaurus-*/lib/* packages/docusaurus-1.x/lib/core/metadata.js packages/docusaurus-1.x/lib/core/MetadataBlog.js packages/docusaurus-*/lib-next/ -packages/docusaurus-init/templates/**/*.md __fixtures__ diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index 6046fbee8a31..3d16cb0a4917 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -1,25 +1,26 @@ --- -title: Deploy your site +title: Deploy your site --- import Tabs from '@theme/Tabs'; + import TabItem from '@theme/TabItem'; -This page will discuss multiple options available when it comes to -deploying your docs site. Before even this happens, you need to build the files -of your website for production. To do this, run : +This page will discuss multiple options available when it comes to deploying your docs site. Before even this happens, you need to build the files of your website for production. To do this, run : ```bash npm run build ``` + The static files will be generate in the build/ directory. ## Self Hosting :::warning + It is not the most performant solution -::: +::: Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `--host` to match appropriately. @@ -28,7 +29,9 @@ npm run serve --build --port 80 --host 0.0.0.0 ``` ## Deploying to Netlify + One of the fastest ways to deploy is through [Netlify](https://www.netlify.com/). Configure your `docusaurus.config.js` + ```js {2-3} title="docusaurus.config.js" module.exports = { url: 'https://docusaurus-2.netlify.com', // Url to your site with no trailing slash @@ -39,4 +42,4 @@ module.exports = { After you're done, [setup your site with Netlify](https://app.netlify.com/start). -Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. \ No newline at end of file +Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-versions.md index 6fe8e6fd00b6..c2c512c05e06 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-versions.md @@ -1,28 +1,25 @@ --- -title: Manage Versions +title: Manage Versions --- -Docusaurus gives you the option to have different versions of your docs, -allowing you to update and have previous versions available. - +Docusaurus gives you the option to have different versions of your docs, allowing you to update and have previous versions available. ### Tagging a new version -To tag a new version make sure the content in the `docs` directory is ready to be -frozen as a version. Run the following command to tag a version +To tag a new version make sure the content in the `docs` directory is ready to be frozen as a version. Run the following command to tag a version -```bash +```bash npm run docusaurus docs:version ``` + When a new `version` is tagged, the `docs/` directory content will be copied into `versioned_docs/version-/` folder. A [sidebar](https://v2.docusaurus.io/docs/docs-introduction#sidebar) configuration will also be copiend and the version number added to `versions.json`. ## Updating an existing version -You can edit any version in its specific folder, comit and push changes and it will be published to that version. -Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` +You can edit any version in its specific folder, comit and push changes and it will be published to that version. Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` ## Deleting an existing version -You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, -Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. -After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. \ No newline at end of file +You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. + +After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. diff --git a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md index 7cd1479c7187..8b0cef7a020d 100644 --- a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md @@ -2,10 +2,10 @@ title: Translate your site --- -In this page we would cover translate .md files. We are going to translate the -`Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". +In this page we would cover translate .md files. We are going to translate the `Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". ### Site Configuration + Use the [site i18n configuration](https://v2.docusaurus.io/docs/next/docusaurus.config.js#i18n) to add the fr locale" ```js title="docusaurus.config.js" @@ -26,13 +26,14 @@ module.exports = { ``` ### Translate the page -To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. +To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. ### Start your site + Start your localized site in dev mode, using the fr local. -```bash +```bash npm run start -- --locale fr ``` diff --git a/packages/docusaurus-init/tsconfig.json b/packages/docusaurus-init/tsconfig.json index f50aa9ee6d86..f5902ba1089b 100644 --- a/packages/docusaurus-init/tsconfig.json +++ b/packages/docusaurus-init/tsconfig.json @@ -4,6 +4,6 @@ "incremental": true, "tsBuildInfoFile": "./lib/.tsbuildinfo", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" } } From ef3d00cfbec2c7d05b740236f40a0e3c2a2a44e8 Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 14:56:27 +0100 Subject: [PATCH 21/26] complete new init template --- .../templates/classic/docs/congratulations.md | 19 +++++ .../classic/docs/create-a-blog-post.md | 3 +- .../classic/docs/create-a-document.md | 2 +- .../templates/classic/docs/create-a-page.md | 2 +- .../classic/docs/deploy-your-site.md | 36 ++------ .../templates/classic/docs/getting-started.md | 18 ++-- .../templates/classic/docs/manage-versions.md | 48 ++++++++--- .../classic/docs/markdown-features.mdx | 50 ++++++----- .../templates/classic/docs/thank-you.md | 17 ---- .../classic/docs/translate-your-site.md | 78 ++++++++++++++---- .../templates/classic/sidebars.js | 11 +-- .../templates/classic/src/pages/index.js | 6 +- .../img/tutorial/docsVersionDropdown.png | Bin 0 -> 25102 bytes .../static/img/tutorial/localeDropdown.png | Bin 0 -> 30020 bytes 14 files changed, 182 insertions(+), 108 deletions(-) create mode 100644 packages/docusaurus-init/templates/classic/docs/congratulations.md delete mode 100644 packages/docusaurus-init/templates/classic/docs/thank-you.md create mode 100644 packages/docusaurus-init/templates/classic/static/img/tutorial/docsVersionDropdown.png create mode 100644 packages/docusaurus-init/templates/classic/static/img/tutorial/localeDropdown.png diff --git a/packages/docusaurus-init/templates/classic/docs/congratulations.md b/packages/docusaurus-init/templates/classic/docs/congratulations.md new file mode 100644 index 000000000000..341ea89878a4 --- /dev/null +++ b/packages/docusaurus-init/templates/classic/docs/congratulations.md @@ -0,0 +1,19 @@ +--- +title: Congratulations! +--- + +Congratulations on making it this far! + +You have learned the **basics of Docusaurus** and made some changes to the **initial template**. + +Docusaurus has **much more to offer**! + +Have 5 more minutes? Take a look at **[versioning](./manage-versions.md)** and **[i18n](./translate-your-site.md)**. + +## What's next? + +- Read the [official documentation](https://v2.docusaurus.io/). +- Add a custom [Design and Layout](https://v2.docusaurus.io/docs/styling-layout) +- Add a [search bar](https://v2.docusaurus.io/docs/search) +- Find inspirations in the [Docusaurus showcase](https://v2.docusaurus.io/showcase) +- Get involved in the [Docusaurus Community](https://v2.docusaurus.io/community/support) diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-blog-post.md b/packages/docusaurus-init/templates/classic/docs/create-a-blog-post.md index 4485a8af102e..e3bc28503d9c 100644 --- a/packages/docusaurus-init/templates/classic/docs/create-a-blog-post.md +++ b/packages/docusaurus-init/templates/classic/docs/create-a-blog-post.md @@ -2,7 +2,7 @@ title: Create a Blog Post --- -This page will help you on how to create blog posts in Docusaurus. +Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... ## Create a Blog Post @@ -15,6 +15,7 @@ author: Steven Hansel author_title: Docusaurus Contributor author_url: https://github.com/ShinteiMai author_image_url: https://github.com/ShinteiMai.png +tags: [greetings] --- Congratulations, you have made your first post! diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-document.md b/packages/docusaurus-init/templates/classic/docs/create-a-document.md index 792212931268..fbcc2782a928 100644 --- a/packages/docusaurus-init/templates/classic/docs/create-a-document.md +++ b/packages/docusaurus-init/templates/classic/docs/create-a-document.md @@ -2,7 +2,7 @@ title: Create a Document --- -Documents are pages with a **sidebar**, a **previous/next navigation** and many other useful features. +Documents are a **group of pages** connected through a **sidebar**, a **previous/next navigation** and **versioning**. ## Create a Document diff --git a/packages/docusaurus-init/templates/classic/docs/create-a-page.md b/packages/docusaurus-init/templates/classic/docs/create-a-page.md index 1056090453a7..548d5523b069 100644 --- a/packages/docusaurus-init/templates/classic/docs/create-a-page.md +++ b/packages/docusaurus-init/templates/classic/docs/create-a-page.md @@ -2,7 +2,7 @@ title: Create a Page --- -Any React or Markdown file created under `src/pages` directory is converted into a website page: +Add **Markdown or React** files to `src/pages` to create **standalone pages**: - `src/pages/index.js` -> `localhost:3000/` - `src/pages/foo.md` -> `localhost:3000/foo` diff --git a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md index 3d16cb0a4917..d2583b8c5d76 100644 --- a/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/deploy-your-site.md @@ -2,44 +2,26 @@ title: Deploy your site --- -import Tabs from '@theme/Tabs'; +Docusaurus is a **static-site-generator** (also called [Jamstack](https://jamstack.org/)), and builds your site as **static HTML, JavaScript and CSS files**. -import TabItem from '@theme/TabItem'; +## Build your site -This page will discuss multiple options available when it comes to deploying your docs site. Before even this happens, you need to build the files of your website for production. To do this, run : +Build your site **for production**: ```bash npm run build ``` -The static files will be generate in the build/ directory. +The static files are generated in the `build` directory. -## Self Hosting +## Deploy your site -:::warning - -It is not the most performant solution - -::: - -Docusaurus can be self hosted with docusaurus serve. Change your `--port` and `--host` to match appropriately. +Test your production build locally: ```bash -npm run serve --build --port 80 --host 0.0.0.0 -``` - -## Deploying to Netlify - -One of the fastest ways to deploy is through [Netlify](https://www.netlify.com/). Configure your `docusaurus.config.js` - -```js {2-3} title="docusaurus.config.js" -module.exports = { - url: 'https://docusaurus-2.netlify.com', // Url to your site with no trailing slash - baseUrl: '/', // Base directory of your site relative to your repo - // ... -}; +npm run serve ``` -After you're done, [setup your site with Netlify](https://app.netlify.com/start). +The `build` folder is now served at `http://localhost:3000/`. -Your site should now automatically deploy when ever you merge into your deploy branch, which defaults to master. +You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://v2.docusaurus.io/docs/deployment)**). diff --git a/packages/docusaurus-init/templates/classic/docs/getting-started.md b/packages/docusaurus-init/templates/classic/docs/getting-started.md index 43df86aac86d..34a553c9072b 100644 --- a/packages/docusaurus-init/templates/classic/docs/getting-started.md +++ b/packages/docusaurus-init/templates/classic/docs/getting-started.md @@ -3,17 +3,21 @@ title: Getting Started slug: / --- -## Step 1: Generate a new Docusaurus site +Get started by **creating a new site** -If you haven't already, generate a new Docusaurus site using the classic template: +Or **try Docusaurus immediately** with **[new.docusaurus.io](https://new.docusaurus.io)** (CodeSandbox). + +## Generate a new site + +Generate a new Docusaurus site using the **classic template**: ```shell npx @docusaurus/init@latest init my-website classic ``` -## Step 2: Start your Docusaurus site +## Start your site -Run the development server in the newly created `my-website` folder: +Run the development server: ```shell cd my-website @@ -21,8 +25,6 @@ cd my-website npx docusaurus start ``` -Open `docs/getting-started.md` and edit some lines. The site reloads automatically and display your changes. - -## That's it! +Your site starts at `http://localhost:3000`. -Congratulations! You've successfully run and modified your Docusaurus project. +Open `docs/getting-started.md` and edit some lines: the site **reloads automatically** and display your changes. diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-versions.md index c2c512c05e06..c26dad17dcfd 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-versions.md @@ -2,24 +2,52 @@ title: Manage Versions --- -Docusaurus gives you the option to have different versions of your docs, allowing you to update and have previous versions available. +Docusaurus can manage multiple versions of your documentation. -### Tagging a new version +## Create a docs version -To tag a new version make sure the content in the `docs` directory is ready to be frozen as a version. Run the following command to tag a version +Release a version 1.0 of your project: ```bash -npm run docusaurus docs:version +npm run docusaurus docs:version 1.0 ``` -When a new `version` is tagged, the `docs/` directory content will be copied into `versioned_docs/version-/` folder. A [sidebar](https://v2.docusaurus.io/docs/docs-introduction#sidebar) configuration will also be copiend and the version number added to `versions.json`. +The `docs` directory is copied into `versioned_docs/version-1.0` and `versions.json` is created. -## Updating an existing version +Your docs now have 2 versions: + +- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs +- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** + +## Add a Version Dropdown -You can edit any version in its specific folder, comit and push changes and it will be published to that version. Example when you change any file in `versioned_docs/version-2.6/`, it will only affect the docs for `version 2.6` +To navigate seamlessly across versions, add a version dropdown. -## Deleting an existing version +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +module.exports = { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'docsVersionDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The docs version dropdown appears in your navbar: + +![Docs Version Dropdown](/img/tutorial/docsVersionDropdown.png) + +## Updating an existing version -You can delete an existing version by removing the version from `versions.json` file, deleting the docs directory, Example : `versioned_docs/version-1.8.0` and deleting the versioned sidebar file, Example : `versioned_sidebars/version-1.8.0-sidebars.json`. +After creating a version, it is still possible to edit it in its respective folder: -After tagging a new version or deleting an existing version, you can restart the site with `yarn restart` or `npm restart`. +- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` +- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx index 622391df57f6..9b9f9ca0767d 100644 --- a/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx +++ b/packages/docusaurus-init/templates/classic/docs/markdown-features.mdx @@ -2,11 +2,11 @@ title: Markdown Features --- -Docusaurus supports the [Markdown](https://daringfireball.net/projects/markdown/syntax) syntax and has some additional features. +Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. ## Front Matter -Markdown documents can have associated metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): +Markdown documents have metadata at the very top called [Front Matter](https://jekyllrb.com/docs/front-matter/): ```md --- @@ -16,12 +16,14 @@ description: My document description sidebar_label: My doc --- -Markdown content +## Markdown heading + +Markdown text with [links](./hello.md) ``` -## Markdown links +## Links -Regular Markdown links are supported using url paths or relative file paths. +Regular Markdown links are supported, using url paths or relative file paths. ```md Let's see how to [Create a page](/create-a-page). @@ -31,13 +33,13 @@ Let's see how to [Create a page](/create-a-page). Let's see how to [Create a page](./create-a-page.md). ``` -Let's see how to [Create a page](./create-a-page.md). +**Result:** Let's see how to [Create a page](./create-a-page.md). -## Markdown images +## Images Regular Markdown images are supported. -Add an image at `static/img/docusaurus.png` and use this Markdown declaration: +Add an image at `static/img/docusaurus.png` and display it in Markdown: ```md ![Docusaurus logo](/img/docusaurus.png) @@ -91,38 +93,48 @@ This action is dangerous ::: -## React components +## MDX and React Components -Thanks to [MDX](https://mdxjs.com/), you can make your doc more interactive and use React components inside Markdown: +[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: ```jsx export const Highlight = ({children, color}) => ( { + alert(`You clicked the color ${color} with label ${children}`) }}> {children} ); -Docusaurus green and Facebook blue are my favorite colors. +This is Docusaurus green ! + +This is Facebook blue ! ``` export const Highlight = ({children, color}) => ( { + alert(`You clicked the color ${color} with label ${children}`); }}> {children} ); -Docusaurus green and - Facebook blue - are my favorite colors. +This is Docusaurus green ! + +This is Facebook blue ! diff --git a/packages/docusaurus-init/templates/classic/docs/thank-you.md b/packages/docusaurus-init/templates/classic/docs/thank-you.md deleted file mode 100644 index 808847e61fe3..000000000000 --- a/packages/docusaurus-init/templates/classic/docs/thank-you.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Thank you! ---- - -Congratulations on making it this far! - -You have learned the **basics of Docusaurus** and made some changes to the **initial template**. - -But Docusaurus has **much more to offer**! - -## What's next? - -- [Read the official documentation](https://v2.docusaurus.io/). -- [Design and Layout your Docusaurus site](https://v2.docusaurus.io/docs/styling-layout) -- [Integrate a search bar into your site](https://v2.docusaurus.io/docs/search) -- [Find inspirations in Docusaurus showcase](https://v2.docusaurus.io/showcase) -- [Get involved in the Docusaurus Community](https://v2.docusaurus.io/community/support) diff --git a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md index 8b0cef7a020d..4c2eaf0c9602 100644 --- a/packages/docusaurus-init/templates/classic/docs/translate-your-site.md +++ b/packages/docusaurus-init/templates/classic/docs/translate-your-site.md @@ -2,39 +2,85 @@ title: Translate your site --- -In this page we would cover translate .md files. We are going to translate the `Getting Started` page in the `Docusaurus Tutorial section` to French - "fr". +Let's translate `docs/getting-started.md` to French. -### Site Configuration +## Configure i18n -Use the [site i18n configuration](https://v2.docusaurus.io/docs/next/docusaurus.config.js#i18n) to add the fr locale" +Modify `docusaurus.config.js` to add support for the `fr` locale: ```js title="docusaurus.config.js" module.exports = { i18n: { defaultLocale: 'en', locales: ['en', 'fr'], - localeConfigs: { - en: { - label: 'English', - }, - fr: { - label: 'Français', - }, - }, }, }; ``` -### Translate the page +## Translate a doc + +Copy the `docs/getting-started.md` file to the `i18n/fr` directory: + +```bash +mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ + +cp docs/getting-started.md i18n/fr/docusaurus-plugin-content-docs/current/getting-started.md +``` -To Transte the `getting-started.md` page, copy `docs/getting-started.md` to `i18n/fr/plugin-docs/getting-started.md`. Replace the content in the i118n folder with the French locale content. +Translate `i18n/fr/docusaurus-plugin-content-docs/current/getting-started.md` in French. -### Start your site +## Start your localized site -Start your localized site in dev mode, using the fr local. +Start your site on the French locale: ```bash npm run start -- --locale fr ``` -Your site is accessible at **`http://localhost:3000/fr/`**. +Your localized site is accessible at `http://localhost:3000/fr/` and the `Getting Started` page is translated. + +:::warning + +In development, you can only use one locale at a same time. + +::: + +## Add a Locale Dropdown + +To navigate seamlessly across languages, add a locale dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +module.exports = { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'localeDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The locale dropdown now appears in your navbar: + +![Locale Dropdown](/img/tutorial/localeDropdown.png) + +## Build your localized site + +Build your site for a specific locale: + +```bash +npm run build -- --locale fr +``` + +Or build your site to include all the locales at once: + +```bash +npm run build +``` diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index 1f0145abe82e..c0f46f97d048 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -1,21 +1,22 @@ module.exports = { - docs: [ + tutorial: [ { type: 'category', - label: 'Docusaurus Tutorial', + label: 'Tutorial - Basics', items: [ 'getting-started', 'create-a-page', 'create-a-document', 'create-a-blog-post', 'markdown-features', - 'thank-you', + 'deploy-your-site', + 'congratulations', ], }, { type: 'category', - label: 'Extras', - items: ['deploy-your-site', 'translate-your-site', 'manage-versions'], + label: 'Tutorial - Extras', + items: ['manage-versions', 'translate-your-site'], }, ], }; diff --git a/packages/docusaurus-init/templates/classic/src/pages/index.js b/packages/docusaurus-init/templates/classic/src/pages/index.js index 5649b00bc5a4..24a56c87f81b 100644 --- a/packages/docusaurus-init/templates/classic/src/pages/index.js +++ b/packages/docusaurus-init/templates/classic/src/pages/index.js @@ -68,11 +68,11 @@ export default function Home() {
- Get Started + to="/docs"> + Get Started - Docusaurus Tutorial
diff --git a/packages/docusaurus-init/templates/classic/static/img/tutorial/docsVersionDropdown.png b/packages/docusaurus-init/templates/classic/static/img/tutorial/docsVersionDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1cbe68893d205dc0a6821bfa74d8e7d25c09cf GIT binary patch literal 25102 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 Js!v|N^*`%a2QvTw literal 0 HcmV?d00001 diff --git a/packages/docusaurus-init/templates/classic/static/img/tutorial/localeDropdown.png b/packages/docusaurus-init/templates/classic/static/img/tutorial/localeDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..d7163f96752499e2e39e771d4d5e9e42c68677aa GIT binary patch literal 30020 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 literal 0 HcmV?d00001 From afe02f9929b0a868f9f6260e265b9080b657d04b Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 15:16:14 +0100 Subject: [PATCH 22/26] rename manage-docs-versions --- .../docusaurus-init/templates/classic/docs/congratulations.md | 2 +- .../docs/{manage-versions.md => manage-docs-versions.md} | 4 ++-- packages/docusaurus-init/templates/classic/sidebars.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename packages/docusaurus-init/templates/classic/docs/{manage-versions.md => manage-docs-versions.md} (93%) diff --git a/packages/docusaurus-init/templates/classic/docs/congratulations.md b/packages/docusaurus-init/templates/classic/docs/congratulations.md index 341ea89878a4..32204b9c5510 100644 --- a/packages/docusaurus-init/templates/classic/docs/congratulations.md +++ b/packages/docusaurus-init/templates/classic/docs/congratulations.md @@ -8,7 +8,7 @@ You have learned the **basics of Docusaurus** and made some changes to the **ini Docusaurus has **much more to offer**! -Have 5 more minutes? Take a look at **[versioning](./manage-versions.md)** and **[i18n](./translate-your-site.md)**. +Have 5 more minutes? Take a look at **[versioning](./manage-docs-versions.md)** and **[i18n](./translate-your-site.md)**. ## What's next? diff --git a/packages/docusaurus-init/templates/classic/docs/manage-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md similarity index 93% rename from packages/docusaurus-init/templates/classic/docs/manage-versions.md rename to packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md index c26dad17dcfd..a5300b8ed988 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md @@ -1,8 +1,8 @@ --- -title: Manage Versions +title: Manage Docs Versions --- -Docusaurus can manage multiple versions of your documentation. +Docusaurus can manage multiple versions of your docs. ## Create a docs version diff --git a/packages/docusaurus-init/templates/classic/sidebars.js b/packages/docusaurus-init/templates/classic/sidebars.js index c0f46f97d048..5ed8bc649a5f 100644 --- a/packages/docusaurus-init/templates/classic/sidebars.js +++ b/packages/docusaurus-init/templates/classic/sidebars.js @@ -16,7 +16,7 @@ module.exports = { { type: 'category', label: 'Tutorial - Extras', - items: ['manage-versions', 'translate-your-site'], + items: ['manage-docs-versions', 'translate-your-site'], }, ], }; From b6994a467a768dbe38e0ea79c8af4282bd57e971 Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 15:17:52 +0100 Subject: [PATCH 23/26] change wording --- .../templates/classic/docs/manage-docs-versions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md b/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md index a5300b8ed988..1f2cd1a8b39f 100644 --- a/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md +++ b/packages/docusaurus-init/templates/classic/docs/manage-docs-versions.md @@ -45,9 +45,9 @@ The docs version dropdown appears in your navbar: ![Docs Version Dropdown](/img/tutorial/docsVersionDropdown.png) -## Updating an existing version +## Update an existing version -After creating a version, it is still possible to edit it in its respective folder: +It is possible to edit versioned docs in their respective folder: - `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` - `docs/hello.md` updates `http://localhost:3000/docs/next/hello` From e36ff5774061afdba60595d4ee5b650db5ed17dd Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 15:27:27 +0100 Subject: [PATCH 24/26] refresh config file --- .../templates/classic/docusaurus.config.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/docusaurus.config.js b/packages/docusaurus-init/templates/classic/docusaurus.config.js index 50817231dfbb..023a5534a8ed 100644 --- a/packages/docusaurus-init/templates/classic/docusaurus.config.js +++ b/packages/docusaurus-init/templates/classic/docusaurus.config.js @@ -1,7 +1,7 @@ /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = { title: 'My Site', - tagline: 'The tagline of my site', + tagline: 'Dinosaurs are cool', url: 'https://your-docusaurus-test-site.com', baseUrl: '/', onBrokenLinks: 'throw', @@ -18,12 +18,12 @@ module.exports = { }, items: [ { - to: 'docs/', - activeBasePath: 'docs', - label: 'Docs', + type: 'doc', + docId: 'getting-started', position: 'left', + label: 'Tutorial', }, - {to: 'blog', label: 'Blog', position: 'left'}, + {to: '/blog', label: 'Blog', position: 'left'}, { href: 'https://github.com/facebook/docusaurus', label: 'GitHub', @@ -39,7 +39,7 @@ module.exports = { items: [ { label: 'Getting Started', - to: 'docs/', + to: '/docs/', }, ], }, @@ -65,7 +65,7 @@ module.exports = { items: [ { label: 'Blog', - to: 'blog', + to: '/blog', }, { label: 'GitHub', From 60e9ae72e4c3c204e4a1a2e5a6de729d8800bf5d Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 15:45:32 +0100 Subject: [PATCH 25/26] rework init template homepage --- .../src/components/HomepageFeatures.js | 66 +++++++++++++ .../components/HomepageFeatures.module.css | 13 +++ .../templates/classic/src/pages/index.js | 96 +++++-------------- .../{styles.module.css => index.module.css} | 12 --- 4 files changed, 101 insertions(+), 86 deletions(-) create mode 100644 packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js create mode 100644 packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.module.css rename packages/docusaurus-init/templates/classic/src/pages/{styles.module.css => index.module.css} (74%) diff --git a/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js new file mode 100644 index 000000000000..04a2ce04a69f --- /dev/null +++ b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js @@ -0,0 +1,66 @@ +import React from 'react'; +import clsx from 'clsx'; +import styles from './HomepageFeatures.module.css'; + +const FeatureList = [ + { + title: 'Easy to Use', + Svg: require('../../static/img/undraw_docusaurus_mountain.svg').default, + description: ( + <> + Docusaurus was designed from the ground up to be easily installed and + used to get your website up and running quickly. + + ), + }, + { + title: 'Focus on What Matters', + Svg: require('../../static/img/undraw_docusaurus_tree.svg').default, + description: ( + <> + Docusaurus lets you focus on your docs, and we'll do the chores. Go + ahead and move your docs into the docs directory. + + ), + }, + { + title: 'Powered by React', + Svg: require('../../static/img/undraw_docusaurus_react.svg').default, + description: ( + <> + Extend or customize your website layout by reusing React. Docusaurus can + be extended while reusing the same header and footer. + + ), + }, +]; + +function Feature({Svg, title, description}) { + return ( +
+
+ +
+

{title}

+

{description}

+
+ ); +} + +export default function HomepageFeatures() { + return ( + <> + {FeatureList.length > 0 && ( +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
+ )} + + ); +} diff --git a/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.module.css b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.module.css new file mode 100644 index 000000000000..9dcb82c3548a --- /dev/null +++ b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.module.css @@ -0,0 +1,13 @@ +/* stylelint-disable docusaurus/copyright-header */ + +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/packages/docusaurus-init/templates/classic/src/pages/index.js b/packages/docusaurus-init/templates/classic/src/pages/index.js index 24a56c87f81b..51a589761eb8 100644 --- a/packages/docusaurus-init/templates/classic/src/pages/index.js +++ b/packages/docusaurus-init/templates/classic/src/pages/index.js @@ -3,92 +3,40 @@ import clsx from 'clsx'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from './styles.module.css'; +import styles from './index.module.css'; +import HomepageFeatures from '../components/HomepageFeatures'; -const features = [ - { - title: 'Easy to Use', - imageUrl: 'img/undraw_docusaurus_mountain.svg', - description: ( - <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. - - ), - }, - { - title: 'Focus on What Matters', - imageUrl: 'img/undraw_docusaurus_tree.svg', - description: ( - <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. - - ), - }, - { - title: 'Powered by React', - imageUrl: 'img/undraw_docusaurus_react.svg', - description: ( - <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. - - ), - }, -]; - -function Feature({imageUrl, title, description}) { - const imgUrl = useBaseUrl(imageUrl); +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); return ( -
- {imgUrl && ( -
- {title} +
+
+

{siteConfig.title}

+

{siteConfig.tagline}

+
+ + Get Started - Docusaurus Tutorial +
- )} -

{title}

-

{description}

-
+
+ ); } export default function Home() { - const context = useDocusaurusContext(); - const {siteConfig = {}} = context; + const {siteConfig} = useDocusaurusContext(); return ( -
-
-

{siteConfig.title}

-

{siteConfig.tagline}

-
- - Get Started - Docusaurus Tutorial - -
-
-
+
- {features && features.length > 0 && ( -
-
-
- {features.map((props, idx) => ( - - ))} -
-
-
- )} +
); diff --git a/packages/docusaurus-init/templates/classic/src/pages/styles.module.css b/packages/docusaurus-init/templates/classic/src/pages/index.module.css similarity index 74% rename from packages/docusaurus-init/templates/classic/src/pages/styles.module.css rename to packages/docusaurus-init/templates/classic/src/pages/index.module.css index c1aa85121c91..5c0d4f6e20c4 100644 --- a/packages/docusaurus-init/templates/classic/src/pages/styles.module.css +++ b/packages/docusaurus-init/templates/classic/src/pages/index.module.css @@ -23,15 +23,3 @@ align-items: center; justify-content: center; } - -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureImage { - height: 200px; - width: 200px; -} From 4eb31e4acafc0ead110bc0e2d0f311debb353e19 Mon Sep 17 00:00:00 2001 From: slorber Date: Wed, 17 Mar 2021 15:47:34 +0100 Subject: [PATCH 26/26] minor changes --- .../src/components/HomepageFeatures.js | 22 ++++++++----------- .../templates/classic/src/pages/index.js | 7 +----- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js index 04a2ce04a69f..19c618e64b62 100644 --- a/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js +++ b/packages/docusaurus-init/templates/classic/src/components/HomepageFeatures.js @@ -49,18 +49,14 @@ function Feature({Svg, title, description}) { export default function HomepageFeatures() { return ( - <> - {FeatureList.length > 0 && ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- )} - +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
); } diff --git a/packages/docusaurus-init/templates/classic/src/pages/index.js b/packages/docusaurus-init/templates/classic/src/pages/index.js index 51a589761eb8..bbded376702a 100644 --- a/packages/docusaurus-init/templates/classic/src/pages/index.js +++ b/packages/docusaurus-init/templates/classic/src/pages/index.js @@ -14,12 +14,7 @@ function HomepageHeader() {

{siteConfig.title}

{siteConfig.tagline}

- + Get Started - Docusaurus Tutorial