markdown.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * DevExtreme (ui/html_editor/converters/markdown.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. Object.defineProperty(exports, "__esModule", {
  11. value: true
  12. });
  13. var _turndown = require("turndown");
  14. var _turndown2 = _interopRequireDefault(_turndown);
  15. var _showdown = require("showdown");
  16. var _showdown2 = _interopRequireDefault(_showdown);
  17. var _window = require("../../../core/utils/window");
  18. var _ui = require("../../widget/ui.errors");
  19. var _ui2 = _interopRequireDefault(_ui);
  20. var _converterController = require("../converterController");
  21. var _converterController2 = _interopRequireDefault(_converterController);
  22. function _interopRequireDefault(obj) {
  23. return obj && obj.__esModule ? obj : {
  24. "default": obj
  25. }
  26. }
  27. function _classCallCheck(instance, Constructor) {
  28. if (!(instance instanceof Constructor)) {
  29. throw new TypeError("Cannot call a class as a function")
  30. }
  31. }
  32. function _defineProperties(target, props) {
  33. for (var i = 0; i < props.length; i++) {
  34. var descriptor = props[i];
  35. descriptor.enumerable = descriptor.enumerable || false;
  36. descriptor.configurable = true;
  37. if ("value" in descriptor) {
  38. descriptor.writable = true
  39. }
  40. Object.defineProperty(target, descriptor.key, descriptor)
  41. }
  42. }
  43. function _createClass(Constructor, protoProps, staticProps) {
  44. if (protoProps) {
  45. _defineProperties(Constructor.prototype, protoProps)
  46. }
  47. if (staticProps) {
  48. _defineProperties(Constructor, staticProps)
  49. }
  50. Object.defineProperty(Constructor, "prototype", {
  51. writable: false
  52. });
  53. return Constructor
  54. }
  55. var MarkdownConverter = function() {
  56. function MarkdownConverter() {
  57. _classCallCheck(this, MarkdownConverter);
  58. var window = (0, _window.getWindow)();
  59. var turndown = window && window.TurndownService || _turndown2.default;
  60. var showdown = window && window.showdown || _showdown2.default;
  61. if (!turndown) {
  62. throw _ui2.default.Error("E1041", "Turndown")
  63. }
  64. if (!showdown) {
  65. throw _ui2.default.Error("E1041", "Showdown")
  66. }
  67. this._html2Markdown = new turndown;
  68. this._markdown2Html = new showdown.Converter({
  69. simpleLineBreaks: true,
  70. strikethrough: true
  71. })
  72. }
  73. _createClass(MarkdownConverter, [{
  74. key: "toMarkdown",
  75. value: function(htmlMarkup) {
  76. return this._html2Markdown.turndown(htmlMarkup)
  77. }
  78. }, {
  79. key: "toHtml",
  80. value: function(markdownMarkup) {
  81. var markup = this._markdown2Html.makeHtml(markdownMarkup);
  82. if (markup) {
  83. markup = markup.replace(new RegExp("\\r?\\n", "g"), "")
  84. }
  85. return markup
  86. }
  87. }]);
  88. return MarkdownConverter
  89. }();
  90. _converterController2.default.addConverter("markdown", MarkdownConverter);
  91. exports.default = MarkdownConverter;