You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/docs/9.studio/4.content.md
+62-79Lines changed: 62 additions & 79 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,87 +8,74 @@ seo:
8
8
description: Overview of our different Studio CMS editors to manage your content and your medias. Choose between our visual editors and our code editor.
9
9
---
10
10
11
-
::warning
12
-
**Alpha Release**
11
+
::note
12
+
**Alpha Release - TipTap Visual Editor Now Available!**
13
13
14
14
:br
15
15
16
-
The current version only includes the code editor for Markdown, YAML, and JSON files.
17
-
For now, this section covers the legacy documentation from the original Nuxt Studio platform.
16
+
The alpha version now includes both the **Monaco code editor** and the **TipTap visual editor** for Markdown files. You can switch between them at any time using the editor mode toggle in the toolbar.
18
17
::
19
18
20
-
Nuxt Studio offers a versatile workspace for both developers and content writers, giving them the freedom to choose between our differents editors:
21
-
22
-
-[Notion-like editor](#notion-like-editor-markdown-files) for `Markdown` files
23
-
-[Form editor](#form-editor) for `YAML` and `JSON` files
24
-
-[Code editor](#code-editor) for any kind of files (for technical users only)
25
-
26
-
Each editor serves its own purpose. Some users are used to code edition, while others prefer a non-technical, visual approach. At the end, **code syntax is the final output** for both editors.
27
-
28
-
## Code editor
29
-
30
-

19
+
Nuxt Studio offers a versatile workspace for both developers and content writers, giving them the freedom to choose between our different editors:
31
20
32
-
It provides full control over your content, allowing you to write raw content directly:
21
+
-[Notion-like editor](#notion-like-editor-markdown-files){target="_blank"} for `Markdown` files
22
+
-[Form editor](#form-editor){target="_blank"} for `YAML` and `JSON` files
23
+
-[Code editor](#code-editor){target="_blank"} for any kind of files (for technical users only)
24
+
Each editor serves its own purpose. Some users prefer visual editing, while others prefer direct code manipulation. At the end, **Markdown and MDC syntax is the final output** for both editors, with seamless conversion between visual and code modes.
33
25
34
-
-[MDC](/docs/files/markdown) syntax for `Markdown` files
35
-
-[JSON](/docs/files/json) or [YAML](/docs/files/yaml) syntax
26
+
## Editor Mode Switching
36
27
37
-
## Notion-like editor (`Markdown` files)
28
+
You can switch between the visual editor and code editor at any time by clicking the **actions dropdown** in the toolbar:
-**Code Mode** (Monaco) - Direct Markdown/MDC syntax editing
41
32
42
-
:br
33
+
Your preference is saved and will be used for all Markdown files.
43
34
44
-
The visual editor isn’t available yet — it’s coming in the beta release.
45
-
For now, this section covers the legacy documentation from the original Nuxt Studio platform.
46
-
::
35
+
## TipTap Visual Editor (`Markdown` files)
47
36
48
-

37
+
The TipTap visual editor provides a modern Notion-like editing experience for Markdown content, powered by the popular [TipTap](https://tiptap.dev/)editor integrated by [Nuxt UI Editor](https://ui.nuxt.com/pro/components/editor).
49
38
50
-
This editor is heavily inspired by Notion, well known for its intuitive design and flexibility. Much like a standard text editor, this editor is designed to be familiar and easy to use. However, it stands out with its additional features that improve the writing experience.
39
+
### Key Features
51
40
52
-
::tip{to="/blog/visual-editor"}
53
-
You want to know how we've built this editor and how it works under the hood? Check this blog post.
54
-
::
41
+
-**Rich Text Editing** - Format text with headings, bold, italic, strikethrough, code, links, and more
42
+
-**MDC Component Support** - Insert and edit custom Vue components directly in the visual editor
43
+
-**Media Integration** - Browse in media picker to insert images from your library
44
+
-**Slash Commands** - Type `/` to access a menu of formatting options and components
45
+
-**Drag & Drop** - Reorder content blocks by dragging them
46
+
-**Link Editor** - Floating popover for editing links with external link support
47
+
-**Toolbar** - Bubble toolbar appears when you select text, providing quick access to formatting options
48
+
-**Real-time Conversion** - Seamlessly converts between visual content and MDC/Markdown syntax
55
49
56
-
### Frontmatter
50
+
### Debug Mode
57
51
58
-
[Frontmatter](/docs/files/markdown#frontmatter) is a convention of Markdown-based CMS to provide meta-data to pages, like description or title or any other data you would like to store as `key: value` pair.
52
+
Enable **debug mode** from the footer menu to see the real-time conversion between:
59
53
60
-
Based on the user [collection and schema](/docs/collections/define) provided, a form is generated to edit this metadata from the editor.
Check this section to learn more about form generation based on schema.
66
-
::
60
+
## Code Editor
67
61
68
-
### Toolbar
62
+
The Monaco code editor provides full control over your content, allowing you to write raw content directly:
69
63
70
-
Highlight your text to reveal the toolbar, giving you access to all the standard text editing features (title formatting, Bold, Italic, Strike-through, code, link, class, bullet list, numerated list...).
64
+
- MDC syntax for [Markdown](/docs/files/markdown){target="_blank"} files
65
+
-[JSON](/docs/files/json){target="_blank"} or [YAML](/docs/files/yaml){target="_blank"} syntax
71
66
72
-
### Medias
67
+
##Working with Vue Components
73
68
74
-
Users can simply drag and drop images directly into the editor. An upload modal will open to let you choose the destination folder.
69
+
One of the TipTap visual editor's standout features is its ability to integrate and edit custom Vue components directly within the editor interface.
75
70
76
-
By typing `/`and searching for `Image` or `Video`, they can quickly insert a media. A modal will open to let them choose the media they want to insert from the media gallery (aka the`public` folder of the Nuxt application).
71
+
### Create and Integrate Custom Components
77
72
78
-
From the media modal, you can set the [alt attribute](https://www.w3schools.com/tags/att_img_alt.asp) for SEO and accessibility purpose.
79
-
80
-
### Vue Components
81
-
82
-
One of this editor standout features is its ability to integrate and customize any complex `Vue` component directly within the editor.
83
-
84
-
#### Create and integrate your own component
85
-
86
-
A developer can create any kind of visually complex components and editors will be able to use them and focus on the content. An editor can also play with the component properties, styles, and behaviour to fit its specific requirements as long as the developer made it customisable.
73
+
Developers can create visually complex components, and editors can use them without technical knowledge. The visual editor handles component integration seamlessly.
87
74
88
75
::steps{level="4"}
89
76
#### Create your component
90
77
91
-
You can create Vue components and integrate them into Markdown. They just need to be located in the `/components/content` folder to be available.
78
+
Vue components need to be located in the `/components/content` folder to be available in Studio:
92
79
93
80
```vue [components/content/HomeFeature.vue]
94
81
<template>
@@ -111,13 +98,15 @@ You can create Vue components and integrate them into Markdown. They just need t
111
98
defineProps({
112
99
icon: {
113
100
type: String,
114
-
default: 'i-ph-cursor-click',
101
+
default: 'i-lucide-cursor-click',
115
102
},
116
103
})
117
104
</script>
118
105
```
119
106
120
-
#### Integrate these components easily within any Markdown file using [MDC syntax](/docs/files/markdown#mdc-syntax)
107
+
#### Use in Markdown with MDC syntax
108
+
109
+
Components can be integrated using [MDC syntax](/docs/files/markdown#mdc-syntax){target="_blank"}:
121
110
122
111
```mdc [content/index.md]
123
112
::home-feature
@@ -127,34 +116,27 @@ defineProps({
127
116
#title
128
117
Embedded Vue components
129
118
#description
130
-
Edit slots and props inside the Notion-like editor.
119
+
Edit slots and props inside the visual editor.
131
120
::
132
121
```
133
122
134
-
#### Edit them with our Studio editors
123
+
#### Edit in the Visual Editor
135
124
136
-
The visual editor simplifies the component edition, allowing you to integrate and edit them directly in the visual editor. Non technical users can play with **slots** and **props** without any technical knowledge.
125
+
All components in the `/components/content` folder are automatically available:
All components in the `/components/content` folder are available in the editor. Studio users can type `/` anywhere while editing to access the list of available components.
127
+
1. Type `/` anywhere while editing
128
+
2. Search for your component in the list
129
+
3. Insert and edit component slots directly in the editor
130
+
4. Props editing with visual interface coming in beta
141
131
142
132
:::tip{to="/docs/studio/debug"}
143
-
Take a look at this section to validate your
144
-
145
-
`Vue`
146
-
147
-
component integration in the editor in local development.
133
+
Enable debug mode to validate your Vue component integration in local development.
148
134
:::
149
135
::
150
136
151
-
#### Integrate built-in components from external libraries
152
-
153
-
By default, you can integrate any component inside a Markdown file and it should work and be editable from Studio but external components **won't be displayed in the components list in Studio and can't be integrated manually by a Studio editor**.
137
+
### Integrate External Library Components
154
138
155
-
To list this component inside Studio and fetch all its metadata, you need to set it as global in your Nuxt config file.
156
-
157
-
Here is an example to integrate Button and Icon components from the [Nuxt UI](https://ui.nuxt.com) library:
139
+
By default, components from external libraries (like Nuxt UI) won't appear in Studio's component list. To make them available, set them as global in your Nuxt config:
The visual editor isn’t available yet — it’s coming in the beta release.
179
-
For now, this section covers the legacy documentation from the original Nuxt Studio platform.
160
+
The form editor for frontmatter, YAML, and JSON files is currently under development and will be available in the beta release.
180
161
::
181
162
182
-

163
+
The form editor will be used for editing:
183
164
184
-
This editor is used whether you’re editing the frontmatter of a `Markdown` file or a `JSON` / `YAML` file.
165
+
-**Frontmatter** in `Markdown` files
166
+
-**YAML** files
167
+
-**JSON** files
185
168
186
-
It eliminates the need to interact directly with complex file syntax. Instead, a form is automatically generated based on the provided user [collection schema](/docs/collections/define).
169
+
It will eliminate the need to interact directly with complex file syntax. Instead, forms will be automatically generated based on your [collection schema](/docs/collections/define){target="_blank"} definition.
0 commit comments