aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorache <ache@ache.one>2018-02-04 03:48:32 +0100
committerache <ache@ache.one>2018-02-04 03:48:32 +0100
commita6aab85a6defdef41f9ea086a580cc30536f4005 (patch)
tree5833b97df6e2359a0f5e25d8c10d429b39e425e6
parentConfigure XO to use space (diff)
Work on the style guideline
-rw-r--r--.eslintrc.json188
-rw-r--r--app.js82
-rw-r--r--package.json14
3 files changed, 239 insertions, 45 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..147e056
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,188 @@
+{
+ "parserOptions": {
+ "ecmaVersion": 6,
+ "sourceType": "module"
+ },
+
+ "env": {
+ "es6": true,
+ "node": true,
+ "mocha": true
+ },
+
+ "plugins": [],
+
+ "globals": {
+ "document": false,
+ "navigator": false,
+ "window": false,
+ "expect": true
+ },
+
+ "rules": {
+ "accessor-pairs": 2,
+ "array-bracket-spacing": [1, "never"],
+ "arrow-spacing": [2, {"before": true, "after": true}],
+ "block-spacing": [2, "always"],
+ "brace-style": [2, "1tbs", {"allowSingleLine": true}],
+ "camelcase": [2, {"properties": "never"}],
+ "comma-dangle": [1, "always-multiline"],
+ "comma-spacing": [2, {"before": false, "after": true}],
+ "comma-style": [2, "last"],
+ "computed-property-spacing": [2, "never"],
+ "constructor-super": 2,
+ "curly": [2, "multi-line"],
+ "dot-location": [2, "property"],
+ "eol-last": [2, "always"],
+ "eqeqeq": [2, "allow-null"],
+ "func-call-spacing": [2, "never"],
+ "callback-return": [1, ["callback", "cb", "done"]],
+ "handle-callback-err": [2, "^(err|error)$"],
+ "indent": [2, 2, {
+ "SwitchCase": 1,
+ "VariableDeclarator": 1,
+ "outerIIFEBody": 1,
+ "FunctionDeclaration": {
+ "parameters": 1,
+ "body": 1
+ },
+ "FunctionExpression": {
+ "parameters": 1,
+ "body": 1
+ }
+ }],
+ "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
+ "keyword-spacing": [2, {"before": true, "after": true}],
+ "linebreak-style": [2, "unix"],
+ "max-len": ["error", {
+ "code": 100,
+ "ignoreRegExpLiterals": true,
+ "ignorePattern": "^\\s*const\\s.+=\\s*require\\s*\\("
+ }],
+ "new-cap": [2, {"newIsCap": true, "capIsNew": false}],
+ "new-parens": 2,
+ "newline-per-chained-call": [2, {"ignoreChainWithDepth": 4}],
+ "no-array-constructor": 2,
+ "no-caller": 2,
+ "no-class-assign": 2,
+ "no-cond-assign": 2,
+ "no-console": [1, {"allow": ["error"]}],
+ "no-const-assign": 2,
+ "no-constant-condition": [2, {"checkLoops": false}],
+ "no-control-regex": 2,
+ "no-debugger": 2,
+ "no-delete-var": 2,
+ "no-dupe-args": 2,
+ "no-dupe-class-members": 2,
+ "no-dupe-keys": 2,
+ "no-duplicate-case": 2,
+ "no-duplicate-imports": 2,
+ "no-empty-character-class": 2,
+ "no-empty-pattern": 2,
+ "no-eval": 2,
+ "no-ex-assign": 2,
+ "no-extend-native": 2,
+ "no-extra-bind": 2,
+ "no-extra-boolean-cast": 2,
+ "no-extra-parens": [2, "functions"],
+ "no-fallthrough": 2,
+ "no-floating-decimal": 2,
+ "no-func-assign": 2,
+ "no-global-assign": 2,
+ "no-implied-eval": 2,
+ "no-inner-declarations": [2, "functions"],
+ "no-invalid-regexp": 2,
+ "no-irregular-whitespace": 2,
+ "no-iterator": 2,
+ "no-label-var": 2,
+ "no-labels": [2, {"allowLoop": false, "allowSwitch": false}],
+ "no-lone-blocks": 2,
+ "no-lonely-if": 2,
+ "no-mixed-operators": [2, {
+ "groups": [
+ ["+", "-", "*", "/", "%", "**"],
+ ["&", "|", "^", "~", "<<", ">>", ">>>"],
+ ["==", "!=", "===", "!==", ">", ">=", "<", "<="],
+ ["&&", "||"],
+ ["in", "instanceof"]
+ ],
+ "allowSamePrecedence": false
+ }],
+ "no-mixed-spaces-and-tabs": 2,
+ "no-multi-spaces": 2,
+ "no-multi-str": 2,
+ "no-multiple-empty-lines": [2, {"max": 2}],
+ "no-native-reassign": 2,
+ "no-negated-in-lhs": 2,
+ "no-nested-ternary": 2,
+ "no-new": 2,
+ "no-new-func": 2,
+ "no-new-object": 2,
+ "no-new-require": 2,
+ "no-new-symbol": 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,
+ "no-regex-spaces": 2,
+ "no-return-assign": [2, "except-parens"],
+ "no-self-assign": 2,
+ "no-self-compare": 2,
+ "no-sequences": 2,
+ "no-shadow-restricted-names": 2,
+ "no-sparse-arrays": 2,
+ "no-tabs": 2,
+ "no-template-curly-in-string": 2,
+ "no-this-before-super": 2,
+ "no-throw-literal": 2,
+ "no-trailing-spaces": 2,
+ "no-undef": 2,
+ "no-undef-init": 2,
+ "no-unexpected-multiline": 2,
+ "no-unmodified-loop-condition": 2,
+ "no-unneeded-ternary": [2, {"defaultAssignment": false}],
+ "no-unreachable": 2,
+ "no-unsafe-finally": 2,
+ "no-unsafe-negation": 2,
+ "no-unused-vars": [2, {"vars": "all", "args": "none"}],
+ "no-useless-call": 2,
+ "no-useless-computed-key": 2,
+ "no-useless-constructor": 2,
+ "no-useless-escape": 2,
+ "no-useless-rename": 2,
+ "no-var": 2,
+ "no-whitespace-before-property": 2,
+ "no-with": 2,
+ "object-curly-spacing": [1, "never"],
+ "object-property-newline": [2, {"allowMultiplePropertiesPerLine": true}],
+ "one-var": [2, {"initialized": "never"}],
+ "operator-linebreak": [2, "after", {"overrides": {"?": "before", ":": "before"}}],
+ "padded-blocks": [0, "never"],
+ "prefer-template": 2,
+ "prefer-const": [2, {"destructuring": "any", "ignoreReadBeforeAssign": true}],
+ "quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
+ "rest-spread-spacing": [2, "never"],
+ "space-before-blocks": [2, "always"],
+ "space-before-function-paren": ["error", {
+ "anonymous": "always",
+ "named": "never",
+ "asyncArrow": "always"
+ }],
+ "space-in-parens": [2, "never"],
+ "space-infix-ops": 2,
+ "space-unary-ops": [2, {"words": true, "nonwords": false}],
+ "spaced-comment": [2, "always",
+ {"line": {"markers": ["*package", "!", ","]}, "block": {"balanced": true, "markers": ["*package", "!", ","], "exceptions": ["*"]}}
+ ],
+ "template-curly-spacing": [2, "never"],
+ "unicode-bom": [2, "never"],
+ "use-isnan": 2,
+ "valid-typeof": 2,
+ "wrap-iife": [2, "any", {"functionPrototypeMethods": true}],
+ "yield-star-spacing": [2, "both"],
+ "yoda": [2, "never"]
+ }
+}
diff --git a/app.js b/app.js
index b71f579..6f8b5d5 100644
--- a/app.js
+++ b/app.js
@@ -13,65 +13,67 @@ function visitBlockquote(ast) {
if (firstNode.type === 'paragraph') {
if (firstNode.children[0].type === 'text') {
- if (firstNode.children[0].value.startsWith('!secret')) {
+ const firstChild = firstNode.children[0];
+ if (firstChild.value.startsWith('!secret')) {
node.type = 'div';
- firstNode.children[0].value = firstNode.children[0].value.substr(7);
+ firstChild.value = firstChild.value.substr(7);
let sum = '';
- if (firstNode.children[0].value.indexOf('\n') >= 0) {
- sum = firstNode.children[0].value.substr(0,
- firstNode.children[0].value.indexOf('\n'));
- firstNode.children[0].value = firstNode.children[0].value.substr(
- firstNode.children[0].value.indexOf('\n'));
+ if (firstChild.value.indexOf('\n') >= 0) {
+ sum = firstChild.value.substr(0,
+ firstChild.value.indexOf('\n'));
+ firstChild.value = firstChild.value.substr(
+ firstChild.value.indexOf('\n'));
} else {
- sum = firstNode.children[0].value;
- firstNode.children[0].value = '';
+ sum = firstChild.value;
+ firstChild.value = '';
}
const secret = {
type: 'special-box-secret',
- children: [{
- type: 'summary',
- data: {
- hName: 'summary',
- hChildren: [{
- type: 'text',
- value: sum ? sum : 'Spoiler'
- }]
- }
- },
- node],
+ children: [
+ node,
+ {
+ type: 'summary',
+ data: {
+ hName: 'summary',
+ hChildren: [{
+ type: 'text',
+ value: sum || 'Spoiler',
+ }],
+ },
+ },
+ ],
data: {
hName: 'details',
hProperties: {
- className: 'special-box secret'
- }
- }
+ className: 'special-box secret',
+ },
+ },
};
parent.children.splice(index, 1, secret);
return node;
- } else if (firstNode.children[0].value.startsWith('!information') ||
- firstNode.children[0].value.startsWith('!good') ||
- firstNode.children[0].value.startsWith('!bad') ||
- firstNode.children[0].value.startsWith('!comment') ||
- firstNode.children[0].value.startsWith('!attention') ||
- firstNode.children[0].value.startsWith('!question')) {
+ } else if (firstChild.value.startsWith('!information') ||
+ firstChild.value.startsWith('!good') ||
+ firstChild.value.startsWith('!bad') ||
+ firstChild.value.startsWith('!comment') ||
+ firstChild.value.startsWith('!attention') ||
+ firstChild.value.startsWith('!question')) {
node.type = 'div';
node.data = {
hName: 'div',
hProperties: {
- className: 'special-box-content'
- }
+ className: 'special-box-content',
+ },
};
let type = '';
- if (firstNode.children[0].value.indexOf('\n') > 0) {
- type = firstNode.children[0].value.substr(1, firstNode.children[0].value.indexOf('\n'));
- firstNode.children[0].value = firstNode.children[0].value.substr(firstNode.children[0].value.indexOf('\n'));
- console.log(type);
+ if (firstChild.value.indexOf('\n') > 0) {
+ type = firstChild.value.substr(1, firstChild.value.indexOf('\n'));
+ firstChild.value = firstChild.value.substr(firstChild.value.indexOf('\n'));
} else {
- type = firstNode.children[0].value.substr(1);
- firstNode.children[0].value = '';
+ type = firstChild.value.substr(1);
+ firstChild.value = '';
}
const box = {
@@ -80,9 +82,9 @@ function visitBlockquote(ast) {
data: {
hName: 'div',
hProperties: {
- className: 'special-box ' + type
- }
- }
+ className: `special-box ${type}`,
+ },
+ },
};
parent.children.splice(index, 1, box);
diff --git a/package.json b/package.json
index 4035be2..ae516fe 100644
--- a/package.json
+++ b/package.json
@@ -1,26 +1,30 @@
{
"name": "remark-special-box",
"version": "0.1.0",
- "description": "A remark plugin for Markdown that replaces `mermaid` to block.",
+ "description": "A remark plugin for Markdown that parse special blox",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
- "fs-extra": "^4.0.1",
- "npm-which": "^3.0.1",
"unist-util-visit": "^1.1.3"
},
"author": "ache",
"license": "MIT",
"keywords": [
- "boxes",
+ "box",
"remark"
],
"devDependencies": {
"xo": "^0.18.2"
},
"xo" : {
- "space" : true
+ "space" : true,
+ "rules": {
+ "comma-dangle": [
+ "error",
+ "always-multiline"
+ ]
+ }
}
}