diff --git a/README.md b/README.md index 72f7802..ac59992 100644 --- a/README.md +++ b/README.md @@ -2,24 +2,18 @@ # remark-normalize-headings -[![Build Status][travis-badge]][travis] [![Dependency Status][david-badge]][david] +[![Build Status][travis-badge]][travis] +[![Dependency Status][david-badge]][david] -Providing multiple top-level headings per single Markdown document is confusing for tools that assume that there is only a single top-level heading that contains some meta-information (usually title) about the document. +Providing multiple top-level headings per single Markdown document is confusing +for tools that assume that there is only a single top-level heading that +contains some meta-information (usually title) about the document. -This [remark][] plugin makes sure that there is only one top-level heading in the document by adjusting headings depths accordingly. +This [remark][] plugin makes sure that there is only one top-level heading in +the document by adjusting headings depths accordingly. Originally extracted from [remark-man][]. -[remark]: https://github.com/wooorm/remark -[remark-man]: https://github.com/wooorm/remark-man -[mdast]: https://github.com/syntax-tree/mdast -[mdast-normalize-headings]: https://github.com/eush77/mdast-normalize-headings - -[travis]: https://travis-ci.org/eush77/remark-normalize-headings -[travis-badge]: https://travis-ci.org/eush77/remark-normalize-headings.svg -[david]: https://david-dm.org/eush77/remark-normalize-headings -[david-badge]: https://david-dm.org/eush77/remark-normalize-headings.png - ## Example ```js @@ -62,20 +56,37 @@ Modifies AST in-place. ## CLI -``` +```sh $ remark -u remark-normalize-headings ``` ## Related -- [mdast-normalize-headings][] — [mdast][] transformation utility that is in the core of this plugin. +* [mdast-normalize-headings][] + — [mdast][] transformation utility that is in the core of this plugin. ## Install -``` +```sh npm install remark-normalize-headings ``` ## License MIT + +[remark]: https://github.com/remarkjs/remark + +[remark-man]: https://github.com/remarkjs/remark-man + +[mdast]: https://github.com/syntax-tree/mdast + +[mdast-normalize-headings]: https://github.com/eush77/mdast-normalize-headings + +[travis]: https://travis-ci.org/eush77/remark-normalize-headings + +[travis-badge]: https://travis-ci.org/eush77/remark-normalize-headings.svg + +[david]: https://david-dm.org/eush77/remark-normalize-headings + +[david-badge]: https://david-dm.org/eush77/remark-normalize-headings.png diff --git a/index.js b/index.js index 9628f5a..3394e7d 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,7 @@ -'use strict'; +'use strict' -var normalizeHeadings = require('mdast-normalize-headings'); +var normalizeHeadings = require('mdast-normalize-headings') - -module.exports = function () { - return normalizeHeadings; -}; +module.exports = function() { + return normalizeHeadings +} diff --git a/package.json b/package.json index df39b11..6b44817 100644 --- a/package.json +++ b/package.json @@ -28,10 +28,33 @@ "mdast-normalize-headings": "^1.0.0" }, "devDependencies": { + "prettier": "^1.14.2", "remark": "^9.0.0", - "tape": "^4.0.0" + "remark-cli": "^5.0.0", + "remark-preset-wooorm": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.22.0" }, "scripts": { - "test": "tape test/*.js" + "format": "remark . -qfo && prettier --write \"**/*.js\" && xo --fix", + "test-api": "node test", + "test": "npm run format && npm run test-api" + }, + "prettier": { + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "bracketSpacing": false, + "semi": false, + "trailingComma": "none" + }, + "xo": { + "prettier": true, + "esnext": false + }, + "remarkConfig": { + "plugins": [ + "preset-wooorm" + ] } } diff --git a/test.js b/test.js new file mode 100644 index 0000000..2954877 --- /dev/null +++ b/test.js @@ -0,0 +1,34 @@ +'use strict' + +var test = require('tape') +var remark = require('remark') +var normalizeHeadings = require('.') + +test('remark-normalize-headings', function(t) { + var parse = remark().data('settings', {position: false}).parse + var run = remark().use(normalizeHeadings).runSync + + var input = [ + '# One', + '# Two', + '## Level 3', + '### Level 4', + '#### Level 5', + '##### Level 6', + '###### Level 7' + ].join('\n\n') + + var output = [ + '# One', + '## Two', + '### Level 3', + '#### Level 4', + '##### Level 5', + '###### Level 6', + '###### Level 7' + ].join('\n\n') + + t.deepEqual(run(parse(input)), parse(output)) + + t.end() +}) diff --git a/test/hierarchy.in b/test/hierarchy.in deleted file mode 100644 index 95aa5ff..0000000 --- a/test/hierarchy.in +++ /dev/null @@ -1,13 +0,0 @@ -# One - -# Two - -## Level 3 - -### Level 4 - -#### Level 5 - -##### Level 6 - -###### Level 7 diff --git a/test/hierarchy.out b/test/hierarchy.out deleted file mode 100644 index 139b4eb..0000000 --- a/test/hierarchy.out +++ /dev/null @@ -1,13 +0,0 @@ -# One - -## Two - -### Level 3 - -#### Level 4 - -##### Level 5 - -###### Level 6 - -###### Level 7 diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 5cb8187..0000000 --- a/test/test.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var normalizeHeadings = require('..'); - -var test = require('tape'), - remark = require('remark'); - -var fs = require('fs'), - path = require('path'); - - -var load = function (filename) { - filename = path.join(__dirname, filename); - var markdown = fs.readFileSync(filename, { encoding: 'utf8' }); - return remark().data('settings', { position: false }).parse(markdown); -}; - - -test(function (t) { - var input = load('hierarchy.in'); - var output = load('hierarchy.out'); - - t.deepEqual(remark().use(normalizeHeadings).runSync(input), output); - t.end(); -});