Table of Contents
- Examples of places where MFM can be used
- Syntax
- Mentions
- Hashtags
- URL
- Links
- Custom Emoji
- Bold
- Shrink
- Quote
- Center align
- Yomigana (Ruby characters)
- Code (Inline)
- Code (Block)
- Flip
- Font
- Blur
- Search
- Foreground and Background Color
- Border
- Rotate
- Shift Position
- Expand
- Animation (Jelly)
- Animation (Tada)
- Animation (Jump)
- Animation (Bounce)
- Animation (Spin)
- Animation (Shake)
- Animation (Twitch)
- Rainbow
- Sparkle
- Plain Text
- Information for developers
This document is translated by the community. You can contribute on Crowdin. We appreciate your cooperation 🙏.
MFM
MFM, short for Markup language For Misskey, is a proprietary markup language that can be used in various locations in Misskey. Some of its syntax is compatible with Markdown and HTML.
Visit MFM Playground to try MFM for yourself!
Examples of places where MFM can be used
- The text of a note
- Content warning annotation
- Names of users
- User bios
Syntax
Mentions
@
+ username can be used to display a specific user.
For more information about mentions, see here.
@ai
@[email protected]
Hashtags
#
+ tag can be used to display a hashtag.
For more information about hashtags, see here.
#misskey
URL
URLs can be displayed.
https://example.com
Links
Specific parts of text can be displayed as a URL.
[example link](https://example.com)
You can hide the link preview by prefixing the link text with ?
.
?[example link](https://example.com)
Custom Emoji
Custom emoji can be displayed by surrounding the emoji name with colons.
For more information about custom emoji, see here.
:misskey:
Bold
Bolds text for emphasis.
**太字**
Shrink
Displays content smaller and thinner.
<small>MisskeyでFediverseの世界が広がります</small>
Quote
Displays content as a quote.
> MisskeyでFediverseの世界が広がります
Center align
Displays content centered.
<center>MisskeyでFediverseの世界が広がります</center>
Yomigana (Ruby characters)
Yomigana can be attached to text.
$[ruby Misskey ミスキー]
Code (Inline)
Displays syntax highlighting for code from programs inline.
`<: "Hello, world!"`
Code (Block)
Displays multi-line syntax highlighting for code from programs in a block.
By specifying the programming language by ID, you can apply syntax highlighting in that language. Available languages are:
- Languages supported by Shiki (200+)
- AiScript: Specify one of
aiscript
,ais
, oris
to use.
```ais
for (let i, 100) {
<: if ((i % 15) == 0) "FizzBuzz"
elif ((i % 3) == 0) "Fizz"
elif ((i % 5) == 0) "Buzz"
else i
}
```
Flip
Flips content horizontally or vertically.
$[flip MisskeyでFediverseの世界が広がります]
$[flip.v MisskeyでFediverseの世界が広がります]
$[flip.h,v MisskeyでFediverseの世界が広がります]
MisskeyでFediverseの世界が広がります
MisskeyでFediverseの世界が広がります
Font
Sets the font to display content in.
$[font.serif MisskeyでFediverseの世界が広がります]
$[font.monospace MisskeyでFediverseの世界が広がります]
$[font.cursive MisskeyでFediverseの世界が広がります]
$[font.fantasy MisskeyでFediverseの世界が広がります]
MisskeyでFediverseの世界が広がります
MisskeyでFediverseの世界が広がります
MisskeyでFediverseの世界が広がります
Blur
Content can be blurred. When hovering the mouse over the content, it will be displayed clearly.
$[blur MisskeyでFediverseの世界が広がります]
Search
A search box can be displayed.
misskey 検索
Foreground and Background Color
The color of the foreground and background can be changed.
Colors are expressed using 3, 4, or 6 digit color codes.
$[fg.color=f00 赤字]
$[bg.color=ff0 黄背景]
黄背景
Border
Content can be surrounded borders. The borders can have various styles.
$[border.style=solid,width=4 Default]
$[border.style=hidden No border]
$[border.style=dotted,width=2 Dotted]
$[border.style=dashed,width=2 Dashed]
$[border.style=double,width=4 Double]
$[border.style=groove,width=4 Embossed A]
$[border.style=ridge,width=4 Embossed B]
$[border.style=inset,width=4 Inset A]
$[border.style=outset,width=4 Inset B]
$[border.color=d00 Border color]
$[border.width=5 Border width]
$[border.radius=6,width=2 Border radius]
$[border.radius=5,width=2,color=888 $[position.x=1.5 CSS]
$[position.x=1.5 完全に理解した]]
$[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS]
$[position.x=1.5 完全に理解した]]
Dotted
Dashed
Double
Embossed A
Embossed B
Inset A
Inset B
Border color
Border width
Border radius
CSS
完全に理解した
CSS
完全に理解した
Rotate
Rotate by a specified angle.
$[rotate.deg=30 misskey]
Shift Position
The position can be shifted.
😏$[position.x=0.8,y=0.5 🍮]😀
Expand
Displays enlarged text.
$[scale.x=4,y=2 🍮]
$[x2 x2]
$[x3 x3]
$[x4 x4]
x3
x4
Animation (Jelly)
$[jelly 🍮] $[jelly.speed=5s 🍮]
Animation (Tada)
$[tada 🍮] $[tada.speed=5s 🍮]
Animation (Jump)
$[jump 🍮] $[jump.speed=5s 🍮]
Animation (Bounce)
$[bounce 🍮] $[bounce.speed=5s 🍮]
Animation (Spin)
$[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮]
$[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮]
$[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮]
$[spin.speed=5s 🍮]
Animation (Shake)
$[shake 🍮] $[shake.speed=5s 🍮]
Animation (Twitch)
$[twitch 🍮] $[twitch.speed=5s 🍮]
Rainbow
$[rainbow 🍮] $[rainbow.speed=5s 🍮]
$[rainbow 色なし文字]
$[rainbow $[fg.color=f0f 色付き文字]]
色なし文字
色付き文字
Sparkle
$[sparkle 🍮]
Plain Text
Disable formatting of content.
<plain>**bold** @mention #hashtag `code` $[x2 🍮]</plain>
Information for developers
MFM parsing and rendering implementations are published as libraries, making it easy to incorporate MFM into clients.
- misskey-dev/mfm.js - JavaScript parser implementation
- mfm-renderer - Vue.js component
- mfm.kt - Kotlin parser implementation
- mfm_parser - Dart parser implementation
- mfm - Flutter rendering widget
Table of Contents
- Examples of places where MFM can be used
- Syntax
- Mentions
- Hashtags
- URL
- Links
- Custom Emoji
- Bold
- Shrink
- Quote
- Center align
- Yomigana (Ruby characters)
- Code (Inline)
- Code (Block)
- Flip
- Font
- Blur
- Search
- Foreground and Background Color
- Border
- Rotate
- Shift Position
- Expand
- Animation (Jelly)
- Animation (Tada)
- Animation (Jump)
- Animation (Bounce)
- Animation (Spin)
- Animation (Shake)
- Animation (Twitch)
- Rainbow
- Sparkle
- Plain Text
- Information for developers