@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
62 lines (61 loc) • 3.42 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.codeMacro = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _commonMacro = require("./common-macro");
var _attrs = require("../utils/attrs");
var _title = require("../utils/title");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var SUPPORTED_CODEBOCK_LANGUAGES = ['abap', 'actionscript', 'ada', 'arduino', 'autoit', 'c', 'c++', 'clojure', 'coffeescript', 'csharp', 'css', 'cuda', 'd', 'dart', 'delphi', 'elixir', 'erlang', 'fortran', 'foxpro', 'go', 'groovy', 'haskell', 'haxe', 'html', 'java', 'javascript', 'json', 'julia', 'kotlin', 'latex', 'livescript', 'lua', 'mathematica', 'matlab', 'objective-c', 'objective-j', 'objectpascal', 'ocaml', 'octave', 'perl', 'php', 'powershell', 'prolog', 'puppet', 'python', 'qml', 'r', 'racket', 'restructuredtext', 'ruby', 'rust', 'sass', 'scala', 'scheme', 'shell', 'smalltalk', 'sql', 'standardml', 'swift', 'tcl', 'tex', 'typescript', 'vala', 'vbnet', 'verilog', 'vhdl', 'xml', 'xquery'];
var codeMacro = exports.codeMacro = function codeMacro(_ref) {
var input = _ref.input,
position = _ref.position,
schema = _ref.schema,
context = _ref.context;
return (0, _commonMacro.commonMacro)(input.substring(position), schema, {
keyword: 'code',
paired: true,
context: context,
rawContentProcessor: rawContentProcessor
});
};
var rawContentProcessor = function rawContentProcessor(rawAttrs, rawContent, length, schema) {
var output = [];
var codeBlock = schema.nodes.codeBlock;
var parsedAttrs = (0, _attrs.parseAttrs)(rawAttrs);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
var trimedContent = rawContent.replace(/^\s+|\s+$/g, '');
var textNode = trimedContent.length ? schema.text(trimedContent) : undefined;
if (parsedAttrs.title) {
output.push((0, _title.title)(parsedAttrs.title, schema));
}
var nodeAttrs = _objectSpread(_objectSpread({}, parsedAttrs), {}, {
language: getCodeLanguage(parsedAttrs)
});
output.push(codeBlock.createChecked(nodeAttrs, textNode));
return {
type: 'pmnode',
nodes: output,
length: length
};
};
function getCodeLanguage(attrs) {
var keys = Object.keys(attrs).map(function (key) {
return key.toLowerCase();
});
for (var _i = 0, _SUPPORTED_CODEBOCK_L = SUPPORTED_CODEBOCK_LANGUAGES; _i < _SUPPORTED_CODEBOCK_L.length; _i++) {
var language = _SUPPORTED_CODEBOCK_L[_i];
if (keys.indexOf(language) !== -1) {
return language;
}
}
if (keys.indexOf('objc') !== -1) {
return 'objective-c';
}
return 'java';
}