Skip to content
This repository was archived by the owner on Jul 23, 2024. It is now read-only.

Commit 8ba4f55

Browse files
committed
Make MDN links openable
1 parent 3844325 commit 8ba4f55

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

extension/sidebar-pane.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
border-top: 1px solid #e0e0e2;
2727
}
2828

29+
a {
30+
text-decoration: none;
31+
}
32+
2933
li {
3034
margin-block-end: 4px;
3135
list-style: none;

extension/sidebar-pane.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -111,34 +111,34 @@ function _renderIssue(issue) {
111111
}
112112

113113
function _renderSubject(issue) {
114-
const { type } = issue;
114+
const { type, url } = issue;
115115
const subjectEl = document.createElement("span");
116116

117117
switch (type) {
118118
case WebCompat.ISSUE_TYPE.CSS_PROPERTY: {
119119
subjectEl.append(
120-
_renderTerm(issue.property, ["property", "issue"])
120+
_renderTerm(issue.property, ["property", "issue"], url)
121121
);
122122
break;
123123
}
124124
case WebCompat.ISSUE_TYPE.CSS_PROPERTY_ALIASES: {
125125
subjectEl.append(
126-
_renderTerms(issue.aliases, ["property", "alias", "issue"]),
126+
_renderTerms(issue.aliases, ["property", "alias", "issue"], url),
127127
_renderTerm(` ${ issue.aliases.length === 1 ? "alias" : "aliases" }`)
128128
);
129129
break;
130130
}
131131
case WebCompat.ISSUE_TYPE.CSS_VALUE: {
132132
subjectEl.append(
133133
_renderTerm(`${issue.property}: `),
134-
_renderTerm(issue.value, ["value", "issue"])
134+
_renderTerm(issue.value, ["value", "issue"], url)
135135
);
136136
break;
137137
}
138138
case WebCompat.ISSUE_TYPE.CSS_VALUE_ALIASES: {
139139
subjectEl.append(
140140
_renderTerm(`${issue.property}: `),
141-
_renderTerms(issue.aliases, ["value", "alias", "issue"]),
141+
_renderTerms(issue.aliases, ["value", "alias", "issue"], url),
142142
_renderTerm(` ${ issue.aliases.length === 1 ? "alias" : "aliases" }`)
143143
);
144144
break;
@@ -147,14 +147,14 @@ function _renderSubject(issue) {
147147
subjectEl.append(
148148
_renderTerm(issue.element.toLowerCase(), ["element"]),
149149
_renderTerm(" "),
150-
_renderTerm(issue.attribute.toLowerCase(), ["attribute", "issue"]),
150+
_renderTerm(issue.attribute.toLowerCase(), ["attribute", "issue"], url),
151151
_renderTerm(" attribute"),
152152
);
153153
break;
154154
}
155155
case WebCompat.ISSUE_TYPE.HTML_ELEMENT: {
156156
subjectEl.append(
157-
_renderTerm(issue.element.toLowerCase(), ["element", "issue"])
157+
_renderTerm(issue.element.toLowerCase(), ["element", "issue"], url)
158158
);
159159
break;
160160
}
@@ -251,21 +251,28 @@ function _renderBrowsersElement(browsers) {
251251
return browsersEl;
252252
}
253253

254-
function _renderTerms(terms, classes) {
254+
function _renderTerms(terms, classes, url) {
255255
const containerEl = document.createElement("span");
256256

257257
for (const term of terms) {
258-
const termEl = _renderTerm(term, classes);
258+
const termEl = _renderTerm(term, classes, url);
259259
containerEl.appendChild(termEl);
260260
}
261261

262262
return containerEl;
263263
}
264264

265-
function _renderTerm(text, classes = []) {
266-
const termEl = document.createElement("span");
265+
function _renderTerm(text, classes = [], url = null) {
266+
const tagName = url ? "a" : "span";
267+
const termEl = document.createElement(tagName);
267268
termEl.classList.add(...classes);
268269
termEl.textContent = text;
270+
271+
if (url) {
272+
termEl.href = url;
273+
termEl.title = url;
274+
}
275+
269276
return termEl;
270277
}
271278

0 commit comments

Comments
 (0)