UNPKG

@atlaskit/editor-wikimarkup-transformer

Version:

Wiki markup transformer for JIRA and Confluence

55 lines 3.14 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; 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) { _defineProperty(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; } import { commonMacro } from './common-macro'; import { parseAttrs } from '../utils/attrs'; import { title } from '../utils/title'; 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']; export var codeMacro = function codeMacro(_ref) { var input = _ref.input, position = _ref.position, schema = _ref.schema, context = _ref.context; return 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 = 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(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'; }