Skip to content

Commit 017f2dd

Browse files
committed
Merge branch 'dev'
2 parents b39770f + 2b295ea commit 017f2dd

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/content_scripts/hide-works.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ import { WorkElement } from "../export/objects";
66
* @param document Document the works belong to
77
*/
88
export function hideWorks(works: WorkElement[], document: Document, settings: { [key: string]: any }) {
9+
let parser = new DOMParser();
910
works.forEach(w => {
1011
var reason = shouldHide(w, settings);
1112
if(reason != null)
12-
hideWork(w, reason, document);
13+
hideWork(w, reason, document, parser);
1314
});
1415
}
1516

@@ -33,13 +34,17 @@ function shouldHide(work: WorkElement, settings: { [key: string]: any }): string
3334
* @param work Work to be hidden
3435
* @param reason Reason why work should be hidden (from shouldHide method)
3536
* @param document Document the work belongs to
37+
* @param parser DOMParser to safely parse the work HTML
3638
*/
37-
function hideWork(work: WorkElement, reason: string, document: Document): void {
39+
function hideWork(work: WorkElement, reason: string, document: Document, parser: DOMParser): void {
3840
let workElement = work.element!;
3941

4042
let cut = document.createElement('div');
4143
cut.className = 'cut display-on-show';
42-
cut.innerHTML = work.element!.innerHTML;
44+
let workNodes = parser.parseFromString(work.element!.innerHTML, 'text/html').body.childNodes;
45+
workNodes.forEach(element => {
46+
cut.append(element);
47+
});
4348

4449
let fold: HTMLElement = document.createElement("div");
4550
fold.innerHTML = `
@@ -68,8 +73,8 @@ function hideWork(work: WorkElement, reason: string, document: Document): void {
6873
`;
6974
fold = fold.firstElementChild as HTMLElement;
7075

71-
let reasonContainer = fold.querySelector('.reason-hidden')!;
72-
reasonContainer.innerHTML = reason;
76+
let reasonContainer = fold.querySelector('.reason-hidden') as HTMLElement;
77+
reasonContainer.innerText = reason;
7378
workElement.replaceChildren();
7479
workElement.classList.add('work-hidden');
7580
workElement.append(fold, cut);

0 commit comments

Comments
 (0)