Browse Source

eslint update & code cleanup

pull/234/head
Vitaly Puzrin 8 years ago
parent
commit
760050edcb
  1. 118
      .eslintrc
  2. 141
      .eslintrc.yml
  3. 2
      Makefile
  4. 2
      benchmark/implementations/commonmark-reference/index.js
  5. 2
      benchmark/implementations/current-commonmark/index.js
  6. 2
      benchmark/implementations/current/index.js
  7. 2
      benchmark/implementations/markdown-it-2.2.1-commonmark/index.js
  8. 2
      benchmark/implementations/marked-0.3.2/index.js
  9. 4
      bin/markdown-it.js
  10. 4
      lib/common/utils.js
  11. 2
      lib/parser_block.js
  12. 8
      lib/rules_core/replacements.js
  13. 2
      lib/rules_inline/escape.js
  14. 2
      package.json
  15. 10
      support/demo_template/index.js
  16. 3
      support/demodata.js
  17. 4
      support/markdown-it.js
  18. 51
      support/specsplit.js

118
.eslintrc

@ -1,118 +0,0 @@
env:
node: true
browser: false
plugins:
- nodeca
rules:
block-scoped-var: 2
brace-style: [ 2, '1tbs', { allowSingleLine: true } ]
comma-spacing: 2
comma-style: 2
consistent-this: [ 2, self ]
consistent-return: 2
curly: 2
# default-case: 2
dot-notation: 2
eol-last: 2
eqeqeq: 2
guard-for-in: 2
handle-callback-err: 2
max-depth: [ 1, 6 ]
max-nested-callbacks: [ 1, 4 ]
# string can exceed 80 chars, but should not overflow github website :)
max-len: [ 2, 120, 1000 ]
new-cap: 2
new-parens: 2
no-alert: 2
no-array-constructor: 2
no-bitwise: 2
no-caller: 2
no-catch-shadow: 2
no-comma-dangle: 2
no-cond-assign: 2
no-console: 1
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-delete-var: 2
no-dupe-keys: 2
no-div-regex: 2
no-empty: 2
no-empty-class: 2
no-empty-label: 2
no-else-return: 2
no-eq-null: 2
no-ex-assign: 2
no-extend-native: 2
no-extra-bind: 2
no-extra-boolean-cast: 2
no-extra-semi: 2
no-extra-strict: 2
no-eval: 2
no-floating-decimal: 2
no-func-assign: 2
no-implied-eval: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-label-var: 2
no-labels: 2
no-lone-blocks: 2
no-lonely-if: 2
no-loop-func: 2
no-mixed-requires: 2
no-mixed-spaces-and-tabs: 2
no-multi-str: 2
no-native-reassign: 2
no-negated-in-lhs: 2
no-new: 2
no-new-func: 2
no-new-object: 2
no-new-require: 2
no-new-wrappers: 2
no-obj-calls: 2
no-octal: 2
no-octal-escape: 2
no-path-concat: 2
no-redeclare: 2
no-regex-spaces: 2
no-reserved-keys: 2
no-return-assign: 2
no-script-url: 2
no-sequences: 2
no-shadow: 2
no-shadow-restricted-names: 2
no-space-before-semi: 2
no-sparse-arrays: 2
no-trailing-spaces: 2
no-undef: 2
no-undef-init: 2
no-undefined: 2
no-unreachable: 2
no-unused-expressions: 2
no-unused-vars: 2
no-use-before-define: 2
no-with: 2
no-wrap-func: 2
quotes: [ 2, single, avoid-escape ]
radix: 2
semi: 2
space-after-keywords: [ 2, always ]
space-before-blocks: 2
space-in-brackets: [ 2, always, { propertyName: false } ]
space-in-parens: [ 2, never ]
space-infix-ops: 2
space-return-throw-case: 2
space-unary-ops: 2
spaced-line-comment: [ 2, always, { exceptions: [ '/' ] } ]
strict: 2
use-isnan: 2
yoda: 2
valid-typeof: 2
#
# Our custom rules
#
nodeca/indent: [ 2, spaces, 2 ]

