diff --git a/packages/ckeditor5-alignment/src/alignmentui.ts b/packages/ckeditor5-alignment/src/alignmentui.ts index 7b89689f77d..cacc06d5f84 100644 --- a/packages/ckeditor5-alignment/src/alignmentui.ts +++ b/packages/ckeditor5-alignment/src/alignmentui.ts @@ -189,7 +189,8 @@ export class AlignmentUI extends Plugin { dropdownView.bind( 'isEnabled' ).to( command, 'isEnabled' ); // Focus the editable after executing the command. - // Overrides a default behaviour where the focus is moved to the dropdown button (#12125). + // Overrides a default behaviour where the focus is moved to the dropdown button. + // See https://github.com/ckeditor/ckeditor5/issues/12125. this.listenTo( dropdownView, 'execute', () => { editor.editing.view.focus(); } ); diff --git a/packages/ckeditor5-autoformat/src/blockautoformatediting.ts b/packages/ckeditor5-autoformat/src/blockautoformatediting.ts index 04431678a54..c8c7e4e419e 100644 --- a/packages/ckeditor5-autoformat/src/blockautoformatediting.ts +++ b/packages/ckeditor5-autoformat/src/blockautoformatediting.ts @@ -115,7 +115,7 @@ export function blockAutoformatEditing( const blockToFormat = entry.position.parent; - // Block formatting should be disabled in codeBlocks (#5800). + // Block formatting should be disabled in codeBlocks (https://github.com/ckeditor/ckeditor5/issues/5800). if ( blockToFormat.is( 'element', 'codeBlock' ) ) { return; } diff --git a/packages/ckeditor5-block-quote/theme/blockquote.css b/packages/ckeditor5-block-quote/theme/blockquote.css index d6b4adb0039..45d97c24af2 100644 --- a/packages/ckeditor5-block-quote/theme/blockquote.css +++ b/packages/ckeditor5-block-quote/theme/blockquote.css @@ -4,7 +4,7 @@ */ .ck-content blockquote { - /* See #12 */ + /* See https://github.com/ckeditor/ckeditor5-block-quote/issues/12 */ overflow: hidden; /* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */ diff --git a/packages/ckeditor5-bookmark/src/bookmarkui.ts b/packages/ckeditor5-bookmark/src/bookmarkui.ts index 41798157dbd..00bd9c3278b 100644 --- a/packages/ckeditor5-bookmark/src/bookmarkui.ts +++ b/packages/ckeditor5-bookmark/src/bookmarkui.ts @@ -162,7 +162,7 @@ export class BookmarkUI extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). if ( this.formView ) { this.formView.destroy(); } diff --git a/packages/ckeditor5-bookmark/tests/bookmarkui.js b/packages/ckeditor5-bookmark/tests/bookmarkui.js index e7d50cbdd16..f8aab80d810 100644 --- a/packages/ckeditor5-bookmark/tests/bookmarkui.js +++ b/packages/ckeditor5-bookmark/tests/bookmarkui.js @@ -777,7 +777,7 @@ describe( 'BookmarkUI', () => { } ); it( 'should add #formView to the balloon and attach the balloon to the marker element when selection is collapsed', () => { - // (#7926) + // (https://github.com/ckeditor/ckeditor5/issues/7926) _setModelData( editor.model, 'f[]oo' ); bookmarkUIFeature._showFormView(); formView = bookmarkUIFeature.formView; diff --git a/packages/ckeditor5-clipboard/src/utils/viewtoplaintext.ts b/packages/ckeditor5-clipboard/src/utils/viewtoplaintext.ts index f5a7e5d25fd..2c401dd6978 100644 --- a/packages/ckeditor5-clipboard/src/utils/viewtoplaintext.ts +++ b/packages/ckeditor5-clipboard/src/utils/viewtoplaintext.ts @@ -36,7 +36,7 @@ export function viewToPlainText( } if ( viewItem.is( 'element', 'br' ) ) { - return '\n'; // Convert soft breaks to single line break (#8045). + return '\n'; // Convert soft breaks to single line break (https://github.com/ckeditor/ckeditor5/issues/8045). } /** diff --git a/packages/ckeditor5-clipboard/tests/pasteplaintext.js b/packages/ckeditor5-clipboard/tests/pasteplaintext.js index 17608f5aa52..a74c182a307 100644 --- a/packages/ckeditor5-clipboard/tests/pasteplaintext.js +++ b/packages/ckeditor5-clipboard/tests/pasteplaintext.js @@ -208,7 +208,7 @@ describe( 'PastePlainText', () => { } ); it( 'should work if the insertContent event is cancelled', () => { - // (#7887). + // (https://github.com/ckeditor/ckeditor5/issues/7887). _setModelData( model, '<$text bold="true">Bolded []text.' ); const dataTransferMock = createDataTransfer( { diff --git a/packages/ckeditor5-code-block/src/codeblockcommand.ts b/packages/ckeditor5-code-block/src/codeblockcommand.ts index 1a2af4ddef6..c8724d03a2d 100644 --- a/packages/ckeditor5-code-block/src/codeblockcommand.ts +++ b/packages/ckeditor5-code-block/src/codeblockcommand.ts @@ -129,7 +129,7 @@ export class CodeBlockCommand extends Command { writer.setAttribute( 'language', language, block ); schema.removeDisallowedAttributes( [ block ], writer ); - // Remove children of the `codeBlock` element that are not allowed. See #9567. + // Remove children of the `codeBlock` element that are not allowed. See https://github.com/ckeditor/ckeditor5/issues/9567. Array.from( block.getChildren() ) .filter( child => !schema.checkChild( block, child ) ) .forEach( child => writer.remove( child ) ); diff --git a/packages/ckeditor5-code-block/tests/codeblockediting.js b/packages/ckeditor5-code-block/tests/codeblockediting.js index 67b3dc4cdef..bdd4a3c48bb 100644 --- a/packages/ckeditor5-code-block/tests/codeblockediting.js +++ b/packages/ckeditor5-code-block/tests/codeblockediting.js @@ -857,7 +857,7 @@ describe( 'CodeBlockEditing', () => { } ); } ); - // See #5910. + // See https://github.com/ckeditor/ckeditor5/issues/5910. it( 'should allow to indent an entire code block with at least two lines', () => { const element = document.createElement( 'div' ); document.body.appendChild( element ); diff --git a/packages/ckeditor5-core/tests/editor/editor.js b/packages/ckeditor5-core/tests/editor/editor.js index e64655b0cfa..5a144857192 100644 --- a/packages/ckeditor5-core/tests/editor/editor.js +++ b/packages/ckeditor5-core/tests/editor/editor.js @@ -1422,7 +1422,7 @@ describe( 'Editor', () => { editor.model.document.createRoot( '$root', 'main' ); editor.model.document.createRoot( '$root', 'secondRoot' ); editor.model.schema.extend( '$text', { allowIn: '$root' } ); - editor.fire( 'ready' ); // (#6139) + editor.fire( 'ready' ); // (https://github.com/ckeditor/ckeditor5/issues/6139) } ); afterEach( async () => { diff --git a/packages/ckeditor5-core/tests/editor/utils/elementapimixin.js b/packages/ckeditor5-core/tests/editor/utils/elementapimixin.js index 674ab619e96..b56910714d0 100644 --- a/packages/ckeditor5-core/tests/editor/utils/elementapimixin.js +++ b/packages/ckeditor5-core/tests/editor/utils/elementapimixin.js @@ -18,7 +18,7 @@ describe( 'ElementApiMixin', () => { editor = new CustomEditor(); editor.model.document.createRoot(); editor.model.schema.extend( '$text', { allowIn: '$root' } ); - editor.fire( 'ready' ); // (#6139) + editor.fire( 'ready' ); // (https://github.com/ckeditor/ckeditor5/issues/6139) } ); afterEach( async () => { diff --git a/packages/ckeditor5-emoji/src/emojimention.ts b/packages/ckeditor5-emoji/src/emojimention.ts index ea65ade0a6a..450d215d1be 100644 --- a/packages/ckeditor5-emoji/src/emojimention.ts +++ b/packages/ckeditor5-emoji/src/emojimention.ts @@ -251,7 +251,8 @@ export class EmojiMention extends Plugin { return []; } - // If the repository plugin is not available, return an empty feed to avoid confusion. See: #17842. + // If the repository plugin is not available, return an empty feed to avoid confusion. + // See: https://github.com/ckeditor/ckeditor5/issues/17842. if ( !this._isEmojiRepositoryAvailable ) { return []; } diff --git a/packages/ckeditor5-emoji/src/emojipicker.ts b/packages/ckeditor5-emoji/src/emojipicker.ts index 354ed535624..7f68b19a439 100644 --- a/packages/ckeditor5-emoji/src/emojipicker.ts +++ b/packages/ckeditor5-emoji/src/emojipicker.ts @@ -138,7 +138,7 @@ export class EmojiPicker extends Plugin { */ public showUI( searchValue: string = '' ): void { // Show visual selection on a text when the contextual balloon is displayed. - // See #17654. + // See https://github.com/ckeditor/ckeditor5/issues/17654. this._showFakeVisualSelection(); if ( !this.emojiPickerView ) { diff --git a/packages/ckeditor5-emoji/tests/emojipicker.js b/packages/ckeditor5-emoji/tests/emojipicker.js index f667e0b8d30..2fc4dacf646 100644 --- a/packages/ckeditor5-emoji/tests/emojipicker.js +++ b/packages/ckeditor5-emoji/tests/emojipicker.js @@ -433,7 +433,7 @@ describe( 'EmojiPicker', () => { } ).to.not.throw(); } ); - // See #17819. + // See https://github.com/ckeditor/ckeditor5/issues/17819. it( 'should not change the selection after opening the UI', async () => { _setModelData( editor.model, @@ -447,7 +447,7 @@ describe( 'EmojiPicker', () => { ); } ); - // See #17964 + // See https://github.com/ckeditor/ckeditor5/issues/17964 it( 'should have the ck-emoji-picker-balloon class to make sure z-index does not conflict with the dialog system', () => { emojiPicker.showUI(); diff --git a/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts b/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts index f1df5b1fc8f..bad9b107357 100644 --- a/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts +++ b/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts @@ -1657,7 +1657,8 @@ function changeAttribute( attributeCreator: DowncastAttributeCreatorFunction ) { const viewWriter = conversionApi.writer; // If model item cannot be mapped to a view element, it means item is not an `Element` instance but a `ModelTextProxy` node. - // Only elements can have attributes in a view so do not proceed for anything else (#1587). + // Only elements can have attributes in a view so do not proceed for anything else. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1587. if ( !viewElement ) { /** * This error occurs when a {@link module:engine/model/textproxy~ModelTextProxy text node's} attribute is to be downcasted diff --git a/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts b/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts index 3e5a55927a3..970f1dd90b4 100644 --- a/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts +++ b/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts @@ -1159,7 +1159,7 @@ function setAttributeOn( } // Mark the node as consumed even if the attribute will not be updated because it's in a valid context (schema) - // and would be converted if the attribute wouldn't be present. See #8921. + // and would be converted if the attribute wouldn't be present. See https://github.com/ckeditor/ckeditor5/issues/8921. result = true; // Do not override the attribute if it's already present. diff --git a/packages/ckeditor5-engine/src/model/element.ts b/packages/ckeditor5-engine/src/model/element.ts index c4a006d1a62..7120950679a 100644 --- a/packages/ckeditor5-engine/src/model/element.ts +++ b/packages/ckeditor5-engine/src/model/element.ts @@ -397,7 +397,7 @@ export class ModelElement extends ModelNode { ModelElement.prototype.is = function( this: ModelElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'element' || type === 'model:element' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'node' || type === 'model:node'; } diff --git a/packages/ckeditor5-engine/src/model/liveposition.ts b/packages/ckeditor5-engine/src/model/liveposition.ts index 0af80712518..8fd5c4e0b86 100644 --- a/packages/ckeditor5-engine/src/model/liveposition.ts +++ b/packages/ckeditor5-engine/src/model/liveposition.ts @@ -112,7 +112,7 @@ export class ModelLivePosition extends /* #__PURE__ */ EmitterMixin( ModelPositi // Proper overload would interfere with that. ModelLivePosition.prototype.is = function( type: string ): boolean { return type === 'livePosition' || type === 'model:livePosition' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type == 'position' || type === 'model:position'; } as any; diff --git a/packages/ckeditor5-engine/src/model/liverange.ts b/packages/ckeditor5-engine/src/model/liverange.ts index ea443a92ead..6b4d80f9902 100644 --- a/packages/ckeditor5-engine/src/model/liverange.ts +++ b/packages/ckeditor5-engine/src/model/liverange.ts @@ -90,7 +90,7 @@ export class ModelLiveRange extends /* #__PURE__ */ EmitterMixin( ModelRange ) { // Proper overload would interfere with that. ModelLiveRange.prototype.is = function( type: string ): boolean { return type === 'liveRange' || type === 'model:liveRange' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type == 'range' || type === 'model:range'; } as any; diff --git a/packages/ckeditor5-engine/src/model/position.ts b/packages/ckeditor5-engine/src/model/position.ts index 59b9da19fe7..55a02e7b2e9 100644 --- a/packages/ckeditor5-engine/src/model/position.ts +++ b/packages/ckeditor5-engine/src/model/position.ts @@ -228,7 +228,8 @@ export class ModelPosition extends ModelTypeCheckable { * Node directly after this position. Returns `null` if this position is at the end of its parent, or if it is in a text node. */ public get nodeAfter(): ModelNode | null { - // Cache the parent and reuse for performance reasons. See #6579 and #6582. + // Cache the parent and reuse for performance reasons. + // See https://github.com/ckeditor/ckeditor5/issues/6579 and https://github.com/ckeditor/ckeditor5/issues/6582. const parent = this.parent; return getNodeAfterPosition( this, parent, getTextNodeAtPosition( this, parent ) ); @@ -238,7 +239,8 @@ export class ModelPosition extends ModelTypeCheckable { * Node directly before this position. Returns `null` if this position is at the start of its parent, or if it is in a text node. */ public get nodeBefore(): ModelNode | null { - // Cache the parent and reuse for performance reasons. See #6579 and #6582. + // Cache the parent and reuse for performance reasons. + // See https://github.com/ckeditor/ckeditor5/issues/6579 and https://github.com/ckeditor/ckeditor5/issues/6582. const parent = this.parent; return getNodeBeforePosition( this, parent, getTextNodeAtPosition( this, parent ) ); diff --git a/packages/ckeditor5-engine/src/model/rootelement.ts b/packages/ckeditor5-engine/src/model/rootelement.ts index 06ea8356c0b..06cb00f5ec1 100644 --- a/packages/ckeditor5-engine/src/model/rootelement.ts +++ b/packages/ckeditor5-engine/src/model/rootelement.ts @@ -94,14 +94,14 @@ export class ModelRootElement extends ModelElement { ModelRootElement.prototype.is = function( this: ModelRootElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'rootElement' || type === 'model:rootElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'model:element' || type === 'node' || type === 'model:node'; } return name === this.name && ( type === 'rootElement' || type === 'model:rootElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'model:element' ); } as any; diff --git a/packages/ckeditor5-engine/src/model/text.ts b/packages/ckeditor5-engine/src/model/text.ts index ac56816ae7d..5209563fc9f 100644 --- a/packages/ckeditor5-engine/src/model/text.ts +++ b/packages/ckeditor5-engine/src/model/text.ts @@ -112,6 +112,6 @@ ModelText.prototype.is = function( type: string ): boolean { return type === '$text' || type === 'model:$text' || // This are legacy values kept for backward compatibility. type === 'text' || type === 'model:text' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'node' || type === 'model:node'; } as any; diff --git a/packages/ckeditor5-engine/src/model/treewalker.ts b/packages/ckeditor5-engine/src/model/treewalker.ts index 01c13233dce..7c636a3539a 100644 --- a/packages/ckeditor5-engine/src/model/treewalker.ts +++ b/packages/ckeditor5-engine/src/model/treewalker.ts @@ -239,7 +239,8 @@ export class ModelTreeWalker implements Iterable { } // Get node just after the current position. - // Use a highly optimized version instead of checking the text node first and then getting the node after. See #6582. + // Use a highly optimized version instead of checking the text node first and then getting the node after. + // See https://github.com/ckeditor/ckeditor5/issues/6582. const textNodeAtPosition = getTextNodeAtPosition( position, parent ); const node = textNodeAtPosition || getNodeAfterPosition( position, parent, textNodeAtPosition ); @@ -318,7 +319,8 @@ export class ModelTreeWalker implements Iterable { } // Get node just before the current position. - // Use a highly optimized version instead of checking the text node first and then getting the node before. See #6582. + // Use a highly optimized version instead of checking the text node first and then getting the node before. + // See https://github.com/ckeditor/ckeditor5/issues/6582. const positionParent = position.parent; const textNodeAtPosition = getTextNodeAtPosition( position, positionParent ); const node = textNodeAtPosition || getNodeBeforePosition( position, positionParent, textNodeAtPosition ); diff --git a/packages/ckeditor5-engine/src/view/attributeelement.ts b/packages/ckeditor5-engine/src/view/attributeelement.ts index fc55224b3fb..5b942b16beb 100644 --- a/packages/ckeditor5-engine/src/view/attributeelement.ts +++ b/packages/ckeditor5-engine/src/view/attributeelement.ts @@ -217,13 +217,13 @@ export class ViewAttributeElement extends ViewElement { ViewAttributeElement.prototype.is = function( this: ViewAttributeElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'attributeElement' || type === 'view:attributeElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; } else { return name === this.name && ( type === 'attributeElement' || type === 'view:attributeElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' ); } diff --git a/packages/ckeditor5-engine/src/view/containerelement.ts b/packages/ckeditor5-engine/src/view/containerelement.ts index 6a3fee724cd..d7890b88b33 100644 --- a/packages/ckeditor5-engine/src/view/containerelement.ts +++ b/packages/ckeditor5-engine/src/view/containerelement.ts @@ -73,13 +73,13 @@ export class ViewContainerElement extends ViewElement { ViewContainerElement.prototype.is = function( this: ViewContainerElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'containerElement' || type === 'view:containerElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; } else { return name === this.name && ( type === 'containerElement' || type === 'view:containerElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' ); } @@ -94,7 +94,8 @@ export function getViewFillerOffset( this: ViewContainerElement ): number | null const children = [ ...this.getChildren() ]; let lastChild: ViewNode | undefined = children[ this.childCount - 1 ]; - // Block filler is required after a `
` if it's the last element in its container. See #1422. + // Block filler is required after a `
` if it's the last element in its container. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1422. if ( lastChild && lastChild.is( 'element', 'br' ) ) { return this.childCount; } diff --git a/packages/ckeditor5-engine/src/view/domconverter.ts b/packages/ckeditor5-engine/src/view/domconverter.ts index a09174645e4..a5fc5874ce0 100644 --- a/packages/ckeditor5-engine/src/view/domconverter.ts +++ b/packages/ckeditor5-engine/src/view/domconverter.ts @@ -418,7 +418,7 @@ export class ViewDomConverter { if ( viewElementOrFragment.name === '$comment' ) { domElement = this._domDocument.createComment( viewElementOrFragment.getCustomProperty( '$rawContent' ) as string ); } else { - // UIElement has its own render() method (see #799). + // UIElement has its own render() method (see https://github.com/ckeditor/ckeditor5/issues/799). domElement = viewElementOrFragment.render( this._domDocument, this ); } @@ -1566,7 +1566,8 @@ export class ViewDomConverter { // Change all consecutive whitespace characters (from the [ \n\t\r] set – // see https://github.com/ckeditor/ckeditor5-engine/issues/822#issuecomment-311670249) to a single space character. // That's how multiple whitespaces are treated when rendered, so we normalize those whitespaces. - // We're replacing 1+ (and not 2+) to also normalize singular \n\t\r characters (#822). + // We're replacing 1+ (and not 2+) to also normalize singular \n\t\r characters. + // See https://github.com/ckeditor/ckeditor5/issues/822. data = node.data.replace( /[ \n\t\r]{1,}/g, ' ' ); nodeEndsWithSpace = /[^\S\u00A0]/.test( data.charAt( data.length - 1 ) ); @@ -1593,7 +1594,8 @@ export class ViewDomConverter { // At the beginning and end of a block element, Firefox inserts normal space +
instead of non-breaking space. // This means that the text node starts/end with normal space instead of non-breaking space. // This causes a problem because the normal space would be removed in `.replace` calls above. To prevent that, - // the inline filler is removed only after the data is initially processed (by the `.replace` above). See ckeditor5#692. + // the inline filler is removed only after the data is initially processed (by the `.replace` above). + // See https://github.com/ckeditor/ckeditor5/issues/692. data = getDataWithoutFiller( data ); // Block filler handling. diff --git a/packages/ckeditor5-engine/src/view/editableelement.ts b/packages/ckeditor5-engine/src/view/editableelement.ts index a35536b7d42..8c195c423ce 100644 --- a/packages/ckeditor5-engine/src/view/editableelement.ts +++ b/packages/ckeditor5-engine/src/view/editableelement.ts @@ -114,14 +114,14 @@ export class ViewEditableElement extends /* #__PURE__ */ ObservableMixin( ViewCo ViewEditableElement.prototype.is = function( this: ViewEditableElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'editableElement' || type === 'view:editableElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'containerElement' || type === 'view:containerElement' || type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; } else { return name === this.name && ( type === 'editableElement' || type === 'view:editableElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'containerElement' || type === 'view:containerElement' || type === 'element' || type === 'view:element' ); diff --git a/packages/ckeditor5-engine/src/view/element.ts b/packages/ckeditor5-engine/src/view/element.ts index 2588c0cbee1..2b1dd54c725 100644 --- a/packages/ckeditor5-engine/src/view/element.ts +++ b/packages/ckeditor5-engine/src/view/element.ts @@ -1217,7 +1217,7 @@ export class ViewElement extends ViewNode { ViewElement.prototype.is = function( this: ViewElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'element' || type === 'view:element' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'node' || type === 'view:node'; } else { return name === this.name && ( type === 'element' || type === 'view:element' ); diff --git a/packages/ckeditor5-engine/src/view/emptyelement.ts b/packages/ckeditor5-engine/src/view/emptyelement.ts index 3e729964fc9..3de06e8c3bb 100644 --- a/packages/ckeditor5-engine/src/view/emptyelement.ts +++ b/packages/ckeditor5-engine/src/view/emptyelement.ts @@ -87,7 +87,7 @@ export class ViewEmptyElement extends ViewElement { ViewEmptyElement.prototype.is = function( this: ViewEmptyElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'emptyElement' || type === 'view:emptyElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; } else { diff --git a/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts b/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts index 15f1d08f084..b3ccf7e138f 100644 --- a/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts +++ b/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts @@ -217,7 +217,8 @@ export class MutationObserver extends Observer { } } - // In case only non-relevant mutations were recorded it skips the event and force render (#5600). + // In case only non-relevant mutations were recorded it skips the event and force render. + // See https://github.com/ckeditor/ckeditor5/issues/5600. if ( mutations.length ) { // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) { // @if CK_DEBUG_TYPING // _debouncedLine(); diff --git a/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts b/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts index 467d1d0ba2a..b7e1dd0f907 100644 --- a/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts +++ b/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts @@ -323,7 +323,7 @@ export class SelectionObserver extends Observer { return; } - // Ensure we are not in the infinite loop (#400). + // Ensure we are not in the infinite loop (https://github.com/ckeditor/ckeditor5-engine/issues/400). // This counter is reset each second. 60 selection changes in 1 second is enough high number // to be very difficult (impossible) to achieve using just keyboard keys (during normal editor use). if ( ++this._loopbackCounter > 60 ) { diff --git a/packages/ckeditor5-engine/src/view/rawelement.ts b/packages/ckeditor5-engine/src/view/rawelement.ts index 66917d59ea4..a1604f69aae 100644 --- a/packages/ckeditor5-engine/src/view/rawelement.ts +++ b/packages/ckeditor5-engine/src/view/rawelement.ts @@ -123,7 +123,7 @@ export class ViewRawElement extends ViewElement { ViewRawElement.prototype.is = function( this: ViewRawElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'rawElement' || type === 'view:rawElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === this.name || type === 'view:' + this.name || type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; diff --git a/packages/ckeditor5-engine/src/view/renderer.ts b/packages/ckeditor5-engine/src/view/renderer.ts index 2bc5eb182c3..915dfef310d 100644 --- a/packages/ckeditor5-engine/src/view/renderer.ts +++ b/packages/ckeditor5-engine/src/view/renderer.ts @@ -374,7 +374,8 @@ export class ViewRenderer extends /* #__PURE__ */ ObservableMixin() { const deleteIndex = counter.equal + counter.delete; const viewChild = viewElement.getChild( insertIndex ); - // UIElement and RawElement are special cases. Their children are not stored in a view (#799) + // UIElement and RawElement are special cases. Their children are not stored in a view. + // See https://github.com/ckeditor/ckeditor5/issues/799. // so we cannot use them with replacing flow (since they use view children during rendering // which will always result in rendering empty elements). if ( viewChild && !viewChild.is( 'uiElement' ) && !viewChild.is( 'rawElement' ) ) { @@ -407,12 +408,13 @@ export class ViewRenderer extends /* #__PURE__ */ ObservableMixin() { // Because we replace new view element mapping with the existing one, the corresponding DOM element // will not be rerendered. The new view element may have different attributes than the previous one. // Since its corresponding DOM element will not be rerendered, new attributes will not be added - // to the DOM, so we need to mark it here to make sure its attributes gets updated. See #1427 for more - // detailed case study. + // to the DOM, so we need to mark it here to make sure its attributes gets updated. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1427 for more detailed case study. // Also there are cases where replaced element is removed from the view structure and then has // its attributes changed or removed. In such cases the element will not be present in `markedAttributes` // and also may be the same (`element.isSimilar()`) as the reused element not having its attributes updated. - // To prevent such situations we always mark reused element to have its attributes rerenderd (#1560). + // To prevent such situations we always mark reused element to have its attributes rerenderd. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1560. this.markedAttributes.add( viewElement ); } @@ -760,7 +762,8 @@ export class ViewRenderer extends /* #__PURE__ */ ObservableMixin() { this._updateTextNode( actualDomChildren[ i ] as DomText, ( expectedDomChildren[ i ] as DomText ).data ); i++; } else if ( action === 'equal' ) { - // Force updating text nodes inside elements which did not change and do not need to be re-rendered (#1125). + // Force updating text nodes inside elements which did not change and do not need to be re-rendered. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1125. // Do it here (not in the loop above) because only after insertions the `i` index is correct. this._markDescendantTextToSync( this.domConverter.domToView( expectedDomChildren[ i ] ) as any ); i++; diff --git a/packages/ckeditor5-engine/src/view/rooteditableelement.ts b/packages/ckeditor5-engine/src/view/rooteditableelement.ts index aa62503fc7a..d30a3535bd3 100644 --- a/packages/ckeditor5-engine/src/view/rooteditableelement.ts +++ b/packages/ckeditor5-engine/src/view/rooteditableelement.ts @@ -77,7 +77,7 @@ export class ViewRootEditableElement extends ViewEditableElement { ViewRootEditableElement.prototype.is = function( this: ViewRootEditableElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'rootElement' || type === 'view:rootElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'editableElement' || type === 'view:editableElement' || type === 'containerElement' || type === 'view:containerElement' || type === 'element' || type === 'view:element' || @@ -85,7 +85,7 @@ ViewRootEditableElement.prototype.is = function( this: ViewRootEditableElement, } else { return name === this.name && ( type === 'rootElement' || type === 'view:rootElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'editableElement' || type === 'view:editableElement' || type === 'containerElement' || type === 'view:containerElement' || type === 'element' || type === 'view:element' diff --git a/packages/ckeditor5-engine/src/view/text.ts b/packages/ckeditor5-engine/src/view/text.ts index 8e0ee9b2cff..34ba207a1cc 100644 --- a/packages/ckeditor5-engine/src/view/text.ts +++ b/packages/ckeditor5-engine/src/view/text.ts @@ -135,6 +135,6 @@ ViewText.prototype.is = function( type: string ): boolean { return type === '$text' || type === 'view:$text' || // This are legacy values kept for backward compatibility. type === 'text' || type === 'view:text' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'node' || type === 'view:node'; } as any; diff --git a/packages/ckeditor5-engine/src/view/uielement.ts b/packages/ckeditor5-engine/src/view/uielement.ts index 58f47144eb6..c4a5cd7b5f7 100644 --- a/packages/ckeditor5-engine/src/view/uielement.ts +++ b/packages/ckeditor5-engine/src/view/uielement.ts @@ -147,7 +147,7 @@ export class ViewUIElement extends ViewElement { ViewUIElement.prototype.is = function( this: ViewUIElement, type: string, name?: string ): boolean { if ( !name ) { return type === 'uiElement' || type === 'view:uiElement' || - // From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529. + // From super.is(). This is highly utilised method and cannot call super. See https://github.com/ckeditor/ckeditor5/issues/6529. type === 'element' || type === 'view:element' || type === 'node' || type === 'view:node'; } else { diff --git a/packages/ckeditor5-engine/tests/controller/datacontroller.js b/packages/ckeditor5-engine/tests/controller/datacontroller.js index 8703b30f3c3..18ea2035640 100644 --- a/packages/ckeditor5-engine/tests/controller/datacontroller.js +++ b/packages/ckeditor5-engine/tests/controller/datacontroller.js @@ -1151,7 +1151,7 @@ describe( 'DataController', () => { const downcastDispatcher = data.downcastDispatcher; const dataProcessor = data.processor; - // Test whether list modelViewSplitOnInsert is not breaking conversion (see #11490). + // Test whether list modelViewSplitOnInsert is not breaking conversion (see https://github.com/ckeditor/ckeditor5/issues/11490). downcastDispatcher.on( 'insert', ( evt, data, conversionApi ) => { if ( conversionApi.consumable.test( data.item, evt.name ) ) { conversionApi.mapper.toViewPosition( data.range.start ); diff --git a/packages/ckeditor5-engine/tests/model/differ.js b/packages/ckeditor5-engine/tests/model/differ.js index 7b312ca5b29..3afa6864fab 100644 --- a/packages/ckeditor5-engine/tests/model/differ.js +++ b/packages/ckeditor5-engine/tests/model/differ.js @@ -2834,7 +2834,7 @@ describe( 'Differ', () => { // See https://github.com/ckeditor/ckeditor5/issues/733. it( 'proper filtering of changes in removed elements', () => { - // Before fix there was a buggy scenario described in ckeditor5#733. + // Before fix there was a buggy scenario described in https://github.com/ckeditor/ckeditor5/issues/733. // There was this structure: `foo[

te]xt

` // On delete of above selection `image` and `paragraph` inside `blockQuote` are removed (it gets merged). // However, since `image` was removed first, when checking if `paragraph` is in a removed element, diff --git a/packages/ckeditor5-engine/tests/model/documentselection.js b/packages/ckeditor5-engine/tests/model/documentselection.js index 6c6563c9925..f1820e8df37 100644 --- a/packages/ckeditor5-engine/tests/model/documentselection.js +++ b/packages/ckeditor5-engine/tests/model/documentselection.js @@ -1019,7 +1019,7 @@ describe( 'DocumentSelection', () => { expect( spy.called ).to.be.true; } ); - // See #630. + // See https://github.com/ckeditor/ckeditor5-engine/issues/630. it( 'should refresh attributes – integration test for #630', () => { model.schema.extend( '$text', { allowIn: '$root' } ); diff --git a/packages/ckeditor5-engine/tests/model/utils/insertcontent.js b/packages/ckeditor5-engine/tests/model/utils/insertcontent.js index a626419e778..951a338a022 100644 --- a/packages/ckeditor5-engine/tests/model/utils/insertcontent.js +++ b/packages/ckeditor5-engine/tests/model/utils/insertcontent.js @@ -785,7 +785,7 @@ describe( 'DataController utils', () => { ); } ); - // See ckeditor5#2010. + // See https://github.com/ckeditor/ckeditor5/issues/2010. it( 'should handle bQ+p over bQ+p insertion', () => { model.schema.register( 'blockQuote', { allowWhere: '$block', diff --git a/packages/ckeditor5-engine/tests/view/containerelement.js b/packages/ckeditor5-engine/tests/view/containerelement.js index 83df2595ab7..8d6a0952da1 100644 --- a/packages/ckeditor5-engine/tests/view/containerelement.js +++ b/packages/ckeditor5-engine/tests/view/containerelement.js @@ -77,7 +77,8 @@ describe( 'ContainerElement', () => { expect( _parseView( 'foo' ).getFillerOffset() ).to.be.null; } ); - // Block filler is required after the `
` element if the element is the last child in the container. See #1422. + // Block filler is required after the `
` element if the element is the last child in the container. + // See https://github.com/ckeditor/ckeditor5-engine/issues/1422. describe( 'for
elements in container', () => { it( 'should return null for a container with text content only', () => { expect( _parseView( 'Foo.' ).getFillerOffset() ).to.equals( null ); diff --git a/packages/ckeditor5-engine/tests/view/domconverter/domconverter.js b/packages/ckeditor5-engine/tests/view/domconverter/domconverter.js index 30f6ee412cd..5d91ecde878 100644 --- a/packages/ckeditor5-engine/tests/view/domconverter/domconverter.js +++ b/packages/ckeditor5-engine/tests/view/domconverter/domconverter.js @@ -360,7 +360,7 @@ describe( 'ViewDomConverter', () => { expect( converter.isBlockFiller( context.childNodes[ 1 ] ) ).to.be.false; } ); - // SPECIAL CASE (see ckeditor5#5564). + // SPECIAL CASE (see https://github.com/ckeditor/ckeditor5/issues/5564). it( 'should return true for a
element which is the only child of its block parent', () => { const context = document.createElement( elementName ); context.innerHTML = '
'; diff --git a/packages/ckeditor5-engine/tests/view/range.js b/packages/ckeditor5-engine/tests/view/range.js index b45d57b4c31..c05692b35f9 100644 --- a/packages/ckeditor5-engine/tests/view/range.js +++ b/packages/ckeditor5-engine/tests/view/range.js @@ -211,7 +211,7 @@ describe( 'Range', () => { // Other results may theoretically be correct too. It is not decided whether the trimmed range should // be collapsed in attribute element, at its start or its end. This is one of possible correct results - // and we won't know for sure unless we have more cases. See #1058. + // and we won't know for sure unless we have more cases. See https://github.com/ckeditor/ckeditor5-engine/issues/1058. it( 'case 8', () => { expect( trim( '

[]

' ) ) .to.equal( '

[]

' ); diff --git a/packages/ckeditor5-engine/tests/view/renderer.js b/packages/ckeditor5-engine/tests/view/renderer.js index cbd01cd9927..5b5f2375008 100644 --- a/packages/ckeditor5-engine/tests/view/renderer.js +++ b/packages/ckeditor5-engine/tests/view/renderer.js @@ -3310,7 +3310,7 @@ describe( 'Renderer', () => { // There is a case in Safari that during accent panel navigation on macOS our 'BR_FILLER' is replaced with // just '
' element which breaks accent composition in an empty paragraph. It also throws an error while - // refreshing mappings in a renderer. Simulate such behaviour (#1354). + // refreshing mappings in a renderer. Simulate such behaviour (https://github.com/ckeditor/ckeditor5-engine/issues/1354). domRoot.childNodes[ 1 ].innerHTML = '
'; viewRoot._removeChildren( 1 ); diff --git a/packages/ckeditor5-engine/tests/view/view/jumpoverinlinefiller.js b/packages/ckeditor5-engine/tests/view/view/jumpoverinlinefiller.js index 385ff90d4e5..8bb0079d5fa 100644 --- a/packages/ckeditor5-engine/tests/view/view/jumpoverinlinefiller.js +++ b/packages/ckeditor5-engine/tests/view/view/jumpoverinlinefiller.js @@ -87,7 +87,7 @@ describe( 'View', () => { expect( domSelection.focusOffset ).to.equal( 1 ); } ); - // See #664 + // See https://github.com/ckeditor/ckeditor5-engine/issues/664 // it( 'should do nothing if node does not start with the filler', () => { // _setViewData( view, 'foo{}xbar' ); // viewDocument.render(); diff --git a/packages/ckeditor5-engine/theme/placeholder.css b/packages/ckeditor5-engine/theme/placeholder.css index fe6d3afa00a..9bb214fd022 100644 --- a/packages/ckeditor5-engine/theme/placeholder.css +++ b/packages/ckeditor5-engine/theme/placeholder.css @@ -23,7 +23,7 @@ cursor: text; - /* See ckeditor/ckeditor5#469. */ + /* See https://github.com/ckeditor/ckeditor5/issues/469. */ pointer-events: none; @media (forced-colors: none) { @@ -46,7 +46,7 @@ } } -/* See ckeditor/ckeditor5#1987. */ +/* See https://github.com/ckeditor/ckeditor5/issues/1987. */ .ck.ck-read-only .ck-placeholder { &::before { display: none; diff --git a/packages/ckeditor5-enter/tests/enterobserver.js b/packages/ckeditor5-enter/tests/enterobserver.js index 9b6a4da7514..8a493375251 100644 --- a/packages/ckeditor5-enter/tests/enterobserver.js +++ b/packages/ckeditor5-enter/tests/enterobserver.js @@ -33,7 +33,7 @@ describe( 'EnterObserver', () => { view.destroy(); } ); - // See #10. + // See https://github.com/ckeditor/ckeditor5-enter/issues/10. it( 'can be initialized', () => { expect( () => { view = new EditingView(); diff --git a/packages/ckeditor5-find-and-replace/src/findandreplaceui.ts b/packages/ckeditor5-find-and-replace/src/findandreplaceui.ts index b8626938739..a5778488ac0 100644 --- a/packages/ckeditor5-find-and-replace/src/findandreplaceui.ts +++ b/packages/ckeditor5-find-and-replace/src/findandreplaceui.ts @@ -87,7 +87,7 @@ export class FindAndReplaceUI extends Plugin { if ( isUiUsingDropdown ) { view = this._createDropdown(); - // Button should be disabled when in source editing mode. See #10001. + // Button should be disabled when in source editing mode. See https://github.com/ckeditor/ckeditor5/issues/10001. view.bind( 'isEnabled' ).to( findCommand ); } else { view = this._createDialogButtonForToolbar(); @@ -253,7 +253,7 @@ export class FindAndReplaceUI extends Plugin { const buttonView = new ButtonClass( editor.locale ) as InstanceType; const t = editor.locale.t; - // Button should be disabled when in source editing mode. See #10001. + // Button should be disabled when in source editing mode. See https://github.com/ckeditor/ckeditor5/issues/10001. buttonView.bind( 'isEnabled' ).to( findCommand ); buttonView.set( { diff --git a/packages/ckeditor5-find-and-replace/tests/findandreplace.js b/packages/ckeditor5-find-and-replace/tests/findandreplace.js index 15be9203b8f..180dd4ca18d 100644 --- a/packages/ckeditor5-find-and-replace/tests/findandreplace.js +++ b/packages/ckeditor5-find-and-replace/tests/findandreplace.js @@ -224,7 +224,7 @@ describe( 'FindAndReplace', () => { } ); it( 'shows counter with 0 of 0 when no results were found', () => { - // (#10014). + // (https://github.com/ckeditor/ckeditor5/issues/10014). newEditor.setData( LONG_TEXT ); toolbarDropdownView.buttonView.fire( 'execute' ); @@ -336,7 +336,7 @@ describe( 'FindAndReplace', () => { } ); it( 'shows counter with 0 of 0 when no results were found', async () => { - // (#10014). + // (https://github.com/ckeditor/ckeditor5/issues/10014). editor.setData( LONG_TEXT ); toolbarButtonView.fire( 'execute' ); @@ -522,7 +522,7 @@ describe( 'FindAndReplace', () => { describe( 'undo', () => { it( 'doesn\'t bring back highlighted content', () => { - // (#9974) + // (https://github.com/ckeditor/ckeditor5/issues/9974) editor.setData( FOO_BAR_PARAGRAPH ); const { results } = editor.execute( 'find', 'bar' ); diff --git a/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js b/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js index 62394127683..fda0e95bfd6 100644 --- a/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js +++ b/packages/ckeditor5-find-and-replace/tests/findandreplaceui.js @@ -132,7 +132,7 @@ describe( 'FindAndReplaceUI', () => { function testButton() { describe( 'upon dialog open', () => { it( 'CSS transitions should be disabled to avoid unnecessary animations (and then enable them again)', () => { - // (#10008) + // (https://github.com/ckeditor/ckeditor5/issues/10008) const disableCssTransitionsSpy = sinon.spy( form, 'disableCssTransitions' ); const enableCssTransitionsSpy = sinon.spy( form, 'enableCssTransitions' ); const selectSpy = sinon.spy( form._findInputView.fieldView, 'select' ); @@ -558,7 +558,7 @@ describe( 'FindAndReplaceUI', () => { describe( 'upon dropdown open', () => { it( 'CSS transitions should be disabled to avoid unnecessary animations (and then enable them again)', () => { - // (#10008) + // (https://github.com/ckeditor/ckeditor5/issues/10008) const disableCssTransitionsSpy = sinon.spy( form, 'disableCssTransitions' ); const enableCssTransitionsSpy = sinon.spy( form, 'enableCssTransitions' ); const selectSpy = sinon.spy( form._findInputView.fieldView, 'select' ); diff --git a/packages/ckeditor5-font/src/fontsize/utils.ts b/packages/ckeditor5-font/src/fontsize/utils.ts index bbb3d6a6990..cd3913a597c 100644 --- a/packages/ckeditor5-font/src/fontsize/utils.ts +++ b/packages/ckeditor5-font/src/fontsize/utils.ts @@ -137,7 +137,7 @@ function generatePixelPreset( definition: string | FontSizeOption ): FontSizeOpt } /** - * Adds the priority to the view element definition if missing. It's required due to ckeditor/ckeditor5#2291 + * Adds the priority to the view element definition if missing. It's required due to https://github.com/ckeditor/ckeditor5/issues/2291 */ function attachPriority( definition: FontSizeOption ): FontSizeOption { if ( definition.view && typeof definition.view !== 'string' && !definition.view.priority ) { diff --git a/packages/ckeditor5-font/src/ui/colorui.ts b/packages/ckeditor5-font/src/ui/colorui.ts index c684c353dbc..a8d06de4178 100644 --- a/packages/ckeditor5-font/src/ui/colorui.ts +++ b/packages/ckeditor5-font/src/ui/colorui.ts @@ -116,7 +116,8 @@ export class FontColorUIBase extends Plugin { // Register the UI component. editor.ui.componentFactory.add( this.componentName, locale => { const dropdownView: FontColorSelectorDropdownView = createDropdown( locale ); - // Font color dropdown rendering is deferred once it gets open to improve performance (#6192). + // Font color dropdown rendering is deferred once it gets open to improve performance. + // See https://github.com/ckeditor/ckeditor5/issues/6192. let dropdownContentRendered = false; const colorSelectorView = addColorSelectorToDropdown( { @@ -223,7 +224,8 @@ export class FontColorUIBase extends Plugin { menuView.bind( 'isEnabled' ).to( command ); - // Font color sub-menu rendering is deferred once it gets open to improve performance (#6192). + // Font color sub-menu rendering is deferred once it gets open to improve performance. + // See https://github.com/ckeditor/ckeditor5/issues/6192. let contentRendered = false; const colorSelectorView = new ColorSelectorView( locale, { diff --git a/packages/ckeditor5-font/tests/fontsize/fontsizeui.js b/packages/ckeditor5-font/tests/fontsize/fontsizeui.js index 8e59af9d47a..17e755d628a 100644 --- a/packages/ckeditor5-font/tests/fontsize/fontsizeui.js +++ b/packages/ckeditor5-font/tests/fontsize/fontsizeui.js @@ -133,7 +133,8 @@ describe( 'FontSizeUI', () => { describe( 'config', () => { beforeEach( () => { // Each test case in this group creates its own element, so make sure to delete editor created in - // the main beforeEach in this file, as later element and editor vars are overridden (#6002). + // the main beforeEach in this file, as later element and editor vars are overridden. + // See https://github.com/ckeditor/ckeditor5/issues/6002. element.remove(); return editor.destroy(); } ); diff --git a/packages/ckeditor5-font/tests/ui/colorselectorview.js b/packages/ckeditor5-font/tests/ui/colorselectorview.js index 48ad88fb8e9..76001485972 100644 --- a/packages/ckeditor5-font/tests/ui/colorselectorview.js +++ b/packages/ckeditor5-font/tests/ui/colorselectorview.js @@ -73,7 +73,7 @@ describe( 'ColorSelectorView', () => { format: 'hsl' } } ); - // Grids rendering is deferred (#6192) therefore render happens before appending grids. + // Grids rendering is deferred (https://github.com/ckeditor/ckeditor5/issues/6192) therefore render happens before appending grids. colorSelectorView.render(); colorSelectorView._appendColorGridsFragment(); diff --git a/packages/ckeditor5-highlight/src/highlightui.ts b/packages/ckeditor5-highlight/src/highlightui.ts index 5e337c73a46..c342a97c0e8 100644 --- a/packages/ckeditor5-highlight/src/highlightui.ts +++ b/packages/ckeditor5-highlight/src/highlightui.ts @@ -245,7 +245,8 @@ export class HighlightUI extends Plugin { } ); // Focus the editable after executing the command. - // It overrides a default behaviour where the focus is moved to the dropdown button (#12125). + // It overrides a default behaviour where the focus is moved to the dropdown button. + // See https://github.com/ckeditor/ckeditor5/issues/12125. this.listenTo( dropdownView, 'execute', () => { editor.editing.view.focus(); } ); diff --git a/packages/ckeditor5-html-embed/src/htmlembedediting.ts b/packages/ckeditor5-html-embed/src/htmlembedediting.ts index cf40fb7d270..2d461aff2b5 100644 --- a/packages/ckeditor5-html-embed/src/htmlembedediting.ts +++ b/packages/ckeditor5-html-embed/src/htmlembedediting.ts @@ -397,7 +397,7 @@ export class HtmlEmbedEditing extends Plugin { } ); // Creating a contextual document fragment allows executing scripts when inserting into the preview element. - // See: #8326. + // See: https://github.com/ckeditor/ckeditor5/issues/8326. const domRange = domDocument.createRange(); const domDocumentFragment = domRange.createContextualFragment( sanitizedOutput.html ); diff --git a/packages/ckeditor5-image/src/image/converters.ts b/packages/ckeditor5-image/src/image/converters.ts index 758f4523a84..0d1c199036b 100644 --- a/packages/ckeditor5-image/src/image/converters.ts +++ b/packages/ckeditor5-image/src/image/converters.ts @@ -244,7 +244,7 @@ export function downcastSourcesAttribute( imageUtils: ImageUtils ): ( dispatcher const hasPictureElement = imgElement.parent!.is( 'element', 'picture' ); - // Reuse existing element (ckeditor5#17192) or create a new one. + // Reuse existing element (https://github.com/ckeditor/ckeditor5/issues/17192) or create a new one. const pictureElement = hasPictureElement ? imgElement.parent : viewWriter.createContainerElement( 'picture', null ); if ( !hasPictureElement ) { diff --git a/packages/ckeditor5-image/src/image/imageloadobserver.ts b/packages/ckeditor5-image/src/image/imageloadobserver.ts index b2cfe60b92f..2e726cb3717 100644 --- a/packages/ckeditor5-image/src/image/imageloadobserver.ts +++ b/packages/ckeditor5-image/src/image/imageloadobserver.ts @@ -32,7 +32,7 @@ export class ImageLoadObserver extends Observer { if ( domElement.tagName == 'IMG' ) { this._fireEvents( domEvent ); } - // Use capture phase for better performance (#4504). + // Use capture phase for better performance (https://github.com/ckeditor/ckeditor5/issues/4504). }, { useCapture: true } ); } diff --git a/packages/ckeditor5-image/src/imageresize/imagecustomresizeui.ts b/packages/ckeditor5-image/src/imageresize/imagecustomresizeui.ts index e90f8f0c4e3..f00e22e5954 100644 --- a/packages/ckeditor5-image/src/imageresize/imagecustomresizeui.ts +++ b/packages/ckeditor5-image/src/imageresize/imagecustomresizeui.ts @@ -69,7 +69,7 @@ export class ImageCustomResizeUI extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). if ( this._form ) { this._form.destroy(); } diff --git a/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts b/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts index b5af3e679f4..b63609689cb 100644 --- a/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts +++ b/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts @@ -178,7 +178,8 @@ export class ImageStyleUI extends Plugin { .toMany( buttonViews, 'isEnabled', ( ...areEnabled ) => areEnabled.some( identity ) ); // Focus the editable after executing the command. - // Overrides a default behaviour where the focus is moved to the dropdown button (#12125). + // Overrides a default behaviour where the focus is moved to the dropdown button. + // See https://github.com/ckeditor/ckeditor5/issues/12125. this.listenTo( dropdownView, 'execute', () => { this.editor.editing.view.focus(); } ); diff --git a/packages/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts b/packages/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts index 9d4c1bf5cc6..8f7935fad8e 100644 --- a/packages/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts +++ b/packages/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts @@ -76,7 +76,7 @@ export class ImageTextAlternativeUI extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). if ( this._form ) { this._form.destroy(); } diff --git a/packages/ckeditor5-image/tests/imageresize/imageresizehandles.js b/packages/ckeditor5-image/tests/imageresize/imageresizehandles.js index a763eb9f718..0723169e00c 100644 --- a/packages/ckeditor5-image/tests/imageresize/imageresizehandles.js +++ b/packages/ckeditor5-image/tests/imageresize/imageresizehandles.js @@ -170,7 +170,7 @@ describe( 'ImageResizeHandles', () => { } ); it( 'doesn\'t flicker at the beginning of the resize', async () => { - // (#5189) + // (https://github.com/ckeditor/ckeditor5/issues/5189) const resizerPosition = 'bottom-left'; const domParts = getWidgetDomParts( editor, widget, resizerPosition ); const initialPointerPosition = getHandleCenterPoint( domParts.widget, resizerPosition ); @@ -630,7 +630,7 @@ describe( 'ImageResizeHandles', () => { } ); it( 'doesn\'t flicker at the beginning of the resize', async () => { - // (#5189) + // (https://github.com/ckeditor/ckeditor5/issues/5189) const resizerPosition = 'bottom-left'; const domParts = getWidgetDomParts( editor, widget, resizerPosition ); const initialPointerPosition = getHandleCenterPoint( domParts.widget, resizerPosition ); diff --git a/packages/ckeditor5-image/theme/image.css b/packages/ckeditor5-image/theme/image.css index 45811a35fa0..f3862d173c1 100644 --- a/packages/ckeditor5-image/theme/image.css +++ b/packages/ckeditor5-image/theme/image.css @@ -18,7 +18,7 @@ min-width: 50px; & img { - /* Prevent unnecessary margins caused by line-height (see #44). */ + /* Prevent unnecessary margins caused by line-height (see https://github.com/ckeditor/ckeditor5/issues/44). */ display: block; /* Center the image if its width is smaller than the content's width. */ diff --git a/packages/ckeditor5-image/theme/imageuploadicon.css b/packages/ckeditor5-image/theme/imageuploadicon.css index 931d0bf4d08..7b9e4e1abc2 100644 --- a/packages/ckeditor5-image/theme/imageuploadicon.css +++ b/packages/ckeditor5-image/theme/imageuploadicon.css @@ -64,7 +64,7 @@ animation-delay: 500ms; animation-fill-mode: forwards; - /* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */ + /* https://github.com/ckeditor/ckeditor5/issues/1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */ box-sizing: border-box; content: ""; position: absolute; diff --git a/packages/ckeditor5-link/src/linkcommand.ts b/packages/ckeditor5-link/src/linkcommand.ts index a4ea818d0bc..25205793c66 100644 --- a/packages/ckeditor5-link/src/linkcommand.ts +++ b/packages/ckeditor5-link/src/linkcommand.ts @@ -61,7 +61,8 @@ export class LinkCommand extends Command { const selectedElement = selection.getSelectedElement() || first( selection.getSelectedBlocks() ); // A check for any integration that allows linking elements (e.g. `LinkImage`). - // Currently the selection reads attributes from text nodes only. See #7429 and #7465. + // Currently the selection reads attributes from text nodes only. + // See https://github.com/ckeditor/ckeditor5/issues/7429 and https://github.com/ckeditor/ckeditor5/issues/7465. if ( isLinkableElement( selectedElement, model.schema ) ) { this.value = selectedElement.getAttribute( 'linkHref' ) as string | undefined; this.isEnabled = model.schema.checkAttribute( selectedElement, 'linkHref' ); @@ -385,7 +386,8 @@ export class LinkCommand extends Command { const selectedElement = selection.getSelectedElement(); // A check for the `LinkImage` plugin. If the selection contains an element, get values from the element. - // Currently the selection reads attributes from text nodes only. See #7429 and #7465. + // Currently the selection reads attributes from text nodes only. + // See https://github.com/ckeditor/ckeditor5/issues/7429 and https://github.com/ckeditor/ckeditor5/issues/7465. if ( isLinkableElement( selectedElement, model.schema ) ) { return selectedElement.getAttribute( decoratorName ) as boolean | undefined; } diff --git a/packages/ckeditor5-link/src/linkimageediting.ts b/packages/ckeditor5-link/src/linkimageediting.ts index cd41530169e..5177f37b91a 100644 --- a/packages/ckeditor5-link/src/linkimageediting.ts +++ b/packages/ckeditor5-link/src/linkimageediting.ts @@ -232,7 +232,7 @@ function downcastImageLinkManualDecorator( decorator: LinkManualDecorator ): ( d // The element was removed by the time this converter is executed. // It may happen when the base `linkHref` and decorator attributes are removed - // at the same time (see #8401). + // at the same time (see https://github.com/ckeditor/ckeditor5/issues/8401). if ( !linkInImage ) { return; } @@ -293,7 +293,7 @@ function upcastImageLinkManualDecorator( editor: Editor, decorator: LinkManualDe const imageInLink = imageUtils.findViewImgElement( viewLink ); // We need to check whether an image is inside a link because the converter handles - // only manual decorators for linked images. See #7975. + // only manual decorators for linked images. See https://github.com/ckeditor/ckeditor5/issues/7975. if ( !imageInLink ) { return; } diff --git a/packages/ckeditor5-link/src/linkui.ts b/packages/ckeditor5-link/src/linkui.ts index a3b860b1bc5..f4a54856eef 100644 --- a/packages/ckeditor5-link/src/linkui.ts +++ b/packages/ckeditor5-link/src/linkui.ts @@ -192,7 +192,7 @@ export class LinkUI extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). if ( this.propertiesView ) { this.propertiesView.destroy(); } diff --git a/packages/ckeditor5-link/src/unlinkcommand.ts b/packages/ckeditor5-link/src/unlinkcommand.ts index 39022a50f4c..2e49c1758b7 100644 --- a/packages/ckeditor5-link/src/unlinkcommand.ts +++ b/packages/ckeditor5-link/src/unlinkcommand.ts @@ -26,7 +26,8 @@ export class UnlinkCommand extends Command { const selectedElement = selection.getSelectedElement(); // A check for any integration that allows linking elements (e.g. `LinkImage`). - // Currently the selection reads attributes from text nodes only. See #7429 and #7465. + // Currently the selection reads attributes from text nodes only. + // See https://github.com/ckeditor/ckeditor5/issues/7429 and https://github.com/ckeditor/ckeditor5/issues/7465. if ( isLinkableElement( selectedElement, model.schema ) ) { this.isEnabled = model.schema.checkAttribute( selectedElement, 'linkHref' ); } else { diff --git a/packages/ckeditor5-link/tests/linkimageediting.js b/packages/ckeditor5-link/tests/linkimageediting.js index 6e63fa84132..0d9397f5203 100644 --- a/packages/ckeditor5-link/tests/linkimageediting.js +++ b/packages/ckeditor5-link/tests/linkimageediting.js @@ -1302,7 +1302,7 @@ describe( 'LinkImageEditing', () => { } ); it( 'should upcast the decorators when linked image (figure > a > img)', () => { - // (#7975) + // (https://github.com/ckeditor/ckeditor5/issues/7975) editor.setData( '
' + ' { } ); it( 'should upcast the decorators when linked image (a > img)', () => { - // (#7975) + // (https://github.com/ckeditor/ckeditor5/issues/7975) editor.setData( '' + @@ -1568,7 +1568,7 @@ describe( 'LinkImageEditing', () => { ); } ); - // See #8401. + // See https://github.com/ckeditor/ckeditor5/issues/8401. it( 'should downcast without error if the image already has no link', () => { _setModelData( model, '[]' @@ -1599,7 +1599,7 @@ describe( 'LinkImageEditing', () => { ); } ); - // See #8401. + // See https://github.com/ckeditor/ckeditor5/issues/8401. describe( 'order of model updates', () => { it( 'should not affect converters - base link attributes first', () => { _setModelData( model, diff --git a/packages/ckeditor5-link/tests/linkimageui.js b/packages/ckeditor5-link/tests/linkimageui.js index 3bc5e08cb68..6976a83d4bb 100644 --- a/packages/ckeditor5-link/tests/linkimageui.js +++ b/packages/ckeditor5-link/tests/linkimageui.js @@ -143,7 +143,7 @@ describe( 'LinkImageUI', () => { expect( data.preventDefault.called ).to.be.true; } ); - // See: #9607. + // See: https://github.com/ckeditor/ckeditor5/issues/9607. describe( 'blocking the LinkUI plugin', () => { let linkUI; diff --git a/packages/ckeditor5-link/tests/linkui.js b/packages/ckeditor5-link/tests/linkui.js index 16c1035e569..f806031b04e 100644 --- a/packages/ckeditor5-link/tests/linkui.js +++ b/packages/ckeditor5-link/tests/linkui.js @@ -463,7 +463,7 @@ describe( 'LinkUI', () => { } ); it( 'should add #formView to the balloon and attach the balloon to the marker element when selection is collapsed', () => { - // (#7926) + // (https://github.com/ckeditor/ckeditor5/issues/7926) _setModelData( editor.model, 'f[]oo' ); linkUIFeature._showUI(); formView = linkUIFeature.formView; @@ -1740,7 +1740,7 @@ describe( 'LinkUI', () => { sinon.assert.notCalled( spy ); } ); - // See: #9607. + // See: https://github.com/ckeditor/ckeditor5/issues/9607. it( 'should show the UI when clicking on the linked inline widget', () => { editor.model.schema.register( 'inlineWidget', { allowWhere: '$text', diff --git a/packages/ckeditor5-list/src/legacylist/legacyconverters.ts b/packages/ckeditor5-list/src/legacylist/legacyconverters.ts index 29e05886466..9012be0e747 100644 --- a/packages/ckeditor5-list/src/legacylist/legacyconverters.ts +++ b/packages/ckeditor5-list/src/legacylist/legacyconverters.ts @@ -695,7 +695,7 @@ export function modelChangePostFixer( model: Model, writer: ModelWriter ): boole } for ( - // Cache previousSibling and reuse for performance reasons. See #6581. + // Cache previousSibling and reuse for performance reasons. See https://github.com/ckeditor/ckeditor5/issues/6581. let previousSibling = listHead.previousSibling; previousSibling && previousSibling.is( 'element', 'listItem' ); previousSibling = listHead.previousSibling diff --git a/packages/ckeditor5-list/src/legacylistproperties/legacylistpropertiesediting.ts b/packages/ckeditor5-list/src/legacylistproperties/legacylistpropertiesediting.ts index ad2f4b2771a..7d91db56920 100644 --- a/packages/ckeditor5-list/src/legacylistproperties/legacylistpropertiesediting.ts +++ b/packages/ckeditor5-list/src/legacylistproperties/legacylistpropertiesediting.ts @@ -209,7 +209,8 @@ export class LegacyListPropertiesEditing extends Plugin { } ); // The outermost list item may not exist while removing elements between lists with different value - // of the `listIndent` attribute. In such a case we don't want to update anything. See: #8073. + // of the `listIndent` attribute. In such a case we don't want to update anything. + // See: https://github.com/ckeditor/ckeditor5/issues/8073. if ( !mostOuterItemList ) { return; } @@ -240,7 +241,7 @@ export class LegacyListPropertiesEditing extends Plugin { } ); // If the selection ends in a non-list element, there are no s that would require adjustments. - // See: #8642. + // See: https://github.com/ckeditor/ckeditor5/issues/8642. if ( !secondListMostOuterItem ) { firstMostOuterItem = null; return; @@ -649,7 +650,8 @@ function fixListAttributesOnListItemElements( editor: Editor, attributeStrategie while ( existingListItem.is( 'element', 'listItem' ) && existingListItem.getAttribute( 'listIndent' ) !== indent ) { existingListItem = existingListItem.previousSibling; - // If the item does not exist, most probably there is no other content in the editor. See: #8072. + // If the item does not exist, most probably there is no other content in the editor. + // See: https://github.com/ckeditor/ckeditor5/issues/8072. if ( !existingListItem ) { break; } @@ -676,7 +678,7 @@ function fixListAttributesOnListItemElements( editor: Editor, attributeStrategie wasFixed = true; } else { // Adjust the `listStyle`, `listReversed` and `listStart` - // attributes for inserted (pasted) items. See #8160. + // attributes for inserted (pasted) items. See https://github.com/ckeditor/ckeditor5/issues/8160. // // ■ List item 1. // [listStyle="square", listType="bulleted"] // ○ List item 1.1. // [listStyle="circle", listType="bulleted"] diff --git a/packages/ckeditor5-list/src/listproperties/listpropertiesui.ts b/packages/ckeditor5-list/src/listproperties/listpropertiesui.ts index 16b95badae8..944857fcfdc 100644 --- a/packages/ckeditor5-list/src/listproperties/listpropertiesui.ts +++ b/packages/ckeditor5-list/src/listproperties/listpropertiesui.ts @@ -272,7 +272,8 @@ function getDropdownViewCreator( { } ); // Focus the editable after executing the command. - // Overrides a default behaviour where the focus is moved to the dropdown button (#12125). + // Overrides a default behaviour where the focus is moved to the dropdown button. + // See https://github.com/ckeditor/ckeditor5/issues/12125. dropdownView.on( 'execute', () => { editor.editing.view.focus(); } ); diff --git a/packages/ckeditor5-list/tests/legacylist/legacylistediting.js b/packages/ckeditor5-list/tests/legacylist/legacylistediting.js index 5f9cfa8018e..be76d74905f 100644 --- a/packages/ckeditor5-list/tests/legacylist/legacylistediting.js +++ b/packages/ckeditor5-list/tests/legacylist/legacylistediting.js @@ -4542,7 +4542,7 @@ describe( 'LegacyListEditing', () => { expect( _getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '
  • a
  • b
' ); } ); - // See #11490. + // See https://github.com/ckeditor/ckeditor5/issues/11490. it( 'model view split converter should not fire if change was already consumed', () => { model.schema.register( 'container', { allowWhere: '$block', diff --git a/packages/ckeditor5-list/tests/legacylistproperties/legacylistpropertiesediting.js b/packages/ckeditor5-list/tests/legacylistproperties/legacylistpropertiesediting.js index 0041c0a823d..1e686030b27 100644 --- a/packages/ckeditor5-list/tests/legacylistproperties/legacylistpropertiesediting.js +++ b/packages/ckeditor5-list/tests/legacylistproperties/legacylistpropertiesediting.js @@ -381,7 +381,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8262. + // See: https://github.com/ckeditor/ckeditor5/issues/8262. describe( 'list conversion with surrounding text nodes', () => { let editor; @@ -472,7 +472,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8081. + // See: https://github.com/ckeditor/ckeditor5/issues/8081. it( 'should convert properly nested list styles', () => { // ■ Level 0 // ▶ Level 0.1 @@ -856,7 +856,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8072. + // See: https://github.com/ckeditor/ckeditor5/issues/8072. it( 'should not throw when indenting a list without any other content in the editor', () => { _setModelData( model, 'Foo' + @@ -1092,7 +1092,7 @@ describe( 'LegacyListPropertiesEditing', () => { return editor.destroy(); } ); - // See: #7930. + // See: https://github.com/ckeditor/ckeditor5/issues/7930. it( 'should restore proper list style attribute after undo merging lists', () => { // ○ 1. // ○ 2. @@ -1495,7 +1495,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8073. + // See: https://github.com/ckeditor/ckeditor5/issues/8073. it( 'should not crash when removing a content between intended lists', () => { _setModelData( model, 'aaaa' + @@ -1534,7 +1534,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8642. + // See: https://github.com/ckeditor/ckeditor5/issues/8642. it( 'should not crash when removing entire list item followed by a paragraph element with another list', () => { _setModelData( model, 'aaaa' + @@ -2013,7 +2013,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8262. + // See: https://github.com/ckeditor/ckeditor5/issues/8262. describe( 'list conversion with surrounding text nodes', () => { let editor; @@ -2771,7 +2771,7 @@ describe( 'LegacyListPropertiesEditing', () => { return editor.destroy(); } ); - // See: #7930. + // See: https://github.com/ckeditor/ckeditor5/issues/7930. it( 'should restore proper reversed attribute after undo merging lists', () => { // ○ 1. // ○ 2. @@ -3173,7 +3173,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8073. + // See: https://github.com/ckeditor/ckeditor5/issues/8073. it( 'should not crash when removing a content between intended lists', () => { _setModelData( model, 'aaaa' + @@ -3191,7 +3191,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8642. + // See: https://github.com/ckeditor/ckeditor5/issues/8642. it( 'should not crash when removing entire list item followed by a paragraph element with another list', () => { _setModelData( model, 'aaaa' + @@ -3721,7 +3721,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8262. + // See: https://github.com/ckeditor/ckeditor5/issues/8262. describe( 'list conversion with surrounding text nodes', () => { let editor; @@ -4479,7 +4479,7 @@ describe( 'LegacyListPropertiesEditing', () => { return editor.destroy(); } ); - // See: #7930. + // See: https://github.com/ckeditor/ckeditor5/issues/7930. it( 'should restore proper start attribute after undo merging lists', () => { // ○ 1. // ○ 2. @@ -4881,7 +4881,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8073. + // See: https://github.com/ckeditor/ckeditor5/issues/8073. it( 'should not crash when removing a content between intended lists', () => { _setModelData( model, 'aaaa' + @@ -4899,7 +4899,7 @@ describe( 'LegacyListPropertiesEditing', () => { ); } ); - // See: #8642. + // See: https://github.com/ckeditor/ckeditor5/issues/8642. it( 'should not crash when removing entire list item followed by a paragraph element with another list', () => { _setModelData( model, 'aaaa' + diff --git a/packages/ckeditor5-media-embed/src/automediaembed.ts b/packages/ckeditor5-media-embed/src/automediaembed.ts index 134dd0c3224..ce8c2903868 100644 --- a/packages/ckeditor5-media-embed/src/automediaembed.ts +++ b/packages/ckeditor5-media-embed/src/automediaembed.ts @@ -148,7 +148,8 @@ export class AutoMediaEmbed extends Plugin { const mediaEmbedCommand: MediaEmbedCommand = editor.commands.get( 'mediaEmbed' )!; - // Do not anything if media element cannot be inserted at the current position (#47). + // Do not anything if media element cannot be inserted at the current position. + // See https://github.com/ckeditor/ckeditor5-media-embed/issues/47. if ( !mediaEmbedCommand.isEnabled ) { urlRange.detach(); diff --git a/packages/ckeditor5-media-embed/theme/mediaembed.css b/packages/ckeditor5-media-embed/theme/mediaembed.css index 0416b45f9ed..5e23d5e6f4a 100644 --- a/packages/ckeditor5-media-embed/theme/mediaembed.css +++ b/packages/ckeditor5-media-embed/theme/mediaembed.css @@ -18,6 +18,6 @@ display: block; /* Give the media some minimal width in the content to prevent them - from being "squashed" in tight spaces, e.g. in table cells (#44) */ + from being "squashed" in tight spaces, e.g. in table cells (https://github.com/ckeditor/ckeditor5-media-embed/issues/44) */ min-width: 15em; } diff --git a/packages/ckeditor5-mention/src/mentionui.ts b/packages/ckeditor5-mention/src/mentionui.ts index c0ad7c7a52c..74c2a299e15 100644 --- a/packages/ckeditor5-mention/src/mentionui.ts +++ b/packages/ckeditor5-mention/src/mentionui.ts @@ -219,7 +219,7 @@ export class MentionUI extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). this._mentionsView.destroy(); } @@ -244,7 +244,7 @@ export class MentionUI extends Plugin { const { dropdownLimit: markerDropdownLimit } = this._mentionsConfigurations.get( marker )!; - // Set to 10 by default for backwards compatibility. See: #10479 + // Set to 10 by default for backwards compatibility. See: https://github.com/ckeditor/ckeditor5/issues/10479 const dropdownLimit = markerDropdownLimit || this.editor.config.get( 'mention.dropdownLimit' ) || 10; if ( mentionsView.items.length >= dropdownLimit ) { diff --git a/packages/ckeditor5-mention/tests/mention-integration.js b/packages/ckeditor5-mention/tests/mention-integration.js index d1c35be4d8f..0d734d92a6e 100644 --- a/packages/ckeditor5-mention/tests/mention-integration.js +++ b/packages/ckeditor5-mention/tests/mention-integration.js @@ -48,7 +48,7 @@ describe( 'Mention feature - integration', () => { } ); } ); - // Failing test. See ckeditor/ckeditor5#1645. + // Failing test. See https://github.com/ckeditor/ckeditor5/issues/1645. it( 'should restore removed mention on adding a text inside mention', () => { editor.setData( '

foo @John bar

' ); @@ -76,7 +76,7 @@ describe( 'Mention feature - integration', () => { .to.equal( '

foo @John bar

' ); } ); - // Failing test. See ckeditor/ckeditor5#1645. + // Failing test. See https://github.com/ckeditor/ckeditor5/issues/1645. it( 'should restore removed mention on removing a text inside mention', () => { editor.setData( '

foo @John bar

' ); @@ -369,7 +369,8 @@ describe( 'Mention feature - integration', () => { // Show link UI editor.execute( 'link', '@' ); - // The link is not being selected after inserting it. We need to put the selection manually. See #1016. + // The link is not being selected after inserting it. We need to put the selection manually. + // See https://github.com/ckeditor/ckeditor5/issues/1016. model.change( writer => { writer.setSelection( writer.createRangeOn( model.document.getRoot().getChild( 0 ).getChild( 0 ) ) ); } ); diff --git a/packages/ckeditor5-mention/tests/mentionui.js b/packages/ckeditor5-mention/tests/mentionui.js index b202fff5c91..5406c4f4273 100644 --- a/packages/ckeditor5-mention/tests/mentionui.js +++ b/packages/ckeditor5-mention/tests/mentionui.js @@ -141,7 +141,7 @@ describe( 'MentionUI', () => { expect( panelView.isVisible ).to.be.false; } ); - // See #17964 + // See https://github.com/ckeditor/ckeditor5/issues/17964 it( 'should have the ck-mention-balloon class to make sure z-index does not conflict with the dialog system', () => { expect( balloonAddSpy.callCount ).to.equal( 1 ); expect( balloonAddSpy.firstCall.args[ 0 ].balloonClassName ).to.equal( 'ck-mention-balloon' ); @@ -2227,7 +2227,8 @@ describe( 'MentionUI', () => { marker: '$', feed: [ '$a1', '$a2', '$a3', '$a4', - // A case of mention with a marker character from other feed. See #6398. + // A case of mention with a marker character from other feed. + // See https://github.com/ckeditor/ckeditor5/issues/6398. '$a@' ] } diff --git a/packages/ckeditor5-paste-from-office/src/filters/list.ts b/packages/ckeditor5-paste-from-office/src/filters/list.ts index a7cf49081ff..97bc41337af 100644 --- a/packages/ckeditor5-paste-from-office/src/filters/list.ts +++ b/packages/ckeditor5-paste-from-office/src/filters/list.ts @@ -392,7 +392,7 @@ function isListContinuation( currentItem: ListLikeElement ) { return isList( parent ) && ( !parent.previousSibling || isList( parent.previousSibling ) ); } - // Even with the same id the list does not have to be continuous (#43). + // Even with the same id the list does not have to be continuous (https://github.com/ckeditor/ckeditor5/issues/43). return isList( previousSibling ); } @@ -615,7 +615,7 @@ function createNewEmptyList( * where: * * ``` - * * `l1` is a list id (however it does not mean this is a continuous list - see #43), + * * `l1` is a list id (however it does not mean this is a continuous list - see https://github.com/ckeditor/ckeditor5/issues/43), * * `level1` is a list item indentation level, * * `lfo1` is a list insertion order in a document. * ``` diff --git a/packages/ckeditor5-paste-from-office/src/filters/space.ts b/packages/ckeditor5-paste-from-office/src/filters/space.ts index b90480ea506..b30e084a83e 100644 --- a/packages/ckeditor5-paste-from-office/src/filters/space.ts +++ b/packages/ckeditor5-paste-from-office/src/filters/space.ts @@ -11,7 +11,9 @@ * Replaces last space preceding elements closing tag with ` `. Such operation prevents spaces from being removed * during further DOM/View processing (see especially {@link module:engine/view/domconverter~ViewDomConverter#_processDomInlineNodes}). * This method also takes into account Word specific `` empty tags. - * Additionally multiline sequences of spaces and new lines between tags are removed (see #39 and #40). + * Additionally multiline sequences of spaces and new lines between tags are removed (see + * https://github.com/ckeditor/ckeditor5-paste-from-office/issues/39 + * and https://github.com/ckeditor/ckeditor5-paste-from-office/issues/40). * * @param htmlString HTML string in which spacing should be normalized. * @returns Input HTML with spaces normalized. diff --git a/packages/ckeditor5-paste-from-office/tests/data/integration.js b/packages/ckeditor5-paste-from-office/tests/data/integration.js index 1727231fde5..8e275aace5b 100644 --- a/packages/ckeditor5-paste-from-office/tests/data/integration.js +++ b/packages/ckeditor5-paste-from-office/tests/data/integration.js @@ -38,7 +38,8 @@ describe( 'PasteFromOffice - integration', () => { plugins: [ Clipboard, Paragraph, Heading, Bold, Italic, Underline, Strikethrough, PasteFromOffice ] }, skip: { - safari: [ 'italicStartingText', 'multipleStylesSingleLine', 'multipleStylesMultiline' ] // Skip due to spacing issue (#13). + // Skip due to spacing issue (https://github.com/ckeditor/ckeditor5-paste-from-office/issues/13). + safari: [ 'italicStartingText', 'multipleStylesSingleLine', 'multipleStylesMultiline' ] } } ); @@ -61,7 +62,7 @@ describe( 'PasteFromOffice - integration', () => { plugins: [ Clipboard, Paragraph, Heading, Bold, Link, ShiftEnter, PasteFromOffice ] }, skip: { - safari: [ 'combined' ] // Skip due to spacing issue (#13). + safari: [ 'combined' ] // Skip due to spacing issue (https://github.com/ckeditor/ckeditor5-paste-from-office/issues/13). } } ); @@ -71,7 +72,7 @@ describe( 'PasteFromOffice - integration', () => { plugins: [ Clipboard, Paragraph, Heading, Bold, Italic, Underline, Link, List, ListProperties, PasteFromOffice ] }, skip: { - safari: [ 'heading3Styled' ] // Skip due to spacing issue (#13). + safari: [ 'heading3Styled' ] // Skip due to spacing issue (https://github.com/ckeditor/ckeditor5-paste-from-office/issues/13). } } ); diff --git a/packages/ckeditor5-paste-from-office/tests/filters/space.js b/packages/ckeditor5-paste-from-office/tests/filters/space.js index df96810217f..8fc38603c19 100644 --- a/packages/ckeditor5-paste-from-office/tests/filters/space.js +++ b/packages/ckeditor5-paste-from-office/tests/filters/space.js @@ -80,7 +80,7 @@ describe( 'PasteFromOffice - filters', () => { expect( normalizeSpacing( input ) ).to.equal( expected ); } ); - // ckeditor5#2095 + // https://github.com/ckeditor/ckeditor5/issues/2095 it( 'should detect space spans which are split into multiple lines', () => { const input = '

{ expect( htmlDocument.body.innerHTML.replace( /'/g, '"' ).replace( /: /g, ':' ) ).to.equal( expected ); } ); - // ckeditor5#5645 + // https://github.com/ckeditor/ckeditor5/issues/5645 it( 'should normalize spaces inside special "span.spacerun" elements that contain no data', () => { const input = '

Foo

' + '

Baz

'; diff --git a/packages/ckeditor5-remove-format/tests/integration.js b/packages/ckeditor5-remove-format/tests/integration.js index 48d476cb384..d2f72a86bb3 100644 --- a/packages/ckeditor5-remove-format/tests/integration.js +++ b/packages/ckeditor5-remove-format/tests/integration.js @@ -40,7 +40,7 @@ describe( 'RemoveFormat', () => { } ); it( 'does not remove image width attribute', () => { - // (#9684) + // (https://github.com/ckeditor/ckeditor5/issues/9684) _setModelData( model, '[caption]' ); editor.execute( 'removeFormat' ); diff --git a/packages/ckeditor5-restricted-editing/src/restrictededitingmodeediting.ts b/packages/ckeditor5-restricted-editing/src/restrictededitingmodeediting.ts index 95071c42bce..0308df220b3 100644 --- a/packages/ckeditor5-restricted-editing/src/restrictededitingmodeediting.ts +++ b/packages/ckeditor5-restricted-editing/src/restrictededitingmodeediting.ts @@ -648,7 +648,7 @@ function isRangeInsideSingleMarker( editor: Editor, range: ModelRange ) { * Note: This marker fixer only consider case which is possible to create using StandardEditing mode plugin. * Markers created by developer in the data might break in many other ways. * - * See #6003. + * See https://github.com/ckeditor/ckeditor5/issues/6003. */ function ensureNewMarkerIsFlatPostFixer( editor: Editor ): ModelPostFixer { return writer => { diff --git a/packages/ckeditor5-special-characters/src/ui/charactergridview.ts b/packages/ckeditor5-special-characters/src/ui/charactergridview.ts index 5c379c18e82..e781f3b4e7e 100644 --- a/packages/ckeditor5-special-characters/src/ui/charactergridview.ts +++ b/packages/ckeditor5-special-characters/src/ui/charactergridview.ts @@ -108,7 +108,7 @@ export class CharacterGridView extends View { } ); // Labels are vital for the users to understand what character they're looking at. - // For now we're using native title attribute for that, see #5817. + // For now we're using native title attribute for that, see https://github.com/ckeditor/ckeditor5/issues/5817. tile.extendTemplate( { attributes: { title: name diff --git a/packages/ckeditor5-style/src/stylecommand.ts b/packages/ckeditor5-style/src/stylecommand.ts index 71765d280b8..936511d8d77 100644 --- a/packages/ckeditor5-style/src/stylecommand.ts +++ b/packages/ckeditor5-style/src/stylecommand.ts @@ -247,7 +247,8 @@ export class StyleCommand extends Command { /** * Returns classes that are defined only in the supplied definition and not in any other active definition. It's used - * to ensure that classes used by other definitions are preserved when a style is removed. See #11748. + * to ensure that classes used by other definitions are preserved when a style is removed. + * See https://github.com/ckeditor/ckeditor5/issues/11748. * * @param activeDefinitions All currently active definitions affecting selected element(s). * @param definition Definition whose classes will be compared with all other active definition classes. diff --git a/packages/ckeditor5-style/src/styleui.ts b/packages/ckeditor5-style/src/styleui.ts index 089300815a0..5ffdac763b1 100644 --- a/packages/ckeditor5-style/src/styleui.ts +++ b/packages/ckeditor5-style/src/styleui.ts @@ -109,7 +109,8 @@ export class StyleUI extends Plugin { // Execute the command when a style is selected in the styles panel. // Also focus the editable after executing the command. - // It overrides a default behaviour where the focus is moved to the dropdown button (#12125). + // It overrides a default behaviour where the focus is moved to the dropdown button. + // See https://github.com/ckeditor/ckeditor5/issues/12125. dropdown.on( 'execute', evt => { editor.execute( 'style', { styleName: ( evt.source as any ).styleDefinition.name } ); editor.editing.view.focus(); diff --git a/packages/ckeditor5-table/src/converters/tableproperties.ts b/packages/ckeditor5-table/src/converters/tableproperties.ts index 3a6168558cc..94c0c19bb31 100644 --- a/packages/ckeditor5-table/src/converters/tableproperties.ts +++ b/packages/ckeditor5-table/src/converters/tableproperties.ts @@ -171,7 +171,7 @@ export function upcastBorderStyles( dispatcher.on( `element:${ viewElementName }`, ( evt, data, conversionApi ) => { const { modelRange, viewItem } = data; // If the element was not converted by element-to-element converter, - // we should not try to convert the style. See #8393. + // we should not try to convert the style. See https://github.com/ckeditor/ckeditor5/issues/8393. if ( !modelRange ) { return; } @@ -417,7 +417,7 @@ export function upcastTableCellPaddingAttribute( dispatcher.on( `element:${ viewElementName }`, ( evt, data, conversionApi ) => { const { modelRange, viewItem } = data; // If the element was not converted by element-to-element converter, - // we should not try to convert the style. See #8393. + // we should not try to convert the style. See https://github.com/ckeditor/ckeditor5/issues/8393. if ( !modelRange ) { return; } diff --git a/packages/ckeditor5-table/src/converters/upcasttable.ts b/packages/ckeditor5-table/src/converters/upcasttable.ts index 9b47a20b945..c5d2731f661 100644 --- a/packages/ckeditor5-table/src/converters/upcasttable.ts +++ b/packages/ckeditor5-table/src/converters/upcasttable.ts @@ -253,7 +253,7 @@ function scanTable( viewTable: ViewElement ) { } // There might be some extra empty text nodes between the ``s. - // Make sure further code operates on `tr`s only. (#145) + // Make sure further code operates on `tr`s only. (https://github.com/ckeditor/ckeditor5/issues/145) const trs = Array.from( tableChild.getChildren() ).filter( ( el: ViewNode ): el is ViewElement & { name: 'tr' } => el.is( 'element', 'tr' ) ); diff --git a/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts b/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts index 04a646a79da..5f4962dbb46 100644 --- a/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts +++ b/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts @@ -214,7 +214,7 @@ export class TableColumnResizeEditing extends Plugin { // Currently the states of column resize and table resize (which is actually the last column resize) features // are bound together. They can be separated in the future by adding distinct listeners and applying // different CSS classes (e.g. `ck-column-resize_disabled` and `ck-table-resize_disabled`) to the editor root. - // See #12148 for the details. + // See https://github.com/ckeditor/ckeditor5/issues/12148 for the details. this.bind( '_isResizingAllowed' ).to( editor, 'isReadOnly', columnResizePlugin, 'isEnabled', diff --git a/packages/ckeditor5-table/src/tablecolumnresize/utils.ts b/packages/ckeditor5-table/src/tablecolumnresize/utils.ts index 8190b58c7e1..542b7388cf9 100644 --- a/packages/ckeditor5-table/src/tablecolumnresize/utils.ts +++ b/packages/ckeditor5-table/src/tablecolumnresize/utils.ts @@ -45,7 +45,8 @@ export function getChangedResizedTables( model: Model ): Set { break; case 'remove': - // If the whole table is removed, there's no need to update its column widths (#12201). + // If the whole table is removed, there's no need to update its column widths. + // See https://github.com/ckeditor/ckeditor5/issues/12201. referencePosition = [ 'tableRow', 'tableCell' ].includes( change.name ) ? change.position : null; @@ -109,7 +110,7 @@ export function getColumnMinWidthAsPercentage( modelTable: ModelElement, editor: * @returns The width of the table in pixels. */ export function getTableWidthInPixels( modelTable: ModelElement, editor: Editor ): number { - // It is possible for a table to not have a element - see #11878. + // It is possible for a table to not have a element - see https://github.com/ckeditor/ckeditor5/issues/11878. const referenceElement = getChildrenViewElement( modelTable, 'tbody', editor ) || getChildrenViewElement( modelTable, 'thead', editor ) || @@ -147,7 +148,7 @@ export function getElementWidthInPixels( domElement: HTMLElement ): number { const styles = global.window.getComputedStyle( domElement ); // In the 'border-box' box sizing algorithm, the element's width - // already includes the padding and border width (#12335). + // already includes the padding and border width (https://github.com/ckeditor/ckeditor5/issues/12335). if ( styles.boxSizing === 'border-box' ) { return parseFloat( styles.width ) - parseFloat( styles.paddingLeft ) - @@ -328,7 +329,7 @@ export function getDomCellOuterWidth( domCell: HTMLElement ): number { const styles = global.window.getComputedStyle( domCell ); // In the 'border-box' box sizing algorithm, the element's width - // already includes the padding and border width (#12335). + // already includes the padding and border width (https://github.com/ckeditor/ckeditor5/issues/12335). if ( styles.boxSizing === 'border-box' ) { return parseInt( styles.width ); } else { diff --git a/packages/ckeditor5-table/src/tableutils.ts b/packages/ckeditor5-table/src/tableutils.ts index fce57652c1a..aeefd950956 100644 --- a/packages/ckeditor5-table/src/tableutils.ts +++ b/packages/ckeditor5-table/src/tableutils.ts @@ -1709,7 +1709,7 @@ function moveCellsToRow( table: ModelElement, targetRowIndex: number, cellsToMov previousCell = cellToMove; } else if ( isAnchor ) { - // If cell is spanned then `cell` holds reference to overlapping cell. See ckeditor/ckeditor5#6502. + // If cell is spanned then `cell` holds reference to overlapping cell. See https://github.com/ckeditor/ckeditor5/issues/6502. previousCell = cell; } } diff --git a/packages/ckeditor5-table/tests/commands/removerowcommand.js b/packages/ckeditor5-table/tests/commands/removerowcommand.js index 97a72c52442..094c9673cf2 100644 --- a/packages/ckeditor5-table/tests/commands/removerowcommand.js +++ b/packages/ckeditor5-table/tests/commands/removerowcommand.js @@ -84,7 +84,7 @@ describe( 'RemoveRowCommand', () => { } ); it( 'should be false when the first column with rowspan is selected', () => { - // (#6427) + // (https://github.com/ckeditor/ckeditor5/issues/6427) _setModelData( model, modelTable( [ [ { rowspan: 2, contents: '00' }, '01' ], [ '11' ], diff --git a/packages/ckeditor5-table/tests/tablecolumnresize/tablecolumnresizeediting.js b/packages/ckeditor5-table/tests/tablecolumnresize/tablecolumnresizeediting.js index 86a137915c6..9d83b929c9b 100644 --- a/packages/ckeditor5-table/tests/tablecolumnresize/tablecolumnresizeediting.js +++ b/packages/ckeditor5-table/tests/tablecolumnresize/tablecolumnresizeediting.js @@ -3323,7 +3323,7 @@ describe( 'TableColumnResizeEditing', () => { } ); it( 'should save and load data correctly', () => { - // (#12191) + // (https://github.com/ckeditor/ckeditor5/issues/12191) _setModelData( ghsEditor.model, modelTable( [ [ '[00', '01', '02]' ] ], { tableWidth: '80%', columnWidths: '25%,25%,50%' } ) ); diff --git a/packages/ckeditor5-table/tests/tablecolumnresize/utils.js b/packages/ckeditor5-table/tests/tablecolumnresize/utils.js index 6cd1b3abfae..1daaf867c81 100644 --- a/packages/ckeditor5-table/tests/tablecolumnresize/utils.js +++ b/packages/ckeditor5-table/tests/tablecolumnresize/utils.js @@ -608,7 +608,8 @@ describe( 'TableColumnResize utils', () => { describe( 'getTableWidthInPixels()', () => { // Because the `window.getComputedStyle()` for colgroup will always return 0px on Safari, we needed to change the calculations - // to be based on tbody element instead - which works ok in all main browsers. See #1466 for reference. + // to be based on tbody element instead - which works ok in all main browsers. + // See https://github.com/ckeditor/ckeditor5/issues/1466 for reference. it( 'returns a correct value on Safari', () => { editor.setData( `
diff --git a/packages/ckeditor5-table/tests/tablelayout/tablelayoutui.js b/packages/ckeditor5-table/tests/tablelayout/tablelayoutui.js index b563e27ba81..f9553017a40 100644 --- a/packages/ckeditor5-table/tests/tablelayout/tablelayoutui.js +++ b/packages/ckeditor5-table/tests/tablelayout/tablelayoutui.js @@ -114,7 +114,7 @@ describe( 'TableLayoutUI', () => { insertTableLayout.render(); document.body.appendChild( insertTableLayout.element ); - insertTableLayout.isOpen = true; // Dropdown is lazy loaded (#6193). + insertTableLayout.isOpen = true; // Dropdown is lazy loaded (https://github.com/ckeditor/ckeditor5/issues/6193). insertTableLayout.isOpen = false; } ); diff --git a/packages/ckeditor5-table/tests/tableui.js b/packages/ckeditor5-table/tests/tableui.js index 0005e2b443b..058a28cdc2a 100644 --- a/packages/ckeditor5-table/tests/tableui.js +++ b/packages/ckeditor5-table/tests/tableui.js @@ -124,7 +124,8 @@ describe( 'TableUI', () => { document.body.appendChild( insertTable.element ); - insertTable.isOpen = true; // Dropdown is lazy loaded, so make sure its open (#6193). + // Dropdown is lazy loaded, so make sure its open (https://github.com/ckeditor/ckeditor5/issues/6193). + insertTable.isOpen = true; } ); afterEach( () => { @@ -179,7 +180,7 @@ describe( 'TableUI', () => { insertTable.render(); document.body.appendChild( insertTable.element ); - insertTable.isOpen = true; // Dropdown is lazy loaded (#6193). + insertTable.isOpen = true; // Dropdown is lazy loaded (https://github.com/ckeditor/ckeditor5/issues/6193). insertTable.isOpen = false; } ); diff --git a/packages/ckeditor5-table/theme/colorinput.css b/packages/ckeditor5-table/theme/colorinput.css index 35d16c29d8f..da67fb8127f 100644 --- a/packages/ckeditor5-table/theme/colorinput.css +++ b/packages/ckeditor5-table/theme/colorinput.css @@ -26,7 +26,7 @@ & > .ck.ck-dropdown { & > .ck.ck-button.ck-input-color__button { padding: 0; - /* Resolving issue with misaligned buttons on Safari (see #10589) */ + /* Resolving issue with misaligned buttons on Safari (see https://github.com/ckeditor/ckeditor5/issues/10589) */ display: flex; [dir="ltr"] & { diff --git a/packages/ckeditor5-typing/src/deletecommand.ts b/packages/ckeditor5-typing/src/deletecommand.ts index c5e7df89c88..0fd1cdab9e4 100644 --- a/packages/ckeditor5-typing/src/deletecommand.ts +++ b/packages/ckeditor5-typing/src/deletecommand.ts @@ -101,7 +101,7 @@ export class DeleteCommand extends Command { } ); } - // Check if deleting in an empty editor. See #61. + // Check if deleting in an empty editor. See https://github.com/ckeditor/ckeditor5-typing/issues/61. if ( this._shouldEntireContentBeReplacedWithParagraph( sequence ) ) { this._replaceEntireContentWithParagraph( writer ); diff --git a/packages/ckeditor5-ui/src/button/buttonview.ts b/packages/ckeditor5-ui/src/button/buttonview.ts index 11942da83db..320ef096aa6 100644 --- a/packages/ckeditor5-ui/src/button/buttonview.ts +++ b/packages/ckeditor5-ui/src/button/buttonview.ts @@ -316,7 +316,7 @@ export class ButtonView extends View implements Button { ); // On Safari we have to force the focus on a button on click as it's the only browser - // that doesn't do that automatically. See #12115. + // that doesn't do that automatically. See https://github.com/ckeditor/ckeditor5/issues/12115. if ( env.isSafari ) { if ( !this._focusDelayed ) { this._focusDelayed = delay( () => this.focus(), 0 ); diff --git a/packages/ckeditor5-ui/src/dropdown/utils.ts b/packages/ckeditor5-ui/src/dropdown/utils.ts index 3b421265f99..d6ef6702779 100644 --- a/packages/ckeditor5-ui/src/dropdown/utils.ts +++ b/packages/ckeditor5-ui/src/dropdown/utils.ts @@ -620,8 +620,9 @@ function focusDropdownButtonOnClose( dropdownView: DropdownView ) { const elements = dropdownView.focusTracker.elements; - // If the dropdown was closed, move the focus back to the button (#12125). - // Don't touch the focus, if it moved somewhere else (e.g. moved to the editing root on #execute) (#12178). + // If the dropdown was closed, move the focus back to the button (https://github.com/ckeditor/ckeditor5/issues/12125). + // Don't touch the focus, if it moved somewhere else (e.g. moved to the editing root on #execute). + // See https://github.com/ckeditor/ckeditor5/issues/12178. // Note: Don't use the state of the DropdownView#focusTracker here. It fires #blur with the timeout. if ( elements.some( element => element.contains( global.document.activeElement ) ) ) { dropdownView.buttonView.focus(); diff --git a/packages/ckeditor5-ui/src/editorui/editorui.ts b/packages/ckeditor5-ui/src/editorui/editorui.ts index 33a2884e083..330e0d5b8f5 100644 --- a/packages/ckeditor5-ui/src/editorui/editorui.ts +++ b/packages/ckeditor5-ui/src/editorui/editorui.ts @@ -495,7 +495,7 @@ export abstract class EditorUI extends /* #__PURE__ */ ObservableMixin() { // This ensures, the navigation works always the same and no pair of toolbars takes over // (e.g. image and table toolbars when a selected image is inside a cell). // * It could be that the focus went to the toolbar by clicking a toolbar item (e.g. a dropdown). In this case, - // there were no candidates so they must be obtained (#12339). + // there were no candidates so they must be obtained (https://github.com/ckeditor/ckeditor5/issues/12339). if ( !currentFocusedToolbarDefinition || !candidateDefinitions ) { candidateDefinitions = this._getFocusableCandidateToolbarDefinitions(); } diff --git a/packages/ckeditor5-ui/src/toolbar/block/blocktoolbar.ts b/packages/ckeditor5-ui/src/toolbar/block/blocktoolbar.ts index db6f0978096..bb548ad56dd 100644 --- a/packages/ckeditor5-ui/src/toolbar/block/blocktoolbar.ts +++ b/packages/ckeditor5-ui/src/toolbar/block/blocktoolbar.ts @@ -220,7 +220,7 @@ export class BlockToolbar extends Plugin { public override destroy(): void { super.destroy(); - // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341). + // Destroy created UI components as they are not automatically destroyed (see https://github.com/ckeditor/ckeditor5/issues/1341). this.panelView.destroy(); this.buttonView.destroy(); this.toolbarView.destroy(); diff --git a/packages/ckeditor5-ui/tests/button/buttonview.js b/packages/ckeditor5-ui/tests/button/buttonview.js index 790cf68f190..fafec7d7f36 100644 --- a/packages/ckeditor5-ui/tests/button/buttonview.js +++ b/packages/ckeditor5-ui/tests/button/buttonview.js @@ -556,7 +556,7 @@ describe( 'ButtonView', () => { } ); it( 'is omitted in #children when view#keystroke is not defined', () => { - // (#9412) + // (https://github.com/ckeditor/ckeditor5/issues/9412) view = new ButtonView( locale ); view.withKeystroke = true; view.render(); diff --git a/packages/ckeditor5-ui/tests/colorselector/colorselectorview.js b/packages/ckeditor5-ui/tests/colorselector/colorselectorview.js index 8958e96197c..7f9bd355493 100644 --- a/packages/ckeditor5-ui/tests/colorselector/colorselectorview.js +++ b/packages/ckeditor5-ui/tests/colorselector/colorselectorview.js @@ -56,7 +56,7 @@ describe( 'ColorSelectorView', () => { format: 'hsl' } } ); - // Grids rendering is deferred (#6192) therefore render happens before appending grids. + // Grids rendering is deferred (https://github.com/ckeditor/ckeditor5/issues/6192) therefore render happens before appending grids. colorSelectorView.render(); colorSelectorView._appendColorGridsFragment(); @@ -868,7 +868,8 @@ describe( 'ColorSelectorView', () => { removeButtonLabel: 'Remove color', documentColorsCount: 0 } ); - // Grids rendering is deferred (#6192) therefore render happens before appending grids. + // Grids rendering is deferred (https://github.com/ckeditor/ckeditor5/issues/6192) + // therefore render happens before appending grids. colorSelectorView.render(); colorSelectorView._appendColorGridsFragment(); } ); diff --git a/packages/ckeditor5-ui/tests/toolbar/toolbarview.js b/packages/ckeditor5-ui/tests/toolbar/toolbarview.js index ce574f9c38b..df514c2dd8e 100644 --- a/packages/ckeditor5-ui/tests/toolbar/toolbarview.js +++ b/packages/ckeditor5-ui/tests/toolbar/toolbarview.js @@ -1240,7 +1240,7 @@ describe( 'ToolbarView', () => { expect( ungroupedItems.map( i => i ) ).to.have.ordered.members( [ itemB, itemD ] ); } ); - it( 'doesn\'t throw when removing the first of grouped items', () => { // (#7655) + it( 'doesn\'t throw when removing the first of grouped items', () => { // (https://github.com/ckeditor/ckeditor5/issues/7655) const items = [ focusable(), focusable(), focusable(), focusable() ]; view.element.style.width = '200px'; view.items.addMany( items ); diff --git a/packages/ckeditor5-ui/theme/components/dropdown/dropdown.css b/packages/ckeditor5-ui/theme/components/dropdown/dropdown.css index c348dfc31f1..5a857e637c0 100644 --- a/packages/ckeditor5-ui/theme/components/dropdown/dropdown.css +++ b/packages/ckeditor5-ui/theme/components/dropdown/dropdown.css @@ -57,7 +57,7 @@ } } - /* #23 */ + /* https://github.com/ckeditor/ckeditor5/issues/23 */ & .ck-button__label { width: 7em; overflow: hidden; diff --git a/packages/ckeditor5-ui/theme/components/icon/icon.css b/packages/ckeditor5-ui/theme/components/icon/icon.css index 77848c6a65c..7c19135e174 100644 --- a/packages/ckeditor5-ui/theme/components/icon/icon.css +++ b/packages/ckeditor5-ui/theme/components/icon/icon.css @@ -15,11 +15,11 @@ /* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */ font-size: var(--ck-icon-font-size); - /* Inherit cursor style (#5). */ + /* Inherit cursor style (https://github.com/ckeditor/ckeditor5/issues/5). */ cursor: inherit; & * { - /* Inherit cursor style (#5). */ + /* Inherit cursor style (https://github.com/ckeditor/ckeditor5/issues/5). */ cursor: inherit; } diff --git a/packages/ckeditor5-ui/theme/components/panel/stickypanel.css b/packages/ckeditor5-ui/theme/components/panel/stickypanel.css index 4178f9d49ac..5612216eba5 100644 --- a/packages/ckeditor5-ui/theme/components/panel/stickypanel.css +++ b/packages/ckeditor5-ui/theme/components/panel/stickypanel.css @@ -11,7 +11,7 @@ border-width: 0 1px 1px; border-top-left-radius: 0; border-top-right-radius: 0; - z-index: var(--ck-z-panel); /* #315 */ + z-index: var(--ck-z-panel); /* https://github.com/ckeditor/ckeditor5/issues/315 */ position: fixed; top: 0; } diff --git a/packages/ckeditor5-ui/theme/components/toolbar/toolbar.css b/packages/ckeditor5-ui/theme/components/toolbar/toolbar.css index 096e5b8e321..66261c7ff8f 100644 --- a/packages/ckeditor5-ui/theme/components/toolbar/toolbar.css +++ b/packages/ckeditor5-ui/theme/components/toolbar/toolbar.css @@ -47,7 +47,7 @@ & > .ck-toolbar__items { & > *:not(.ck-toolbar__line-break) { - /* (#11) Separate toolbar items. */ + /* (https://github.com/ckeditor/ckeditor5/issues/11) Separate toolbar items. */ margin-right: var(--ck-spacing-small); } @@ -164,7 +164,7 @@ } &:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck { - /* (#11) Separate toolbar items. */ + /* (https://github.com/ckeditor/ckeditor5/issues/11) Separate toolbar items. */ margin-left: var(--ck-spacing-small); } diff --git a/packages/ckeditor5-undo/tests/undoediting-integration.js b/packages/ckeditor5-undo/tests/undoediting-integration.js index cd6db1456d6..4b20433ed1c 100644 --- a/packages/ckeditor5-undo/tests/undoediting-integration.js +++ b/packages/ckeditor5-undo/tests/undoediting-integration.js @@ -972,7 +972,7 @@ describe( 'UndoEditing integration', () => { output( 'Foo[]' ); } ); - // ckeditor5#781 + // https://github.com/ckeditor/ckeditor5/issues/781 it( 'cutting should not create empty undo step', () => { input( 'Fo[oba]r' ); diff --git a/packages/ckeditor5-utils/src/diff.ts b/packages/ckeditor5-utils/src/diff.ts index 73cd5f92e4e..b3f1264c6e5 100644 --- a/packages/ckeditor5-utils/src/diff.ts +++ b/packages/ckeditor5-utils/src/diff.ts @@ -43,7 +43,7 @@ export function diff( const aLength = a.length; const bLength = b.length; - // Perform `fastDiff` for longer strings/arrays (see #269). + // Perform `fastDiff` for longer strings/arrays (see https://github.com/ckeditor/ckeditor5-utils/issues/269). if ( aLength > 200 || bLength > 200 || aLength + bLength > 300 ) { return diff.fastDiff( a, b, cmp, true ); } diff --git a/packages/ckeditor5-utils/src/fastdiff.ts b/packages/ckeditor5-utils/src/fastdiff.ts index 0aa714e0770..dd3c7b8ea7f 100644 --- a/packages/ckeditor5-utils/src/fastdiff.ts +++ b/packages/ckeditor5-utils/src/fastdiff.ts @@ -126,7 +126,7 @@ export function fastDiff( // Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because, // unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string. // One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units. - // See ckeditor/ckeditor5#3147. + // See https://github.com/ckeditor/ckeditor5/issues/3147. // // We need to make sure here that fastDiff() works identical to diff(). const arrayA: Array = Array.isArray( a ) ? a : Array.prototype.slice.call( a ); diff --git a/packages/ckeditor5-utils/src/observablemixin.ts b/packages/ckeditor5-utils/src/observablemixin.ts index cf04dc29e0a..3c6aca0faa9 100644 --- a/packages/ckeditor5-utils/src/observablemixin.ts +++ b/packages/ckeditor5-utils/src/observablemixin.ts @@ -132,7 +132,8 @@ export function ObservableMixin( base?: Constructor ): unknown { newValue = value; } - // Allow undefined as an initial value like A.define( 'x', undefined ) (#132). + // Allow undefined as an initial value like A.define( 'x', undefined ). + // See https://github.com/ckeditor/ckeditor5/issues/132. // Note: When properties map has no such own property, then its value is undefined. if ( oldValue !== newValue || !properties!.has( name ) ) { properties!.set( name, newValue ); diff --git a/packages/ckeditor5-widget/src/widget.ts b/packages/ckeditor5-widget/src/widget.ts index 38180ec20fa..54e16b47e21 100644 --- a/packages/ckeditor5-widget/src/widget.ts +++ b/packages/ckeditor5-widget/src/widget.ts @@ -170,7 +170,7 @@ export class Widget extends Plugin { // All of them must be marked as selected, for instance [] for ( const value of range ) { const node = value.item as ViewElement; - // Do not mark nested widgets in selected one. See: #4594 + // Do not mark nested widgets in selected one. See: https://github.com/ckeditor/ckeditor5/issues/4594 if ( isWidget( node ) && !isChild( node, lastMarked ) ) { viewWriter.addClass( WIDGET_SELECTED_CLASS_NAME, node ); this._previouslySelected.add( node ); diff --git a/packages/ckeditor5-widget/src/widgetresize.ts b/packages/ckeditor5-widget/src/widgetresize.ts index f61e257c0f6..ae4564f0424 100644 --- a/packages/ckeditor5-widget/src/widgetresize.ts +++ b/packages/ckeditor5-widget/src/widgetresize.ts @@ -267,7 +267,7 @@ export class WidgetResize extends Plugin { if ( this._activeResizer ) { this._activeResizer.begin( resizeHandle ); - // Do not call other events when resizing. See: #6755. + // Do not call other events when resizing. See: https://github.com/ckeditor/ckeditor5/issues/6755. event.stop(); domEventData.preventDefault(); } diff --git a/packages/ckeditor5-widget/src/widgetresize/resizer.ts b/packages/ckeditor5-widget/src/widgetresize/resizer.ts index b64eff2bf88..6adb294f880 100644 --- a/packages/ckeditor5-widget/src/widgetresize/resizer.ts +++ b/packages/ckeditor5-widget/src/widgetresize/resizer.ts @@ -95,7 +95,7 @@ export class WidgetResizer extends /* #__PURE__ */ ObservableMixin() { this.on( 'commit', event => { // State might not be initialized yet. In this case, prevent further handling and make sure that the resizer is - // cleaned up (#5195). + // cleaned up (https://github.com/ckeditor/ckeditor5/issues/5195). if ( !this.state.proposedWidth && !this.state.proposedWidthPercents ) { this._cleanup(); event.stop(); diff --git a/packages/ckeditor5-widget/src/widgettoolbarrepository.ts b/packages/ckeditor5-widget/src/widgettoolbarrepository.ts index 13f8426901f..0fad4c83f80 100644 --- a/packages/ckeditor5-widget/src/widgettoolbarrepository.ts +++ b/packages/ckeditor5-widget/src/widgettoolbarrepository.ts @@ -250,7 +250,7 @@ export class WidgetToolbarRepository extends Plugin { // Many toolbars can express willingness to be displayed but they do not know about // each other. Figure out which toolbar is deepest in the view tree to decide which // should be displayed. For instance, if a selected image is inside a table cell, display - // the ImageToolbar rather than the TableToolbar (#60). + // the ImageToolbar rather than the TableToolbar (https://github.com/ckeditor/ckeditor5-widget/issues/60). if ( relatedElementDepth > maxRelatedElementDepth ) { maxRelatedElementDepth = relatedElementDepth; deepestRelatedElement = relatedElement; diff --git a/packages/ckeditor5-widget/tests/manual/inline-widget.html b/packages/ckeditor5-widget/tests/manual/inline-widget.html index 29c32076909..001cca51129 100644 --- a/packages/ckeditor5-widget/tests/manual/inline-widget.html +++ b/packages/ckeditor5-widget/tests/manual/inline-widget.html @@ -15,7 +15,7 @@

Model contents:

outline-offset: -2px; line-height: 1em; /* Set margins before and after the inline widget so the cursor between two instances is visible when one of them is focused. - Optimized for Firefox due to bug in rendering selection in ZWS on Chrome. See ckeditor5#1607. */ + Optimized for Firefox due to bug in rendering selection in ZWS on Chrome. See https://github.com/ckeditor/ckeditor5/issues/1607. */ margin-right: 1px; margin-left: 3px; } diff --git a/packages/ckeditor5-widget/tests/manual/keyboard.html b/packages/ckeditor5-widget/tests/manual/keyboard.html index 6e46f0e896b..c1a01c7f3ad 100644 --- a/packages/ckeditor5-widget/tests/manual/keyboard.html +++ b/packages/ckeditor5-widget/tests/manual/keyboard.html @@ -16,7 +16,7 @@ outline-offset: -2px; line-height: 1em; /* Set margins before and after the inline widget so the cursor between two instances is visible when one of them is focused. - Optimized for Firefox due to bug in rendering selection in ZWS on Chrome. See ckeditor5#1607. */ + Optimized for Firefox due to bug in rendering selection in ZWS on Chrome. See https://github.com/ckeditor/ckeditor5/issues/1607. */ margin-right: 1px; margin-left: 3px; } diff --git a/packages/ckeditor5-widget/tests/widgetresize.js b/packages/ckeditor5-widget/tests/widgetresize.js index 31f880d8503..55b1f429928 100644 --- a/packages/ckeditor5-widget/tests/widgetresize.js +++ b/packages/ckeditor5-widget/tests/widgetresize.js @@ -532,7 +532,8 @@ describe( 'WidgetResize', () => { expect( commitStub.callCount, 'call count' ).to.be.eql( 0 ); } ); - // Note that ultimately width should be changed, but through a model converter, not with direct view changes (#6060). + // Note that ultimately width should be changed, but through a model converter, not with direct view changes. + // See https://github.com/ckeditor/ckeditor5/issues/6060. it( 'restores the original view width after resize is done', () => { createResizer(); @@ -772,7 +773,7 @@ describe( 'WidgetResize', () => { resizer.cancel(); - // Value should be restored to the initial value (#6060). + // Value should be restored to the initial value (https://github.com/ckeditor/ckeditor5/issues/6060). expect( widget.getStyle( 'width' ) ).to.equal( INITIAL_WIDGET_WIDTH ); } ); } );