From ba7f761ce7f3c51d23e8430ea91dd42e81998169 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 13:32:51 -0500 Subject: [PATCH 01/46] run update --- .travis.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2b92202..aea7fb4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,6 @@ node_js: - node - '6' - '4' - - '0.12' - - '0.10' matrix: allow_failures: - node_js: '4' - - node_js: '0.12' - - node_js: '0.10' From 30532a4f0a4cdc90a6a50de6fd8a57c6c1ddbcd7 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 13:38:04 -0500 Subject: [PATCH 02/46] run update --- package.json | 24 ++++++++++++++---------- support/package.json | 43 +++++++++++++++++-------------------------- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 962da76..4a48960 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,10 @@ "version": "0.1.6", "homepage": "http://breakdance.io", "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "David Larlet (https://larlet.fr/david/code)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], "repository": "breakdance/breakdance", "bugs": { "url": "https://github.com/breakdance/breakdance/issues" @@ -19,13 +23,13 @@ "tomd": "bin/cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" }, "scripts": { "test": "mocha" }, "dependencies": { - "breakdance-util": "^0.1.2", + "breakdance-util": "^0.1.4", "cheerio": "^0.22.0", "define-property": "^0.2.5", "detect-indent": "^5.0.0", @@ -37,9 +41,9 @@ "mixin-deep": "^1.1.3", "mkdirp": "^0.5.1", "repeat-string": "^1.6.1", - "snapdragon": "^0.9.1", + "snapdragon": "^0.10.1", "snapdragon-cheerio": "^1.0.1", - "snapdragon-util": "^1.0.3", + "snapdragon-util": "^1.0.5", "strip-attributes": "^0.2.0", "trim-leading-lines": "^0.1.1", "trim-trailing-lines": "^1.1.0", @@ -53,9 +57,9 @@ "gulp-format-md": "^0.1.11", "gulp-istanbul": "^1.1.1", "gulp-mocha": "^3.0.1", - "gulp-unused": "^0.2.0", + "gulp-unused": "^0.2.1", "helper-changelog": "^0.3.0", - "js-beautify": "^1.6.8", + "js-beautify": "^1.6.9", "kind-of": "^3.1.0", "mocha": "^3.2.0", "strip-color": "^0.1.0", @@ -104,15 +108,15 @@ }, "reflinks": [ "assemble", + "breakdance-util", "cheerio", + "helper-changelog", + "keep-a-changelog", "micromatch", "remarkable", "snapdragon", "verb", - "verb-generate-readme", - "breakdance-util", - "helper-changelog", - "keep-a-changelog" + "verb-generate-readme" ] } } diff --git a/support/package.json b/support/package.json index a56bc36..766f250 100644 --- a/support/package.json +++ b/support/package.json @@ -1,7 +1,7 @@ { "name": "breakdance-docs", - "description": "docs", "private": true, + "description": "docs", "version": "0.1.0", "homepage": "https://github.com/jonschlinkert/breakdance-docs", "author": "Jon Schlinkert (https://github.com/jonschlinkert)", @@ -10,30 +10,11 @@ "url": "https://github.com/jonschlinkert/breakdance-docs/issues" }, "license": "CC", - "files": [ - "src", - "build", - "assemblefile.js" - ], "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "lintDeps": { - "files": { - "ignore": [ - "{api,[d-z]}*/**" - ], - "devDependencies": [ - "build/**/*.js", - "assemblefile.js" - ] - } + "node": ">=4.7" }, "devDependencies": { - "assemble": "^0.17.1", + "assemble": "^0.23.0", "assemble-middleware-page-variable": "^0.1.0", "async-each": "^1.0.1", "camel-case": "^3.0.0", @@ -45,24 +26,34 @@ "gh-clone": "^0.5.0", "gulp-prettify": "^0.5.0", "gulp-reflinks": "^0.2.0", - "gulp-sass": "^3.0.0", + "gulp-sass": "^3.1.0", "gulp-uncss": "^1.0.6", "handlebars-helper-create-frame": "^0.1.0", - "handlebars-helpers": "^0.7.5", + "handlebars-helpers": "^0.8.0", "helper-geopattern": "^0.2.0", "helper-uigradient": "^0.1.0", "highlight.js": "^9.9.0", "isobject": "^3.0.0", "log-utils": "^0.2.1", - "markdown-toc": "^1.0.3", + "markdown-toc": "^1.1.0", "middleware-rename-file": "^1.0.0", "plugin-error": "^0.1.2", "remarkable": "^1.7.1", "through2": "^2.0.3", "unescape": "^0.2.0", "verb": "verbose/verb#dev", - "verb-generate-readme": "^0.4.2", "verb-reflinks": "^0.1.6", "year": "^0.2.1" + }, + "lintDeps": { + "files": { + "ignore": [ + "{api,[d-z]}*/**" + ], + "devDependencies": [ + "assemblefile.js", + "build/**/*.js" + ] + } } } From b844851a0cc99231777a85a0745424fd583f2cf3 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 13:38:18 -0500 Subject: [PATCH 03/46] run assemble, fix urls --- README.md | 10 +++++----- docs/docs.html | 2 +- support/assemblefile.js | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4204390..8562a77 100644 --- a/README.md +++ b/README.md @@ -87,8 +87,8 @@ Get updates on Breakdance's development and chat with the project maintainers an ### Related projects * [breakdance-checklist](https://www.npmjs.com/package/breakdance-checklist): Plugin that adds checklist rendering support to breakdance, similar to task lists in github-flavored-markdown. | [homepage](https://github.com/breakdance/breakdance-checklist "Plugin that adds checklist rendering support to breakdance, similar to task lists in github-flavored-markdown.") -* [breakdance-reflinks](https://www.npmjs.com/package/breakdance-reflinks): Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of… [more](https://github.com/jonschlinkert/breakdance-reflinks) | [homepage](https://github.com/jonschlinkert/breakdance-reflinks "Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of the file as reference links.") -* [breakdance-util](https://www.npmjs.com/package/breakdance-util): Utility functions for breakdance plugins. | [homepage](https://github.com/jonschlinkert/breakdance-util "Utility functions for breakdance plugins.") +* [breakdance-reflinks](https://www.npmjs.com/package/breakdance-reflinks): Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of… [more](https://github.com/breakdance/breakdance-reflinks) | [homepage](https://github.com/breakdance/breakdance-reflinks "Breakdance plugin that aggregates the urls from hrefs and src attributes at the bottom of the file as reference links.") +* [breakdance-util](https://www.npmjs.com/package/breakdance-util): Utility functions for breakdance plugins. | [homepage](https://github.com/breakdance/breakdance-util "Utility functions for breakdance plugins.") ### Contributing @@ -100,7 +100,7 @@ Please read the [contributing guide](.github/contributing.md) for advice on open | **Commits** | **Contributor** | | --- | --- | -| 85 | [jonschlinkert](https://github.com/jonschlinkert) | +| 87 | [jonschlinkert](https://github.com/jonschlinkert) | | 1 | [davidbgk](https://github.com/davidbgk) | ### Release history @@ -131,7 +131,7 @@ Custom labels used in this changelog: **Changed** -* Externalized `utils.js` to [breakdance-util](https://github.com/jonschlinkert/breakdance-util), to allow plugin authors to use the same utilities as breakdance, for consistency. +* Externalized `utils.js` to [breakdance-util](https://github.com/breakdance/breakdance-util), to allow plugin authors to use the same utilities as breakdance, for consistency. ##### [0.1.4](https://github.com/breakdance/breakdance/compare/0.1.0...0.1.4) @@ -171,4 +171,4 @@ Released under the [MIT license](LICENSE). *** -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 08, 2017._ \ No newline at end of file +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 15, 2017._ \ No newline at end of file diff --git a/docs/docs.html b/docs/docs.html index d1fc1bc..1ddb0f5 100644 --- a/docs/docs.html +++ b/docs/docs.html @@ -1226,7 +1226,7 @@

Next steps diff --git a/support/assemblefile.js b/support/assemblefile.js index a55d646..a38eab8 100644 --- a/support/assemblefile.js +++ b/support/assemblefile.js @@ -98,6 +98,9 @@ app.onLoad(/\.(md|hbs)$/, rename()); app.onLoad(/\.(md|hbs)$/, pageData(app)); app.onLoad(/\.(md|hbs)$/, function(file, next) { file.extname = '.html'; + if (file.isRenderable) { + file.layout = 'default'; + } next(); }); @@ -124,7 +127,7 @@ app.task('site', ['preload-templates'], function() { .pipe(pipeline.reflinks(app.options)) .pipe(pipeline.markdown(defaults)) .pipe(pipeline.unescape()) - .pipe(app.renderFile('hbs', {layout: 'default'})) + .pipe(app.renderFile('hbs')) .pipe(pipeline.cheerio()) .pipe(pipeline.sidenav({selectors: 'h2,h3'})) .pipe(pipeline.prettify()) From 35764216dcea0461901b612ce805e65536e281fa Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 13:38:43 -0500 Subject: [PATCH 04/46] 0.1.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a48960..26f9244 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "breakdance", "description": "Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy to use. It's time for your markup to get down.", - "version": "0.1.6", + "version": "0.1.7", "homepage": "http://breakdance.io", "author": "Jon Schlinkert (https://github.com/jonschlinkert)", "contributors": [ From 83f1336f340baa079a752c89f2a830c1297a5ec3 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 14:31:13 -0500 Subject: [PATCH 05/46] run update --- .travis.yml | 4 ++-- package.json | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index aea7fb4..ced1ea9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ language: node_js node_js: - node - '6' - - '4' + - '4.7' matrix: allow_failures: - - node_js: '4' + - node_js: '4.7' diff --git a/package.json b/package.json index 26f9244..3f80974 100644 --- a/package.json +++ b/package.json @@ -23,13 +23,13 @@ "tomd": "bin/cli.js" }, "engines": { - "node": ">=4.0" + "node": ">=4.7" }, "scripts": { "test": "mocha" }, "dependencies": { - "breakdance-util": "^0.1.4", + "breakdance-util": "^0.1.5", "cheerio": "^0.22.0", "define-property": "^0.2.5", "detect-indent": "^5.0.0", @@ -42,8 +42,9 @@ "mkdirp": "^0.5.1", "repeat-string": "^1.6.1", "snapdragon": "^0.10.1", - "snapdragon-cheerio": "^1.0.1", - "snapdragon-util": "^1.0.5", + "snapdragon-cheerio": "^1.1.0", + "snapdragon-node": "^1.0.6", + "snapdragon-util": "^2.0.0", "strip-attributes": "^0.2.0", "trim-leading-lines": "^0.1.1", "trim-trailing-lines": "^1.1.0", From e9b547781ed91483582691a41fb6a639789a04e6 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 14:31:38 -0500 Subject: [PATCH 06/46] pass `Node` to `wrapNodes` per changes in `snapdragon-util` 2.0 --- lib/compiler.js | 3 ++- lib/html.js | 3 ++- lib/tables.js | 13 +++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/compiler.js b/lib/compiler.js index d7c421a..8a512b3 100644 --- a/lib/compiler.js +++ b/lib/compiler.js @@ -1,6 +1,7 @@ 'use strict'; var util = require('snapdragon-util'); +var Node = require('snapdragon-node'); var utils = require('breakdance-util'); var trimTrailing = require('trim-trailing-lines'); var trimLeading = require('trim-leading-lines'); @@ -245,7 +246,7 @@ module.exports = function(breakdance, options) { define(text, 'prev', {}); define(text, 'next', {}); node.nodes = [text]; - util.wrapNodes(node); + util.wrapNodes(node, Node); } this.mapVisit(node); }) diff --git a/lib/html.js b/lib/html.js index 7cd4176..403f8d2 100644 --- a/lib/html.js +++ b/lib/html.js @@ -1,6 +1,7 @@ 'use strict'; var util = require('snapdragon-util'); +var Node = require('snapdragon-node'); var isSelfClosing = require('is-self-closing'); var detectIndent = require('detect-indent'); var stripAttr = require('strip-attributes'); @@ -81,7 +82,7 @@ exports.preprocess = function(options) { node.nodes = [tok]; define(tok, 'parent', node); if (!isSelfClosing(node.type)) { - util.wrapNodes(node); + util.wrapNodes(node, Node); } } } else if (node.name === 'code') { diff --git a/lib/tables.js b/lib/tables.js index 25b4af1..706c885 100644 --- a/lib/tables.js +++ b/lib/tables.js @@ -2,6 +2,7 @@ var define = require('define-property'); var util = require('snapdragon-util'); +var Node = require('snapdragon-node'); module.exports = function() { return function(compiler) { @@ -68,8 +69,8 @@ function createHead(ast) { define(text, 'parent', th); define(th, 'parent', thead); thead.nodes.push(th); - util.wrapNodes(th); - util.wrapNodes(thead); + util.wrapNodes(th, Node); + util.wrapNodes(thead, Node); ast.nodes.splice(1, 0, thead); return ast; } @@ -79,7 +80,7 @@ function createHead(ast) { if (node.nodes && util.hasType(node, 'th')) { define(node, 'parent', thead); thead.nodes.push(node); - util.wrapNodes(thead); + util.wrapNodes(thead, Node); ast.nodes[i] = thead; break; } @@ -147,7 +148,7 @@ function combineRows(ast) { define(tr, 'parent', thead); thead.nodes.splice(i, thead.nodes.length - tr.nodes.length, tr); - util.wrapNodes(tr); + util.wrapNodes(tr, Node); return; } @@ -177,7 +178,7 @@ function combineRows(ast) { }); } thead.nodes = [firstRow]; - util.wrapNodes(thead); + util.wrapNodes(thead, Node); } /** @@ -212,7 +213,7 @@ function createBody(ast) { } if (tbody) { - util.wrapNodes(tbody); + util.wrapNodes(tbody, Node); } ast.nodes = [open]; From d2dd7d4928830dc7a74ebb40e6111993bc16cb29 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 14:31:45 -0500 Subject: [PATCH 07/46] generate docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8562a77..280f6e9 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Please read the [contributing guide](.github/contributing.md) for advice on open | **Commits** | **Contributor** | | --- | --- | -| 87 | [jonschlinkert](https://github.com/jonschlinkert) | +| 91 | [jonschlinkert](https://github.com/jonschlinkert) | | 1 | [davidbgk](https://github.com/davidbgk) | ### Release history From 84190bc21ab66af225d701b8768377ca069c7e52 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Wed, 15 Feb 2017 14:32:02 -0500 Subject: [PATCH 08/46] 0.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3f80974..3b2d906 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "breakdance", "description": "Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy to use. It's time for your markup to get down.", - "version": "0.1.7", + "version": "0.2.0", "homepage": "http://breakdance.io", "author": "Jon Schlinkert (https://github.com/jonschlinkert)", "contributors": [ From cb091a0f2520d3d04b1b98c3a1d4eb47ed8105da Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:07:46 -0500 Subject: [PATCH 09/46] remove comment --- support/src/templates/partials/page-header-sm.hbs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/support/src/templates/partials/page-header-sm.hbs b/support/src/templates/partials/page-header-sm.hbs index 97cc67d..c518bd9 100644 --- a/support/src/templates/partials/page-header-sm.hbs +++ b/support/src/templates/partials/page-header-sm.hbs @@ -4,17 +4,6 @@

{{@page.title}}

- \ No newline at end of file From 71d77be26febcc8d039e7b30fba1de9f86a2330e Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:08:24 -0500 Subject: [PATCH 10/46] fix templates that are escaped by remarkable --- support/build/pipeline/markdown.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/support/build/pipeline/markdown.js b/support/build/pipeline/markdown.js index 557b38a..eeeb302 100644 --- a/support/build/pipeline/markdown.js +++ b/support/build/pipeline/markdown.js @@ -4,6 +4,7 @@ var path = require('path'); var extend = require('extend-shallow'); var PluginError = require('plugin-error'); var Remarkable = require('remarkable'); +var unescape = require('unescape'); var through = require('through2'); /** @@ -25,7 +26,11 @@ module.exports = function(options) { try { var md = new Remarkable(opts); - file.contents = new Buffer(md.render(file.contents.toString())); + var str = md.render(file.contents.toString()); + str = str.replace(/(\{{2,4})([^}]+)(\}{2,4})/g, function(m, open, inner, close) { + return open + unescape(inner) + close; + }); + file.contents = new Buffer(str); file.extname = '.html'; } catch (err) { this.emit('error', new PluginError('remarkable', err, {fileName: file.path})); From 8ef24fe2113b253eb8f30cae012a09596bb3068a Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:10:33 -0500 Subject: [PATCH 11/46] run update --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index ced1ea9..736c685 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,7 @@ os: language: node_js node_js: - node + - '7' - '6' + - '5' - '4.7' -matrix: - allow_failures: - - node_js: '4.7' From 17f8ae1b1d5cb72b27333015ec7e619b92870f85 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:13:51 -0500 Subject: [PATCH 12/46] improve cli, update deps breaking changes: command is now `bd` or `breakdance` (in case of conflicts). The CLI is as of yet undocumented, so hopefully this doesn't cause anyone issues. --- bin/cli.js | 22 ++++++++++------------ package.json | 34 +++++++++++++++++++++++----------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 7cb52e5..63e0e6b 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -4,12 +4,12 @@ var fs = require('fs'); var path = require('path'); var ok = require('log-ok'); var mkdirp = require('mkdirp'); +var writeFile = require('write'); var breakdance = require('..'); var argv = require('yargs') .option('file', { alias: 'f', - describe: 'HTML file to convert (with or without .html extension)', - demand: true + describe: 'HTML file to convert (with or without .html extension)' }) .option('dest', { alias: 'd', @@ -18,20 +18,18 @@ var argv = require('yargs') }) .argv; -fs.readFile(path.resolve(process.cwd(), argv.file), function(err, buf) { +var file = argv.file || argv._[0]; +var dest = argv.dest || argv._[1]; + +fs.readFile(path.resolve(process.cwd(), file), function(err, buf) { handleError(err); - var str = breakdance(buf.toString(), argv); - var name = path.basename(argv.file, path.extname(argv.file)); - var destPath = path.resolve(argv.dest, name + '.md'); + var name = path.basename(file, path.extname(file)); + var destPath = path.resolve(dest, name + '.md'); - mkdirp(argv.dest, function(err) { + writeFile(destPath, breakdance(buf.toString(), argv), function(err) { handleError(err); - - fs.writeFile(destPath, str, function(err) { - handleError(err); - ok('Markdown file written to', destPath); - }); + ok('Markdown file written to', destPath); }); }); diff --git a/package.json b/package.json index 3b2d906..321c2ae 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ ], "main": "index.js", "bin": { - "tomd": "bin/cli.js" + "breakdance": "bin/cli.js", + "bd": "bin/cli.js" }, "engines": { "node": ">=4.7" @@ -38,18 +39,19 @@ "is-self-closing": "^1.0.0", "isobject": "^3.0.0", "log-ok": "^0.1.1", - "mixin-deep": "^1.1.3", + "mixin-deep": "^1.2.0", "mkdirp": "^0.5.1", "repeat-string": "^1.6.1", - "snapdragon": "^0.10.1", + "snapdragon": "^0.11.0", "snapdragon-cheerio": "^1.1.0", "snapdragon-node": "^1.0.6", - "snapdragon-util": "^2.0.0", + "snapdragon-util": "^2.1.1", "strip-attributes": "^0.2.0", "trim-leading-lines": "^0.1.1", "trim-trailing-lines": "^1.1.0", "unescape": "^0.2.0", - "yargs": "^6.6.0" + "write": "^0.3.2", + "yargs": "^7.0.2" }, "devDependencies": { "dashify": "^0.2.2", @@ -57,17 +59,16 @@ "gulp-eslint": "^3.0.1", "gulp-format-md": "^0.1.11", "gulp-istanbul": "^1.1.1", - "gulp-mocha": "^3.0.1", + "gulp-mocha": "^3.0.0", "gulp-unused": "^0.2.1", "helper-changelog": "^0.3.0", - "js-beautify": "^1.6.9", + "js-beautify": "^1.6.11", "kind-of": "^3.1.0", "mocha": "^3.2.0", "strip-color": "^0.1.0", "time-diff": "^0.3.1", - "verb-generate-readme": "^0.4.2", - "write": "^0.3.2", - "yargs-parser": "^4.2.1" + "verb-generate-readme": "^0.4.3", + "yargs-parser": "^5.0.0" }, "keywords": [ "breakdance", @@ -79,8 +80,19 @@ "plain text", "re-format", "render", - "text" + "text", + "to-markdown", + "tomd" ], + "lintDeps": { + "devDependencies": { + "files": { + "patterns": [ + "test/configs/*.js" + ] + } + } + }, "verb": { "toc": { "method": "preWrite", From 79dd5bc2763726fe3f41394db91dd44303fc080a Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:16:37 -0500 Subject: [PATCH 13/46] fixes #3 --- lib/compiler.js | 6 +++++- test/base.js | 9 +++++++++ test/expected/base.md | 2 ++ test/fixtures/base.html | 12 ++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test/base.js create mode 100644 test/expected/base.md create mode 100644 test/fixtures/base.html diff --git a/lib/compiler.js b/lib/compiler.js index 8a512b3..39906fd 100644 --- a/lib/compiler.js +++ b/lib/compiler.js @@ -109,7 +109,6 @@ module.exports = function(breakdance, options) { * Document metadata */ - .set('base', util.noop) .set('head', block('', '')) .set('link', util.noop) .set('meta', util.noop) @@ -119,6 +118,11 @@ module.exports = function(breakdance, options) { this.emit('# ' + node.val + '\n\n'); } }) + .set('base', function(node) { + if (node.attribs && node.attribs.href && !this.options.domain) { + this.options.domain = node.attribs.href; + } + }) /** * Scripting diff --git a/test/base.js b/test/base.js new file mode 100644 index 0000000..d25be1a --- /dev/null +++ b/test/base.js @@ -0,0 +1,9 @@ +'use strict'; + +var isEqual = require('./support/is-equal'); + +describe('base', function() { + it('should prefix urls with the "href" attribute from the tag', function() { + isEqual('base'); + }); +}); diff --git a/test/expected/base.md b/test/expected/base.md new file mode 100644 index 0000000..571b7a5 --- /dev/null +++ b/test/expected/base.md @@ -0,0 +1,2 @@ +[Foo](https://someplace.com/foo.html) + ![](https://someplace.com/bar.jpg) diff --git a/test/fixtures/base.html b/test/fixtures/base.html new file mode 100644 index 0000000..d234532 --- /dev/null +++ b/test/fixtures/base.html @@ -0,0 +1,12 @@ + + + + + Document + + + +
Foo + + + \ No newline at end of file From 35340ee99975a798d3c2b29dc8aca65104d5dad1 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:17:33 -0500 Subject: [PATCH 14/46] update changelog, run verb --- README.md | 16 +++++++++++++--- changelog.md | 10 ++++++++++ docs/about.html | 13 +------------ docs/contributing.html | 13 +------------ docs/docs.html | 13 +------------ docs/examples.html | 13 +------------ docs/index.html | 2 +- docs/plugins.html | 13 +------------ docs/recipes.html | 13 +------------ 9 files changed, 30 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index 280f6e9..ff7a704 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Please read the [contributing guide](.github/contributing.md) for advice on open | **Commits** | **Contributor** | | --- | --- | -| 91 | [jonschlinkert](https://github.com/jonschlinkert) | +| 95 | [jonschlinkert](https://github.com/jonschlinkert) | | 1 | [davidbgk](https://github.com/davidbgk) | ### Release history @@ -118,6 +118,16 @@ Custom labels used in this changelog: * `dependencies`: bumps dependencies * `housekeeping`: code re-organization, minor edits, or other changes that don't fit in one of the other categories. +##### [1.0.0](https://github.com/breakdance/breakdance/compare/0.1.5...1.0.0) + +**Added** + +* Adds support for ``, closes [issue #3](https://github.com/breakdance/breakdance/issues/3) + +**Changed** + +* Changed the CLI command from `tomd` to either `br`. As a fallback, you can also use `breakdance` if there is a conflict. The CLI has not yet been documented, so hopefully this doesn't cause any issues for anyone. + ##### [0.1.5](https://github.com/breakdance/breakdance/compare/0.1.4...0.1.5) **Fixed** @@ -151,7 +161,7 @@ _(Changelog generated by [helper-changelog](https://github.com/helpers/helper-ch ### Running tests -Install dev dependencies: +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: ```sh $ npm install && npm test @@ -171,4 +181,4 @@ Released under the [MIT license](LICENSE). *** -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 15, 2017._ \ No newline at end of file +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.3, on March 12, 2017._ \ No newline at end of file diff --git a/changelog.md b/changelog.md index 8dc254f..d2fdda1 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,16 @@ Custom labels used in this changelog: * `dependencies`: bumps dependencies * `housekeeping`: code re-organization, minor edits, or other changes that don't fit in one of the other categories. +### [1.0.0] + +**Added** + +- Adds support for ``, closes [issue #3](https://github.com/breakdance/breakdance/issues/3) + +**Changed** + +- Changed the CLI command from `tomd` to either `br`. As a fallback, you can also use `breakdance` if there is a conflict. The CLI has not yet been documented, so hopefully this doesn't cause any issues for anyone. + ### [0.1.5] **Fixed** diff --git a/docs/about.html b/docs/about.html index ce30cf7..1a8ca00 100644 --- a/docs/about.html +++ b/docs/about.html @@ -4,7 +4,7 @@ - + About @@ -77,17 +77,6 @@

About

- diff --git a/docs/contributing.html b/docs/contributing.html index bdac949..16f8998 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -4,7 +4,7 @@ - + Contributing @@ -77,17 +77,6 @@

Contributing

- diff --git a/docs/docs.html b/docs/docs.html index 1ddb0f5..679ea32 100644 --- a/docs/docs.html +++ b/docs/docs.html @@ -4,7 +4,7 @@ - + Documentation @@ -77,17 +77,6 @@

Documentation

- diff --git a/docs/examples.html b/docs/examples.html index 11469e5..aae17c5 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -4,7 +4,7 @@ - + Examples @@ -77,17 +77,6 @@

Examples

- diff --git a/docs/index.html b/docs/index.html index 5d98b18..3ad4514 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ - + Breakdance diff --git a/docs/plugins.html b/docs/plugins.html index 8c402c0..b20fd99 100644 --- a/docs/plugins.html +++ b/docs/plugins.html @@ -4,7 +4,7 @@ - + Plugins @@ -77,17 +77,6 @@

Plugins

- diff --git a/docs/recipes.html b/docs/recipes.html index 35cda7e..913055a 100644 --- a/docs/recipes.html +++ b/docs/recipes.html @@ -4,7 +4,7 @@ - + Recipes @@ -77,17 +77,6 @@

Recipes

- From 1ca4b0e088d92f29f8d1323443883b0f479bae74 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sun, 12 Mar 2017 01:20:55 -0500 Subject: [PATCH 15/46] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 321c2ae..5e872dd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "breakdance", "description": "Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy to use. It's time for your markup to get down.", - "version": "0.2.0", + "version": "1.0.0", "homepage": "http://breakdance.io", "author": "Jon Schlinkert (https://github.com/jonschlinkert)", "contributors": [ From 675680be716e1b0af0d541596a9d311e7a274888 Mon Sep 17 00:00:00 2001 From: doowb Date: Thu, 20 Apr 2017 15:45:30 -0400 Subject: [PATCH 16/46] tag manager scripts --- support/src/templates/layouts/default.hbs | 3 +++ support/src/templates/partials/site-head-tm.hbs | 7 +++++++ support/src/templates/partials/site-head.hbs | 2 ++ support/src/templates/partials/site-tm.hbs | 4 ++++ 4 files changed, 16 insertions(+) create mode 100644 support/src/templates/partials/site-head-tm.hbs create mode 100644 support/src/templates/partials/site-tm.hbs diff --git a/support/src/templates/layouts/default.hbs b/support/src/templates/layouts/default.hbs index 5feaafb..4890aff 100644 --- a/support/src/templates/layouts/default.hbs +++ b/support/src/templates/layouts/default.hbs @@ -5,6 +5,9 @@ {{> site-head }} + + {{> site-tm }} +
{{> site-navigation }} diff --git a/support/src/templates/partials/site-head-tm.hbs b/support/src/templates/partials/site-head-tm.hbs new file mode 100644 index 0000000..f320e76 --- /dev/null +++ b/support/src/templates/partials/site-head-tm.hbs @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/support/src/templates/partials/site-head.hbs b/support/src/templates/partials/site-head.hbs index e17942a..8a1fe85 100644 --- a/support/src/templates/partials/site-head.hbs +++ b/support/src/templates/partials/site-head.hbs @@ -4,6 +4,8 @@ {{@page.title}}{{#if @page.description}} | {{@page.description}}{{/if}} + +{{> site-tm }} {{> site-fonts}} diff --git a/support/src/templates/partials/site-tm.hbs b/support/src/templates/partials/site-tm.hbs new file mode 100644 index 0000000..aeb041a --- /dev/null +++ b/support/src/templates/partials/site-tm.hbs @@ -0,0 +1,4 @@ + + + \ No newline at end of file From 9c0e4d39e193db5857886c36266b5e2294117673 Mon Sep 17 00:00:00 2001 From: doowb Date: Thu, 20 Apr 2017 15:49:35 -0400 Subject: [PATCH 17/46] run assemble --- docs/about.html | 14 +++++++++++++- docs/contributing.html | 14 +++++++++++++- docs/docs.html | 14 +++++++++++++- docs/examples.html | 16 ++++++++++++++-- docs/index.html | 14 +++++++++++++- docs/plugins.html | 14 +++++++++++++- docs/recipes.html | 14 +++++++++++++- 7 files changed, 92 insertions(+), 8 deletions(-) diff --git a/docs/about.html b/docs/about.html index 1a8ca00..cfe76bb 100644 --- a/docs/about.html +++ b/docs/about.html @@ -7,6 +7,12 @@ About + + + + @@ -20,7 +26,7 @@ .masthead { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJyZ2IoNjksMTEyLDEzOCkiPjwvcmVjdD48Y2lyY2xlIGN4PSIwIiBjeT0iMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wNzIwMDAwMDAwMDAwMDAwMSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTgwIiBjeT0iMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wNzIwMDAwMDAwMDAwMDAwMSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMCIgY3k9IjE4MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wNzIwMDAwMDAwMDAwMDAwMSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTgwIiBjeT0iMTgwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjA3MjAwMDAwMDAwMDAwMDAxIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIzMCIgY3k9IjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMzMzQiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjMwIiBjeT0iMTgwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjExNTMzMzMzMzMzMzMzMzM0IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSI2MCIgY3k9IjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMDM3MzMzMzMzMzMzMzMzMzMiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjYwIiBjeT0iMTgwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMzMzIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSI5MCIgY3k9IjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY2NjY3IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSI5MCIgY3k9IjE4MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wMjg2NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMTUiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjE4MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4xNSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTUwIiBjeT0iMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMzMzNCIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTUwIiBjeT0iMTgwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjExNTMzMzMzMzMzMzMzMzM0IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIwIiBjeT0iMzAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMDgwNjY2NjY2NjY2NjY2NjYiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE4MCIgY3k9IjMwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NjY2IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIzMCIgY3k9IjMwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjA5OCIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iNjAiIGN5PSIzMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wMjg2NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkwIiBjeT0iMzAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMTA2NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjMwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjEyNDAwMDAwMDAwMDAwMDAxIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxNTAiIGN5PSIzMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wMiIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMCIgY3k9IjYwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMzM0IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxODAiIGN5PSI2MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wNjMzMzMzMzMzMzMzMzMzNCIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMzAiIGN5PSI2MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wMjg2NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjYwIiBjeT0iNjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMDgwNjY2NjY2NjY2NjY2NjYiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkwIiBjeT0iNjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMDIiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjYwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjA4OTMzMzMzMzMzMzMzMzMzIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxNTAiIGN5PSI2MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wOTgiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjAiIGN5PSI5MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wNDYiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE4MCIgY3k9IjkwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjA0NiIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMzAiIGN5PSI5MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMzMyIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iNjAiIGN5PSI5MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wNzIwMDAwMDAwMDAwMDAwMSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iOTAiIGN5PSI5MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wMiIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTIwIiBjeT0iOTAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMTI0MDAwMDAwMDAwMDAwMDEiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE1MCIgY3k9IjkwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMzMzIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIwIiBjeT0iMTIwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NjY3IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxODAiIGN5PSIxMjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjMwIiBjeT0iMTIwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjA4OTMzMzMzMzMzMzMzMzMzIiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSI2MCIgY3k9IjEyMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjY2NyIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iOTAiIGN5PSIxMjAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMDIiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjEyMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wMjg2NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE1MCIgY3k9IjEyMCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4xMjQwMDAwMDAwMDAwMDAwMSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMCIgY3k9IjE1MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NjY2NSIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTgwIiBjeT0iMTUwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBvcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY2NjY1IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIzMCIgY3k9IjE1MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMzMyIgc3Ryb2tlLXdpZHRoPSI3LjVweCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iNjAiIGN5PSIxNTAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIG9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY2NjciIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjkwIiBjeT0iMTUwIiByPSIyNi4yNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBvcGFjaXR5PSIwLjEwNjY2NjY2NjY2NjY2NjY3IiBzdHJva2Utd2lkdGg9IjcuNXB4Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxMjAiIGN5PSIxNTAiIHI9IjI2LjI1IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIG9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzMzQiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE1MCIgY3k9IjE1MCIgcj0iMjYuMjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgb3BhY2l0eT0iMC4wOTgiIHN0cm9rZS13aWR0aD0iNy41cHgiPjwvY2lyY2xlPjwvc3ZnPg=="); } - + . h1, . h2, . h3, @@ -30,6 +36,12 @@ + + + +