Merge branch 'v3.9.x'

# Conflicts:
#	package.json
#	yarn.lock
This commit is contained in:
fisker committed 2026-09-23 14:39:09 +08:00
commit 124438262b
11 files changed
+79 -35

No files matched your search

+1 -1
View File
@@ -26,7 +26,7 @@ Don't fill the form below manually! Let a program create a report for you:
-->
**Prettier 3.9.8**
**Prettier 3.9.9**
[Playground link](https://prettier.io/playground/#.....)
```sh
+1 -1
View File
@@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:
**Environments:**
- Prettier Version: 3.9.8
- Prettier Version: 3.9.9
- Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. -->
- Runtime: <!-- Node.js v14, Chrome v83, etc. -->
- Operating System: <!-- Windows, Linux, macOS, etc. -->
+18
View File
@@ -1,3 +1,21 @@
# 3.9.9
[diff](https://github.com/prettier/prettier/compare/3.9.8...3.9.9)
#### Markdown: Fix text with `$` been incorrectly parsed as math syntax ([#20140](https://github.com/prettier/prettier/pull/20140) by [@fisker](https://github.com/fisker))
<!-- prettier-ignore -->
```md
<!-- Input -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here.
<!-- Prettier 3.9.8 -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR`from`c.sh`, before anything else runs here.
<!-- Prettier 3.9.9 -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here.
```
# 3.9.8
[diff](https://github.com/prettier/prettier/compare/3.9.7...3.9.8)
+1 -1
View File
@@ -182,7 +182,7 @@
"node-style-text": "2.1.2",
"npm-run-all2": "9.0.3",
"open-editor": "6.0.0",
"prettier": "3.9.8",
"prettier": "3.9.9",
"pretty-bytes": "7.1.3",
"pretty-ms": "9.3.1",
"puppeteer": "25.11.0",
@@ -17,7 +17,7 @@ function getMarkdownParseOptions() {
return (markdownParseOptions ??= {
extensions: [
gfmSyntax({ singleTilde: false }),
mathSyntax(),
mathSyntax({ singleDollarTextMath: false }),
wikiLinkSyntax({
// We don't need support alias, use a fake string to bypass
// https://github.com/stereobooster/braindb/blob/66d6cf74d0bad43f20924a14e382a432ff81cdfa/packages/micromark-extension-wiki-link/src/syntax.ts#L81
@@ -66,6 +66,27 @@ $$ \\textrm{p-value} = 1 - \\sum_{x \\leq a} H(x | N, r_1, m_1) $$
================================================================================
`;
exports[`issue-20135.md format 1`] = `
====================================options=====================================
parsers: ["markdown"]
printWidth: 80 (default) |
=====================================input======================================
**Uses $FOO** from \`a.sh\` and \`b.sh\`, plus \`$BAR\` from \`c.sh\`, before anything else runs here.
**Sourced-from-$DOTFILES files** - listed in \`.stow-local-ignore\`. They live only inside the repo
and are pulled in by \`.zshrc\` via \`$DOTFILES\` (which is set to \`~/.dotfiles\` in \`.zshrc\`). Key
examples: \`exports.zsh\`, \`aliases.zsh\`, \`dirs.zsh\`, \`completions/\`, \`_plugins/loader.zsh\`.
=====================================output=====================================
**Uses $FOO** from \`a.sh\` and \`b.sh\`, plus \`$BAR\` from \`c.sh\`, before anything else runs here.
**Sourced-from-$DOTFILES files** - listed in \`.stow-local-ignore\`. They live only inside the repo
and are pulled in by \`.zshrc\` via \`$DOTFILES\` (which is set to \`~/.dotfiles\` in \`.zshrc\`). Key
examples: \`exports.zsh\`, \`aliases.zsh\`, \`dirs.zsh\`, \`completions/\`, \`_plugins/loader.zsh\`.
================================================================================
`;
exports[`math-like.md format 1`] = `
====================================options=====================================
parsers: ["markdown"]
@@ -78,7 +99,7 @@ Paragraph with $14 million. But if more $dollars on the same line...
=====================================output=====================================
$10 - $20
Paragraph with $14 million. But if more $dollars on the same line...
Paragraph with $14 million. But if more $dollars on the same line...
================================================================================
`;
@@ -0,0 +1,5 @@
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here.
**Sourced-from-$DOTFILES files** - listed in `.stow-local-ignore`. They live only inside the repo
and are pulled in by `.zshrc` via `$DOTFILES` (which is set to `~/.dotfiles` in `.zshrc`). Key
examples: `exports.zsh`, `aliases.zsh`, `dirs.zsh`, `completions/`, `_plugins/loader.zsh`.
@@ -21,7 +21,7 @@ Required options:
- **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use.
- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.9.8/plugins](https://unpkg.com/browse/prettier@3.9.8/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.
- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource-options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in [https://unpkg.com/browse/prettier@3.9.9/plugins](https://unpkg.com/browse/prettier@3.9.9/plugins). Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.
You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.
@@ -32,8 +32,8 @@ See below for examples.
### Global
```html
<script src="https://unpkg.com/prettier@3.9.8/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.9.8/plugins/graphql.js"></script>
<script src="https://unpkg.com/prettier@3.9.9/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.9.9/plugins/graphql.js"></script>
<script>
(async () => {
const formatted = await prettier.format("type Query { hello: String }", {
@@ -50,8 +50,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.9.8/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.8/plugins/graphql.mjs";
import * as prettier from "https://unpkg.com/prettier@3.9.9/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.9/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
@@ -64,8 +64,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack
```js
define([
"https://unpkg.com/prettier@3.9.8/standalone.js",
"https://unpkg.com/prettier@3.9.8/plugins/graphql.js",
"https://unpkg.com/prettier@3.9.9/standalone.js",
"https://unpkg.com/prettier@3.9.9/plugins/graphql.js",
], async (prettier, ...plugins) => {
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
@@ -96,8 +96,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
<TabItem value="module" label="Module worker">
```js
import * as prettier from "https://unpkg.com/prettier@3.9.8/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.8/plugins/graphql.mjs";
import * as prettier from "https://unpkg.com/prettier@3.9.9/standalone.mjs";
import * as prettierPluginGraphql from "https://unpkg.com/prettier@3.9.9/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
@@ -110,8 +110,8 @@ const formatted = await prettier.format("type Query { hello: String }", {
```js
importScripts(
"https://unpkg.com/prettier@3.9.8/standalone.js",
"https://unpkg.com/prettier@3.9.8/plugins/graphql.js",
"https://unpkg.com/prettier@3.9.9/standalone.js",
"https://unpkg.com/prettier@3.9.9/plugins/graphql.js",
);
(async () => {
@@ -131,9 +131,9 @@ If you want to format [embedded code](options.md#embedded-language-formatting),
```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.9.8/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.8/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.8/plugins/estree.mjs";
import * as prettier from "https://unpkg.com/prettier@3.9.9/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.9/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.9/plugins/estree.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
@@ -149,10 +149,10 @@ The HTML code embedded in JavaScript stays unformatted because the `html` parser
```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.9.8/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.8/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.8/plugins/estree.mjs";
import * as prettierPluginHtml from "https://unpkg.com/prettier@3.9.8/plugins/html.mjs";
import * as prettier from "https://unpkg.com/prettier@3.9.9/standalone.mjs";
import * as prettierPluginBabel from "https://unpkg.com/prettier@3.9.9/plugins/babel.mjs";
import * as prettierPluginEstree from "https://unpkg.com/prettier@3.9.9/plugins/estree.mjs";
import * as prettierPluginHtml from "https://unpkg.com/prettier@3.9.9/plugins/html.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
@@ -12,35 +12,35 @@ First, install Prettier locally:
<TabItem value="npm">
```bash
npm install --save-dev --save-exact prettier@3.9.8
npm install --save-dev --save-exact prettier@3.9.9
```
</TabItem>
<TabItem value="yarn">
```bash
yarn add --dev --exact prettier@3.9.8
yarn add --dev --exact prettier@3.9.9
```
</TabItem>
<TabItem value="pnpm">
```bash
pnpm add --save-dev --save-exact prettier@3.9.8
pnpm add --save-dev --save-exact prettier@3.9.9
```
</TabItem>
<TabItem value="bun">
```bash
bun add --dev --exact prettier@3.9.8
bun add --dev --exact prettier@3.9.9
```
</TabItem>
<TabItem value="deno">
```bash
deno install --dev --save-exact prettier@3.9.8
deno install --dev --save-exact prettier@3.9.9
```
</TabItem>
@@ -46,7 +46,7 @@ Example `package.json`:
"prettier": ">=3.0.0"
},
"devDependencies": {
"prettier": "3.9.8"
"prettier": "3.9.9"
}
}
```
@@ -193,7 +193,7 @@ export default config;
"prettier": ">=3.0.0"
},
"devDependencies": {
"prettier": "3.9.8"
"prettier": "3.9.9"
}
}
```
+5 -5
View File
@@ -8216,12 +8216,12 @@ __metadata:
languageName: node
linkType: hard
"prettier@npm:3.9.8":
version: 3.9.8
resolution: "prettier@npm:3.9.8"
"prettier@npm:3.9.9":
version: 3.9.9
resolution: "prettier@npm:3.9.9"
bin:
prettier: bin/prettier.cjs
checksum: 10/4ac262aaf9a5e221b02cc17447ebe7aa9689be59b85ab9de8152cd7422fb363ed3e09da6df585fa19ab1fc6cffebdc3ea34db1a75c978536aeba3f87bfd06ab3
checksum: 10/3d11a8095a7db50f0fbc8086ad96be676401154b63a2e9023e1274893457dccab19a9c211f4fb2cae7244e800bea2d5185d9bb6fc510f48a53017815e47d4e6d
languageName: node
linkType: hard
@@ -8349,7 +8349,7 @@ __metadata:
postcss-scss: "npm:4.0.9"
postcss-selector-parser: "npm:2.2.3"
postcss-values-parser: "npm:2.0.1"
prettier: "npm:3.9.8"
prettier: "npm:3.9.9"
pretty-bytes: "npm:7.1.3"
pretty-ms: "npm:9.3.1"
puppeteer: "npm:25.11.0"