aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorache <ache@ache.one>2019-01-21 03:47:02 +0100
committerache <ache@ache.one>2019-01-21 03:47:02 +0100
commit13506cf34fe1bb10050c369409a9d98fc2c15cfa (patch)
treed2367c7d3d68fd4846e8e50ae08c81999ecfa8e8
parentOups where is index.js (diff)
New eslintrc rules (exceptions)HEADmaster
-rw-r--r--.eslintrc.json188
-rw-r--r--dist/index.js120
-rw-r--r--package.json2
-rw-r--r--src/index.js19
4 files changed, 129 insertions, 200 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index 147e056..0000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,188 +0,0 @@
-{
- "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/dist/index.js b/dist/index.js
index 9a390c3..843e7fc 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1 +1,119 @@
-"use strict"; \ No newline at end of file
+"use strict";
+
+var visit = require('unist-util-visit');
+/**
+ * Given the MDAST ast, look for all fenced Blockquote
+ *
+ * @param {object} ast
+ * @param {vFile} vFile
+ * @return {function}
+ */
+
+
+function visitBlockquote(ast) {
+ return visit(ast, 'blockquote', function (node, index, parent) {
+ var firstNode = node.children[0];
+
+ if (firstNode.type === 'paragraph') {
+ if (firstNode.children[0].type === 'text') {
+ var firstChild = firstNode.children[0];
+
+ if (firstChild.value.startsWith('!secret')) {
+ node.type = 'div';
+ firstChild.value = firstChild.value.substr(7);
+ var sum = '';
+
+ if (firstChild.value.indexOf('\n') >= 0) {
+ sum = firstChild.value.substr(0, firstChild.value.indexOf('\n')).trim();
+ firstChild.value = firstChild.value.substr(firstChild.value.indexOf('\n') + 1);
+ } else {
+ sum = firstChild.value;
+ firstChild.value = '';
+ }
+
+ var secret = {
+ type: 'special-box-secret',
+ children: [node, {
+ type: 'summary',
+ data: {
+ hName: 'summary',
+ hChildren: [{
+ type: 'text',
+ value: sum || 'Spoiler'
+ }]
+ }
+ }],
+ data: {
+ hName: 'details',
+ hProperties: {
+ className: 'special-box secret'
+ }
+ }
+ };
+ parent.children.splice(index, 1, secret);
+ } else if (firstChild.value.startsWith('!information\n') || firstChild.value.startsWith('!good\n') || firstChild.value.startsWith('!bad\n') || firstChild.value.startsWith('!comment\n') || firstChild.value.startsWith('!attention\n') || firstChild.value.startsWith('!question')) {
+ node.type = 'div';
+ node.data = {
+ hName: 'div',
+ hProperties: {
+ className: 'special-box-content'
+ }
+ };
+ var 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') + 1);
+ } else {
+ type = firstChild.value.substr(1);
+ firstChild.value = '';
+ }
+
+ var _box = {
+ type: 'special-box-div',
+ children: [node],
+ data: {
+ hName: 'div',
+ hProperties: {
+ className: "special-box ".concat(type)
+ }
+ }
+ };
+ parent.children.splice(index, 1, _box);
+ }
+ }
+ }
+
+ return node;
+ });
+}
+/**
+ * Returns the transformer which acst on the MDAST tree and given VFile.
+ *
+ * @link https://github.com/unifiedjs/unified#function-transformernode-file-next
+ * @link https://github.com/syntax-tree/mdast
+ * @link https://github.com/vfile/vfile
+ * @return {function}
+ */
+
+
+function box() {
+ /**
+ * @param {object} ast MDAST
+ * @param {vFile} vFile
+ * @param {function} next
+ * @return {object}
+ */
+ return function (ast, vFile, next) {
+ // Transformer
+ visitBlockquote(ast);
+
+ if (typeof next === 'function') {
+ return next(null, ast, vFile);
+ }
+
+ return ast;
+ };
+}
+
+module.exports = box; \ No newline at end of file
diff --git a/package.json b/package.json
index 0dd6b49..7668f73 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"description": "A remark plugin for markdown that parse special blox",
"main": "dist/index.js",
"scripts": {
- "pretest": "xo",
+ "pretest": "xo && npm run-script prepare",
"prepare": "del-cli dist && cross-env BABEL_ENV=production babel src --out-dir dist",
"test": "ava"
},
diff --git a/src/index.js b/src/index.js
index 6f8b5d5..0634441 100644
--- a/src/index.js
+++ b/src/index.js
@@ -13,10 +13,12 @@ function visitBlockquote(ast) {
if (firstNode.type === 'paragraph') {
if (firstNode.children[0].type === 'text') {
+
const firstChild = firstNode.children[0];
if (firstChild.value.startsWith('!secret')) {
node.type = 'div';
firstChild.value = firstChild.value.substr(7);
+
let sum = '';
if (firstChild.value.indexOf('\n') >= 0) {
sum = firstChild.value.substr(0,
@@ -52,13 +54,11 @@ function visitBlockquote(ast) {
};
parent.children.splice(index, 1, secret);
-
- return node;
- } else if (firstChild.value.startsWith('!information') ||
- firstChild.value.startsWith('!good') ||
- firstChild.value.startsWith('!bad') ||
- firstChild.value.startsWith('!comment') ||
- firstChild.value.startsWith('!attention') ||
+ } else if (firstChild.value.startsWith('!information\n') ||
+ firstChild.value.startsWith('!good\n') ||
+ firstChild.value.startsWith('!bad\n') ||
+ firstChild.value.startsWith('!comment\n') ||
+ firstChild.value.startsWith('!attention\n') ||
firstChild.value.startsWith('!question')) {
node.type = 'div';
node.data = {
@@ -67,10 +67,11 @@ function visitBlockquote(ast) {
className: 'special-box-content',
},
};
+
let 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'));
+ firstChild.value = firstChild.value.substr(firstChild.value.indexOf('\n') + 1);
} else {
type = firstChild.value.substr(1);
firstChild.value = '';
@@ -88,8 +89,6 @@ function visitBlockquote(ast) {
};
parent.children.splice(index, 1, box);
-
- return node;
}
}
}