Commit Graph
40 Commits
Author SHA1 Message Date
Alexander Kachkaev 744638e96b Markdown: Align code block language detection with other tools (#9365) 2020-10-12 09:13:30 +08:00
Ara Adkinsandfisker Cheung 42c1ff3fcf Add support for [[wiki-style]] links in markdown (#9275)
* Add support for [[wiki-style]] links in markdown

1.  Support for [[wiki-style]] links ensures that they do not get broken
    by the prettier formatting by being wrapped over multiple lines.
2.  The contents of the link (between the `[[]]` brackets) are treated
    as raw text. This is because the various tools that rely on the
    `[[]]` syntax do not agree on what is allowable between them.

* Add a changelog document

* Update pr-9275.md

* Add additional tests as requested

* Add a fix for AST tests

* Fix issues with prose-wrap: "preserve"

* Lint

* Add a clean action for wikiLinks

Co-authored-by: fisker Cheung <lionkay@gmail.com>
2020-10-08 21:51:01 +08:00
fisker Cheung 7c5a7d3c74 Markdown: Fix missing blank lines in fenced code block (#8786) 2020-09-30 17:03:14 +08:00
fisker Cheung d31ebf4619 Test: Improve coverage (#8811) 2020-08-21 09:43:24 +08:00
Sosuke Suzuki 272bea50b6 Add tests for #3223 (#8849) 2020-07-29 00:30:42 +09:00
Sosuke Suzuki 744a4e8e0e Add tests after remark v8 (#8820)
* Add tests for #3753

* Add tests for #4306

* Add tests for #5921

* Add tests fro #6177

* Fix
2020-07-24 19:00:21 +03:00
fisker Cheung 9ebe5adb54 Ensure comments for ignored node are printed (#8777) 2020-07-20 09:19:40 +08:00
b27f84438d Update remark parse v8 (#8140)
* Update `remark-parse` to v7

* fix `link` title and  `inlineCode`

* fix `code` meta

* fix code meta

* fix ListItem print

* fix heading print result

* remove blank line before childList

* trim `inlineCode` ast

* use List.spread

* use ListItem.spread

* fix `example-550.md` snap

* update `example-522.md` snap

* update `example-508.md` snap

* update `example-509.md` snap

* update `example-222.md` snap

* Update listitem print

* lower case definition.label to match ast

* trim definition.label to match ast

* trim definition.label to match ast

* unescape Link.title

* filter link with no title

* fix link title

* fix link title

* restore preprocess

* fix ast massage

* Restore list

* Update to remark-parse 8.0.2

* Update snapshot tests after rebase

* Create legacy `loose` attribute from `spread`

Uses @duailibe's suggestion from here:
https://github.com/prettier/prettier/issues/6180#issuecomment-499498432

Also backtracks some other unnecessary changes.

* Update test case for shortcut reference-style links

The commonmark spec does not allow for whitespace between the left and right
parts of a full reference-style link.

https://spec.commonmark.org/dingus/?text=%5Bfoo%5D%20%5Bbar%5D%0A%0A%5Bbar%5D%3A%20%2Furl%20%22title%22%0A

Notice that the `[foo]` is parsed as plain text, while the `[bar]` is parsed
as a shortcut reference link.

When there is a space between the two, each part is parsed as a separate
shortcut style reference link node:

https://astexplorer.net/#/gist/d69f5a227e2cbde3f43f0a639bee165c/822b531c252c162faba78e38607db73ef72886d5

Previously they would have been parsed as a single full reference link.

Here I update the test-case to account for the shortcut style links.

* Add remark-footnotes plugin to replace legacy footnotes option

Remark removed the footnotes option in favor of a new remark-footnotes
plugin in https://github.com/remarkjs/remark/pull/483

Here I've simply switched to use the plugin instead of the removed
option and updated the snapshot tests.

* Add test case for #4369

* Do not add gap if has leading space

* Restore `inlineCode` ast compare

* Restore `isPrevNodeLooseListItem`

* Ignore some ast property

* Restore blank line, Fix `isPrevNodeLooseListItem` check

* Title compare

* Ignore `loose`

* Fix footnoteDefinition

* Fix tabWidth

* Style

* `footnoteDefinition` is stable now

* Fix `_` after link

* Revert workaround, url tests

* Fix idempotence issue with underscores and autolinks

* Fix idempotence issue with underscores and autolinks - attempt # 2

* Fix idempotence issue with underscores and autolinks - attempt # 3

* Fix idempotence issue with underscores and autolinks - part # 4

* More tests

* Code style

* Only test master passed tests

* Update list

* Update list

* Use code as test name

* Fix idempotence issue with underscores and autolinks - part # 5

* Fix idempotence issue with underscores and autolinks - part # 6

* Linting fix

* More autolink tests

* Fix tests

* Rename to `auto-link`

* More tests

* Disable new cases

* tests for issue 4122

* add changelog

Co-authored-by: fisker <lionkay@gmail.com>
Co-authored-by: Georgii Dolzhykov <thorn.mailbox@gmail.com>
2020-06-23 13:52:50 +03:00
さっちゃん 0f8cc01aa5 Correctly format CJK sentences with Variation Selector. (#8511)
* Correctly format CJK sentences with IVS.

* Changelog pr-8511

* Changelog title should contain the title

* GitHub user name can contain `-`.

https://github.com/prettier/prettier/pull/8511#issuecomment-640231668
2020-06-08 10:01:31 +03:00
fisker Cheung 44bae94647 Support dynamic languages in front matter (#8381) 2020-05-26 16:18:39 +08:00
fisker Cheung f8c5b1fd1d Categorize tests part 2 (#8248)
* Categorize tests (yaml, markdown)

* Categorize tests (handlebars)

* Categorize tests (graphql)

* Categorize tests (typescript)

* Categorize tests (json)

* Categorize tests (jsx)
2020-05-07 23:54:44 +08:00
fisker Cheung be56c725c0 Show options in test title (#7785)
* Show options in test title

* Update snapshots
2020-04-18 16:09:07 +03:00
fisker CheungandGeorgii Dolzhykov aa3141c24e Wrap tests in describe (#7934)
* Run `format()` in test function

* Wrap `test`s in `describe`

* Update tests_config/run_spec.js

Co-Authored-By: Georgii Dolzhykov <thorn.mailbox@gmail.com>

Co-authored-by: Georgii Dolzhykov <thorn.mailbox@gmail.com>
2020-04-10 19:12:01 +08:00
Alexander Kachkaev e00ce8c2c8 Change arrowParens to always by default for 2.0 (#7430) 2020-01-29 13:31:25 +02:00
fisker Cheung 791996df7b Set trailingComma default value to es5 (#6963)
* Set `trailingComma` default value to `es5`

* Update `options` documentation

* Update tests

* style

* fix js code style

* change options order

* update tests_integration snap

* disable es5 for __ng_interpolation

* fix angular tests

* fix scss test

* fix `css_trailing_comma` snap

* fix css_scss snapshot
2019-11-18 11:39:12 +01:00
Ika 4af3dd4b07 test: improve snapshots (#5521)
- before
  ```
  ${input}${"~".repeat(printWidth)}
  ${output}
  ```
- after
  ```
  ===options===
  ${options}
  ${" ".repeat(printWidth)}| printWidth
  ====input====
  ${input}
  ===output====
  ${output}
  =============
  ```
2018-11-25 16:21:14 +08:00
Ika 556fb3e646 feat(markdown): only align lists if they're already aligned (#4893)
* feat(markdown): only align lists if they're already aligned

* fix: handle single item with multiple leading spaces

* fix: empty items are considered not aligned
2018-07-27 09:48:09 +08:00
Ika 1a2c4e663e chore: use pre-release version number on master (#4855)
* chore: use pre-release version number on master

* docs: tweak comment
2018-07-18 09:38:26 +08:00
Simen Bekkhus 51b7c02e12 Upgrade jest to 22 (#4782)
* chore: upgrade Jest

* chore: update snapshots

* chore: lock down babel dependency using invalid syntax

* 2 args to test.skip

* use jest 22 for now

* Revert "2 args to test.skip"

This reverts commit 691fdc3f99e320f2303958f2b503f7b4c93fa455.

* remove snapshot name from matcher

* fix standalone tests skips
2018-07-03 03:06:29 -03:00
Ika c38e6af301 fix(yaml): add missing since field (#4739) 2018-06-23 17:04:47 +08:00
Ika dcf44ffbdc feat: support YAML (#4563)
* feat: support YAML

* fix: do not indent sequence in mappingValue

* docs: add yaml to index.md

* fix: reduce `SyntaxError: Node#parse consumed no characters`

* chore: remove old-build and new-worker.js

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* fix: no space after `<<`

* fix: add yaml to standalone test

* test: add tests

* fix: next empty line in flow collection

* fix: tabs are not allowed
http://yaml.org/spec/1.2/spec.html#space/indentation/

* fix: update parser

* feat: rewrite the mappingItem logic
* feat: indent sequence in mapping
* feat(doc): add ifBreak#groupId and group#id

* chore: fix node 4

* chore: add tools_yaml.svg

* chore: remove resolved TODO

* refactor: remove unnecessary workaround

* chore(worker): importScriptOnce

* chore(build): rename with babelPlugins

* make it rollup compatible

* feat: support singleQuote

* refactor
2018-06-21 10:29:42 +08:00
Jed Fox a1e8d586ad Add a single test suite for blank files in all parsers (#4562)
* Add a single test suite for blank files in all parsers

The parsers that don’t yet support blank files have been filtered out of the list until they do.

* Don’t directly `require()` Prettier

* Update `require`

* Add missing Babylon parser

* Update snapshots
2018-05-27 08:22:25 -04:00
Ika 6447d30b0b feat(markdown): change unordered list symbol to hyphen (#4440) 2018-05-10 14:32:52 +08:00
Huy Vo 2ad7576d3a Remove newline in empty .md files (#4388)
* Remove newline in empty .md files

* Fix cannot read property 'type' of undefined bug
2018-04-27 15:01:14 +08:00
Anthony Sottile a02094961a pre-commit.com is now served on https (#4088) 2018-03-02 07:26:36 -05:00
Ika c1107a86dd feat(markdown): respect tabWidth for list items (#3990)
* feat(markdown): respect tabWidth for list items

* test: ensure no regression for #3459
2018-02-24 19:13:02 +11:00
Lipis 7a7eb17082 fix: Proper case for Prettier, JavaScript, TypeScript, GitHub, Less (#3848) 2018-01-31 11:56:05 +01:00
Jed Fox 5ccc213a21 Conform the quotes in Markdown link titles to the singleQuote option (#3481)
* Add an option to utils.printString to use the passed string as-is

* Conform the quotes in Markdown link titles to the singleQuote option

* Don’t use destructuring

* Add some tests

* Format util.js

* Use custom string-printing logic

* Add some more tests

* Fix tests

* Address review comments

* Revert "Format util.js"

This reverts commit d2533ef7fb9231e2f733ece7decac9b923cf6941.

* Revert "Don’t use destructuring"

This reverts commit a5d3b0ac76a076e9a89cffc8cec396cabeacd1ee.

* Revert "Add an option to utils.printString to use the passed string as-is"

This reverts commit ef8e8322609ca3c2808885f3fadcd03f0790078c.

* Even more tests
2017-12-24 15:44:38 +01:00
Ika 073c0b16d8 feat(markdown): add proseWrap: "preserve" option (#3340)
* test: add test case

* feat(markdown): add `proseWrap: "preserve"` option

* test: add tests

* docs(options): update `proseWrap`

* feat(markdown): change default to `proseWrap: "preserve"`

BREAKING CHANGE

* docs(options): update `proseWrap`

* test: specify option explicitly

* Fix lint after merge

* Fix error after merge
2017-12-02 09:48:40 +11:00
Lucas Duailibe f119d4a90f Change run_spec to have explicit parser list (#3356) 2017-11-30 03:31:52 -03:00
Ika 49f578fb91 fix(markdown): do not break inlineCode (#3230) 2017-11-11 12:50:40 +08:00
Ika 7fb8e3fe43 fix(markdown): no break on link (#3204)
* fix(markdown): link/image url head is breakable

* fix(markdown): no break on link
2017-11-09 08:19:35 +11:00
Lucas Duailibe a35257bacf Print JSON top comments as leading comments of root node (#3187)
* Make JSON top comments be leading comments of root node

* Update snapshot
2017-11-08 09:01:09 +11:00
Ika ec7eced099 test: lowercase the test file to avoid cross platform issue (#3189) 2017-11-07 22:07:01 +08:00
Ika ec8deb6c0b fix(markdown): print ----style thematic break (#3148)
* fix(markdown): print `---`-style thematic break

* test: fix diff
2017-11-05 20:50:10 +11:00
Ika 11d7213862 test(markdown): rename test case to avoid confusing (#3086) 2017-10-23 09:49:13 +08:00
Ika c3b965145b feat(markdown): auto-detect which number style of ordered list to be used (#3029) 2017-10-14 22:53:58 +11:00
Ika c4118edbe7 fix(markdown): print auto-link as-is (#3032) 2017-10-14 22:49:12 +11:00
Ika 5c789b2dfc fix(markdown): use the most popular unordered list style (#3027) 2017-10-14 22:41:25 +11:00
Ika 9f6f3e7355 feat: support markdown (#2943)
* feat(markdown): inital implementation

* feat(markdown): support strong

* fix: add missing default value

* feat(markdown): support inlineCode

* feat: support delete

* feat: support link

* feat: support image

* feat: support blockquote

* feat: support heading

* feat: support code

* feat: support yaml

* feat: support html

* feat: support list

* feat: support thematicBreak

* feat: support table

* feat: support linkReference

* feat: support imageReference

* feat: support definition

* feat: support footnote

* feat: support footnoteReference

* feat: support footnoteDefinition

* test(cli): update snapshots

* refactor: extract SINGLE_LINE_NODE_TYPES

* refactor: printChildren

* fix: correct newlines

* test: add trailing newline

* fix: blockquote formatting

* fix: node types

* fix: break line correctly

* fix: remove unnecessary properties to make AST_COMPARE happy

* fix: escape `|` in tableCell content

* fix: unexpected line break

* fix: ast difference from loose list

* fix: html break lines

* refactor: fix linting

* fix: normalize ast

* fix: escape specific chars

* test: add more tests

* fix: build markdown parser

* chore: remove unnecessary *.log

* fix: escape html entity

* feat: support prettier-ignore

* fix: line break for non-loose listItem

* feat: support formatting `code` based on `lang`

* fix: add `jsx` and `tsx`

* fix: use multiparser

* refactor: fix linting

* test: update test case 😉

* feat: switch to `_` style emphasis

* fix: sequence list should use different prefix

* test: add tests

* fix: do not print additional new line after `prettier-ignore`

* fix(list): enforce `1.` to avoid unnecessary git diff

* feat: enable `commonmark` option

* feat: support `break`
* fix: escape backslash
* refactor: escape html entity using backslash

* fix: respect autolink-style link

* feat: support md`...` and markdown`...`

* docs: replace ands with commas

* fix: respect indented code block

* fix: respect html entity

* docs: add docs for modified MDAST

* fix: inlineCode is breakline-able

* feat: support backtick in inlineCode

* feat: support a-lot-of-backtick in fenced code block

* feat: use `~~~`-style code block in js template

* fix: respect escaped chars

* fix: use `*`-style emphasis for invalid `_`-style output

* test: add test cases

* fix: use `- - -`-style thematicBreak to avoid conflict with yaml

* fix: remain the same content for linkReference identifier

* fix: `inlineCode` gap can be a line break

* fix: `html` should not print trailing spaces if it's in root

* refactor: fix typo

* fix: wrap `definition`'s url if there's whitespace

* fix: remove unnecessary whitespace at the end of paragraph

* fix: fix: remove unnecessary whitespace at the start of paragraph

* fix: setence children length is possible 0

* fix: support continuous ordered list

* fix: do not print addtional hardline after loose list

* fix: use double-backtick style for single-backtick value in inlineCode

* fix: support nested emphasis

* fix: support space-url in link/image

* fix: escape `)` in link/image url

* fix: support single-quote in link/image/definition title

* fix: respect alt in image/imageReference

* fix: use `*`-style thematicBreak in list

* fix: loose/tight list linebreaks

* fix: print third linebreak before indented code block with a tight list in the previous

* test: move bug cases

* fix: remove unnecessary linebreaks

* refactor: fix typo
2017-10-12 09:46:44 +11:00