jekyll-theme-open-course 1.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -15
- data/_config.yml +1 -1
- data/_layouts/calendar.html +16 -3
- data/_layouts/default.html +18 -3
- data/_layouts/links.html +10 -0
- data/_layouts/projects.html +1 -1
- data/_sass/_base.scss +108 -0
- data/_sass/_colors.scss +195 -0
- data/_sass/_fonts.scss +10 -0
- data/_sass/_typography.scss +382 -0
- data/assets/css/print.css +16 -6
- data/assets/js/site.js +150 -73
- data/lib/jtoc.rb +15 -3
- data/lib/starter_files/Gemfile +7 -0
- data/lib/starter_files/_config.yml.erb +7 -1
- data/lib/starter_files/syllabus/_weeks/week-00.md.erb +1 -1
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 277429bbed449fd4841a55008adc8a23a7a101f9472fed5b405283ac3342fc35
|
4
|
+
data.tar.gz: b83d166d23153223f25188e44e350118fccfa9c9e96c3fe8359a8643b9663785
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03cde5dc9c13f83b602216ff0914fe6e0c853a4ad021d585fbf1478797736c23c9e823b81d1eaf18ca440bad77aa086c378c8ed0697f892570f2372a5667b500
|
7
|
+
data.tar.gz: 12f65374891260bc273c4bd1e6016507edb3260687d87b849a1c9f4ed1cff2e7b7ea108f812ce35a565cf69c39b4a5ec97fe9a3c82407a14d12f5f0322d0b3c3
|
data/Gemfile.lock
CHANGED
@@ -4,56 +4,58 @@ 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.
|
7
|
+
concurrent-ruby (1.1.7)
|
8
8
|
em-websocket (0.5.1)
|
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.13.1)
|
13
13
|
forwardable-extended (2.6.0)
|
14
14
|
http_parser.rb (0.6.0)
|
15
|
-
i18n (1.8.
|
15
|
+
i18n (1.8.5)
|
16
16
|
concurrent-ruby (~> 1.0)
|
17
|
-
jekyll (4.
|
17
|
+
jekyll (4.1.1)
|
18
18
|
addressable (~> 2.4)
|
19
19
|
colorator (~> 1.0)
|
20
20
|
em-websocket (~> 0.5)
|
21
|
-
i18n (
|
21
|
+
i18n (~> 1.0)
|
22
22
|
jekyll-sass-converter (~> 2.0)
|
23
23
|
jekyll-watch (~> 2.0)
|
24
24
|
kramdown (~> 2.1)
|
25
25
|
kramdown-parser-gfm (~> 1.0)
|
26
26
|
liquid (~> 4.0)
|
27
|
-
mercenary (~> 0.
|
27
|
+
mercenary (~> 0.4.0)
|
28
28
|
pathutil (~> 0.9)
|
29
29
|
rouge (~> 3.0)
|
30
30
|
safe_yaml (~> 1.0)
|
31
31
|
terminal-table (~> 1.8)
|
32
|
-
jekyll-sass-converter (2.0
|
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.
|
36
|
+
kramdown (2.3.0)
|
37
|
+
rexml
|
37
38
|
kramdown-parser-gfm (1.1.0)
|
38
39
|
kramdown (~> 2.0)
|
39
40
|
liquid (4.0.3)
|
40
41
|
listen (3.2.1)
|
41
42
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
42
43
|
rb-inotify (~> 0.9, >= 0.9.10)
|
43
|
-
mercenary (0.
|
44
|
+
mercenary (0.4.0)
|
44
45
|
pathutil (0.16.2)
|
45
46
|
forwardable-extended (~> 2.6)
|
46
|
-
public_suffix (4.0.
|
47
|
-
rb-fsevent (0.10.
|
47
|
+
public_suffix (4.0.5)
|
48
|
+
rb-fsevent (0.10.4)
|
48
49
|
rb-inotify (0.10.1)
|
49
50
|
ffi (~> 1.0)
|
50
|
-
|
51
|
+
rexml (3.2.4)
|
52
|
+
rouge (3.22.0)
|
51
53
|
safe_yaml (1.0.5)
|
52
|
-
sassc (2.
|
54
|
+
sassc (2.4.0)
|
53
55
|
ffi (~> 1.9)
|
54
56
|
terminal-table (1.8.0)
|
55
57
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
56
|
-
unicode-display_width (1.
|
58
|
+
unicode-display_width (1.7.0)
|
57
59
|
|
58
60
|
PLATFORMS
|
59
61
|
ruby
|
@@ -62,4 +64,4 @@ DEPENDENCIES
|
|
62
64
|
jekyll
|
63
65
|
|
64
66
|
BUNDLED WITH
|
65
|
-
1.
|
67
|
+
2.1.4
|
data/_config.yml
CHANGED
data/_layouts/calendar.html
CHANGED
@@ -4,13 +4,21 @@ layout: default
|
|
4
4
|
{% assign util = site.data.utility %}
|
5
5
|
{% assign projects = site.projects %}
|
6
6
|
|
7
|
+
{% assign week_count = site.data.calendar | size %}
|
8
|
+
{% assign final_week = week_count | minus: 1 %}
|
9
|
+
|
10
|
+
{% assign today = "today" | date: "%s" %}
|
11
|
+
{% assign last_expiry = site.data.calendar[final_week].expires | date: "%s" %}
|
12
|
+
|
7
13
|
{% assign current = true %}
|
14
|
+
{% if today > last_expiry %}
|
15
|
+
{% assign current = false %}
|
16
|
+
{% endif %}
|
8
17
|
|
9
18
|
{% for entry in site.data.calendar %}
|
10
19
|
{% assign week_int = forloop.index | times: 1 %}
|
11
20
|
{% capture week_num %}{% if week_int < 10 %}0{% endif %}{{ week_int }}{% endcapture %}
|
12
21
|
{% assign week = site.weeks[forloop.index0] %}
|
13
|
-
{% assign today = "today" | date: "%s" %}
|
14
22
|
{% assign expiry = entry.expires | date: "%s" %}
|
15
23
|
|
16
24
|
<!-- past dates? -->
|
@@ -22,7 +30,7 @@ layout: default
|
|
22
30
|
<header>
|
23
31
|
{% endif %}
|
24
32
|
<h2>
|
25
|
-
{{ week.theme |
|
33
|
+
{{ week.theme | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}
|
26
34
|
</h2>
|
27
35
|
<small>Week {{ util.spelled_nums[week_int] }}</small>
|
28
36
|
</header>
|
@@ -66,7 +74,12 @@ layout: default
|
|
66
74
|
<aside class="assigned">
|
67
75
|
<header>
|
68
76
|
<h3>Assigned Work</h3>
|
69
|
-
|
77
|
+
{% if entry.due_date %}
|
78
|
+
{% assign due_date = entry.due_date %}
|
79
|
+
{% else %}
|
80
|
+
{% assign due_date = entry.expires %}
|
81
|
+
{% endif %}
|
82
|
+
<small>Due {{ due_date | date: "%A, %B %-e" }}</small>
|
70
83
|
</header>
|
71
84
|
{% if week.readings %}
|
72
85
|
<section class="readings">
|
data/_layouts/default.html
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html lang="en" id="{{page.id}}" prefix="og: http://ogp.me/ns#" class="loading">
|
3
|
-
<head>{% assign course = site.course %}{% assign instructor = site.course.instructor %}
|
3
|
+
<head>{% assign course = site.course %}{% assign instructor = site.course.instructor %}{% assign ta = site.course.ta %}
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<title>{{ course.number }}: {% if page.title %}{{ page.title}}{% else %}{{ course.title }}{% endif %}</title>
|
6
6
|
<meta name="viewport" content="width=device-width,initial-scale=1.0,shrink-to-fit=no" />
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<body>
|
18
18
|
<header id="header">
|
19
19
|
<h1>
|
20
|
-
<a rel="home" href="{{ site.url }}{{ site.baseurl }}">{{ course.title}}</a>
|
20
|
+
<a rel="home" href="{{ site.url }}{{ site.baseurl }}">{{ course.title}}</a>{% if page.title %}: {{ page.title}}{% endif %}
|
21
21
|
</h1>
|
22
22
|
<p class="tagline">
|
23
23
|
{% if course.tagline %}{{ course.tagline }}{% endif %}
|
@@ -42,13 +42,28 @@
|
|
42
42
|
<ul>
|
43
43
|
<li>
|
44
44
|
<a href="{{ instructor.url }}">{{ instructor.honorific }} {{ instructor.name }}</a>,
|
45
|
-
{{
|
45
|
+
{{ instructor.full_title | escape }}
|
46
46
|
</li>
|
47
47
|
<li><a href="mailto:{{ instructor.email }}">{{ instructor.email }}</a></li>
|
48
48
|
<li id="office-hours">
|
49
49
|
{{ instructor.office_hours }}
|
50
50
|
</li>
|
51
51
|
</ul>
|
52
|
+
{% if ta.name %}
|
53
|
+
<header>
|
54
|
+
<h3>Teaching Assistant</h3>
|
55
|
+
</header>
|
56
|
+
<ul>
|
57
|
+
<li>
|
58
|
+
{% if ta.url %}<a href="{{ ta.url }}">{% endif %}{{ ta.name }}{% if ta.url %}</a>{% endif %},
|
59
|
+
{{ ta.full_title | escape }}
|
60
|
+
</li>
|
61
|
+
<li><a href="mailto:{{ ta.email }}">{{ ta.email }}</a></li>
|
62
|
+
<li id="ta-office-hours">
|
63
|
+
{{ ta.office_hours }}
|
64
|
+
</li>
|
65
|
+
</ul>
|
66
|
+
{% endif %}
|
52
67
|
</aside>
|
53
68
|
|
54
69
|
|
data/_layouts/links.html
ADDED
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,108 @@
|
|
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
|
+
|
92
|
+
b, strong {
|
93
|
+
font-weight: bold;
|
94
|
+
}
|
95
|
+
|
96
|
+
cite, em, i {
|
97
|
+
font-style: italic;
|
98
|
+
}
|
99
|
+
code {
|
100
|
+
font-family: Menlo, Monaco, "Droid Sans Mono", Courier, "Courier New", monospace;
|
101
|
+
font-size: 0.85em;
|
102
|
+
hyphens: none;
|
103
|
+
}
|
104
|
+
|
105
|
+
.access {
|
106
|
+
position: absolute;
|
107
|
+
left: -10000px;
|
108
|
+
}
|
data/_sass/_colors.scss
ADDED
@@ -0,0 +1,195 @@
|
|
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: $spot-color;
|
81
|
+
text-decoration-color: var(--color-spot);
|
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
|
+
.agenda h3 a {
|
125
|
+
color: $back-color;
|
126
|
+
color: var(--color-back);
|
127
|
+
background-color: $acnt-color;
|
128
|
+
background-color: var(--color-acnt);
|
129
|
+
}
|
130
|
+
#btn-show-calendar {
|
131
|
+
background-color: $back-color;
|
132
|
+
background-color: var(--color-back);
|
133
|
+
color: $gray-color;
|
134
|
+
color: var(--color-gray);
|
135
|
+
border: 1px solid $gray-color;
|
136
|
+
border: 1px solid var(--color-gray);
|
137
|
+
}
|
138
|
+
#btn-show-calendar:active,
|
139
|
+
#btn-show-calendar:focus,
|
140
|
+
#btn-show-calendar:hover {
|
141
|
+
background-color: $gray-color;
|
142
|
+
background-color: var(--color-gray);
|
143
|
+
color: $back-color;
|
144
|
+
color: var(--color-back);
|
145
|
+
}
|
146
|
+
.agenda h3 a {
|
147
|
+
background-color: $back-color;
|
148
|
+
background-color: var(--color-back);
|
149
|
+
border: 1px solid $acnt-color;
|
150
|
+
border: 1px solid var(--color-acnt);
|
151
|
+
color: $acnt-color;
|
152
|
+
color: var(--color-acnt);
|
153
|
+
}
|
154
|
+
.agenda h3 a:active,
|
155
|
+
.agenda h3 a:focus,
|
156
|
+
.agenda h3 a:hover {
|
157
|
+
background-color: $acnt-color;
|
158
|
+
background-color: var(--color-acnt);
|
159
|
+
color: $back-color;
|
160
|
+
color: var(--color-back);
|
161
|
+
}
|
162
|
+
.agenda h3 a::before {
|
163
|
+
color: $gray-color;
|
164
|
+
color: var(--color-gray);
|
165
|
+
}
|
166
|
+
header small {
|
167
|
+
color: $spot-color;
|
168
|
+
color: var(--color-spot);
|
169
|
+
}
|
170
|
+
.week > header small {
|
171
|
+
color: $gray-color;
|
172
|
+
color: var(--color-gray);
|
173
|
+
}
|
174
|
+
#header,
|
175
|
+
#footer,
|
176
|
+
#instructor {
|
177
|
+
color: $gray-color;
|
178
|
+
color: var(--color-gray);
|
179
|
+
}
|
180
|
+
#header .nav {
|
181
|
+
color: $text-color;
|
182
|
+
color: var(--color-text);
|
183
|
+
}
|
184
|
+
#header #theme-button {
|
185
|
+
background-color: $text-color;
|
186
|
+
background-color: var(--color-text);
|
187
|
+
border-color: $text-color;
|
188
|
+
border-color: var(--color-text);
|
189
|
+
color: $back-color;
|
190
|
+
color: var(--color-back);
|
191
|
+
}
|
192
|
+
#header #theme-button svg {
|
193
|
+
fill: $back-color;
|
194
|
+
fill: var(--color-back);
|
195
|
+
}
|