diff --git a/docs/options.md b/docs/options.md index 5f25324..da42f7e 100644 --- a/docs/options.md +++ b/docs/options.md @@ -1547,6 +1547,82 @@ If a terminating comma should be inserted into arrays, object literals, and dest } ``` +#### [Markdown - Gfm](#markdown---gfm) + +**Namespace**: `markdown` + +**Key**: `gfm` + +**Default**: `true` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +GitHub Flavoured Markdown (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "gfm": true + } +} +``` + +#### [Markdown - Yaml](#markdown---yaml) + +**Namespace**: `markdown` + +**Key**: `yaml` + +**Default**: `true` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +Enables raw YAML front matter to be detected (thus ignoring markdown-like syntax). (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "yaml": true + } +} +``` + +#### [Markdown - Commonmark](#markdown---commonmark) + +**Namespace**: `markdown` + +**Key**: `commonmark` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +Allows and disallows several constructs. (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "commonmark": false + } +} +``` + #### [Objective-C - Config Path](#objective-c---config-path) **Namespace**: `objectivec` @@ -1699,11 +1775,11 @@ By default, all PSR-2 fixers and some additional ones are run. (Supported by PHP **Type**: `string` -**Supported Beautifiers**: [`PHP-CS-Fixer`](#php-cs-fixer) +**Supported Beautifiers**: [`PHP-CS-Fixer`](#php-cs-fixer) [`PHPCBF`](#phpcbf) **Description**: -Path to the `phpcbf` CLI executable (Supported by PHP-CS-Fixer) +Path to the `phpcbf` CLI executable (Supported by PHP-CS-Fixer, PHPCBF) **Example `.jsbeautifyrc` Configuration** @@ -3286,7 +3362,7 @@ Disable Markdown Beautification **Type**: `string` -**Enum**: `Tidy Markdown` +**Enum**: `Remark` `Tidy Markdown` **Description**: @@ -6447,6 +6523,85 @@ Path to the emacs script (Supported by Fortran Beautifier) ``` +### Remark + +#### [Markdown - Gfm](#markdown---gfm) + +**Namespace**: `markdown` + +**Key**: `gfm` + +**Default**: `true` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +GitHub Flavoured Markdown (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "gfm": true + } +} +``` + +#### [Markdown - Yaml](#markdown---yaml) + +**Namespace**: `markdown` + +**Key**: `yaml` + +**Default**: `true` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +Enables raw YAML front matter to be detected (thus ignoring markdown-like syntax). (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "yaml": true + } +} +``` + +#### [Markdown - Commonmark](#markdown---commonmark) + +**Namespace**: `markdown` + +**Key**: `commonmark` + +**Type**: `boolean` + +**Supported Beautifiers**: [`Remark`](#remark) + +**Description**: + +Allows and disallows several constructs. (Supported by Remark) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "markdown": { + "commonmark": false + } +} +``` + + ### Perltidy #### [Perl - Perltidy profile](#perl---perltidy-profile) @@ -6556,11 +6711,11 @@ By default, all PSR-2 fixers and some additional ones are run. (Supported by PHP **Type**: `string` -**Supported Beautifiers**: [`PHP-CS-Fixer`](#php-cs-fixer) +**Supported Beautifiers**: [`PHP-CS-Fixer`](#php-cs-fixer) [`PHPCBF`](#phpcbf) **Description**: -Path to the `phpcbf` CLI executable (Supported by PHP-CS-Fixer) +Path to the `phpcbf` CLI executable (Supported by PHP-CS-Fixer, PHPCBF) **Example `.jsbeautifyrc` Configuration** @@ -6599,6 +6754,30 @@ Standard name Squiz, PSR2, PSR1, PHPCS, PEAR, Zend, MySource... or path to CS ru ### PHPCBF +#### [PHP - PHPCBF Path](#php---phpcbf-path) + +**Namespace**: `php` + +**Key**: `phpcbf_path` + +**Type**: `string` + +**Supported Beautifiers**: [`PHP-CS-Fixer`](#php-cs-fixer) [`PHPCBF`](#phpcbf) + +**Description**: + +Path to the `phpcbf` CLI executable (Supported by PHP-CS-Fixer, PHPCBF) + +**Example `.jsbeautifyrc` Configuration** + +```json +{ + "php": { + "phpcbf_path": "" + } +} +``` + #### [PHP - PHPCBF Standard](#php---phpcbf-standard) **Namespace**: `php` diff --git a/examples/nested-jsbeautifyrc/.jsbeautifyrc b/examples/nested-jsbeautifyrc/.jsbeautifyrc index 515c921..ecb81ca 100644 --- a/examples/nested-jsbeautifyrc/.jsbeautifyrc +++ b/examples/nested-jsbeautifyrc/.jsbeautifyrc @@ -38,3 +38,5 @@ indent_size: 4 erb: indent_size: 4 + markdown: + listItemIndent: 1 diff --git a/examples/nested-jsbeautifyrc/.jsbeautifyrc_json b/examples/nested-jsbeautifyrc/.jsbeautifyrc_json index 784aa30..5023d6c 100644 --- a/examples/nested-jsbeautifyrc/.jsbeautifyrc_json +++ b/examples/nested-jsbeautifyrc/.jsbeautifyrc_json @@ -26,5 +26,8 @@ "indent_char": " ", "indent_level": 0, "indent_with_tabs": false + }, + "markdown": { + "listItemIndent": "1" } } diff --git a/package.json b/package.json index 678c2e0..a090236 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "node-dir": "^0.1.8", "node-uuid": "^1.4.3", "prettydiff": "^1.16.8", + "remark": "^3.2.2", "season": "^5.3.0", "space-pen": "^5.1.1", "strip-json-comments": "^1.0.2", diff --git a/src/beautifiers/index.coffee b/src/beautifiers/index.coffee index 7909d6c..abbf8ee 100644 --- a/src/beautifiers/index.coffee +++ b/src/beautifiers/index.coffee @@ -51,6 +51,7 @@ module.exports = class Beautifiers extends EventEmitter 'phpcbf' 'prettydiff' 'puppet-fix' + 'remark' 'rubocop' 'ruby-beautify' 'rustfmt' diff --git a/src/beautifiers/remark.coffee b/src/beautifiers/remark.coffee new file mode 100644 index 0000000..9def8de --- /dev/null +++ b/src/beautifiers/remark.coffee @@ -0,0 +1,44 @@ +"use strict" +Beautifier = require('./beautifier') + +module.exports = class Remark extends Beautifier + name: "Remark" + options: { + _: { + gfm: true + yaml: true + commonmark: true + footnotes: true + pedantic: true + breaks: true + entities: true + setext: true + closeAtx: true + looseTable: true + spacedTable: true + fence: true + fences: true + bullet: true + listItemIndent: true + incrementListMarker: true + rule: true + ruleRepetition: true + ruleSpaces: true + strong: true + emphasis: true + position: true + } + Markdown: true + } + + beautify: (text, language, options) -> + return new @Promise((resolve, reject) -> + try + console.log(options) + remark = require 'remark' + cleanMarkdown = remark.process(text, options) + resolve cleanMarkdown + catch err + @error("Remark error: #{err}") + reject(err) + ) diff --git a/src/languages/markdown.coffee b/src/languages/markdown.coffee index 4bc1ad7..2f6aaea 100644 --- a/src/languages/markdown.coffee +++ b/src/languages/markdown.coffee @@ -18,6 +18,19 @@ module.exports = { "md" ] - options: [] + defaultBeautifier: "Tidy Markdown" + options: + gfm: + type: 'boolean' + default: true + description: 'GitHub Flavoured Markdown' + yaml: + type: 'boolean' + default: true + description: 'Enables raw YAML front matter to be detected (thus ignoring markdown-like syntax).' + commonmark: + type: 'boolean' + default: false + description: 'Allows and disallows several constructs.' }