62 lines
1.5 KiB
Markdown
62 lines
1.5 KiB
Markdown
---
|
|
author: malys
|
|
description: Beautify md file.
|
|
name: "Library/Malys/mdPrettier"
|
|
tags: meta/library
|
|
share.uri: "https://github.com/malys/silverbullet-libraries/blob/main/src/mdPrettier.md"
|
|
share.hash: f2473a28
|
|
share.mode: pull
|
|
---
|
|
# Md Prettier
|
|
|
|
Beautify markdown.
|
|
|
|
## Code
|
|
|
|
```space-lua
|
|
local prettier = js.import("https://cdn.jsdelivr.net/npm/prettier/standalone/+esm")
|
|
local prettierMarkdown = js.import("https://cdn.jsdelivr.net/npm/prettier/plugins/markdown/+esm")
|
|
|
|
function formatText(text)
|
|
return prettier.format(text, {
|
|
parser = "markdown",
|
|
plugins = { prettierMarkdown },
|
|
|
|
printWidth = 160,
|
|
proseWrap = "preserve",
|
|
|
|
-- These DO NOT affect markdown tables
|
|
useTabs = true,
|
|
tabWidth = 4,
|
|
})
|
|
end
|
|
|
|
function formatDocument()
|
|
local text = editor.getText()
|
|
local formattedText = formatText(text)
|
|
editor.setText(formattedText)
|
|
end
|
|
|
|
command.define {
|
|
name = "Beautify: markdown",
|
|
run = formatDocument,
|
|
}
|
|
```
|
|
|
|
**Important Notes:**
|
|
|
|
- **Placement:** `prettier-ignore` _must_ be the very first line within the code
|
|
fence. Any leading whitespace will cause it to be ignored.
|
|
- **Scope:** `prettier-ignore` applies to the entire code fence it's placed in.
|
|
- **Alternative:** If you want to disable formatting for a specific section of
|
|
code _within_ a code fence, you can use `prettier-ignore` on a single line:
|
|
|
|
## Changelog
|
|
|
|
- 2026-01-25:
|
|
- feat: add option and ignore code
|
|
|
|
## Community
|
|
|
|
[Silverbullet forum](https://community.silverbullet.md/t/markdown-formatter-for-silverbullet/3071)
|