jekyll-theme-open-course 2.1.0 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +14 -14
- data/_layouts/calendar.html +6 -3
- data/_layouts/default.html +7 -2
- data/_layouts/projects.html +1 -1
- data/_sass/_base.scss +116 -0
- data/_sass/_colors.scss +192 -0
- data/_sass/_fall.colors.scss +192 -0
- data/_sass/_fonts.scss +10 -0
- data/_sass/_typography.scss +391 -0
- data/_sass/_winter.colors.scss +192 -0
- data/assets/css/print.css +11 -1
- data/assets/css/screen.scss +4 -0
- data/assets/js/site.js +12 -6
- data/lib/jtoc.rb +6 -1
- data/lib/starter_files/LICENSE-CC-BY +395 -0
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0135b4b3a4c69ae35e2a8f3aa97e8812132d5e6a8d06d64e47287c4d69b424f6
|
4
|
+
data.tar.gz: e237839af2f4826d83e1862204faf58c00ccfe884e1db45c06a1c101162f5e61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06daa44f00563b62c66f355fed2bf628ba00a0519e1a71951311e439b7f17131024813b5558ddc37e39d4e24173ddf4371c6b62622adf865089132c2047aa11d
|
7
|
+
data.tar.gz: c1e398996f82f0d0b874ad598776d50d6b29f497cf95de27e2875ad370e3d8871d16bca123ae9924786db5d79f22d37179cac5de4c3ec01b7a9b1e38d01fc395
|
data/Gemfile.lock
CHANGED
@@ -4,56 +4,56 @@ GEM
|
|
4
4
|
addressable (2.7.0)
|
5
5
|
public_suffix (>= 2.0.2, < 5.0)
|
6
6
|
colorator (1.1.0)
|
7
|
-
concurrent-ruby (1.1.
|
8
|
-
em-websocket (0.5.
|
7
|
+
concurrent-ruby (1.1.8)
|
8
|
+
em-websocket (0.5.2)
|
9
9
|
eventmachine (>= 0.12.9)
|
10
10
|
http_parser.rb (~> 0.6.0)
|
11
11
|
eventmachine (1.2.7)
|
12
|
-
ffi (1.
|
12
|
+
ffi (1.15.0)
|
13
13
|
forwardable-extended (2.6.0)
|
14
14
|
http_parser.rb (0.6.0)
|
15
|
-
i18n (1.8.
|
15
|
+
i18n (1.8.10)
|
16
16
|
concurrent-ruby (~> 1.0)
|
17
|
-
jekyll (4.
|
17
|
+
jekyll (4.2.0)
|
18
18
|
addressable (~> 2.4)
|
19
19
|
colorator (~> 1.0)
|
20
20
|
em-websocket (~> 0.5)
|
21
21
|
i18n (~> 1.0)
|
22
22
|
jekyll-sass-converter (~> 2.0)
|
23
23
|
jekyll-watch (~> 2.0)
|
24
|
-
kramdown (~> 2.
|
24
|
+
kramdown (~> 2.3)
|
25
25
|
kramdown-parser-gfm (~> 1.0)
|
26
26
|
liquid (~> 4.0)
|
27
27
|
mercenary (~> 0.4.0)
|
28
28
|
pathutil (~> 0.9)
|
29
29
|
rouge (~> 3.0)
|
30
30
|
safe_yaml (~> 1.0)
|
31
|
-
terminal-table (~>
|
31
|
+
terminal-table (~> 2.0)
|
32
32
|
jekyll-sass-converter (2.1.0)
|
33
33
|
sassc (> 2.0.1, < 3.0)
|
34
34
|
jekyll-watch (2.2.1)
|
35
35
|
listen (~> 3.0)
|
36
|
-
kramdown (2.3.
|
36
|
+
kramdown (2.3.1)
|
37
37
|
rexml
|
38
38
|
kramdown-parser-gfm (1.1.0)
|
39
39
|
kramdown (~> 2.0)
|
40
40
|
liquid (4.0.3)
|
41
|
-
listen (3.
|
41
|
+
listen (3.5.1)
|
42
42
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
43
43
|
rb-inotify (~> 0.9, >= 0.9.10)
|
44
44
|
mercenary (0.4.0)
|
45
45
|
pathutil (0.16.2)
|
46
46
|
forwardable-extended (~> 2.6)
|
47
|
-
public_suffix (4.0.
|
48
|
-
rb-fsevent (0.
|
47
|
+
public_suffix (4.0.6)
|
48
|
+
rb-fsevent (0.11.0)
|
49
49
|
rb-inotify (0.10.1)
|
50
50
|
ffi (~> 1.0)
|
51
|
-
rexml (3.2.
|
52
|
-
rouge (3.
|
51
|
+
rexml (3.2.5)
|
52
|
+
rouge (3.26.0)
|
53
53
|
safe_yaml (1.0.5)
|
54
54
|
sassc (2.4.0)
|
55
55
|
ffi (~> 1.9)
|
56
|
-
terminal-table (
|
56
|
+
terminal-table (2.0.0)
|
57
57
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
58
58
|
unicode-display_width (1.7.0)
|
59
59
|
|
data/_layouts/calendar.html
CHANGED
@@ -42,9 +42,9 @@ layout: default
|
|
42
42
|
{% assign day_offset = site.data.utility.day_offsets[day_key] | times: 1 %}
|
43
43
|
{% capture dateline %}{{ entry.begins | date: "%s" | plus: day_offset | date: "%A, %B %-e" }}{% endcapture %}
|
44
44
|
{% else %}
|
45
|
-
{% capture dateline %}Agenda for the Week of {{ entry.begins | date: "%B
|
45
|
+
{% capture dateline %}Agenda for the Week of {{ entry.begins | date: "%B %-e" }}{% endcapture %}
|
46
46
|
{% endif %}
|
47
|
-
<h3>{{ dateline }}{% if meeting.video %} <a href="{{ meeting.video }}">Video</a>{% endif %}</h3>
|
47
|
+
<h3>{{ dateline }}{% if meeting.video %} <a href="{{ meeting.video }}"><svg class="youtube" aria-label="YouTube"><use href="#youtube"></use></svg>Video</a>{% endif %}</h3>
|
48
48
|
<ol>
|
49
49
|
{% for item in meeting.agenda %}
|
50
50
|
<li>{{ item | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
@@ -64,7 +64,7 @@ layout: default
|
|
64
64
|
{%- for deliverable in project.deliverables -%}
|
65
65
|
{%- assign dl = deliverable.deadline | date: "%s" -%}
|
66
66
|
{%- if dl >= be and dl <= ex -%}
|
67
|
-
<li class="deadline">Project {{ util.spelled_nums[proj_int] }}: {{ deliverable.action | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}
|
67
|
+
<li class="deadline">Project {{ util.spelled_nums[proj_int] }}: {{ deliverable.action | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }} <b>Due by {{ deliverable.deadline | date: "%A, %B %-e" }}</b>.</li>
|
68
68
|
{%- endif -%}
|
69
69
|
{%- endfor -%}
|
70
70
|
{%- endfor -%}
|
@@ -116,3 +116,6 @@ layout: default
|
|
116
116
|
{% endif %}
|
117
117
|
</article>
|
118
118
|
{% endfor %}
|
119
|
+
|
120
|
+
<!-- Youtube Icon via https://www.flaticon.com/free-icon/youtube_2111795 -->
|
121
|
+
<svg xmlns='http://www.w3.org/2000/svg' class="unused"><path id="youtube" d='m23.469 5.929.03.196c-.29-1.029-1.073-1.823-2.068-2.112l-.021-.005c-1.871-.508-9.4-.508-9.4-.508s-7.51-.01-9.4.508c-1.014.294-1.798 1.088-2.083 2.096l-.005.021c-.699 3.651-.704 8.038.031 11.947l-.031-.198c.29 1.029 1.073 1.823 2.068 2.112l.021.005c1.869.509 9.4.509 9.4.509s7.509 0 9.4-.509c1.015-.294 1.799-1.088 2.084-2.096l.005-.021c.318-1.698.5-3.652.5-5.648 0-.073 0-.147-.001-.221.001-.068.001-.149.001-.23 0-1.997-.182-3.951-.531-5.846zm-13.861 9.722v-7.293l6.266 3.652z'/></svg>
|
data/_layouts/default.html
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
{{ ta.full_title | escape }}
|
60
60
|
</li>
|
61
61
|
<li><a href="mailto:{{ ta.email }}">{{ ta.email }}</a></li>
|
62
|
-
<li id="office-hours">
|
62
|
+
<li id="ta-office-hours">
|
63
63
|
{{ ta.office_hours }}
|
64
64
|
</li>
|
65
65
|
</ul>
|
@@ -88,7 +88,12 @@
|
|
88
88
|
Course syllabus by <a href="{{ instructor.url }}">{{ instructor.name }}</a>.
|
89
89
|
Licensed under
|
90
90
|
<a href="{{ course.license.url }}" rel="license">{{ course.license.name }}</a>.
|
91
|
-
|
91
|
+
{% if course.archive %}
|
92
|
+
{% assign github_url = course.archive %}
|
93
|
+
{% else %}
|
94
|
+
{% capture github_url %}{{ instructor.github }}{{ course.uid }}{% endcapture %}
|
95
|
+
{% endif %}
|
96
|
+
<a id="github" href="{{ github_url }}">Source hosted on GitHub</a>.
|
92
97
|
</p>
|
93
98
|
</section>
|
94
99
|
</footer>
|
data/_layouts/projects.html
CHANGED
@@ -8,7 +8,7 @@ layout: default
|
|
8
8
|
{% for project in site.projects %}
|
9
9
|
{% assign dd = project.due_date | date: "%s" %}
|
10
10
|
|
11
|
-
<article class="project" id="project-{{ site.data.utility.spelled_nums[forloop.index] | downcase }}">
|
11
|
+
<article class="project {{project.level}}" id="project-{{ site.data.utility.spelled_nums[forloop.index] | downcase }}">
|
12
12
|
{% if today < dd and current == true %}
|
13
13
|
<header id="current">
|
14
14
|
{% assign current = false %}
|
data/_sass/_base.scss
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
body {
|
2
|
+
line-height: $base-line;
|
3
|
+
}
|
4
|
+
|
5
|
+
h1,h2,h3,h4,h5,h6 {
|
6
|
+
font-weight: bold;
|
7
|
+
}
|
8
|
+
h1 {
|
9
|
+
padding-top: $base-line / 2;
|
10
|
+
}
|
11
|
+
h1 small,
|
12
|
+
h1 b {
|
13
|
+
display: block;
|
14
|
+
font-weight: normal;
|
15
|
+
}
|
16
|
+
h3,
|
17
|
+
h4 {
|
18
|
+
text-transform: uppercase;
|
19
|
+
padding-bottom: $base-line / 4;
|
20
|
+
}
|
21
|
+
h4 {
|
22
|
+
text-transform: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
p,li {
|
26
|
+
padding-bottom: $base-line;
|
27
|
+
-webkit-hyphens: auto;
|
28
|
+
hyphens: auto;
|
29
|
+
}
|
30
|
+
|
31
|
+
li {
|
32
|
+
padding-bottom: $base-line / 2;
|
33
|
+
}
|
34
|
+
ol, ul {
|
35
|
+
padding-bottom: $base-line / 2;
|
36
|
+
}
|
37
|
+
|
38
|
+
ol ol,
|
39
|
+
ol ul,
|
40
|
+
ul ol,
|
41
|
+
ul ul {
|
42
|
+
padding-top: $base-line / 2;
|
43
|
+
padding-bottom: 0;
|
44
|
+
padding-left: $base-line;
|
45
|
+
}
|
46
|
+
|
47
|
+
ol ul > li,
|
48
|
+
ul ul > li,
|
49
|
+
.with::before {
|
50
|
+
margin-left: -($base-line * 1.25);
|
51
|
+
}
|
52
|
+
ul {
|
53
|
+
list-style-type: square;
|
54
|
+
}
|
55
|
+
ol {
|
56
|
+
list-style-type: decimal;
|
57
|
+
}
|
58
|
+
ul, .with::before {
|
59
|
+
list-style-type: none;
|
60
|
+
}
|
61
|
+
ul li, .with::before {
|
62
|
+
position: relative;
|
63
|
+
padding-left: $base-line;
|
64
|
+
margin-left: -($base-line);
|
65
|
+
}
|
66
|
+
ul li::before {
|
67
|
+
content: "■";
|
68
|
+
position: absolute;
|
69
|
+
left: $base-line * 0.3;
|
70
|
+
top: -($base-line * 0.065);
|
71
|
+
}
|
72
|
+
|
73
|
+
ol, .with::before {
|
74
|
+
list-style-type: none;
|
75
|
+
counter-reset: enumerated;
|
76
|
+
}
|
77
|
+
ol > li, .with::before {
|
78
|
+
position: relative;
|
79
|
+
padding-left: $base-line;
|
80
|
+
margin-left: -($base-line);
|
81
|
+
counter-increment: enumerated;
|
82
|
+
}
|
83
|
+
ol > li::before {
|
84
|
+
font-weight: bold;
|
85
|
+
content: counter(enumerated) "";
|
86
|
+
position: absolute;
|
87
|
+
left: -($base-line * 0.0375);
|
88
|
+
text-align: right;
|
89
|
+
width: 1em;
|
90
|
+
}
|
91
|
+
/* TODO: Square this with selector in _typography partial */
|
92
|
+
/*
|
93
|
+
b, strong {
|
94
|
+
font-weight: bold;
|
95
|
+
}
|
96
|
+
*/
|
97
|
+
a[href^="mailto"] {
|
98
|
+
hyphens: none;
|
99
|
+
}
|
100
|
+
cite, em, i {
|
101
|
+
font-style: italic;
|
102
|
+
}
|
103
|
+
code {
|
104
|
+
font-family: Menlo, Monaco, "Droid Sans Mono", Courier, "Courier New", monospace;
|
105
|
+
font-size: 0.85em;
|
106
|
+
hyphens: none;
|
107
|
+
}
|
108
|
+
|
109
|
+
.access {
|
110
|
+
position: absolute;
|
111
|
+
left: -10000px;
|
112
|
+
}
|
113
|
+
|
114
|
+
.unused {
|
115
|
+
display: none;
|
116
|
+
}
|
data/_sass/_colors.scss
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
$text-color: #321207;
|
2
|
+
$back-color: #F6EACB;
|
3
|
+
$spot-color: #6C1F55;
|
4
|
+
$acnt-color: #B34523;
|
5
|
+
$gray-color: #73664E; /* #7F7F7F; */
|
6
|
+
$gray-alter: darken($gray-color, 10%);
|
7
|
+
$link-under: transparentize($spot-color, 0.65);
|
8
|
+
$curr-color: darken($back-color, 8%);
|
9
|
+
|
10
|
+
// Dark mode
|
11
|
+
$dk-text-color: #DEDEDE;
|
12
|
+
$dk-back-color: #111;
|
13
|
+
$dk-spot-color: #FFB700;
|
14
|
+
$dk-acnt-color: #FF764D;
|
15
|
+
$dk-gray-color: #9E9E9E;
|
16
|
+
$dk-link-under: transparentize($dk-spot-color, 0.25);
|
17
|
+
$dk-curr-color: darken($dk-gray-color, 45%);
|
18
|
+
|
19
|
+
|
20
|
+
// CSS Variables
|
21
|
+
html,
|
22
|
+
html.light {
|
23
|
+
--color-text: #{$text-color};
|
24
|
+
--color-back: #{$back-color};
|
25
|
+
--color-spot: #{$spot-color};
|
26
|
+
--color-acnt: #{$acnt-color};
|
27
|
+
--color-gray: #{$gray-color};
|
28
|
+
--color-curr: #{$curr-color};
|
29
|
+
--color-altg: #{$gray-alter};
|
30
|
+
--color-link: #{$link-under};
|
31
|
+
--color-navi: #{$gray-color};
|
32
|
+
--color-nava: #{$back-color};
|
33
|
+
}
|
34
|
+
html.dark {
|
35
|
+
--color-text: #{$dk-text-color};
|
36
|
+
--color-back: #{$dk-back-color};
|
37
|
+
--color-spot: #{$dk-spot-color};
|
38
|
+
--color-acnt: #{$dk-acnt-color};
|
39
|
+
--color-gray: #{$dk-gray-color};
|
40
|
+
--color-curr: #{$dk-curr-color};
|
41
|
+
--color-altg: #{$dk-gray-color};
|
42
|
+
--color-link: #{$dk-link-under};
|
43
|
+
--color-navi: #{$dk-gray-color};
|
44
|
+
--color-nava: #{$dk-back-color};
|
45
|
+
}
|
46
|
+
@media screen and (prefers-color-scheme: dark) {
|
47
|
+
html {
|
48
|
+
--color-text: #{$dk-text-color};
|
49
|
+
--color-back: #{$dk-back-color};
|
50
|
+
--color-spot: #{$dk-spot-color};
|
51
|
+
--color-acnt: #{$dk-acnt-color};
|
52
|
+
--color-gray: #{$dk-gray-color};
|
53
|
+
--color-curr: #{$dk-curr-color};
|
54
|
+
--color-altg: #{$dk-gray-color};
|
55
|
+
--color-link: #{$dk-link-under};
|
56
|
+
--color-navi: #{$dk-gray-color};
|
57
|
+
--color-nava: #{$dk-back-color};
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
html {
|
62
|
+
transition: color 0.5s, background-color 0.5s;
|
63
|
+
color: $text-color;
|
64
|
+
color: var(--color-text);
|
65
|
+
background-color: $back-color;
|
66
|
+
background-color: var(--color-back);
|
67
|
+
}
|
68
|
+
ol > li::before,
|
69
|
+
ul li::before {
|
70
|
+
color: $acnt-color;
|
71
|
+
color: var(--color-acnt);
|
72
|
+
}
|
73
|
+
a {
|
74
|
+
color: $spot-color;
|
75
|
+
color: var(--color-spot);
|
76
|
+
}
|
77
|
+
@supports (text-decoration-color: red) {
|
78
|
+
a {
|
79
|
+
color: inherit;
|
80
|
+
text-decoration-color: $link-under;
|
81
|
+
text-decoration-color: var(--color-link);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
#header h1 a {
|
85
|
+
color: $spot-color;
|
86
|
+
color: var(--color-spot);
|
87
|
+
}
|
88
|
+
.nav a {
|
89
|
+
border: 1px solid $acnt-color;
|
90
|
+
border: 1px solid var(--color-acnt);
|
91
|
+
color: $gray-color;
|
92
|
+
color: var(--color-navi);
|
93
|
+
}
|
94
|
+
.nav a:hover,
|
95
|
+
.nav a:focus,
|
96
|
+
.nav a:active,
|
97
|
+
#calendar #nav-cal a,
|
98
|
+
#policies #nav-pol a,
|
99
|
+
#projects #nav-pro a {
|
100
|
+
background-color: $acnt-color;
|
101
|
+
background-color: var(--color-acnt);
|
102
|
+
color: $back-color;
|
103
|
+
color: var(--color-nava);
|
104
|
+
}
|
105
|
+
|
106
|
+
.recommended,
|
107
|
+
.project .description,
|
108
|
+
.project .goals,
|
109
|
+
.week .agenda,
|
110
|
+
.fine-print {
|
111
|
+
color: $gray-color;
|
112
|
+
color: var(--color-gray);
|
113
|
+
}
|
114
|
+
.current {
|
115
|
+
transition: background-color 0.5s;
|
116
|
+
background-color: $curr-color;
|
117
|
+
background-color: var(--color-curr);
|
118
|
+
}
|
119
|
+
.week.current .agenda {
|
120
|
+
color: $gray-alter;
|
121
|
+
color: var(--color-altg);
|
122
|
+
}
|
123
|
+
#btn-show-calendar {
|
124
|
+
background-color: $back-color;
|
125
|
+
background-color: var(--color-back);
|
126
|
+
color: $gray-color;
|
127
|
+
color: var(--color-gray);
|
128
|
+
border: 1px solid $gray-color;
|
129
|
+
border: 1px solid var(--color-gray);
|
130
|
+
}
|
131
|
+
#btn-show-calendar:active,
|
132
|
+
#btn-show-calendar:focus,
|
133
|
+
#btn-show-calendar:hover {
|
134
|
+
background-color: $gray-color;
|
135
|
+
background-color: var(--color-gray);
|
136
|
+
color: $back-color;
|
137
|
+
color: var(--color-back);
|
138
|
+
}
|
139
|
+
.agenda h3 a {
|
140
|
+
background-color: inherit;
|
141
|
+
color: $acnt-color;
|
142
|
+
color: var(--color-acnt);
|
143
|
+
}
|
144
|
+
.youtube {
|
145
|
+
color: pink;
|
146
|
+
fill: $acnt-color;
|
147
|
+
fill: var(--color-acnt);
|
148
|
+
}
|
149
|
+
.agenda h3 a:active,
|
150
|
+
.agenda h3 a:focus,
|
151
|
+
.agenda h3 a:hover {
|
152
|
+
background-color: $acnt-color;
|
153
|
+
background-color: var(--color-acnt);
|
154
|
+
color: $back-color;
|
155
|
+
color: var(--color-back);
|
156
|
+
}
|
157
|
+
a:active .youtube,
|
158
|
+
a:focus .youtube,
|
159
|
+
a:hover .youtube {
|
160
|
+
fill: $back-color;
|
161
|
+
fill: var(--color-back);
|
162
|
+
}
|
163
|
+
header small {
|
164
|
+
color: $spot-color;
|
165
|
+
color: var(--color-spot);
|
166
|
+
}
|
167
|
+
.week > header small {
|
168
|
+
color: $gray-color;
|
169
|
+
color: var(--color-gray);
|
170
|
+
}
|
171
|
+
#header,
|
172
|
+
#footer,
|
173
|
+
#instructor {
|
174
|
+
color: $gray-color;
|
175
|
+
color: var(--color-gray);
|
176
|
+
}
|
177
|
+
#header .nav {
|
178
|
+
color: $text-color;
|
179
|
+
color: var(--color-text);
|
180
|
+
}
|
181
|
+
#header #theme-button {
|
182
|
+
background-color: $acnt-color;
|
183
|
+
background-color: var(--color-acnt);
|
184
|
+
border-color: $acnt-color;
|
185
|
+
border-color: var(--color-acnt);
|
186
|
+
color: $back-color;
|
187
|
+
color: var(--color-back);
|
188
|
+
}
|
189
|
+
#header #theme-button svg {
|
190
|
+
fill: $back-color;
|
191
|
+
fill: var(--color-back);
|
192
|
+
}
|