141
.eslintrc.yml

@ -0,0 +1,141 @@
env:
node: true
browser: false
rules:
accessor-pairs: 2
array-bracket-spacing: [ 2, "always", { "singleValue": true, "objectsInArrays": true, "arraysInArrays": true } ]
block-scoped-var: 2
block-spacing: 2
brace-style: [ 2, '1tbs', { allowSingleLine: true } ]
# Postponed
#callback-return: 2
comma-dangle: 2
comma-spacing: 2
comma-style: 2
computed-property-spacing: [ 2, never ]
consistent-this: [ 2, self ]
consistent-return: 2
# ? change to multi
curly: [ 2, 'multi-line' ]
dot-notation: 2
eol-last: 2
eqeqeq: 2
func-style: [ 2, declaration ]
# Postponed
#global-require: 2
guard-for-in: 2
handle-callback-err: 2
indent: [ 2, 2, { VariableDeclarator: { var: 2, let: 2, const: 3 }, SwitchCase: 1 } ]
# key-spacing: [ 2, { "align": "value" } ]
keyword-spacing: 2
linebreak-style: 2
max-depth: [ 1, 6 ]
max-nested-callbacks: [ 1, 4 ]
# string can exceed 80 chars, but should not overflow github website :)
max-len: [ 2, 120, 1000 ]
new-cap: 2
new-parens: 2
# Postponed
#newline-after-var: 2
no-alert: 2
no-array-constructor: 2
no-bitwise: 2
no-caller: 2
#no-case-declarations: 2
no-catch-shadow: 2
no-cond-assign: 2
no-console: 1
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-delete-var: 2
no-div-regex: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-else-return: 2
# Tend to drop
# no-empty: 1
no-empty-character-class: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-ex-assign: 2
no-extend-native: 2
no-extra-bind: 2
no-extra-boolean-cast: 2
no-extra-semi: 2
no-fallthrough: 2
no-floating-decimal: 2
no-func-assign: 2
# Postponed
#no-implicit-coercion: [2, { "boolean": true, "number": true, "string": true } ]
no-implied-eval: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-iterator: 2
no-label-var: 2
no-labels: 2
no-lone-blocks: 2
no-lonely-if: 2
no-loop-func: 2
no-mixed-requires: 2
no-mixed-spaces-and-tabs: 2
# Postponed
#no-native-reassign: 2
no-negated-in-lhs: 2
# Postponed
#no-nested-ternary: 2
no-new: 2
no-new-func: 2
no-new-object: 2
no-new-require: 2
no-new-wrappers: 2
no-obj-calls: 2
no-octal: 2
no-octal-escape: 2
no-path-concat: 2
no-proto: 2
no-redeclare: 2
# Postponed
#no-regex-spaces: 2
no-return-assign: 2
no-self-compare: 2
no-sequences: 2
no-shadow: 2
no-shadow-restricted-names: 2
no-sparse-arrays: 2
no-trailing-spaces: 2
no-undef: 2
no-undef-init: 2
no-undefined: 2
no-unexpected-multiline: 2
no-unreachable: 2
no-unused-expressions: 2
no-unused-vars: 2
no-use-before-define: 2
no-void: 2
no-with: 2
object-curly-spacing: [ 2, always, { "objectsInObjects": true, "arraysInObjects": true } ]
operator-assignment: 1
# Postponed
#operator-linebreak: [ 2, after ]
semi: 2
semi-spacing: 2
space-before-function-paren: [ 2, { "anonymous": "always", "named": "never" } ]
space-in-parens: [ 2, never ]
space-infix-ops: 2
space-unary-ops: 2
# Postponed
#spaced-comment: [ 1, always, { exceptions: [ '/', '=' ] } ]
strict: [ 2, global ]
quotes: [ 2, single, avoid-escape ]
quote-props: [ 1, 'as-needed', { "keywords": true } ]
radix: 2
use-isnan: 2
valid-typeof: 2
yoda: [ 2, never, { "exceptRange": true } ]

