From e2a5ec7740d0e752f4ed3fdff30ad72f900542af Mon Sep 17 00:00:00 2001
From: Airscript
Date: Sun, 30 Jul 2023 16:41:49 +0200
Subject: [PATCH 01/18] chore: change homepage on package.json file
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 237d63c..e8e28fe 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"main": "analscript.js",
"description": "A modern approach for writing anally fast stuff.",
"keywords": ["analscript", "programming language", "esoteric", "cli", "anal"],
- "homepage": "https://github.com/airscripts/analscript",
+ "homepage": "https://esolangs.org/wiki/Analscript",
"bugs": {
"email": "support@airscript.it"
},
From baed97b4ad6a911057ffdc3ea481ad9c5d4f14c9 Mon Sep 17 00:00:00 2001
From: Francesco Sardone
Date: Sun, 30 Jul 2023 22:31:37 +0200
Subject: [PATCH 02/18] feat: add circle ci base config with automated testing
pipeline
---
.circleci/config.yml | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .circleci/config.yml
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..c0a2197
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,13 @@
+version: 2.1
+
+orbs:
+ node: circleci/node@5.1.0
+
+workflows:
+ testing:
+ jobs:
+ - node/test:
+ version: lts
+ pkg-manager: npm
+ run-command: test:std
+ resource_class: small
From fde44305384962b1ec8b3a7fa01e90684c1780b8 Mon Sep 17 00:00:00 2001
From: Airscript
Date: Sun, 30 Jul 2023 23:18:25 +0200
Subject: [PATCH 03/18] feat: add dockerfile for trying analscript
---
Dockerfile | 7 +++++++
entrypoint.sh | 3 +++
2 files changed, 10 insertions(+)
create mode 100644 Dockerfile
create mode 100755 entrypoint.sh
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..05b257a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,7 @@
+FROM node:18.17-alpine3.18 AS runner
+ LABEL maintainer="Airscript "
+ WORKDIR /tmp
+ COPY entrypoint.sh .
+ RUN npm install -g analscript
+ ENTRYPOINT [ "./entrypoint.sh" ]
+ CMD [ "/bin/sh" ]
\ No newline at end of file
diff --git a/entrypoint.sh b/entrypoint.sh
new file mode 100755
index 0000000..4ba1611
--- /dev/null
+++ b/entrypoint.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+set -e
+exec "$@"
From 323967ec4a4e6e56e7640d8712c22d479ca6b1d6 Mon Sep 17 00:00:00 2001
From: Airscript
Date: Sun, 30 Jul 2023 23:21:11 +0200
Subject: [PATCH 04/18] refactor: add fixed node version for ci
---
.circleci/config.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index c0a2197..547c87f 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -7,7 +7,7 @@ workflows:
testing:
jobs:
- node/test:
- version: lts
+ version: '18.17'
pkg-manager: npm
run-command: test:std
resource_class: small
From b98e3790313268a117f33c76166a25425fd763bd Mon Sep 17 00:00:00 2001
From: Airscript
Date: Sun, 30 Jul 2023 23:42:45 +0200
Subject: [PATCH 05/18] chore: update README.md
---
README.md | 3 ++-
README_DOCKER_HUB.md | 15 +++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
create mode 100644 README_DOCKER_HUB.md
diff --git a/README.md b/README.md
index 150966f..f2dc0cb 100644
--- a/README.md
+++ b/README.md
@@ -62,6 +62,7 @@ Use them to write or read your anally marvelous softwares!
## Resources
- [Esolang Wiki Page](https://esolangs.org/wiki/Analscript): the official Esolang Wiki page.
- [GitHub Page](https://ghio.airscript.it/analscript): the GitHub page for this repository.
+- [Docker Hub](https://hub.docker.com/r/airscript/analscript): the official image for trying it out with Docker.
## Contributing
Contributions and suggestions about how to improve this project are welcome!
@@ -84,4 +85,4 @@ Choose what you find more suitable for you:
*As of my personal preference, I'do go with GitHub Sponsors.*
## License
-This repository is licensed under [MIT License](https://github.com/Airscripts/emdees/blob/main/LICENSE).
+This repository is licensed under [MIT License](https://github.com/airscripts/analscript/blob/main/LICENSE).
diff --git a/README_DOCKER_HUB.md b/README_DOCKER_HUB.md
new file mode 100644
index 0000000..811d88b
--- /dev/null
+++ b/README_DOCKER_HUB.md
@@ -0,0 +1,15 @@
+# Quick Reference
+- Maintained by:
+[Airscript](https://github.com/airscripts)
+
+- Where to get help:
+[GitHub Repository](https://github.com/airscripts/analscript/issues/)
+
+# Supported Tags
+Latest tag supported only.
+
+# About
+Analscript is a joke esoteric programming language made by Airscript. Its interpreter is written in Node.js, just as the other esoteric programming language from which takes inspiration from called AnalLang.
+
+# Licensing
+This repository is licensed under [MIT License](https://github.com/Airscripts/emdees/blob/main/LICENSE).
From 6f2cc2293e9ebfc29202ad081243307d69684292 Mon Sep 17 00:00:00 2001
From: Airscript
Date: Mon, 31 Jul 2023 00:37:56 +0200
Subject: [PATCH 06/18] chore: update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index f2dc0cb..a4dcb15 100644
--- a/README.md
+++ b/README.md
@@ -63,6 +63,7 @@ Use them to write or read your anally marvelous softwares!
- [Esolang Wiki Page](https://esolangs.org/wiki/Analscript): the official Esolang Wiki page.
- [GitHub Page](https://ghio.airscript.it/analscript): the GitHub page for this repository.
- [Docker Hub](https://hub.docker.com/r/airscript/analscript): the official image for trying it out with Docker.
+- [npm](https://www.npmjs.com/package/analscript): npmjs page for Analscript's package.
## Contributing
Contributions and suggestions about how to improve this project are welcome!
From 867f713b0d087dfcfba9e457bcc59f0a0b1ba331 Mon Sep 17 00:00:00 2001
From: Airscript
Date: Sat, 12 Aug 2023 18:29:33 +0200
Subject: [PATCH 07/18] chore: update various files copywriting and links
---
.github/FUNDING.yml | 1 -
CODE_OF_CONDUCT.md | 1 -
CONTRIBUTING.md | 2 +-
README.md | 15 +++++----------
README_DOCKER_HUB.md | 2 +-
SECURITY.md | 2 +-
6 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 5564a3d..73ea74a 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,3 +1,2 @@
github: [airscripts]
ko_fi: airscript
-custom: ["https://linktr.ee/airscript"]
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 7d32553..58bdec6 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1,4 +1,3 @@
-
# Contributor Covenant Code of Conduct
## Our Pledge
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index aa35bf7..a790e71 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,2 +1,2 @@
# Contributing
-When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository, ensuring you follow the [Code of Conduct](https://github.com/Airscripts/emdees/blob/main/CODE_OF_CONDUCT.md).
+When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository, ensuring you follow the [Code of Conduct](https://github.com/Airscripts/analscript/blob/main/CODE_OF_CONDUCT.md).
diff --git a/README.md b/README.md
index a4dcb15..902e9a5 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
- 
+ 
Analscript
@@ -8,7 +8,7 @@
-
+
## Contents
@@ -70,20 +70,15 @@ Contributions and suggestions about how to improve this project are welcome!
Just follow our [contributing guidelines](https://github.com/airscripts/analscript/blob/main/CONTRIBUTING.md).
## Support
-If you want to support my work you can do it following me, leaving a star, sharing my projects or also with the links below.
+If you want to support my work you can do it by following me, leaving a star, sharing my projects or also donating at the links below.
Choose what you find more suitable for you:
-
+
-
-
-
-
+
-*As of my personal preference, I'do go with GitHub Sponsors.*
-
## License
This repository is licensed under [MIT License](https://github.com/airscripts/analscript/blob/main/LICENSE).
diff --git a/README_DOCKER_HUB.md b/README_DOCKER_HUB.md
index 811d88b..cbd4efb 100644
--- a/README_DOCKER_HUB.md
+++ b/README_DOCKER_HUB.md
@@ -12,4 +12,4 @@ Latest tag supported only.
Analscript is a joke esoteric programming language made by Airscript. Its interpreter is written in Node.js, just as the other esoteric programming language from which takes inspiration from called AnalLang.
# Licensing
-This repository is licensed under [MIT License](https://github.com/Airscripts/emdees/blob/main/LICENSE).
+This repository is licensed under [MIT License](https://github.com/airscripts/analscript/blob/main/LICENSE).
diff --git a/SECURITY.md b/SECURITY.md
index a3c1c5f..03721cb 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -3,7 +3,7 @@
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
-| 1.x.x | :white_check_mark: |
+| 1.1.x | :white_check_mark: |
## Reporting Vulnerability
To report a vulnerability, open an [issue](https://github.com/airscripts/analscript/issues/new/choose).
From c949a4331fc8623581d6cabb897c8fda307321d6 Mon Sep 17 00:00:00 2001
From: Airscript
Date: Thu, 3 Aug 2023 21:22:06 +0200
Subject: [PATCH 08/18] docs: initialize docusaurus
---
docs/.gitignore | 20 +
docs/README.md | 1 +
docs/babel.config.js | 3 +
docs/docs/intro.md | 47 +
docs/docs/tutorial-basics/_category_.json | 8 +
docs/docs/tutorial-basics/congratulations.md | 23 +
.../tutorial-basics/create-a-blog-post.md | 34 +
.../docs/tutorial-basics/create-a-document.md | 57 +
docs/docs/tutorial-basics/create-a-page.md | 43 +
docs/docs/tutorial-basics/deploy-your-site.md | 31 +
.../tutorial-basics/markdown-features.mdx | 150 +
docs/docs/tutorial-extras/_category_.json | 7 +
.../img/docsVersionDropdown.png | Bin 0 -> 25427 bytes
.../tutorial-extras/img/localeDropdown.png | Bin 0 -> 27841 bytes
.../tutorial-extras/manage-docs-versions.md | 55 +
.../tutorial-extras/translate-your-site.md | 88 +
docs/docusaurus.config.js | 96 +
docs/package-lock.json | 12657 ++++++++++++++++
docs/package.json | 46 +
docs/sidebars.js | 8 +
.../src/components/HomepageFeatures/index.tsx | 70 +
.../HomepageFeatures/styles.module.css | 11 +
docs/src/css/custom.css | 30 +
docs/src/pages/index.module.css | 23 +
docs/src/pages/index.tsx | 41 +
docs/static/.nojekyll | 0
docs/static/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes
docs/static/img/docusaurus.png | Bin 0 -> 5142 bytes
docs/static/img/favicon.ico | Bin 0 -> 3626 bytes
docs/static/img/logo.svg | 1 +
.../static/img/undraw_docusaurus_mountain.svg | 171 +
docs/static/img/undraw_docusaurus_react.svg | 170 +
docs/static/img/undraw_docusaurus_tree.svg | 40 +
docs/tsconfig.json | 7 +
34 files changed, 13938 insertions(+)
create mode 100644 docs/.gitignore
create mode 100644 docs/README.md
create mode 100644 docs/babel.config.js
create mode 100644 docs/docs/intro.md
create mode 100644 docs/docs/tutorial-basics/_category_.json
create mode 100644 docs/docs/tutorial-basics/congratulations.md
create mode 100644 docs/docs/tutorial-basics/create-a-blog-post.md
create mode 100644 docs/docs/tutorial-basics/create-a-document.md
create mode 100644 docs/docs/tutorial-basics/create-a-page.md
create mode 100644 docs/docs/tutorial-basics/deploy-your-site.md
create mode 100644 docs/docs/tutorial-basics/markdown-features.mdx
create mode 100644 docs/docs/tutorial-extras/_category_.json
create mode 100644 docs/docs/tutorial-extras/img/docsVersionDropdown.png
create mode 100644 docs/docs/tutorial-extras/img/localeDropdown.png
create mode 100644 docs/docs/tutorial-extras/manage-docs-versions.md
create mode 100644 docs/docs/tutorial-extras/translate-your-site.md
create mode 100644 docs/docusaurus.config.js
create mode 100644 docs/package-lock.json
create mode 100644 docs/package.json
create mode 100644 docs/sidebars.js
create mode 100644 docs/src/components/HomepageFeatures/index.tsx
create mode 100644 docs/src/components/HomepageFeatures/styles.module.css
create mode 100644 docs/src/css/custom.css
create mode 100644 docs/src/pages/index.module.css
create mode 100644 docs/src/pages/index.tsx
create mode 100644 docs/static/.nojekyll
create mode 100644 docs/static/img/docusaurus-social-card.jpg
create mode 100644 docs/static/img/docusaurus.png
create mode 100644 docs/static/img/favicon.ico
create mode 100644 docs/static/img/logo.svg
create mode 100644 docs/static/img/undraw_docusaurus_mountain.svg
create mode 100644 docs/static/img/undraw_docusaurus_react.svg
create mode 100644 docs/static/img/undraw_docusaurus_tree.svg
create mode 100644 docs/tsconfig.json
diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 0000000..b2d6de3
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1,20 @@
+# Dependencies
+/node_modules
+
+# Production
+/build
+
+# Generated files
+.docusaurus
+.cache-loader
+
+# Misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..57db2e9
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1 @@
+404
\ No newline at end of file
diff --git a/docs/babel.config.js b/docs/babel.config.js
new file mode 100644
index 0000000..e00595d
--- /dev/null
+++ b/docs/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
+};
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
new file mode 100644
index 0000000..8a2e69d
--- /dev/null
+++ b/docs/docs/intro.md
@@ -0,0 +1,47 @@
+---
+sidebar_position: 1
+---
+
+# Tutorial Intro
+
+Let's discover **Docusaurus in less than 5 minutes**.
+
+## Getting Started
+
+Get started by **creating a new site**.
+
+Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
+
+### What you'll need
+
+- [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.
+
+## 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
new file mode 100644
index 0000000..2e6db55
--- /dev/null
+++ b/docs/docs/tutorial-basics/_category_.json
@@ -0,0 +1,8 @@
+{
+ "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
new file mode 100644
index 0000000..04771a0
--- /dev/null
+++ b/docs/docs/tutorial-basics/congratulations.md
@@ -0,0 +1,23 @@
+---
+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
new file mode 100644
index 0000000..ea472bb
--- /dev/null
+++ b/docs/docs/tutorial-basics/create-a-blog-post.md
@@ -0,0 +1,34 @@
+---
+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
new file mode 100644
index 0000000..ffddfa8
--- /dev/null
+++ b/docs/docs/tutorial-basics/create-a-document.md
@@ -0,0 +1,57 @@
+---
+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
new file mode 100644
index 0000000..20e2ac3
--- /dev/null
+++ b/docs/docs/tutorial-basics/create-a-page.md
@@ -0,0 +1,43 @@
+---
+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
new file mode 100644
index 0000000..1c50ee0
--- /dev/null
+++ b/docs/docs/tutorial-basics/deploy-your-site.md
@@ -0,0 +1,31 @@
+---
+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
new file mode 100644
index 0000000..0337f34
--- /dev/null
+++ b/docs/docs/tutorial-basics/markdown-features.mdx
@@ -0,0 +1,150 @@
+---
+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. This is particularly useful to colocate images close to the Markdown files using them:
+
+```md
+
+```
+
+## Code Blocks
+
+Markdown code blocks are supported with Syntax highlighting.
+
+ ```jsx title="src/components/HelloDocusaurus.js"
+ function HelloDocusaurus() {
+ return (
+ Hello, Docusaurus!
+ )
+ }
+ ```
+
+```jsx title="src/components/HelloDocusaurus.js"
+function HelloDocusaurus() {
+ return Hello, Docusaurus!
;
+}
+```
+
+## Admonitions
+
+Docusaurus has a special syntax to create admonitions and callouts:
+
+ :::tip My tip
+
+ Use this awesome feature option
+
+ :::
+
+ :::danger Take care
+
+ This action is dangerous
+
+ :::
+
+:::tip My tip
+
+Use this awesome feature option
+
+:::
+
+:::danger Take care
+
+This action is dangerous
+
+:::
+
+## MDX and React Components
+
+[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}
+
+);
+
+This is Docusaurus green !
+
+This is Facebook blue !
+```
+
+export const Highlight = ({children, color}) => (
+ {
+ alert(`You clicked the color ${color} with label ${children}`);
+ }}>
+ {children}
+
+);
+
+This is Docusaurus green !
+
+This is Facebook blue !
diff --git a/docs/docs/tutorial-extras/_category_.json b/docs/docs/tutorial-extras/_category_.json
new file mode 100644
index 0000000..a8ffcc1
--- /dev/null
+++ b/docs/docs/tutorial-extras/_category_.json
@@ -0,0 +1,7 @@
+{
+ "label": "Tutorial - Extras",
+ "position": 3,
+ "link": {
+ "type": "generated-index"
+ }
+}
diff --git a/docs/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/docs/tutorial-extras/img/docsVersionDropdown.png
new file mode 100644
index 0000000000000000000000000000000000000000..97e4164618b5f8beda34cfa699720aba0ad2e342
GIT binary patch
literal 25427
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 |