nx/docs/README.md
2022-11-02 15:23:08 +00:00

227 lines
4.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Documentation
## Markdown syntax available
The default markdown syntax is supported when writing documentation.
### Front matter
Front matter is used to add metadata to your Markdown file (`title` & `description`). It is provided at the very top of the file, enclosed by three dashes `---`. The content is parsed as `YAML`.
If no Front matter is detected, the metadata will be populated with the following:
- `title`: first main title detected
- `description`: first paragraph detected
```markdown
---
title: This is a custom title
description: This is a custom description
---
```
### Custom markdown syntax
The documentation website [nx.dev](https://nx.dev) is using custom Markdown syntax to enable the authors to add functionality to its content.
#### Callouts
Callouts are available to get the attention of the reader on some specific type of information.
```markdown
{% callout type="caution|check|note|warning" title="string" %}
Your content goes here.
{% /callout %}
```
#### Cards
Cards allow to show content in a grid system with a title, a description, a type and an url (internal/external).
```markdown
{% cards %}
{% card title="string" description="string" type="documentation|external|video" url="string" /%}
{% card title="string" description="string" type="documentation|external|video" url="string" /%}
// as many as cards you want
{% /cards %}
```
#### Code
You can add specific languages and a filename on the code snippet displayed.
````
```javascript {% fileName="main.js" %}
const code = "goes here";
```
````
#### Terminal Output
You can display your terminal output with a dedicated component the same way you would show code.
````
``` {% command="node index.js" %}
My terminal output here!
```
````
You can optionally also pass a `path` like
````
``` {% command="node index.js" path="~/myorg" %}
My terminal output here!
```
````
#### Custom iframes
We can display a special iframe and setting its width inside the document.
```markdown
{% iframe
src="https://staging.nx.app/orgs/62d013d4d26f260059f7765e/workspaces/62d013ea0852fe0a2df74438?hideHeader=true"
title="Nx Cloud dashboard"
width="100%" /%}
```
If the type of the card is set to `type="video"` the `url` is a valid YouTube url, then the card will show a thumbnail of the video.
#### GitHub repositories
We can display a special button inviting the reader to go to a GitHub repository.
```markdown
{% github-repository url="https://github.com/nrwl/nx-examples" /%}
```
#### Install Nx Console
We can display a special button inviting the reader to go to a VSCode marketplace to install the official Nx plugin.
```markdown
{% install-nx-console /%}
```
#### Nx Cloud section
We can display Nx Cloud related content in the documentation with a visual cue.
```markdown
{% nx-cloud-section %}
Your content goes here.
{% /nx-cloud-section %}
```
#### Side by side
You can show content in a grid of 2 columns, via the `side-by-side` shortcode.
```markdown
{% side-by-side %}
You first content is here.
You second content is over here. _Note the space in between._
{% /side-by-side %}
```
#### Tabs
You can display multiple related information via a tabbing system.
```markdown
{% tabs %}
{% tab label="npm" %}
NPM related information.
{% /tab %}
{% tab label="yarn" %}
Yarn related information.
{% /tab %}
{% /tabs %}
```
##### Youtube
Embed a YouTube video directly with the following shortcode, control the title and the associated width.
```markdown
{% youtube
src="https://www.youtube.com/embed/rNImFxo9gYs"
title="Nx Console Run UI Form"
width="100%" /%}
```
#### Graph
Embed an Nx Graph visualization that can be panned by the user.
````markdown
{% graph height="450px" %}
```json
{
"projects": [
{
"type": "app",
"name": "app-changed",
"data": {
"tags": ["scope:cart"]
}
},
{
"type": "lib",
"name": "lib",
"data": {
"tags": ["scope:cart"]
}
},
{
"type": "lib",
"name": "lib2",
"data": {
"tags": ["scope:cart"]
}
},
{
"type": "lib",
"name": "lib3",
"data": {
"tags": ["scope:cart"]
}
}
],
"groupByFolder": false,
"workspaceLayout": {
"appsDir": "apps",
"libsDir": "libs"
},
"dependencies": {
"app-changed": [
{
"target": "lib",
"source": "app-changed",
"type": "direct"
}
],
"lib": [
{
"target": "lib2",
"source": "lib",
"type": "implicit"
},
{
"target": "lib3",
"source": "lib",
"type": "direct"
}
],
"lib2": [],
"lib3": []
},
"affectedProjectIds": []
}
```
{% /graph %}
````