gatsby-remark-code-repls
Advanced tools
Comparing version 1.1.0-alpha.3f307d61 to 1.1.0-alpha.53bbd4cd
"use strict"; | ||
exports.__esModule = true; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
exports.__esModule = true; | ||
exports.default = void 0; | ||
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); | ||
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _react = _interopRequireWildcard(require("react")); | ||
var _inherits2 = require("babel-runtime/helpers/inherits"); | ||
var _propTypes = _interopRequireDefault(require("prop-types")); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var GatsbyRemarkCodeReplsRedirect = | ||
/*#__PURE__*/ | ||
function (_Component) { | ||
(0, _inheritsLoose2.default)(GatsbyRemarkCodeReplsRedirect, _Component); | ||
var _react = require("react"); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _propTypes = require("prop-types"); | ||
var _propTypes2 = _interopRequireDefault(_propTypes); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var GatsbyRemarkCodeReplsRedirect = function (_Component) { | ||
(0, _inherits3.default)(GatsbyRemarkCodeReplsRedirect, _Component); | ||
function GatsbyRemarkCodeReplsRedirect() { | ||
(0, _classCallCheck3.default)(this, GatsbyRemarkCodeReplsRedirect); | ||
return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments)); | ||
return _Component.apply(this, arguments) || this; | ||
} | ||
GatsbyRemarkCodeReplsRedirect.prototype.componentDidMount = function componentDidMount() { | ||
var _proto = GatsbyRemarkCodeReplsRedirect.prototype; | ||
_proto.componentDidMount = function componentDidMount() { | ||
this.form.submit(); | ||
}; | ||
GatsbyRemarkCodeReplsRedirect.prototype.render = function render() { | ||
var _this2 = this; | ||
_proto.render = function render() { | ||
var _this = this; | ||
var _props$pathContext = this.props.pathContext, | ||
action = _props$pathContext.action, | ||
payload = _props$pathContext.payload; | ||
return _react2.default.createElement( | ||
"form", | ||
{ | ||
style: { paddingBottom: "50px" }, | ||
ref: function ref(form) { | ||
_this2.form = form; | ||
}, | ||
action: action, | ||
method: "POST" | ||
var _props$pageContext = this.props.pageContext, | ||
action = _props$pageContext.action, | ||
payload = _props$pageContext.payload; | ||
return _react.default.createElement("form", { | ||
style: { | ||
paddingBottom: "50px" | ||
}, | ||
_react2.default.createElement("input", { type: "hidden", name: "data", value: payload }), | ||
_react2.default.createElement( | ||
"p", | ||
null, | ||
"Not automatically redirecting?" | ||
), | ||
_react2.default.createElement( | ||
"p", | ||
null, | ||
_react2.default.createElement("input", { type: "submit", value: "Click here" }) | ||
) | ||
); | ||
ref: function ref(form) { | ||
_this.form = form; | ||
}, | ||
action: action, | ||
method: "POST" | ||
}, _react.default.createElement("input", { | ||
type: "hidden", | ||
name: "data", | ||
value: payload | ||
}), _react.default.createElement("p", null, "Not automatically redirecting?"), _react.default.createElement("p", null, _react.default.createElement("input", { | ||
type: "submit", | ||
value: "Click here" | ||
}))); | ||
}; | ||
@@ -75,8 +60,8 @@ | ||
GatsbyRemarkCodeReplsRedirect.propTypes = { | ||
pathContext: _propTypes2.default.shape({ | ||
action: _propTypes2.default.string.isRequired, | ||
payload: _propTypes2.default.object.isRequired | ||
pageContext: _propTypes.default.shape({ | ||
action: _propTypes.default.string.isRequired, | ||
payload: _propTypes.default.object.isRequired | ||
}).isRequired | ||
}; | ||
exports.default = GatsbyRemarkCodeReplsRedirect; | ||
var _default = GatsbyRemarkCodeReplsRedirect; | ||
exports.default = _default; |
"use strict"; | ||
var _stringify = require("babel-runtime/core-js/json/stringify"); | ||
var _JSON$stringify = require("@babel/runtime/core-js/json/stringify"); | ||
var _stringify2 = _interopRequireDefault(_stringify); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var fs = require("fs"); | ||
@@ -16,2 +12,3 @@ | ||
var recursiveReaddir = require("recursive-readdir-synchronous"); | ||
var normalizePath = require("normalize-path"); | ||
@@ -24,14 +21,14 @@ | ||
exports.createPages = function (_ref) { | ||
exports.createPages = function (_ref, _temp) { | ||
var actions = _ref.actions; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
var _ref2 = _temp === void 0 ? {} : _temp, | ||
_ref2$directory = _ref2.directory, | ||
directory = _ref2$directory === undefined ? OPTION_DEFAULT_LINK_TEXT : _ref2$directory, | ||
directory = _ref2$directory === void 0 ? OPTION_DEFAULT_LINK_TEXT : _ref2$directory, | ||
_ref2$externals = _ref2.externals, | ||
externals = _ref2$externals === undefined ? [] : _ref2$externals, | ||
externals = _ref2$externals === void 0 ? [] : _ref2$externals, | ||
_ref2$html = _ref2.html, | ||
html = _ref2$html === undefined ? OPTION_DEFAULT_HTML : _ref2$html, | ||
html = _ref2$html === void 0 ? OPTION_DEFAULT_HTML : _ref2$html, | ||
_ref2$redirectTemplat = _ref2.redirectTemplate, | ||
redirectTemplate = _ref2$redirectTemplat === undefined ? OPTION_DEFAULT_REDIRECT_TEMPLATE_PATH : _ref2$redirectTemplat; | ||
redirectTemplate = _ref2$redirectTemplat === void 0 ? OPTION_DEFAULT_REDIRECT_TEMPLATE_PATH : _ref2$redirectTemplat; | ||
@@ -44,3 +41,2 @@ if (!directory.endsWith("/")) { | ||
if (!fs.existsSync(directory)) { | ||
@@ -52,7 +48,7 @@ throw Error("Invalid REPL directory specified: \"" + directory + "\""); | ||
throw Error("Invalid REPL redirectTemplate specified: \"" + redirectTemplate + "\""); | ||
} | ||
// TODO We could refactor this to use 'recursive-readdir' instead, | ||
} // TODO We could refactor this to use 'recursive-readdir' instead, | ||
// And wrap with Promise.all() to execute createPage() in parallel. | ||
// I'd need to find a way to reliably test error handling though. | ||
var files = recursiveReaddir(directory); | ||
@@ -62,3 +58,2 @@ | ||
console.warn("Specified REPL directory \"" + directory + "\" contains no files"); | ||
return; | ||
@@ -70,8 +65,8 @@ } | ||
var slug = file.substring(0, file.length - extname(file).length).replace(new RegExp("^" + directory), "redirect-to-codepen/"); | ||
var code = fs.readFileSync(file, "utf8"); | ||
var code = fs.readFileSync(file, "utf8"); // Codepen configuration. | ||
// https://blog.codepen.io/documentation/api/prefill/ | ||
// Codepen configuration. | ||
// https://blog.codepen.io/documentation/api/prefill/ | ||
var action = "https://codepen.io/pen/define"; | ||
var payload = (0, _stringify2.default)({ | ||
var payload = _JSON$stringify({ | ||
editors: "0010", | ||
@@ -78,0 +73,0 @@ html: html, |
56
index.js
"use strict"; | ||
var _stringify = require("babel-runtime/core-js/json/stringify"); | ||
var _JSON$stringify = require("@babel/runtime/core-js/json/stringify"); | ||
var _stringify2 = _interopRequireDefault(_stringify); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var URI = require("urijs"); | ||
var fs = require("fs"); | ||
var LZString = require("lz-string"); | ||
@@ -18,2 +15,3 @@ | ||
var map = require("unist-util-map"); | ||
var normalizePath = require("normalize-path"); | ||
@@ -27,5 +25,3 @@ | ||
PROTOCOL_CODE_SANDBOX = _require2.PROTOCOL_CODE_SANDBOX, | ||
PROTOCOL_RAMDA = _require2.PROTOCOL_RAMDA; | ||
// Matches compression used in Babel and CodeSandbox REPLs | ||
PROTOCOL_RAMDA = _require2.PROTOCOL_RAMDA; // Matches compression used in Babel and CodeSandbox REPLs | ||
// https://github.com/babel/website/blob/master/js/repl/UriUtils.js | ||
@@ -40,5 +36,5 @@ | ||
function convertNodeToLink(node, text, href, target) { | ||
target = target ? "target=\"" + target + "\" rel=\"noreferrer\"" : ""; | ||
delete node.children; | ||
@@ -48,3 +44,2 @@ delete node.position; | ||
delete node.url; | ||
node.type = "html"; | ||
@@ -54,13 +49,13 @@ node.value = "<a href=\"" + href + "\" " + target + ">" + text + "</a>"; | ||
module.exports = function (_ref) { | ||
module.exports = function (_ref, _temp) { | ||
var markdownAST = _ref.markdownAST; | ||
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
var _ref2 = _temp === void 0 ? {} : _temp, | ||
_ref2$defaultText = _ref2.defaultText, | ||
defaultText = _ref2$defaultText === undefined ? OPTION_DEFAULT_LINK_TEXT : _ref2$defaultText, | ||
defaultText = _ref2$defaultText === void 0 ? OPTION_DEFAULT_LINK_TEXT : _ref2$defaultText, | ||
_ref2$dependencies = _ref2.dependencies, | ||
dependencies = _ref2$dependencies === undefined ? [] : _ref2$dependencies, | ||
dependencies = _ref2$dependencies === void 0 ? [] : _ref2$dependencies, | ||
directory = _ref2.directory, | ||
_ref2$html = _ref2.html, | ||
html = _ref2$html === undefined ? OPTION_DEFAULT_HTML : _ref2$html, | ||
html = _ref2$html === void 0 ? OPTION_DEFAULT_HTML : _ref2$html, | ||
target = _ref2.target; | ||
@@ -78,5 +73,7 @@ | ||
var filePath = url.replace(protocol, ""); | ||
if (!filePath.endsWith(".js")) { | ||
filePath += ".js"; | ||
} | ||
filePath = normalizePath(join(directory, filePath)); | ||
@@ -96,9 +93,6 @@ return filePath; | ||
var filePath = getFilePath(node.url, PROTOCOL_BABEL, directory); | ||
verifyFile(filePath); | ||
var code = compress(fs.readFileSync(filePath, "utf8")); | ||
var href = "https://babeljs.io/repl/#?presets=react&code_lz=" + code; | ||
var text = node.children.length === 0 ? defaultText : node.children[0].value; | ||
convertNodeToLink(node, text, href, target); | ||
@@ -111,2 +105,3 @@ } else if (node.url.startsWith(PROTOCOL_CODEPEN)) { | ||
var _href = node.url.replace(PROTOCOL_CODEPEN, "/redirect-to-codepen/"); | ||
var _text = node.children.length === 0 ? defaultText : node.children[0].value; | ||
@@ -120,5 +115,5 @@ | ||
var _code = fs.readFileSync(_filePath2, "utf8"); | ||
var _code = fs.readFileSync(_filePath2, "utf8"); // CodeSandbox GET API requires a list of "files" keyed by name | ||
// CodeSandbox GET API requires a list of "files" keyed by name | ||
var parameters = { | ||
@@ -138,2 +133,3 @@ files: { | ||
} | ||
return map; | ||
@@ -149,8 +145,9 @@ }, {}) | ||
} | ||
} | ||
} // This config JSON must then be lz-string compressed | ||
// This config JSON must then be lz-string compressed | ||
};parameters = compress((0, _stringify2.default)(parameters)); | ||
}; | ||
parameters = compress(_JSON$stringify(parameters)); | ||
var _href2 = "https://codesandbox.io/api/v1/sandboxes/define?parameters=" + parameters; | ||
var _text2 = node.children.length === 0 ? defaultText : node.children[0].value; | ||
@@ -162,18 +159,19 @@ | ||
verifyFile(_filePath3); | ||
verifyFile(_filePath3); // Don't use `compress()` as the Ramda REPL won't understand the output. | ||
// It uses URI to encode the code for its urls, so we do the same. | ||
// Don't use `compress()` as the Ramda REPL won't understand the output. | ||
// It uses URI to encode the code for its urls, so we do the same. | ||
var _code2 = URI.encode(fs.readFileSync(_filePath3, "utf8")); | ||
var _href3 = "http://ramdajs.com/repl/#?" + _code2; | ||
var _text3 = node.children.length === 0 ? defaultText : node.children[0].value; | ||
convertNodeToLink(node, _text3, _href3, target); | ||
} | ||
} | ||
} // No change | ||
// No change | ||
return node; | ||
}); | ||
return markdownAST; | ||
}; |
{ | ||
"name": "gatsby-remark-code-repls", | ||
"description": "Gatsby plugin to auto-generate links to popular REPLs like Babel and Codepen", | ||
"version": "1.1.0-alpha.3f307d61", | ||
"version": "1.1.0-alpha.53bbd4cd", | ||
"author": "Brian Vaughn <brian.david.vaughn@gmail.com>", | ||
"dependencies": { | ||
"babel-runtime": "^6.26.0", | ||
"@babel/runtime": "^7.0.0-beta.38", | ||
"lz-string": "^1.4.4", | ||
@@ -15,3 +15,4 @@ "normalize-path": "^2.1.1", | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"@babel/cli": "^7.0.0-beta.38", | ||
"@babel/core": "^7.0.0-beta.38", | ||
"cross-env": "^5.0.5" | ||
@@ -30,6 +31,6 @@ }, | ||
"scripts": { | ||
"build": "babel src --out-dir . --ignore __tests__", | ||
"watch": "babel -w src --out-dir . --ignore __tests__", | ||
"build": "babel src --out-dir . --ignore ./**/__tests__/", | ||
"watch": "babel -w src --out-dir . --ignore ./**/__tests__/", | ||
"prepublish": "cross-env NODE_ENV=production npm run build" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
16597
3
251
+ Added@babel/runtime@7.26.9(transitive)
+ Addedregenerator-runtime@0.14.1(transitive)
- Removedbabel-runtime@^6.26.0
- Removedbabel-runtime@6.26.0(transitive)
- Removedcore-js@2.6.12(transitive)
- Removedregenerator-runtime@0.11.1(transitive)