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.
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
@repo@p1.a9z.dev
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.
~ (#i, 100) {
<: ? ((i % 15) = 0) "FizzBuzz"
.? ((i % 3) = 0) "Fizz"
.? ((i % 5) = 0) "Buzz"
. 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