浏览代码

Merge pull request #31 from ckeditor/i/6091

Other: Adjusted the data processor implementation to changes in `ckeditor5-engine`. See ckeditor/ckeditor5#6091.

MAJOR BREAKING CHANGES: The `GFMDataProcessor()` requires the view document instance as its first parameter.
Piotrek Koszuliński 5 年之前
父节点
当前提交
ae458e7257

+ 1 - 1
packages/ckeditor5-markdown-gfm/docs/_snippets/features/markdown.js

@@ -14,7 +14,7 @@ import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud
 import GFMDataProcessor from '@ckeditor/ckeditor5-markdown-gfm/src/gfmdataprocessor';
 
 function Markdown( editor ) {
-	editor.data.processor = new GFMDataProcessor();
+	editor.data.processor = new GFMDataProcessor( editor.editing.view.document );
 }
 
 ClassicEditor

+ 1 - 1
packages/ckeditor5-markdown-gfm/docs/features/markdown.md

@@ -45,7 +45,7 @@ import GFMDataProcessor from '@ckeditor/ckeditor5-markdown-gfm/src/gfmdataproces
 
 // Simple plugin which loads the data processor.
 function Markdown( editor ) {
-	editor.data.processor = new GFMDataProcessor();
+	editor.data.processor = new GFMDataProcessor( editor.editing.view.document );
 }
 
 ClassicEditor

+ 7 - 3
packages/ckeditor5-markdown-gfm/src/gfmdataprocessor.js

@@ -21,14 +21,19 @@ import converters from './lib/to-markdown/converters';
  * @implements module:engine/dataprocessor/dataprocessor~DataProcessor
  */
 export default class GFMDataProcessor {
-	constructor() {
+	/**
+	 * Creates a new instance of the Markdown data processor class.
+	 *
+	 * @param {module:engine/view/document~Document} document
+	 */
+	constructor( document ) {
 		/**
 		 * HTML data processor used to process HTML produced by the Markdown-to-HTML converter and the other way.
 		 *
 		 * @private
 		 * @member {module:engine/dataprocessor/htmldataprocessor~HtmlDataProcessor}
 		 */
-		this._htmlDP = new HtmlDataProcessor();
+		this._htmlDP = new HtmlDataProcessor( document );
 	}
 
 	/**
@@ -62,4 +67,3 @@ export default class GFMDataProcessor {
 		return toMarkdown( html, { gfm: true, converters } );
 	}
 }
-

+ 4 - 1
packages/ckeditor5-markdown-gfm/tests/_utils/utils.js

@@ -5,6 +5,8 @@
 
 import MarkdownDataProcessor from '../../src/gfmdataprocessor';
 import { stringify } from '@ckeditor/ckeditor5-engine/src/dev-utils/view.js';
+import ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';
+import { StylesProcessor } from '@ckeditor/ckeditor5-engine/src/view/stylesmap';
 
 /**
  * Tests MarkdownDataProcessor.
@@ -15,7 +17,8 @@ import { stringify } from '@ckeditor/ckeditor5-engine/src/dev-utils/view.js';
  * markdown string (which will be used if this parameter is not provided).
  */
 export function testDataProcessor( markdown, viewString, normalizedMarkdown ) {
-	const dataProcessor = new MarkdownDataProcessor();
+	const viewDocument = new ViewDocument( new StylesProcessor() );
+	const dataProcessor = new MarkdownDataProcessor( viewDocument );
 	const viewFragment = dataProcessor.toView( markdown );
 
 	// Check if view has correct data.

+ 4 - 1
packages/ckeditor5-markdown-gfm/tests/gfmdataprocessor/escaping.js

@@ -5,6 +5,8 @@
 
 import MarkdownDataProcessor from '../../src/gfmdataprocessor';
 import { stringify } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
+import ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';
+import { StylesProcessor } from '@ckeditor/ckeditor5-engine/src/view/stylesmap';
 
 const testCases = {
 	'backslash': { test: '\\\\', result: '\\' },
@@ -27,7 +29,8 @@ describe( 'GFMDataProcessor', () => {
 	let dataProcessor;
 
 	beforeEach( () => {
-		dataProcessor = new MarkdownDataProcessor();
+		const viewDocument = new ViewDocument( new StylesProcessor() );
+		dataProcessor = new MarkdownDataProcessor( viewDocument );
 	} );
 
 	describe( 'escaping', () => {