Accent color
MarkdownEditorLegacy
MdEditor
BitMarkdownEditorLegacy is a simple markdown editor like the GitHub editor.
Notes
To use this component, you need to install the
Bit.BlazorUI.Legacy
nuget package, as described in the Legacy components section of the Getting started page.
Introduction
Just like the simple MD editor used in GitHub, our MarkdownEditor has simple but useful features that you can start discovering them here.
Start typing below in the editor and see the result in real-time:
Usage
Basic
<div style="height:300px">
<BitMarkdownEditorLegacy />
</div>
The simplest usage of a BitMarkdownEditorLegacy is without any specific configuration.
You can start typing and discover it's basic features.
GetValue
<div style="display:flex;gap:1rem;height:300px"> <BitMarkdownEditorLegacy @ref="editorRef" /> <BitButton OnClick="GetValue">=></BitButton> <pre style="padding:1rem;width:100%"> @value </pre> </div>@code { private BitMarkdownEditorLegacy editorRef = default!; private string? value; private async Task GetValue() { value = await editorRef.GetValue(); } }
Using GetValue public api of the BitMarkdownEditorLegacy you can have access to the current value of it
without creating any dotnet object that is the most optimized way to have the content of the editor.
OnChange
<div style="display:flex;gap:1rem;height:300px"> <BitMarkdownEditorLegacy DefaultValue="# This is the default value" OnChange="v => onChangeValue = v" /> <pre style="padding:1rem;width:100%"> @onChangeValue </pre> </div>@code { private string? onChangeValue; }
By utilizing the OnChange and DefaultValue parameters you can have another way to access the content of the editor.
Binding
<div style="display:flex;gap:1rem;height:300px"> <BitMarkdownEditorLegacy @bind-Value="bindingValue" /> <textarea @bind-value="@bindingValue" @bind-value:event="oninput" style="width:100%;background:transparent"/> </div>@code { private string? bindingValue; }
You can use the two-way bound parameter named Value (like any normal input component)
to have access to the editor content or set its value.
Undo/Redo
<div style="height:300px">
<BitMarkdownEditorLegacy DefaultValue="# Undo/Redo Demo" />
</div>
The BitMarkdownEditorLegacy has built-in undo/redo support that tracks all your changes automatically.
Use Ctrl+Z to undo the last change and Ctrl+Y (or Ctrl+Shift+Z) to redo it.
Advanced
<div style="display:flex;gap:1rem;margin-bottom:1rem"> <BitToggleButton Color="BitColor.Tertiary" Variant="BitVariant.Outline" OnText="Write" OffText="Preview" @bind-IsChecked="showPreview" /> <div style="flex-grow:1"></div> <div style="display:@(showPreview ? "none" : "flex");gap:0.5rem;align-items:center"> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Heading" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Heading)">H</BitButton> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Bold" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Bold)">B</BitButton> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Italic" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Italic)">I</BitButton> | <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Link" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Link)">L</BitButton> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Picture" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Picture)">P</BitButton> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Quote" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Quote)">Q</BitButton> | <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Code" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.Code)">C</BitButton> <BitButton Variant="BitVariant.Outline" Color="BitColor.TertiaryBackground" FixedColor Title="Code block" OnClick="async () => await advancedRef.Run(BitMarkdownEditorLegacyCommand.CodeBlock)">CB</BitButton> </div> </div> <div style="height:300px"> <BitMarkdownEditorLegacy @ref="advancedRef" @bind-Value="advancedValue" Style="@($"display:{(showPreview ? "none" : "block")}")" /> <BitMarkdownViewerLegacy Markdown="@advancedValue" Style="@($"display:{(showPreview ? "block" : "none")}")" /> </div>@code { private bool showPreview; private string? advancedValue; private BitMarkdownEditorLegacy advancedRef = default!; }
In this example you can see all advanced features of the BitMarkdownEditorLegacy in shaping an editor very similar
to the github one.
|
|
API
BitMarkdownEditorLegacy parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| DefaultValue | string? | null | The default text value of the editor to use at initialization. |
| OnChange | EventCallback<string?> | Callback for when the editor value changes. | |
| Value | string? | null | The two-way bound text value of the editor. |
BitMarkdownEditorLegacy public members
| Name | Type | Default value | Description |
|---|---|---|---|
| GetValue | Func<ValueTask<string>> | Returns the current value of the editor. | |
| Run | Func<BitMarkdownEditorLegacyCommand, ValueTask> | Runs a specific command on the editor. | |
| Add | Func<string, BitMarkdownEditorLegacyContentType, ValueTask> | Adds a specific content to the editor. |
BitComponentBase parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| AriaLabel | string? | null | Gets or sets the accessible label for the component, used by assistive technologies. |
| Class | string? | null | Gets or sets the CSS class name(s) to apply to the rendered element. |
| Dir | BitDir? | null | Gets or sets the text directionality for the component's content. |
| ForceAnimation | bool | false | Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested. |
| HtmlAttributes | Dictionary<string, object> | new Dictionary<string, object>() | Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. |
| Id | string? | null | Gets or sets the unique identifier for the component's root element. |
| IsEnabled | bool | true | Gets or sets a value indicating whether the component is enabled and can respond to user interaction. |
| Style | string? | null | Gets or sets the CSS style string to apply to the rendered element. |
| TabIndex | string? | null | Gets or sets the tab order index for the component when navigating with the keyboard. |
| Visibility | BitVisibility | BitVisibility.Visible | Gets or sets the visibility state (visible, hidden, or collapsed) of the component. |
BitComponentBase public members
| Name | Type | Default value | Description |
|---|---|---|---|
| UniqueId | Guid | Guid.NewGuid() | Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed. |
| RootElement | ElementReference | Gets the reference to the root HTML element associated with this component. |
BitMarkdownEditorLegacyCommand enum
| Name | Value | Description |
|---|---|---|
| Heading | 0 | Makes the current line a heading. |
| Bold | 1 | Makes the current selection text bold. |
| Italic | 2 | Makes the current selection text italic. |
| Link | 3 | Makes the current selection text a link. |
| Picture | 4 | Makes the current selection text an image. |
| Quote | 5 | Makes the current selection text a quote message. |
| Code | 6 | Makes the current selection text a code phrase. |
| CodeBlock | 7 | Makes the current selection text a code block. |
BitMarkdownEditorLegacyContentType enum
| Name | Value | Description |
|---|---|---|
| Inline | 0 | Inline content type. |
| Block | 1 | Block content type. |
| Wrap | 2 | Wrap content type. |
BitVisibility enum
| Name | Value | Description |
|---|---|---|
| Visible | 0 | The content of the component is visible. |
| Hidden | 1 | The content of the component is hidden, but the space it takes on the page remains (visibility:hidden). |
| Collapsed | 2 | The component is hidden (display:none). |
BitDir enum
| Name | Value | Description |
|---|---|---|
| Ltr | 0 | Ltr (left to right) is to be used for languages that are written from the left to the right (like English). |
| Rtl | 1 | Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic). |
| Auto | 2 | Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element. |
Feedback
You can give us your feedback through our GitHub repo by filing a new Issue or starting a new Discussion.
Or you can review / edit this page on GitHub.