Last active
August 14, 2021 18:23
-
-
Save h-mikisato/00cf0f82b786f2482ddd8aa105509de1 to your computer and use it in GitHub Desktop.
Udonarium v1.13.1 対応 チャットのURLのリンク化パッチ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/package.json b/package.json | |
index 8b3d35e..48d15a6 100644 | |
--- a/package.json | |
+++ b/package.json | |
@@ -20,6 +20,7 @@ | |
"@angular/platform-browser": "^11.0.7", | |
"@angular/platform-browser-dynamic": "^11.0.7", | |
"@angular/router": "^11.0.7", | |
+ "autolinker": "^3.14.2", | |
"crypto-js": "^3.1.9-1", | |
"file-saver": "^2.0.2", | |
"hammerjs": "^2.0.8", | |
@@ -27,6 +28,7 @@ | |
"jszip": "~3.1.5", | |
"lzbase62": "^1.4.9", | |
"msgpack-lite": "^0.1.26", | |
+ "ngx-linky": "^3.0.0", | |
"pako": "^1.0.10", | |
"rxjs": "^6.6.3", | |
"tslib": "^2.0.0", | |
diff --git a/src/app/app.module.ts b/src/app/app.module.ts | |
index 519e76f..e5f387d 100644 | |
--- a/src/app/app.module.ts | |
+++ b/src/app/app.module.ts | |
@@ -27,6 +27,7 @@ import { GameTableSettingComponent } from 'component/game-table-setting/game-tab | |
import { GameTableComponent } from 'component/game-table/game-table.component'; | |
import { JukeboxComponent } from 'component/jukebox/jukebox.component'; | |
import { LobbyComponent } from 'component/lobby/lobby.component'; | |
+import { LinkyModule } from 'ngx-linky'; | |
import { ModalComponent } from 'component/modal/modal.component'; | |
import { NetworkIndicatorComponent } from 'component/network-indicator/network-indicator.component'; | |
import { OverviewPanelComponent } from 'component/overview-panel/overview-panel.component'; | |
@@ -106,7 +107,8 @@ import { AppComponent } from './app.component'; | |
BrowserModule, | |
BrowserAnimationsModule, | |
CommonModule, | |
- FormsModule | |
+ FormsModule, | |
+ LinkyModule, | |
], | |
providers: [ | |
AppConfigService, | |
diff --git a/src/app/component/chat-message/chat-message.component.html b/src/app/component/chat-message/chat-message.component.html | |
index 9ca58c1..cbe8581 100644 | |
--- a/src/app/component/chat-message/chat-message.component.html | |
+++ b/src/app/component/chat-message/chat-message.component.html | |
@@ -17,7 +17,7 @@ | |
</div> | |
</div> | |
<ng-template #visible> | |
- <span>{{chatMessage.text}}</span> | |
+ <span [innerHTML]="escapeHtml(chatMessage.text) | linky:{stripPrefix: false}"></span> | |
<button *ngIf="chatMessage.isSecret" (click)="discloseMessage()">結果を公開</button> | |
</ng-template> | |
<ng-template #secret> | |
diff --git a/src/app/component/chat-message/chat-message.component.ts b/src/app/component/chat-message/chat-message.component.ts | |
index 5e66b21..0ddc395 100644 | |
--- a/src/app/component/chat-message/chat-message.component.ts | |
+++ b/src/app/component/chat-message/chat-message.component.ts | |
@@ -50,4 +50,9 @@ export class ChatMessageComponent implements OnInit, AfterViewInit { | |
discloseMessage() { | |
this.chatMessage.tag = this.chatMessage.tag.replace('secret', ''); | |
} | |
+ | |
+ escapeHtml(text) { | |
+ return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") | |
+ .replace(/"/g, """).replace(/'/g, "'"); | |
+ } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ライセンスは元プロダクトに基づきMIT Licenseとします。