Skip to content

Commit 11f7ce5

Browse files
committed
Considered diff line highlighting/formatting
1 parent a7d72ca commit 11f7ce5

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

teachprogramming/lib/static/projects.html

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ <h1>Projects</h1>
3030
const hostElement = document.getElementById('main') || document.getElementsByTagName('body').item(0);
3131

3232

33-
function renderProjects(projects) {
33+
function renderProjectList(projects) {
3434
function _hrefProject(project) {
3535
const _urlParams = new URLSearchParams(urlParams)
3636
_urlParams.append(QUERY_STRING_project, project)
@@ -44,22 +44,17 @@ <h1>Projects</h1>
4444
h('h2',{},language),
4545
...Object.entries(data.versions.parents).map(([version, parent_version])=>[
4646
h('h3',{},version),
47-
h('pre',{classList: 'diff'}, data.diffs[language][version]),
47+
h('pre',{classList: 'diff'}, renderDiff(data.diffs[language][version])),
4848
h('pre',{classList: 'full'}, data.languages[language][version]),
4949
]).flat()
5050
]).flat())
5151
}
5252

53-
function renderProjectBasic(data) {
54-
return h('div',{},Object.entries(data.languages).map(
55-
([language, _version_code])=>[h('h2',{},language), ...(!_version_code?[]:
56-
Object.entries(_version_code).map(([version, code])=>[
57-
h('h3',{},version),
58-
h('pre',{},code),
59-
h('pre',{},data.diffs[language][version])
60-
]).flat()
61-
)]
62-
).flat())
53+
function renderDiff(diff) {
54+
if (!diff) {return}
55+
return h('code',{},diff.split("\n").map(line=>
56+
h('span',{classList:["line", line.startsWith("+")?"add":""]},line+"\n")
57+
))
6358
}
6459

6560
// Consider CSS toggle
@@ -73,7 +68,7 @@ <h1>Projects</h1>
7368
} else {
7469
fetch('/api/v1/projects.json')
7570
.then(response => response.json())
76-
.then(data=>hostElement.appendChild(renderProjects(data.projects)))
71+
.then(data=>hostElement.appendChild(renderProjectList(data.projects)))
7772
.catch(err => console.error(err))
7873
}
7974

0 commit comments

Comments
 (0)