Przeglądaj źródła

Extended docs and changed input parameter for addLinkProtocol method.

Paweł Kwaśnik 5 lat temu
rodzic
commit
bd744567d9

+ 4 - 3
packages/ckeditor5-link/src/autolink.js

@@ -10,7 +10,7 @@
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import TextWatcher from '@ckeditor/ckeditor5-typing/src/textwatcher';
 import getLastTextLine from '@ckeditor/ckeditor5-typing/src/utils/getlasttextline';
-import { addUrlProtocolIfApplicable } from './utils';
+import { addLinkProtocolIfApplicable } from './utils';
 
 const MIN_LINK_LENGTH_WITH_SPACE_AT_END = 4; // Ie: "t.co " (length 5).
 
@@ -211,7 +211,7 @@ export default class AutoLink extends Plugin {
 	 * @param {module:engine/model/range~Range} range The text range to apply the link attribute to.
 	 * @private
 	 */
-	_applyAutoLink( url, range ) {
+	_applyAutoLink( link, range ) {
 		const model = this.editor.model;
 
 		if ( !this.isEnabled || !isLinkAllowedOnRange( range, model ) ) {
@@ -220,7 +220,8 @@ export default class AutoLink extends Plugin {
 
 		// Enqueue change to make undo step.
 		model.enqueueChange( writer => {
-			const parsedUrl = addUrlProtocolIfApplicable( url, this.editor );
+			const defaultProtocol = this.editor.config.get( 'link.defaultProtocol' );
+			const parsedUrl = addLinkProtocolIfApplicable( link, defaultProtocol );
 			writer.setAttribute( 'linkHref', parsedUrl, range );
 		} );
 	}

+ 2 - 2
packages/ckeditor5-link/src/linkui.js

@@ -9,7 +9,7 @@
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import ClickObserver from '@ckeditor/ckeditor5-engine/src/view/observer/clickobserver';
-import { addUrlProtocolIfApplicable, isLinkElement, LINK_KEYSTROKE } from './utils';
+import { addLinkProtocolIfApplicable, isLinkElement, LINK_KEYSTROKE } from './utils';
 
 import ContextualBalloon from '@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon';
 
@@ -174,7 +174,7 @@ export default class LinkUI extends Plugin {
 		// Execute link command after clicking the "Save" button.
 		this.listenTo( formView, 'submit', () => {
 			const { value } = formView.urlInputView.fieldView.element;
-			const parsedUrl = addUrlProtocolIfApplicable( value, editor );
+			const parsedUrl = addLinkProtocolIfApplicable( value, defaultProtocol );
 			editor.execute( 'link', parsedUrl, formView.getDecoratorSwitchesState() );
 			this._closeFormView();
 		} );

+ 8 - 8
packages/ckeditor5-link/src/utils.js

@@ -154,16 +154,16 @@ export function isEmail( value ) {
 }
 
 /**
- * Returns an URL with protocol prefix (if applicable).
+ * Adds protocol prefix to the specified link if doesn't contain it already
+ * and there is 'defaultProtocol' config provided or link is an email.
  *
- * @params {String} url
- * @params {module:core/editor/editor~Editor} editor
+ * @params {String} link
+ * @params {String} defaultProtocol
  * @returns {Boolean}
  */
-export function addUrlProtocolIfApplicable( url, editor ) {
-	const defaultProtocol = editor.config.get( 'link.defaultProtocol' );
-	const protocol = isEmail( url ) ? 'mailto:' : defaultProtocol;
-	const isProtocolNeeded = !!protocol && !PROTOCOL_REG_EXP.test( url );
+export function addLinkProtocolIfApplicable( link, defaultProtocol ) {
+	const protocol = isEmail( link ) ? 'mailto:' : defaultProtocol;
+	const isProtocolNeeded = !!protocol && !PROTOCOL_REG_EXP.test( link );
 
-	return url && isProtocolNeeded ? protocol + url : url;
+	return link && isProtocolNeeded ? protocol + link : link;
 }