2
Makefile

@ -38,7 +38,7 @@ gh-demo: demo
rm -rf ./demo
lint:
eslint --reset .
eslint .
test: lint
mocha

2
benchmark/implementations/commonmark-reference/index.js

@ -4,6 +4,6 @@ var commonmark = require('commonmark');
var parser = new commonmark.Parser();
var renderer = new commonmark.HtmlRenderer();
exports.run = function(data) {
exports.run = function (data) {
return renderer.render(parser.parse(data));
};

2
benchmark/implementations/current-commonmark/index.js

@ -9,6 +9,6 @@ var encode = md.utils.lib.mdurl.encode;
md.normalizeLink = function (url) { return encode(url); };
md.normalizeLinkText = function (str) { return str; };
exports.run = function(data) {
exports.run = function (data) {
return md.render(data);
};

2
benchmark/implementations/current/index.js

@ -6,6 +6,6 @@ var md = require('../../../')({
typographer: true
});
exports.run = function(data) {
exports.run = function (data) {
return md.render(data);
};

2
benchmark/implementations/markdown-it-2.2.1-commonmark/index.js

@ -2,6 +2,6 @@
var md = require('./src')('commonmark');
exports.run = function(data) {
exports.run = function (data) {
return md.render(data);
};

2
benchmark/implementations/marked-0.3.2/index.js

@ -2,6 +2,6 @@
var marked = require('marked');
exports.run = function(data) {
exports.run = function (data) {
return marked(data);
};

4
bin/markdown-it.js

@ -50,9 +50,9 @@ function readFile(filename, encoding, callback) {
// read from stdin
var chunks = [];
process.stdin.on('data', function(chunk) { chunks.push(chunk); });
process.stdin.on('data', function (chunk) { chunks.push(chunk); });
process.stdin.on('end', function() {
process.stdin.on('end', function () {
return callback(null, Buffer.concat(chunks).toString(encoding));
});
} else {

4
lib/common/utils.js

@ -113,7 +113,7 @@ function unescapeMd(str) {
function unescapeAll(str) {
if (str.indexOf('\\') < 0 && str.indexOf('&') < 0) { return str; }
return str.replace(UNESCAPE_ALL_RE, function(match, escaped, entity) {
return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {
if (escaped) { return escaped; }
return replaceEntityPattern(match, entity);
});
@ -145,7 +145,7 @@ function escapeHtml(str) {
var REGEXP_ESCAPE_RE = /[.?*+^$[\]\\(){}|-]/g;
function escapeRE (str) {
function escapeRE(str) {
return str.replace(REGEXP_ESCAPE_RE, '\\$&');
}

2
lib/parser_block.js

@ -111,7 +111,7 @@ ParserBlock.prototype.tokenize = function (state, startLine, endLine) {
ParserBlock.prototype.parse = function (src, md, env, outTokens) {
var state;
if (!src) { return []; }
if (!src) { return; }
state = new this.State(src, md, env, outTokens);

8
lib/rules_core/replacements.js

@ -23,10 +23,10 @@ var SCOPED_ABBR_TEST_RE = /\((c|tm|r|p)\)/i;
var SCOPED_ABBR_RE = /\((c|tm|r|p)\)/ig;
var SCOPED_ABBR = {
'c': '©',
'r': '®',
'p': '§',
'tm': '™'
c: '©',
r: '®',
p: '§',
tm: '™'
};
function replaceFn(match, name) {

2
lib/rules_inline/escape.js

@ -9,7 +9,7 @@ var ESCAPED = [];
for (var i = 0; i < 256; i++) { ESCAPED.push(0); }
'\\!"#$%&\'()*+,./:;<=>?@[]^_`{|}~-'
.split('').forEach(function(ch) { ESCAPED[ch.charCodeAt(0)] = 1; });
.split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });
module.exports = function escape(state, silent) {

2
package.json

@ -40,7 +40,7 @@
"chai": "^3.4.1",
"commonmark": "~0.25.0",
"coveralls": "~2.11.9",
"eslint": "0.24.0",
"eslint": "~2.6.0",
"eslint-plugin-nodeca": "^1.0.0",
"highlight.js": "^9.2.0",
"istanbul": "*",

10
support/demo_template/index.js

@ -156,7 +156,7 @@ function mdInit() {
return '<table class="table table-striped">\n';
};
// Replace emoji codes with images
mdHtml.renderer.rules.emoji = function(token, idx) {
mdHtml.renderer.rules.emoji = function (token, idx) {
return window.twemoji.parse(token[idx].content);
};
@ -249,7 +249,7 @@ function buildScrollMap() {
lineHeightMap = [];
acc = 0;
textarea.val().split('\n').forEach(function(str) {
textarea.val().split('\n').forEach(function (str) {
var h, lh;
lineHeightMap.push(acc);
@ -273,7 +273,7 @@ function buildScrollMap() {
nonEmptyList.push(0);
_scrollMap[0] = 0;
$('.line').each(function(n, el) {
$('.line').each(function (n, el) {
var $el = $(el), t = $el.data('line');
if (t === '') { return; }
t = lineHeightMap[t];
@ -405,10 +405,10 @@ function loadPermalink() {
//////////////////////////////////////////////////////////////////////////////
// Init on page load
//
$(function() {
$(function () {
// highlight snippet
if (window.hljs) {
$('pre.code-sample code').each(function(i, block) {
$('pre.code-sample code').each(function (i, block) {
window.hljs.highlightBlock(block);
});
}

3
support/demodata.js

@ -2,7 +2,8 @@
// Build demo data for embedding into html
/*eslint no-console:0*/
/*eslint-disable no-console*/
'use strict';
var fs = require('fs');
var path = require('path');

4
support/markdown-it.js

@ -31,11 +31,11 @@ function readFile(filename, encoding, callback) {
var chunks = [];
process.stdin.on('data', function(chunk) {
process.stdin.on('data', function (chunk) {
chunks.push(chunk);
});
process.stdin.on('end', function() {
process.stdin.on('end', function () {
return callback(null, Buffer.concat(chunks).toString(encoding));
});
} else {

51
support/specsplit.js

@ -44,11 +44,11 @@ function readFile(filename, encoding, callback) {
var chunks = [];
process.stdin.on('data', function(chunk) {
process.stdin.on('data', function (chunk) {
chunks.push(chunk);
});
process.stdin.on('end', function() {
process.stdin.on('end', function () {
return callback(null, Buffer.concat(chunks).toString(encoding));
});
} else {
@ -81,30 +81,29 @@ readFile(options.spec, 'utf8', function (error, input) {
token.info.trim() === 'example';
})
.forEach(function (token) {
var arr = token.content.split(/^\.\s*?$/m, 2);
var md = arr[0];
var html = arr[1].replace(/^\n/, '');
var result = {
md: md,
html: html,
line: token.map[0],
err: ''
};
try {
if (markdown.render(md) === normalize(html)) {
good.push(result);
} else {
result.err = markdown.render(md);
bad.push(result);
}
} catch (___) {
// bad.push(result);
throw ___;
}
});
var arr = token.content.split(/^\.\s*?$/m, 2);
var md = arr[0];
var html = arr[1].replace(/^\n/, '');
var result = {
md: md,
html: html,
line: token.map[0],
err: ''
};
try {
if (markdown.render(md) === normalize(html)) {
good.push(result);
} else {
result.err = markdown.render(md);
bad.push(result);
}
} catch (___) {
// bad.push(result);
throw ___;
}
});
if (!options.type) {
console.log(util.format('passed samples - %s, failed samples - %s', good.length, bad.length));

Loading…
Cancel
Save