File tree Expand file tree Collapse file tree 6 files changed +64
-5
lines changed
Expand file tree Collapse file tree 6 files changed +64
-5
lines changed Original file line number Diff line number Diff line change 4545 "@lit/context" : " ^1.1.6" ,
4646 "@lit/localize" : " ^0.12.2" ,
4747 "@tiptap/core" : " ^3.10.4" ,
48+ "@tiptap/extension-link" : " ^3.10.4" ,
4849 "@tiptap/extensions" : " ^3.10.4" ,
4950 "@tiptap/pm" : " ^3.10.4" ,
5051 "@tiptap/starter-kit" : " ^3.10.4" ,
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ export class BaseCommentItem extends LitElement {
6262 class= "item-author font-medium text-sm text-text-1 hover:underline"
6363 target = "_blank"
6464 href = ${ ifDefined ( this . userWebsite ) }
65- rel= "noopener noreferrer"
65+ rel= "noopener noreferrer nofollow ugc "
6666 >
6767 ${ this . userDisplayName }
6868 </ a>
Original file line number Diff line number Diff line change @@ -9,6 +9,16 @@ export class CommentContent extends LitElement {
99 @property ( { type : String } )
1010 content : string = '' ;
1111
12+ private applyLinkAttributes ( ) {
13+ const anchors =
14+ this . shadowRoot ?. querySelectorAll < HTMLAnchorElement > ( '.content a' ) ;
15+
16+ anchors ?. forEach ( ( anchor ) => {
17+ anchor . target = '_blank' ;
18+ anchor . rel = 'noopener noreferrer nofollow ugc' ;
19+ } ) ;
20+ }
21+
1222 protected override firstUpdated ( _changedProperties : PropertyValues ) {
1323 super . firstUpdated ( _changedProperties ) ;
1424 const codeElements = this . shadowRoot ?. querySelectorAll ( 'pre>code' ) ;
@@ -38,6 +48,11 @@ export class CommentContent extends LitElement {
3848 ) ;
3949 }
4050
51+ protected override updated ( _changedProperties : PropertyValues ) {
52+ super . updated ( _changedProperties ) ;
53+ this . applyLinkAttributes ( ) ;
54+ }
55+
4156 private extractLanguageFromCodeElement ( codeElement : Element ) : string | null {
4257 const supportedPrefixes = [ 'language-' , 'lang-' ] ;
4358
Original file line number Diff line number Diff line change @@ -95,12 +95,12 @@ export class CommentEditor extends LitElement {
9595
9696 async createEditor ( ) {
9797 const { Editor } = await import ( '@tiptap/core' ) ;
98- const { Placeholder } = await import ( '@tiptap/extensions' ) ;
98+ const { CharacterCount, Placeholder } = await import ( '@tiptap/extensions' ) ;
99+ const { Link } = await import ( '@tiptap/extension-link' ) ;
99100 const { StarterKit } = await import ( '@tiptap/starter-kit' ) ;
100101 const { CodeBlockShiki } = await import (
101102 'tiptap-extension-code-block-shiki'
102103 ) ;
103- const { CharacterCount } = await import ( '@tiptap/extensions' ) ;
104104
105105 this . loading = false ;
106106
@@ -119,6 +119,15 @@ export class CommentEditor extends LitElement {
119119 placeholder : this . placeholder || msg ( 'Write a comment' ) ,
120120 } ) ,
121121
122+ Link . configure ( {
123+ openOnClick : false ,
124+ defaultProtocol : 'https' ,
125+ HTMLAttributes : {
126+ target : '_blank' ,
127+ rel : 'noopener noreferrer nofollow ugc' ,
128+ } ,
129+ } ) ,
130+
122131 CodeBlockShiki . configure ( {
123132 defaultTheme : 'github-dark' ,
124133 } ) ,
Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ export class UserAvatar extends LitElement {
6767
6868 override render ( ) {
6969 if ( this . href ) {
70- return html `<a class= "avatar" href = "${ this . href } " target = "_blank" rel = "noopener noreferrer" >
70+ return html `<a class= "avatar" href = "${ this . href } " target = "_blank" rel = "noopener noreferrer nofollow ugc " >
7171 ${ this . renderAvatarContent ( ) }
7272 </ a> ` ;
7373 }
You can’t perform that action at this time.
0 commit comments