diff --git a/teachprogramming/lib/static/projects.html b/teachprogramming/lib/static/projects.html
index 9a792d3..ed60a3e 100755
--- a/teachprogramming/lib/static/projects.html
+++ b/teachprogramming/lib/static/projects.html
@@ -30,7 +30,7 @@
Projects
const hostElement = document.getElementById('main') || document.getElementsByTagName('body').item(0);
-function renderProjects(projects) {
+function renderProjectList(projects) {
function _hrefProject(project) {
const _urlParams = new URLSearchParams(urlParams)
_urlParams.append(QUERY_STRING_project, project)
@@ -44,22 +44,17 @@ Projects
h('h2',{},language),
...Object.entries(data.versions.parents).map(([version, parent_version])=>[
h('h3',{},version),
- h('pre',{classList: 'diff'}, data.diffs[language][version]),
+ h('pre',{classList: 'diff'}, renderDiff(data.diffs[language][version])),
h('pre',{classList: 'full'}, data.languages[language][version]),
]).flat()
]).flat())
}
-function renderProjectBasic(data) {
- return h('div',{},Object.entries(data.languages).map(
- ([language, _version_code])=>[h('h2',{},language), ...(!_version_code?[]:
- Object.entries(_version_code).map(([version, code])=>[
- h('h3',{},version),
- h('pre',{},code),
- h('pre',{},data.diffs[language][version])
- ]).flat()
- )]
- ).flat())
+function renderDiff(diff) {
+ if (!diff) {return}
+ return h('code',{},diff.split("\n").map(line=>
+ h('span',{classList:["line", line.startsWith("+")?"add":""]},line+"\n")
+ ))
}
// Consider CSS toggle
@@ -73,7 +68,7 @@ Projects
} else {
fetch('/api/v1/projects.json')
.then(response => response.json())
- .then(data=>hostElement.appendChild(renderProjects(data.projects)))
+ .then(data=>hostElement.appendChild(renderProjectList(data.projects)))
.catch(err => console.error(err))
}