-
Notifications
You must be signed in to change notification settings - Fork 9
/
link_generator.groovy
107 lines (83 loc) · 5.43 KB
/
link_generator.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
* link_generator.groovy
* generate index page for abcd mobile workshop
*/
def f = new File(".")
def srcDir = f.absolutePath
srcDir = srcDir.substring(0,srcDir.length()-1)
def dest = new File("index.html")
def pw = new PrintWriter(dest)
pw.println "<!DOCTYPE html>\n<html>\n<head>\n<title>Bootstrap WKSP - Links to exercises</title>\n"
pw.println new File("00_resources/cdn_css.txt").text
pw.println "<meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0\">"
pw.println"<style>\n\t.hider { font-size: .65em !important; } \n\t.normal {font-size: 1em !important; }\n</style>\n</head>"
pw.println "<body>\n<div class=\"container\">\n"
pw.println "<div class=\"jumbotron\" style=\"background-color: #293352 !important; color: #F4EDCA !important; border: medium solid #4E84C4 !important;\">\n<h1>Bootstrap Workshop</h1>\n<h3>Instructions Resources Tools Exercises</h3>\n<p class=\"normal hidden-xs pull-right\"><strong>Originally created for ABCD-Mobile wksp 3/19/2015</strong></p>\n</div>"
pw.println "<h3>Exercises to familiarize you with Bootstrap essentials. Happy coding!</h3>"
pw.println "<p> </p>"
int counter = 0
def tablist = ['00','01-04','05-08','09']
pw.println " <div role=\"tabpanel\">"
pw.println " <!-- Nav tabs -->"
pw.println " <ul class=\"nav nav-tabs\" role=\"tablist\">"
pw.println " <li role=\"presentation\" class=\"active\"><a href=\"#prereqs\" aria-controls=\"prereqs\" role=\"tab\" data-toggle=\"tab\">Prereq<span class=\"hidden-xs\">uisite</span>s</a></li>"
pw.println " <li role=\"presentation\"><a href=\"#tools\" aria-controls=\"tools\" role=\"tab\" data-toggle=\"tab\">Setup<span class=\"hidden-xs\"> and Tools</span></a></li>"
pw.println " <li role=\"presentation\"><a href=\"#instructions\" aria-controls=\"instructions\" role=\"tab\" data-toggle=\"tab\"><span class=\"hidden-xs\">Instructions</span><span class=\"visible-xs\">How</span></a></li>"
pw.println " <li role=\"presentation\"><a href=\"#links\" aria-controls=\"links\" role=\"tab\" data-toggle=\"tab\">Links</a></li>"
pw.println " <li role=\"presentation\"><a href=\"#${tablist[0]}\" aria-controls=\"${tablist[0]}\" role=\"tab\" data-toggle=\"tab\">${tablist[0]}</a></li>"
pw.println " <li role=\"presentation\"><a href=\"#${tablist[1]}\" aria-controls=\"${tablist[1]}\" role=\"tab\" data-toggle=\"tab\">${tablist[1]}</a></li>"
pw.println " <li role=\"presentation\"><a href=\"#${tablist[2]}\" aria-controls=\"${tablist[2]}\" role=\"tab\" data-toggle=\"tab\">${tablist[2]}</a></li>"
pw.println " <li role=\"presentation\"><a href=\"#${tablist[3]}\" aria-controls=\"${tablist[3]}\" role=\"tab\" data-toggle=\"tab\">${tablist[3]}</a></li>"
pw.println " </ul>"
pw.println " <!-- Tab panes -->"
pw.println " <div class=\"tab-content\">"
pw.println new File("prereqs.html").text
pw.println new File("tools.html").text
pw.println new File("instructions.html").text
pw.println new File ("links.html").text
pw.println "\n<div role=\"tabpanel\" class=\"tab-pane\" id=\"${tablist[0]}\">"
pw.println "<p> </p>"
pw.println "<div class=\"row\">\n"
def htmlp = ~/.*\.html/
def csp = ~/.*\.css/
def jsp = ~/.*\.js/
f.eachFile { dir ->
if (dir.isDirectory() && dir.name.charAt(0) != '.') {
if (counter%4 == 1) {
pw.println "\n<div role=\"tabpanel\" class=\"tab-pane\" id=\"${tablist[(int)(counter/4)+1]}\">"
pw.println "<p> </p>"
pw.println "<div class=\"row\">\n"
}
def dirNum = dir.name.split('_')[0]
def dirName = dir.name.split('_')[1]
pw.println "\t<div class=\"col-sm-3\">"
pw.println "\t\t<div class=\"hidden-xs\">"
pw.println "\t\t\t<svg height=\"140\" width=\"140\">"
pw.println "\t\t\t\t<title>$dirNum</title>"
pw.println "\t\t\t\t<desc>Section ${dirNum}: ${dirName}</desc>"
pw.println "\t\t\t\t<circle cx=\"70\" cy=\"70\" r=\"68\" stroke=\"#4E84C4\" stroke-width=\"3\" fill=\"#293352\" />"
pw.println "\t\t\t\t<text x=\"${70-7*dirName.length()}\" y=\"75\" fill=\"#F4EDCA\" style=\"font-size: 2em;\">${dirName}</text>"
pw.println "\t\t\t</svg>"
pw.println "\t\t</div>"
pw.println"\t\t<h3><a href=\"${dir.name}/index.html\" target=\"_blank\"><span class=\"hidden-xs\">start</span><span class=\"visible-xs\">${dirName}</span></a> </h3>"
pw.println "\t\t<ul class=\"list-unstyled\">"
dir.eachFile { file ->
if ((file.name.contains(".txt") || file.name.contains(".html") || file.name.contains(".css") || file.name.contains(".js")) &&
!file.name.contains("index") && !file.name.contains("READ")) {
def fileName = file.absolutePath.replace(srcDir,'')
pw.println "\t\t\t<li><a href=\"$fileName\" target=\"_blank\">$file.name</a></li> "
if (fileName.contains('DONE')) { pw.println "\t\t\t<li> </li>" }
}
}
pw.println "\t\t</ul>\n\t</div>\n"
if (counter%4 == 0) {
pw.println "</div><!-- end of row -->"
pw.println "</div><!-- end of tab pane -->\n"
}
counter++
}
}
pw.println "\n</div>\n</div>"
pw.println new File("00_resources/cdn_js.txt").text
pw.println "\n</body>\n</html>"
pw.close()