@@ -30,7 +30,7 @@ <h1>Projects</h1>
30
30
const hostElement = document . getElementById ( 'main' ) || document . getElementsByTagName ( 'body' ) . item ( 0 ) ;
31
31
32
32
33
- function renderProjects ( projects ) {
33
+ function renderProjectList ( projects ) {
34
34
function _hrefProject ( project ) {
35
35
const _urlParams = new URLSearchParams ( urlParams )
36
36
_urlParams . append ( QUERY_STRING_project , project )
@@ -44,22 +44,17 @@ <h1>Projects</h1>
44
44
h ( 'h2' , { } , language ) ,
45
45
...Object . entries ( data . versions . parents ) . map ( ( [ version , parent_version ] ) => [
46
46
h ( 'h3' , { } , version ) ,
47
- h ( 'pre' , { classList : 'diff' } , data . diffs [ language ] [ version ] ) ,
47
+ h ( 'pre' , { classList : 'diff' } , renderDiff ( data . diffs [ language ] [ version ] ) ) ,
48
48
h ( 'pre' , { classList : 'full' } , data . languages [ language ] [ version ] ) ,
49
49
] ) . flat ( )
50
50
] ) . flat ( ) )
51
51
}
52
52
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
+ ) )
63
58
}
64
59
65
60
// Consider CSS toggle
@@ -73,7 +68,7 @@ <h1>Projects</h1>
73
68
} else {
74
69
fetch ( '/api/v1/projects.json' )
75
70
. then ( response => response . json ( ) )
76
- . then ( data => hostElement . appendChild ( renderProjects ( data . projects ) ) )
71
+ . then ( data => hostElement . appendChild ( renderProjectList ( data . projects ) ) )
77
72
. catch ( err => console . error ( err ) )
78
73
}
79
74
0 commit comments