diff --git a/docs/blog/2019-05-28-first-blog-post.md b/docs/blog/2019-05-28-first-blog-post.md
deleted file mode 100644
index 02f3f81..0000000
--- a/docs/blog/2019-05-28-first-blog-post.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-slug: first-blog-post
-title: First Blog Post
-authors:
- name: Gao Wei
- title: Docusaurus Core Team
- url: https://github.com/wgao19
- image_url: https://github.com/wgao19.png
-tags: [hola, docusaurus]
----
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
diff --git a/docs/blog/2019-05-29-long-blog-post.md b/docs/blog/2019-05-29-long-blog-post.md
deleted file mode 100644
index 26ffb1b..0000000
--- a/docs/blog/2019-05-29-long-blog-post.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-slug: long-blog-post
-title: Long Blog Post
-authors: endi
-tags: [hello, docusaurus]
----
-
-This is the summary of a very long blog post,
-
-Use a `` comment to limit blog post size in the list view.
-
-
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
diff --git a/docs/blog/2021-08-01-mdx-blog-post.mdx b/docs/blog/2021-08-01-mdx-blog-post.mdx
deleted file mode 100644
index c04ebe3..0000000
--- a/docs/blog/2021-08-01-mdx-blog-post.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-slug: mdx-blog-post
-title: MDX Blog Post
-authors: [slorber]
-tags: [docusaurus]
----
-
-Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
-
-:::tip
-
-Use the power of React to create interactive blog posts.
-
-```js
-
-```
-
-
-
-:::
diff --git a/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg
deleted file mode 100644
index 11bda09..0000000
Binary files a/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ
diff --git a/docs/blog/2021-08-26-welcome/index.md b/docs/blog/2021-08-26-welcome/index.md
deleted file mode 100644
index 9455168..0000000
--- a/docs/blog/2021-08-26-welcome/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-slug: welcome
-title: Welcome
-authors: [slorber, yangshun]
-tags: [facebook, hello, docusaurus]
----
-
-[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
-
-Simply add Markdown files (or folders) to the `blog` directory.
-
-Regular blog authors can be added to `authors.yml`.
-
-The blog post date can be extracted from filenames, such as:
-
-- `2019-05-30-welcome.md`
-- `2019-05-30-welcome/index.md`
-
-A blog post folder can be convenient to co-locate blog post images:
-
-
-
-The blog supports tags as well!
-
-**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
diff --git a/docs/blog/authors.yml b/docs/blog/authors.yml
deleted file mode 100644
index bcb2991..0000000
--- a/docs/blog/authors.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-endi:
- name: Endilie Yacop Sucipto
- title: Maintainer of Docusaurus
- url: https://github.com/endiliey
- image_url: https://github.com/endiliey.png
-
-yangshun:
- name: Yangshun Tay
- title: Front End Engineer @ Facebook
- url: https://github.com/yangshun
- image_url: https://github.com/yangshun.png
-
-slorber:
- name: Sébastien Lorber
- title: Docusaurus maintainer
- url: https://sebastienlorber.com
- image_url: https://github.com/slorber.png
diff --git a/docs/docs/core_concepts.md b/docs/docs/core_concepts.md
new file mode 100644
index 0000000..8a7553d
--- /dev/null
+++ b/docs/docs/core_concepts.md
@@ -0,0 +1,49 @@
+---
+title: 2. Core Concepts
+sidebar_position: 2
+---
+
+# Core Concepts
+
+The **Model-View-Intent (MVI)** pattern in adidas MVI follows these principles:
+
+## Model
+
+The **Model** represents the state of the application. It’s immutable and stores all the information required to render the user interface.
+
+```kotlin
+sealed class LoginState {
+ data class LoggedOut(val isLoggingIn: Boolean) : LoginState()
+ data class LoggedIn(val username: String) : LoginState()
+}
+```
+
+## View
+
+The **View** observes the model and updates itself accordingly. It reacts to changes in the **Model** and displays the current state.
+
+## Intent
+
+An **Intent** represents a user action or an event that leads to a state change in the **Model**.
+
+```kotlin
+sealed class LoginIntent {
+ data class Login(val username: String, val password: String) : LoginIntent()
+ object Logout : LoginIntent()
+}
+```
+
+## Side Effects
+
+A **SideEffect** represents an external action triggered by a state change, such as network calls, database updates, or other asynchronous operations.
+
+```kotlin
+sealed class LoginSideEffect {
+ object ShowInvalidCredentialsError : LoginSideEffect()
+ object Close : LoginSideEffect()
+}
+```
+
+## State
+
+The **State** combines the **ViewState** and **SideEffect** components to provide a unified application state. It helps manage complex states within the app.
\ No newline at end of file
diff --git a/docs/docs/examples.md b/docs/docs/examples.md
new file mode 100644
index 0000000..6d71a40
--- /dev/null
+++ b/docs/docs/examples.md
@@ -0,0 +1,107 @@
+---
+title: 4. Examples
+sidebar_position: 4
+---
+
+# Examples
+
+This section provides examples of how to implement the adidas MVI library in your Android application.
+For more detail check the sample provided.
+
+## 1. Login Flow Example
+
+Here is a complete example of how to implement a login flow using the adidas MVI library.
+
+### ViewModel Implementation
+
+The following code shows the `LoginViewModel`, which handles the login process.
+
+```kotlin
+class LoginViewModel(
+ logger: Logger,
+ coroutineDispatcher: CoroutineDispatcher = Dispatchers.Default
+) : ViewModel(), MviHost> {
+
+ private val reducer = Reducer(
+ coroutineScope = viewModelScope,
+ defaultDispatcher = coroutineDispatcher,
+ initialInnerState = LoginState.LoggedOut(isLoggingIn = false),
+ logger = logger,
+ intentExecutor = this::executeIntent,
+ )
+
+ override val state = reducer.state
+
+ override fun execute(intent: LoginIntent) {
+ reducer.executeIntent(intent)
+ }
+
+ private fun executeIntent(intent: LoginIntent) =
+ when (intent) {
+ is LoginIntent.Login -> executeLogin(intent)
+ LoginIntent.Logout -> executeLogout()
+ LoginIntent.Close -> executeClose()
+ }
+
+ private fun executeLogin(intent: LoginIntent.Login) = flow {
+ emit(LoginTransform.SetIsLoggingIn(isLoggingIn = true))
+ delay(300) // Simulate a network call
+ emit(LoginTransform.SetIsLoggingIn(isLoggingIn = false))
+
+ if (intent.username.isEmpty() || intent.password.isEmpty()) {
+ emit(LoginTransform.AddSideEffect(LoginSideEffect.ShowInvalidCredentialsError))
+ } else {
+ emit(LoginTransform.SetLoggedIn(intent.username))
+ }
+ }
+}
+```
+
+# Intent Example
+
+Define the intents that your application will handle:
+
+```kotlin
+internal sealed class LoginIntent : Intent {
+ data class Login(val username: String, val password: String) : LoginIntent()
+ object Logout : LoginIntent()
+ object Close : LoginIntent()
+}
+```
+
+# Activity Implementation
+
+Here's how to set up the `MviSampleActivity` to use the `LoginViewModel`.
+
+```kotlin
+class MviSampleActivity : AppCompatActivity() {
+ private val viewModel: LoginViewModel by viewModel() // Assuming you're using Koin for dependency injection
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContent {
+ LoginScreen(viewModel)
+ }
+ }
+}
+```
+
+# View Implementation
+
+In your composable function, observe the state from the `LoginViewModel` and render the UI accordingly.
+
+```kotlin
+@Composable
+fun LoginScreen(viewModel: LoginViewModel) {
+ val state by viewModel.state.collectAsState()
+
+ when (state) {
+ is LoginState.LoggedOut -> {
+ // Show login UI
+ }
+ is LoginState.LoggedIn -> {
+ // Show logged-in UI
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/docs/getting_started.md b/docs/docs/getting_started.md
new file mode 100644
index 0000000..f0cce22
--- /dev/null
+++ b/docs/docs/getting_started.md
@@ -0,0 +1,67 @@
+---
+title: 3. Getting started
+sidebar_position: 3
+---
+
+# Getting Started
+
+To begin using adidas MVI in your project, follow these steps:
+
+## 1. Add the Dependency
+
+Add the following to your `build.gradle` file:
+
+```gradle
+implementation("com.adidas.mvi:mvi:{LATEST_VERSION}")
+```
+
+Sync your project to download the necessary dependencies.
+
+## 2. Create the Components
+
+Here's an example of setting up the **LoginViewModel** and managing intents.
+
+### Login ViewModel
+
+The **LoginViewModel** manages user actions and updates the application state based on intents.
+
+```kotlin
+class LoginViewModel( logger: Logger ) : ViewModel(), MviHost> {
+ private val reducer = Reducer(
+ coroutineScope = viewModelScope,
+ initialInnerState = LoginState.LoggedOut(isLoggingIn = false),
+ logger = logger,
+ intentExecutor = this::executeIntent
+ )
+
+ override val state = reducer.state
+
+ override fun execute(intent: LoginIntent) {
+ reducer.executeIntent(intent)
+ }
+
+ private fun executeIntent(intent: LoginIntent) =
+ when (intent) {
+ is LoginIntent.Login -> executeLogin(intent)
+ LoginIntent.Logout -> executeLogout()
+ LoginIntent.Close -> executeClose()
+ }
+}
+```
+
+## 3. Update the Activity
+
+In your `Activity`, use the view model and set the content:
+
+```kotlin
+class MviSampleActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContent {
+ LoginScreen()
+ }
+ }
+}
+```
+
+Now you're ready to use adidas MVI in your project!
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
index 8a2e69d..cb03920 100644
--- a/docs/docs/intro.md
+++ b/docs/docs/intro.md
@@ -1,47 +1,23 @@
---
+title: 1. Introduction
sidebar_position: 1
---
-# Tutorial Intro
+# Introduction
-Let's discover **Docusaurus in less than 5 minutes**.
+**adidas MVI** is a lightweight library that helps developers implement the **Model-View-Intent (MVI)** architectural pattern in Android and JVM applications.
-## Getting Started
+The key advantages of using the MVI pattern include:
-Get started by **creating a new site**.
+- **Unidirectional Data Flow:** Clear flow of data within your app.
+- **Immutable Data:** Reduces the likelihood of bugs and makes the codebase more reliable.
+- **Separation of Concerns:** Model, View, and Intent are strictly separated, simplifying maintenance and testing.
-Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
+Initially developed for the **adidas CONFIRMED** app, the library has since been open-sourced to simplify MVI implementation across different projects.
-### What you'll need
+## Features
-- [Node.js](https://nodejs.org/en/download/) version 16.14 or above:
- - When installing Node.js, you are recommended to check all checkboxes related to dependencies.
+- **Lightweight:** Minimal setup with clear APIs.
+- **Built-in Thread Safety:** Ensures concurrent state management without data races.
+- **Customizable:** Provides utilities and tools that adapt to different app needs.
-## Generate a new site
-
-Generate a new Docusaurus site using the **classic template**.
-
-The classic template will automatically be added to your project after you run the command:
-
-```bash
-npm init docusaurus@latest my-website classic
-```
-
-You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
-
-The command also installs all necessary dependencies you need to run Docusaurus.
-
-## Start your site
-
-Run the development server:
-
-```bash
-cd my-website
-npm run start
-```
-
-The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
-
-The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
-
-Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
diff --git a/docs/docs/tutorial-basics/_category_.json b/docs/docs/tutorial-basics/_category_.json
deleted file mode 100644
index 2e6db55..0000000
--- a/docs/docs/tutorial-basics/_category_.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "label": "Tutorial - Basics",
- "position": 2,
- "link": {
- "type": "generated-index",
- "description": "5 minutes to learn the most important Docusaurus concepts."
- }
-}
diff --git a/docs/docs/tutorial-basics/congratulations.md b/docs/docs/tutorial-basics/congratulations.md
deleted file mode 100644
index 04771a0..0000000
--- a/docs/docs/tutorial-basics/congratulations.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-sidebar_position: 6
----
-
-# Congratulations!
-
-You have just 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](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
-
-Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
-
-## What's next?
-
-- Read the [official documentation](https://docusaurus.io/)
-- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
-- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
-- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
-- Add a [search bar](https://docusaurus.io/docs/search)
-- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
-- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
diff --git a/docs/docs/tutorial-basics/create-a-blog-post.md b/docs/docs/tutorial-basics/create-a-blog-post.md
deleted file mode 100644
index ea472bb..0000000
--- a/docs/docs/tutorial-basics/create-a-blog-post.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-sidebar_position: 3
----
-
-# Create a Blog Post
-
-Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
-
-## Create your first Post
-
-Create a file at `blog/2021-02-28-greetings.md`:
-
-```md title="blog/2021-02-28-greetings.md"
----
-slug: greetings
-title: Greetings!
-authors:
- - name: Joel Marcey
- title: Co-creator of Docusaurus 1
- url: https://github.com/JoelMarcey
- image_url: https://github.com/JoelMarcey.png
- - name: Sébastien Lorber
- title: Docusaurus maintainer
- url: https://sebastienlorber.com
- image_url: https://github.com/slorber.png
-tags: [greetings]
----
-
-Congratulations, you have made your first post!
-
-Feel free to play around and edit this post as much you like.
-```
-
-A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
diff --git a/docs/docs/tutorial-basics/create-a-document.md b/docs/docs/tutorial-basics/create-a-document.md
deleted file mode 100644
index ffddfa8..0000000
--- a/docs/docs/tutorial-basics/create-a-document.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 2
----
-
-# Create a Document
-
-Documents are **groups of pages** connected through:
-
-- a **sidebar**
-- **previous/next navigation**
-- **versioning**
-
-## Create your first Doc
-
-Create a Markdown file at `docs/hello.md`:
-
-```md title="docs/hello.md"
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
-
-## Configure the Sidebar
-
-Docusaurus automatically **creates a sidebar** from the `docs` folder.
-
-Add metadata to customize the sidebar label and position:
-
-```md title="docs/hello.md" {1-4}
----
-sidebar_label: 'Hi!'
-sidebar_position: 3
----
-
-# Hello
-
-This is my **first Docusaurus document**!
-```
-
-It is also possible to create your sidebar explicitly in `sidebars.js`:
-
-```js title="sidebars.js"
-module.exports = {
- tutorialSidebar: [
- 'intro',
- // highlight-next-line
- 'hello',
- {
- type: 'category',
- label: 'Tutorial',
- items: ['tutorial-basics/create-a-document'],
- },
- ],
-};
-```
diff --git a/docs/docs/tutorial-basics/create-a-page.md b/docs/docs/tutorial-basics/create-a-page.md
deleted file mode 100644
index 20e2ac3..0000000
--- a/docs/docs/tutorial-basics/create-a-page.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-sidebar_position: 1
----
-
-# Create a Page
-
-Add **Markdown or React** files to `src/pages` to create a **standalone page**:
-
-- `src/pages/index.js` → `localhost:3000/`
-- `src/pages/foo.md` → `localhost:3000/foo`
-- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
-
-## Create your first React Page
-
-Create a file at `src/pages/my-react-page.js`:
-
-```jsx title="src/pages/my-react-page.js"
-import React from 'react';
-import Layout from '@theme/Layout';
-
-export default function MyReactPage() {
- return (
-
-
My React page
-
This is a React page
-
- );
-}
-```
-
-A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
-
-## Create your first Markdown Page
-
-Create a file at `src/pages/my-markdown-page.md`:
-
-```mdx title="src/pages/my-markdown-page.md"
-# My Markdown page
-
-This is a Markdown page
-```
-
-A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
diff --git a/docs/docs/tutorial-basics/deploy-your-site.md b/docs/docs/tutorial-basics/deploy-your-site.md
deleted file mode 100644
index 1c50ee0..0000000
--- a/docs/docs/tutorial-basics/deploy-your-site.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-sidebar_position: 5
----
-
-# Deploy your site
-
-Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
-
-It builds your site as simple **static HTML, JavaScript and CSS files**.
-
-## Build your site
-
-Build your site **for production**:
-
-```bash
-npm run build
-```
-
-The static files are generated in the `build` folder.
-
-## Deploy your site
-
-Test your production build locally:
-
-```bash
-npm run serve
-```
-
-The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
-
-You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
diff --git a/docs/docs/tutorial-basics/markdown-features.mdx b/docs/docs/tutorial-basics/markdown-features.mdx
deleted file mode 100644
index 6b3aaaa..0000000
--- a/docs/docs/tutorial-basics/markdown-features.mdx
+++ /dev/null
@@ -1,146 +0,0 @@
----
-sidebar_position: 4
----
-
-# Markdown Features
-
-Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
-
-## Front Matter
-
-Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
-
-```text title="my-doc.md"
-// highlight-start
----
-id: my-doc-id
-title: My document title
-description: My document description
-slug: /my-custom-url
----
-// highlight-end
-
-## Markdown heading
-
-Markdown text with [links](./hello.md)
-```
-
-## Links
-
-Regular Markdown links are supported, using url paths or relative file paths.
-
-```md
-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).
-
-## Images
-
-Regular Markdown images are supported.
-
-You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
-
-```md
-
-```
-
-
-
-You can reference images relative to the current file as well, as shown in [the extra guides](../tutorial-extras/manage-docs-versions.md).
-
-## Code Blocks
-
-Markdown code blocks are supported with Syntax highlighting.
-
- ```jsx title="src/components/HelloDocusaurus.js"
- function HelloDocusaurus() {
- return (
-