jekyll-theme-open-course 1.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -15
- data/_config.yml +2 -0
- data/_layouts/calendar.html +36 -21
- data/_layouts/default.html +36 -25
- data/_layouts/error.html +10 -0
- data/_layouts/links.html +10 -0
- data/_layouts/projects.html +11 -11
- data/_sass/_base.scss +108 -0
- data/_sass/_colors.scss +195 -0
- data/_sass/_fonts.scss +10 -0
- data/_sass/_typography.scss +385 -0
- data/assets/css/print.css +5 -5
- data/assets/css/screen.scss +10 -0
- data/assets/js/site.js +277 -8
- data/assets/js/sw.js +220 -0
- data/lib/jtoc.rb +15 -3
- data/lib/starter_files/Gemfile +7 -0
- data/lib/starter_files/_config.yml.erb +8 -0
- data/lib/starter_files/offline/index.md +7 -0
- data/lib/starter_files/syllabus/_policies/books.md +6 -2
- data/lib/starter_files/syllabus/_policies/materials.md +6 -2
- data/lib/starter_files/syllabus/_weeks/week-00.md.erb +1 -1
- metadata +12 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0302d9b2eeb86fdcf21ae00059e4797d3a1c0d298b2bcae75368a494e4380a3c
|
4
|
+
data.tar.gz: 7307c7a5fe6fdf66fc11f71e7cac087426b9a49172aab41b9866ff84c62cf3ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66b64c74eab9cab58bdff61bad762f0dc59e95d9ba9090e2272e1c95e2ab72445cdf8852d45aa95585a9732f7777f12a5de99ffe94f63f85599bf9143174672c
|
7
|
+
data.tar.gz: 22bccb2d57b09c398c7cc8d40318cab06cac9bdb24011cd8da4b370fddcafc0996f09ae67b01fe9a79d49e926ef3288f479c9f4360e97e5341f086131b0b48d3
|
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,10 +30,11 @@ 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>
|
37
|
+
<div class="agendas">
|
29
38
|
{% for meeting in week.meetings %}
|
30
39
|
<section class="agenda">
|
31
40
|
{% if site.course.days.size > 0 %}
|
@@ -43,11 +52,34 @@ layout: default
|
|
43
52
|
</ol>
|
44
53
|
</section>
|
45
54
|
{% endfor %}
|
46
|
-
|
55
|
+
</div>
|
56
|
+
{% assign be = entry.begins | date: "%s" %}
|
57
|
+
{% assign ex = entry.expires | date: "%s" %}
|
58
|
+
{% assign deliverables_li = "" %}
|
59
|
+
|
60
|
+
{%- capture deliverables_li -%}
|
61
|
+
{%- for project in projects -%}
|
62
|
+
{%- assign proj_int = forloop.index | times: 1 -%}
|
63
|
+
{%- capture proj_num -%}{%- if proj_int < 10 -%}0{%- endif -%}{{ proj_int }}{%- endcapture -%}
|
64
|
+
{%- for deliverable in project.deliverables -%}
|
65
|
+
{%- assign dl = deliverable.deadline | date: "%s" -%}
|
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 }} (Due by {{ deliverable.deadline | date: "%A, %B %-e" }})</li>
|
68
|
+
{%- endif -%}
|
69
|
+
{%- endfor -%}
|
70
|
+
{%- endfor -%}
|
71
|
+
{%- endcapture -%}
|
72
|
+
|
73
|
+
{% if week.readings or week.tasks or deliverables_li.size > 1%}
|
47
74
|
<aside class="assigned">
|
48
75
|
<header>
|
49
76
|
<h3>Assigned Work</h3>
|
50
|
-
|
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>
|
51
83
|
</header>
|
52
84
|
{% if week.readings %}
|
53
85
|
<section class="readings">
|
@@ -70,23 +102,6 @@ layout: default
|
|
70
102
|
</section>
|
71
103
|
{% endif %}
|
72
104
|
|
73
|
-
{% assign be = entry.begins | date: "%s" %}
|
74
|
-
{% assign ex = entry.expires | date: "%s" %}
|
75
|
-
{% assign deliverables_li = "" %}
|
76
|
-
|
77
|
-
{%- capture deliverables_li -%}
|
78
|
-
{%- for project in projects -%}
|
79
|
-
{%- assign proj_int = forloop.index | times: 1 -%}
|
80
|
-
{%- capture proj_num -%}{%- if proj_int < 10 -%}0{%- endif -%}{{ proj_int }}{%- endcapture -%}
|
81
|
-
{%- for deliverable in project.deliverables -%}
|
82
|
-
{%- assign dl = deliverable.deadline | date: "%s" -%}
|
83
|
-
{%- if dl >= be and dl <= ex -%}
|
84
|
-
<li class="deadline">Project {{ util.spelled_nums[proj_int] }}: {{ deliverable.action }} (Due by {{ deliverable.deadline | date: "%A, %B %-e" }})</li>
|
85
|
-
{%- endif -%}
|
86
|
-
{%- endfor -%}
|
87
|
-
{%- endfor -%}
|
88
|
-
{%- endcapture -%}
|
89
|
-
|
90
105
|
{% if deliverables_li.size > 1 %}
|
91
106
|
<!-- {{ deliverables_li.size }} -->
|
92
107
|
<section class="deadlines">
|
data/_layouts/default.html
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html lang="en" id="{{page.id}}" prefix="og: http://ogp.me/ns#">
|
3
|
-
<head>{% assign course = site.course %}{% assign instructor = site.course.instructor %}
|
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 %}{% 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 %}
|
@@ -25,8 +25,8 @@
|
|
25
25
|
{{ course.term }}.
|
26
26
|
</p>
|
27
27
|
<nav id="quick-nav">
|
28
|
+
<h3 id="nav-con"><a href="#content"><span class="access">Jump to</span> {{ page.title }}</a></h3>
|
28
29
|
<ul class="nav">
|
29
|
-
<li id="nav-con"><a href="#content"><span class="access">Jump to</span> {{ page.title }}</a></li>
|
30
30
|
<li id="nav-nav"><a href="#full-nav"><span class="access">Jump to</span> Menu</a></li>
|
31
31
|
</ul>
|
32
32
|
</nav>
|
@@ -35,28 +35,41 @@
|
|
35
35
|
{{ content }}
|
36
36
|
</main>
|
37
37
|
|
38
|
+
<aside id="instructor">
|
39
|
+
<header>
|
40
|
+
<h3>Instructor</h3>
|
41
|
+
</header>
|
42
|
+
<ul>
|
43
|
+
<li>
|
44
|
+
<a href="{{ instructor.url }}">{{ instructor.honorific }} {{ instructor.name }}</a>,
|
45
|
+
{{ instructor.full_title | escape }}
|
46
|
+
</li>
|
47
|
+
<li><a href="mailto:{{ instructor.email }}">{{ instructor.email }}</a></li>
|
48
|
+
<li id="office-hours">
|
49
|
+
{{ instructor.office_hours }}
|
50
|
+
</li>
|
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="office-hours">
|
63
|
+
{{ ta.office_hours }}
|
64
|
+
</li>
|
65
|
+
</ul>
|
66
|
+
{% endif %}
|
67
|
+
</aside>
|
38
68
|
|
39
69
|
|
40
70
|
<footer id="footer">
|
41
|
-
<section id="instructor">
|
42
|
-
<header>
|
43
|
-
<h3>Instructor</h3>
|
44
|
-
</header>
|
45
|
-
<ul>
|
46
|
-
<li>
|
47
|
-
<a href="{{ instructor.url }}">{{ instructor.honorific }} {{ instructor.name }}</a>,
|
48
|
-
{{ site.course.instructor.full_title | escape }}
|
49
|
-
</li>
|
50
|
-
<li><a href="mailto:{{ instructor.email }}">{{ instructor.email }}</a></li>
|
51
|
-
<li id="office-hours">
|
52
|
-
{{ instructor.office_hours }}
|
53
|
-
</li>
|
54
|
-
</ul>
|
55
|
-
</section>
|
56
71
|
<nav id="full-nav">
|
57
|
-
<
|
58
|
-
<h3>Navigation</h3>
|
59
|
-
</header>
|
72
|
+
<h3>Navigation</h3>
|
60
73
|
<ul class="nav">
|
61
74
|
{% for nav in course.navigation %}
|
62
75
|
{% assign protocol = nav.href | slice: 0, 4 %}
|
@@ -70,9 +83,7 @@
|
|
70
83
|
</ul>
|
71
84
|
</nav>
|
72
85
|
<section id="colophon">
|
73
|
-
<
|
74
|
-
<h3>Colophon</h3>
|
75
|
-
</header>
|
86
|
+
<h3>Colophon</h3>
|
76
87
|
<p class="fineprint">
|
77
88
|
Course syllabus by <a href="{{ instructor.url }}">{{ instructor.name }}</a>.
|
78
89
|
Licensed under
|
data/_layouts/error.html
ADDED
data/_layouts/links.html
ADDED
data/_layouts/projects.html
CHANGED
@@ -19,22 +19,12 @@ layout: default
|
|
19
19
|
<small>Due by {{ project.due_date | date: "%A, %B %-e, %Y"}}</small>
|
20
20
|
</header>
|
21
21
|
|
22
|
-
<section class="description">
|
22
|
+
<section class="description {% if project.preview %}preview{% endif %}">
|
23
23
|
<h3>Project Description</h3>
|
24
24
|
{{ project.content }}
|
25
25
|
</section>
|
26
26
|
|
27
27
|
{% unless project.preview %}
|
28
|
-
{% if project.goals %}
|
29
|
-
<section class="goals">
|
30
|
-
<h3>Project Goals</h3>
|
31
|
-
<ul>
|
32
|
-
{% for goal in project.goals %}
|
33
|
-
<li>{{ goal | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
34
|
-
{% endfor %}
|
35
|
-
</ul>
|
36
|
-
</section>
|
37
|
-
{% endif %}
|
38
28
|
{% if project.deliverables %}
|
39
29
|
<section class="deliverables">
|
40
30
|
<h3>Deliverables and Deadlines</h3>
|
@@ -66,6 +56,16 @@ layout: default
|
|
66
56
|
</ol>
|
67
57
|
</section>
|
68
58
|
{% endif %}
|
59
|
+
{% if project.goals %}
|
60
|
+
<section class="goals">
|
61
|
+
<h3>Project Goals</h3>
|
62
|
+
<ul>
|
63
|
+
{% for goal in project.goals %}
|
64
|
+
<li>{{ goal | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
65
|
+
{% endfor %}
|
66
|
+
</ul>
|
67
|
+
</section>
|
68
|
+
{% endif %}
|
69
69
|
{% endunless %}
|
70
70
|
</article>
|
71
71
|
{% endfor %}
|
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
|
+
}
|