jekyll-theme-open-course 1.3.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0695b828b4a9c6cc6f7daf682989a2f9b2d6733dcef9e8f36132772bb4930090'
4
- data.tar.gz: 3baf24cd2b52376168d0cdca5d05c34ebce51106d2c92268d4c93be5fb0884a4
3
+ metadata.gz: dce31a904e04f5079b9ef8c34bb35673248562e2ce1fb798c9c0a3c303e2b9b7
4
+ data.tar.gz: 3c52758a7d62f5f68b89241f089b777c7ed6c982d9b98a8c8f4f1d9320d76904
5
5
  SHA512:
6
- metadata.gz: 4de957ff6a9db42a0b97b8db8f679034d19f02efbb5219f8136bfca6716a87e19032ce92ed258cb4ab6794926ebb61103119d893d65821fe738f8230ac43a51b
7
- data.tar.gz: a8db4a7d28aa773fcab866abda10c31647e004c771db152243fdd1a44c4c86a409fe4f74a2395a381b07981f7f12bdd23cccf4280c23fb239b7ddb1a42d775ea
6
+ metadata.gz: 3edd7a5b87a7b43c098b833124f5a295921ad24a609bd386e0dc977b48bfa4c3e44d781b1b603cc1915c35918ba170beae4d774df9d373daf7c1bef24849e876
7
+ data.tar.gz: 18fa94cfc445465b2f243388e8015c6731bf2572b075724c18684d7a592dae9756b6d29467111317850364b96d756dca65b784b6cc9f71645fc6427b0e09fa97
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.5)
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.11.3)
12
+ ffi (1.13.1)
13
13
  forwardable-extended (2.6.0)
14
14
  http_parser.rb (0.6.0)
15
- i18n (1.8.1)
15
+ i18n (1.8.5)
16
16
  concurrent-ruby (~> 1.0)
17
- jekyll (4.0.0)
17
+ jekyll (4.1.1)
18
18
  addressable (~> 2.4)
19
19
  colorator (~> 1.0)
20
20
  em-websocket (~> 0.5)
21
- i18n (>= 0.9.5, < 2)
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.3.3)
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.1)
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.1.0)
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.3.6)
44
+ mercenary (0.4.0)
44
45
  pathutil (0.16.2)
45
46
  forwardable-extended (~> 2.6)
46
- public_suffix (4.0.3)
47
- rb-fsevent (0.10.3)
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
- rouge (3.14.0)
51
+ rexml (3.2.4)
52
+ rouge (3.22.0)
51
53
  safe_yaml (1.0.5)
52
- sassc (2.2.1)
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.6.0)
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.17.2
67
+ 2.1.4
data/_config.yml CHANGED
@@ -40,7 +40,7 @@ course:
40
40
  href: "policies/"
41
41
  id: pol
42
42
  css:
43
- font-url: "https://use.typekit.net/pig5ein.css"
43
+ font-url: "https://use.typekit.net/qqk1feg.css"
44
44
 
45
45
  collections_dir: syllabus
46
46
 
@@ -30,7 +30,7 @@ layout: default
30
30
  <header>
31
31
  {% endif %}
32
32
  <h2>
33
- {{ week.theme | escape }}
33
+ {{ week.theme | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}
34
34
  </h2>
35
35
  <small>Week&nbsp;{{ util.spelled_nums[week_int] }}</small>
36
36
  </header>
@@ -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
- {{ site.course.instructor.full_title | escape }}
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="office-hours">
63
+ {{ ta.office_hours }}
64
+ </li>
65
+ </ul>
66
+ {% endif %}
52
67
  </aside>
53
68
 
54
69
 
@@ -73,12 +88,7 @@
73
88
  Course syllabus by <a href="{{ instructor.url }}">{{ instructor.name }}</a>.
74
89
  Licensed under
75
90
  <a href="{{ course.license.url }}" rel="license">{{ course.license.name }}</a>.
76
- {% if course.archive %}
77
- {% assign github_url = course.archive %}
78
- {% else %}
79
- {% capture github_url %}{{ instructor.github }}{{ course.uid }}{% endcapture %}
80
- {% endif %}
81
- <a id="github" href="{{ github_url }}">Source hosted on GitHub</a>.
91
+ <a id="github" href="{{ instructor.github }}{{ course.uid }}">Source hosted on GitHub</a>.
82
92
  </p>
83
93
  </section>
84
94
  </footer>
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="links">
6
+ <header>
7
+ <h2>{{ page.title }}</h2>
8
+ </header>
9
+ {{ content }}
10
+ </article>
data/assets/css/print.css CHANGED
@@ -1,3 +1,7 @@
1
+ html {
2
+ font-size: 11pt;
3
+ }
4
+
1
5
  #header,
2
6
  #footer {
3
7
  color: inherit;
@@ -19,14 +23,10 @@ p,li {
19
23
  -webkit-hyphens: none;
20
24
  hyphens: none;
21
25
  }
22
- h2 {
23
- font-family: "moderno-fb-condensed";
24
- font-weight: 700;
25
- }
26
-
27
26
 
28
27
  /* Hide Navigation Stuff */
29
28
 
29
+ #quick-nav,
30
30
  #nav-nav,
31
31
  #full-nav {
32
32
  display: none;
data/assets/js/site.js CHANGED
@@ -212,11 +212,11 @@ if ((document.querySelector('#calendar')) && (document.querySelector('#this-week
212
212
  // location.hash = '#this-week'; // point at the new hash position; viewport should show this one
213
213
  // }
214
214
  var btn_show_calendar = document.createElement('a');
215
+ var past_weeks = document.querySelectorAll('article.past');
215
216
  btn_show_calendar.id = "btn-show-calendar";
216
217
  btn_show_calendar.href = "#null";
217
218
  btn_show_calendar.text = "Show Previous Weeks"
218
219
  btn_show_calendar.addEventListener('click', function(e) {
219
- var past_weeks = document.querySelectorAll('article.past');
220
220
  for (var week of past_weeks) {
221
221
  week.classList.remove('past');
222
222
  }
@@ -224,7 +224,9 @@ if ((document.querySelector('#calendar')) && (document.querySelector('#this-week
224
224
  e.preventDefault();
225
225
  }
226
226
  );
227
- current_week.insertAdjacentElement('afterend', btn_show_calendar);
227
+ if (past_weeks.length > 1) {
228
+ current_week.insertAdjacentElement('afterend', btn_show_calendar);
229
+ }
228
230
  }
229
231
 
230
232
  if ('fetch' in window) {
@@ -235,13 +237,7 @@ if ('fetch' in window) {
235
237
  var url = document.querySelector('#github').getAttribute('href'); // grab the href value of the repo link
236
238
  if (typeof(url) !== 'undefined') {
237
239
  var fragment = url.substring(url.indexOf('.com/') + 5); // find the tail end (5 = .com/)
238
- var branch_regex = /tree/gi;
239
- var branch_fragment = fragment.replace(branch_regex,'branches'); // replace 'tree' with 'branches'
240
- // If not dealing with an archival branch (no replacement), append the `main` branch
241
- if (fragment === branch_fragment) {
242
- branch_fragment = fragment + '/branches/main';
243
- }
244
- return 'https://api.github.com/repos/' + branch_fragment; // return the branch API url
240
+ return 'https://api.github.com/repos/' + fragment + '/commits?per_page=1'; // return the API url
245
241
  }
246
242
  })();
247
243
 
@@ -257,14 +253,14 @@ if ('fetch' in window) {
257
253
  return response.json();
258
254
  })
259
255
  .then(function(data) {
260
- var c = data.commit; // Work only with the commit property of the branch API response
261
256
  var commit = {};
257
+ data = data[0]; // only need most recent commit
262
258
  // Lowercase commit message's first word to run in `...to XYZ` copy:
263
- commit.message = c.commit.message.charAt(0).toLowerCase() + c.commit.message.slice(1);
259
+ commit.message = data.commit.message.charAt(0).toLowerCase() + data.commit.message.slice(1);
264
260
  // Grab only the first line of a multiline message
265
261
  commit.message = commit.message.split("\n\n")[0];
266
- commit.url = c.html_url;
267
- commit.stamp = c.commit.author.date;
262
+ commit.url = data.html_url;
263
+ commit.stamp = data.commit.author.date;
268
264
  commit.date = new Date(commit.stamp);
269
265
  // Put the date in Day, Month 31 at <Local Time String> format
270
266
  commit.time_string = namedDays[commit.date.getDay()] + ', ' +
@@ -278,6 +274,28 @@ if ('fetch' in window) {
278
274
  }
279
275
  }
280
276
 
277
+ // This is 10,000 kinds of ugly and bad, but it gets the job done...for now.
278
+ var course_levels = ['grad','ugrad','all'];
279
+ var title = document.querySelector('title');
280
+ var title_components = {};
281
+ title_components.original = title.innerText;
282
+ title_components.name = title_components.original.split(':')[1] // Web Real-Time Communications
283
+ title_components.full = title_components.original.split(':')[0]; // ITMD 469/545
284
+ title_components.code = title_components.full.split(' ')[0]; // ITMD
285
+ title_components.all = title_components.full.split(' ')[1]; // 469/545
286
+ title_components.ugrad = title_components.all.split('/')[0]; // 469
287
+ title_components.grad = title_components.all.split('/')[1]; // 545
288
+
289
+ document.querySelector('#footer').addEventListener('dblclick', function(e) {
290
+ // Adjust the <title> contents
291
+ title.innerText = title_components.code + ' ' + title_components[course_levels[0]] + ': ' + title_components.name;
292
+ // Switch up the ancestor level class
293
+ html.classList.remove(course_levels[course_levels.length - 1]);
294
+ html.classList.add(course_levels[0]);
295
+ // Push the current level to the end of the array
296
+ course_levels.push(course_levels.shift());
297
+ });
298
+
281
299
  window.addEventListener('keyup', function(e) {
282
300
  // console.log(e.keyCode);
283
301
  // Toggle the visibility of gridlines when `g` is pressed
data/lib/jtoc.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  module JTOpenCourse
2
2
 
3
- require 'erb'
4
3
  require 'date'
4
+ require 'erb'
5
+ require 'fileutils'
6
+ require 'pathname'
5
7
 
6
- VERSION = "1.3.0"
8
+ VERSION = "2.1.0"
7
9
 
8
10
  SPELLED_NUMS = %w(
9
11
  Zero One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve Thirteen Fourteen Fifteen
@@ -40,7 +42,7 @@ module JTOpenCourse
40
42
  def initialize(args, options)
41
43
  @counter = 0
42
44
  @name = args.first.chomp
43
- @path = Pathname.new(File.expand_path(name, Dir.pwd))
45
+ @path = Pathname.new(File.expand_path(@name, Dir.pwd))
44
46
 
45
47
  @anchor_date = set_value(find_next_monday(options['monday']),find_next_monday)
46
48
  @week_count = set_value(options['weeks'], DEFAULT_VALUES[:weeks]).to_i
@@ -86,6 +88,8 @@ module JTOpenCourse
86
88
 
87
89
  def create!
88
90
  create_directories
91
+ create_gitignore
92
+ create_gemfile
89
93
  create_config_yml
90
94
  create_utility_data
91
95
  create_calendar_data
@@ -123,6 +127,14 @@ module JTOpenCourse
123
127
  end
124
128
  end
125
129
 
130
+ def create_gitignore
131
+ process_file(".gitignore")
132
+ end
133
+
134
+ def create_gemfile
135
+ process_file("Gemfile")
136
+ end
137
+
126
138
  def create_config_yml
127
139
  process_file("_config.yml")
128
140
  end
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Use the very latest version from GitHub
4
+ gem 'jekyll-theme-open-course', git: 'https://github.com/karlstolley/jekyll-theme-open-course.git'
5
+
6
+ # Use the latest stable version from rubygems
7
+ # gem 'jekyll-theme-open-course'
@@ -29,6 +29,12 @@ course:
29
29
  email: <%= email %>
30
30
  office_hours: >
31
31
  Detail your office hours in `_config.yml`
32
+ ta:
33
+ name:
34
+ full_title:
35
+ url:
36
+ email:
37
+ office_hours: >
32
38
  navigation:
33
39
  - label: Calendar
34
40
  href: "#this-week"
@@ -40,7 +46,7 @@ course:
40
46
  href: "policies/"
41
47
  id: pol
42
48
  css:
43
- font-url: "https://use.typekit.net/pig5ein.css"
49
+ font-url: "https://use.typekit.net/qqk1feg.css"
44
50
 
45
51
  collections_dir: syllabus
46
52
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  theme: Theme for Week <%= SPELLED_NUMS[counter] %>
3
- meetings: <% days.length.times do %>
3
+ meetings:<% days.length.times do %>
4
4
  - agenda:
5
5
  -
6
6
  video:<% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-open-course
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Stolley
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-28 00:00:00.000000000 Z
11
+ date: 2020-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -68,12 +68,9 @@ files:
68
68
  - _layouts/calendar.html
69
69
  - _layouts/default.html
70
70
  - _layouts/error.html
71
+ - _layouts/links.html
71
72
  - _layouts/policies.html
72
73
  - _layouts/projects.html
73
- - _sass/_base.scss
74
- - _sass/_colors.scss
75
- - _sass/_fonts.scss
76
- - _sass/_typography.scss
77
74
  - assets/css/print.css
78
75
  - assets/css/screen.scss
79
76
  - assets/img/te.png
@@ -82,6 +79,7 @@ files:
82
79
  - exe/jtoc
83
80
  - index.md
84
81
  - lib/jtoc.rb
82
+ - lib/starter_files/Gemfile
85
83
  - lib/starter_files/_config.yml.erb
86
84
  - lib/starter_files/_data/calendar.yml.erb
87
85
  - lib/starter_files/_data/utility.yml
data/_sass/_base.scss DELETED
@@ -1,108 +0,0 @@
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 DELETED
@@ -1,190 +0,0 @@
1
- $text-color: #222;
2
- $back-color: #F2F2F2;
3
- $spot-color: #900;
4
- $gray-color: #7F7F7F;
5
- $gray-alter: darken($gray-color, 10%);
6
- $link-under: transparentize($spot-color, 0.65);
7
- $curr-color: lighten($gray-color, 40%);
8
-
9
- // Dark mode
10
- $dk-text-color: #AFAFAF;
11
- $dk-back-color: #111;
12
- $dk-spot-color: #9C0000;
13
- $dk-gray-color: #777;
14
- $dk-link-under: transparentize($dk-spot-color, 0.25);
15
- $dk-curr-color: darken($dk-gray-color, 45%);
16
-
17
-
18
- // CSS Variables
19
- html,
20
- html.light {
21
- --color-text: #{$text-color};
22
- --color-back: #{$back-color};
23
- --color-spot: #{$spot-color};
24
- --color-gray: #{$gray-color};
25
- --color-curr: #{$curr-color};
26
- --color-altg: #{$gray-alter};
27
- --color-link: #{$link-under};
28
- --color-navi: #{$gray-color};
29
- --color-nava: #{$back-color};
30
- }
31
- html.dark {
32
- --color-text: #{$dk-text-color};
33
- --color-back: #{$dk-back-color};
34
- --color-spot: #{$dk-spot-color};
35
- --color-gray: #{$dk-gray-color};
36
- --color-curr: #{$dk-curr-color};
37
- --color-altg: #{$dk-gray-color};
38
- --color-link: #{$dk-link-under};
39
- --color-navi: #{$dk-gray-color};
40
- --color-nava: #{$dk-text-color};
41
- }
42
- @media screen and (prefers-color-scheme: dark) {
43
- html {
44
- --color-text: #{$dk-text-color};
45
- --color-back: #{$dk-back-color};
46
- --color-spot: #{$dk-spot-color};
47
- --color-gray: #{$dk-gray-color};
48
- --color-curr: #{$dk-curr-color};
49
- --color-altg: #{$dk-gray-color};
50
- --color-link: #{$dk-link-under};
51
- --color-navi: #{$dk-gray-color};
52
- --color-nava: #{$dk-text-color};
53
- }
54
- }
55
-
56
- html {
57
- transition: color 0.5s, background-color 0.5s;
58
- color: $text-color;
59
- color: var(--color-text);
60
- background-color: $back-color;
61
- background-color: var(--color-back);
62
- }
63
- ol > li::before,
64
- ul li::before {
65
- color: $spot-color;
66
- color: var(--color-spot);
67
- }
68
- a {
69
- color: $spot-color;
70
- color: var(--color-spot);
71
- }
72
- @supports (text-decoration-color: red) {
73
- a {
74
- color: inherit;
75
- text-decoration-color: $link-under;
76
- text-decoration-color: var(--color-link);
77
- }
78
- }
79
- #header h1 a {
80
- color: $spot-color;
81
- color: var(--color-spot);
82
- }
83
- .nav a {
84
- border: 1px solid $spot-color;
85
- border: 1px solid var(--color-spot);
86
- color: $gray-color;
87
- color: var(--color-navi);
88
- }
89
- .nav a:hover,
90
- .nav a:focus,
91
- .nav a:active,
92
- #calendar #nav-cal a,
93
- #policies #nav-pol a,
94
- #projects #nav-pro a {
95
- background-color: $spot-color;
96
- background-color: var(--color-spot);
97
- color: $back-color;
98
- color: var(--color-nava);
99
- }
100
-
101
- .recommended,
102
- .project .description,
103
- .project .goals,
104
- .week .agenda,
105
- .fine-print {
106
- color: $gray-color;
107
- color: var(--color-gray);
108
- }
109
- .current {
110
- transition: background-color 0.5s;
111
- background-color: $curr-color;
112
- background-color: var(--color-curr);
113
- }
114
- .week.current .agenda {
115
- color: $gray-alter;
116
- color: var(--color-altg);
117
- }
118
- #btn-show-calendar,
119
- .agenda h3 a {
120
- color: $back-color;
121
- color: var(--color-back);
122
- background-color: $spot-color;
123
- background-color: var(--color-spot);
124
- }
125
- #btn-show-calendar {
126
- background-color: $back-color;
127
- background-color: var(--color-back);
128
- color: $gray-color;
129
- color: var(--color-gray);
130
- border: 1px solid $gray-color;
131
- border: 1px solid var(--color-gray);
132
- }
133
- #btn-show-calendar:active,
134
- #btn-show-calendar:focus,
135
- #btn-show-calendar:hover {
136
- background-color: $gray-color;
137
- background-color: var(--color-gray);
138
- color: $back-color;
139
- color: var(--color-back);
140
- }
141
- .agenda h3 a {
142
- background-color: $back-color;
143
- background-color: var(--color-back);
144
- border: 1px solid $spot-color;
145
- border: 1px solid var(--color-spot);
146
- color: $spot-color;
147
- color: var(--color-spot);
148
- }
149
- .agenda h3 a:active,
150
- .agenda h3 a:focus,
151
- .agenda h3 a:hover {
152
- background-color: $spot-color;
153
- background-color: var(--color-spot);
154
- color: $back-color;
155
- color: var(--color-back);
156
- }
157
- .agenda h3 a::before {
158
- color: $gray-color;
159
- color: var(--color-gray);
160
- }
161
- header small {
162
- color: $spot-color;
163
- color: var(--color-spot);
164
- }
165
- .week > header small {
166
- color: $gray-color;
167
- color: var(--color-gray);
168
- }
169
- #header,
170
- #footer,
171
- #instructor {
172
- color: $gray-color;
173
- color: var(--color-gray);
174
- }
175
- #header .nav {
176
- color: $text-color;
177
- color: var(--color-text);
178
- }
179
- #header #theme-button {
180
- background-color: $text-color;
181
- background-color: var(--color-text);
182
- border-color: $text-color;
183
- border-color: var(--color-text);
184
- color: $back-color;
185
- color: var(--color-back);
186
- }
187
- #header #theme-button svg {
188
- fill: $back-color;
189
- fill: var(--color-back);
190
- }
data/_sass/_fonts.scss DELETED
@@ -1,10 +0,0 @@
1
- $font-url: "https://use.typekit.net/pig5ein.css";
2
-
3
- $primary-font-family: "Parka", serif;
4
- $secondary-font-family: "moderno-fb-compressed";
5
- $tertiary-font-family: "moderno-fb-condensed";
6
-
7
- // Font-Weight Reference
8
- // Parka: 300 (retina); 400 (normal); 500 (medium); 700 (bold)
9
- // Moderno FB Compressed: 600 (semibold)
10
- // Moderno FB Condensed: 700 (bold)
@@ -1,358 +0,0 @@
1
- $base-size-px: 19;
2
- $base-line-px: 24;
3
- $base-size: ($base-size-px / 16) * 100%;
4
- $base-line: ($base-line-px / $base-size-px) * 1rem;
5
- $mod-scale: 1.25;
6
-
7
-
8
- html {
9
- -webkit-text-size-adjust: none;
10
- font-family: $primary-font-family;
11
- font-size: 19px;
12
- }
13
-
14
- @media (min-resolution: 192dpi) {
15
- html {
16
- font-weight: 300;
17
- }
18
- }
19
-
20
- h2 {
21
- font-family: $secondary-font-family;
22
- font-weight: 600;
23
- font-size: $base-size * $mod-scale * $mod-scale * $mod-scale;
24
- line-height: $base-line * 2;
25
- }
26
-
27
- #content b,
28
- #content strong {
29
- font-weight: 500;
30
- }
31
-
32
- #full-nav.hidden {
33
- display: none;
34
- }
35
- #quick-nav {
36
- align-items: baseline;
37
- display: flex;
38
- justify-content: space-between;
39
- }
40
- #quick-nav .nav {
41
- display: flex;
42
- flex: 1 0 auto;
43
- flex-flow: row wrap;
44
- justify-content: flex-end;
45
- }
46
- #quick-nav li {
47
- padding: 0;
48
- margin-left: $base-line / 2;
49
- }
50
- .navbar #quick-nav li::before {
51
- content: "";
52
- }
53
- #nav-con a {
54
- text-decoration: none;
55
- }
56
- .nav a {
57
- border-radius: $base-line / 4;
58
- display: block;
59
- padding: $base-line / 4;
60
- text-decoration: none;
61
- }
62
-
63
- .nav li::before {
64
- content: "";
65
- }
66
-
67
- #header h1 a {
68
- text-decoration: none;
69
- }
70
-
71
- #header #theme-button {
72
- opacity: 0.55;
73
- line-height: 0;
74
- }
75
-
76
- /* ~ 370px */
77
- @media screen and (min-width: 23.125em) {
78
- #header h1 {
79
- position: relative;
80
- }
81
- }
82
-
83
- /* ~ 620px */
84
- @media screen and (min-width: 38.75em) {
85
- h2 {
86
- font-family: $tertiary-font-family;
87
- font-weight: 700;
88
- }
89
- }
90
-
91
- #header h3,
92
- #footer h3,
93
- #instructor h3,
94
- .agenda h3 {
95
- text-transform: none;
96
- font-weight: 500;
97
- padding-bottom: $base-line / 2;
98
- }
99
- .agenda h3 {
100
- padding-bottom: $base-line / 4;
101
- }
102
- .assigned h3,
103
- .project h3 {
104
- font-weight: bold;
105
- }
106
-
107
- #btn-show-calendar,
108
- .agenda h3 a {
109
- border-radius: $base-line / 4;
110
- display: block;
111
- padding: $base-line / 4;
112
- text-decoration: none;
113
- display: inline-block;
114
- }
115
- #btn-show-calendar {
116
- margin-bottom: $base-line * 2;
117
- text-decoration: none;
118
- }
119
-
120
- .agenda h3 a {
121
- padding: $base-line / 8 $base-line / 4;
122
- margin-top: -($base-line / 8);
123
- }
124
- .agenda h3 a::before {
125
- content: "▸ ";
126
- }
127
- #content header {
128
- padding-bottom: $base-line;
129
- }
130
- header small {
131
- display: block;
132
- font-weight: 500;
133
- // padding-top: $base-line * 0.25;
134
- }
135
- .week > header small {
136
- font-weight: normal;
137
- }
138
-
139
- #content article {
140
- padding-bottom: $base-line * 3;
141
- }
142
-
143
- .current {
144
- padding: $base-line * 1.5;
145
- margin: ($base-line * 1.5) (-($base-line * 1.5));
146
- }
147
-
148
- .assigned {
149
- padding-top: $base-line;
150
- }
151
-
152
- #header {
153
- padding: $base-line * 0.5;
154
- }
155
- #header p {
156
- min-height: $base-line * 4;
157
- padding-top: $base-line * 0.5;
158
- }
159
- #header,
160
- #content,
161
- #footer,
162
- #instructor {
163
- padding-left: $base-line * 1.5;
164
- padding-right: $base-line * 1.5;
165
- }
166
-
167
- /* ~ 690px */
168
- @media screen and (min-width: 43.125em) {
169
- #header,
170
- .policy,
171
- .project,
172
- .week,
173
- #instructor,
174
- #footer {
175
- display: grid;
176
- grid-template-columns: repeat(5,1fr);
177
- grid-column-gap: $base-line;
178
- }
179
- .week {
180
- grid-template-rows: auto ($base-line * 3.25);
181
- align-content: stretch;
182
- }
183
- .policy header,
184
- .project header,
185
- .week header {
186
- grid-column: 1 / 6;
187
- }
188
- .week .agendas {
189
- grid-column: 1 / 3;
190
- grid-row-start: 3;
191
- }
192
- .week .assigned {
193
- padding-top: 0;
194
- grid-column: 3 / 6;
195
- grid-row: 2 / 4;
196
- }
197
-
198
- .policy > * {
199
- grid-column: 1 / 5;
200
- }
201
- #books.policy section,
202
- #materials.policy .required {
203
- grid-column: 1 / 4;
204
- }
205
- #books.policy .fine-print,
206
- #materials.policy .recommended {
207
- grid-column: 4 / 6;
208
- grid-row: 3 / 5;
209
- }
210
- #books.policy .fine-print,
211
- #materials.policy .recommended {
212
- grid-row: 2 / 5;
213
- }
214
- .project .description {
215
- grid-column: 1 / 3;
216
- grid-row: 2 / 3;
217
- }
218
- .project .goals {
219
- grid-column: 1 / 3;
220
- grid-row: 3 / 4;
221
- }
222
- .project .deliverables,
223
- .project .requirements {
224
- grid-column: 3 / 6;
225
- }
226
- .project .preview {
227
- grid-column: 1 / 6;
228
- }
229
- #header h1 {
230
- grid-column: 1 / 6;
231
- }
232
- #header p {
233
- grid-column: 1 / 4;
234
- }
235
- #header #quick-nav {
236
- grid-column: 1 / 6;
237
- }
238
-
239
- #instructor > * {
240
- grid-column: 2 / 6;
241
- }
242
- #footer #full-nav {
243
- grid-column: 1 / 2;
244
- }
245
- #footer #colophon {
246
- grid-column: 2 / 6;
247
- }
248
- .navbar #instructor > *,
249
- .navbar #footer #colophon {
250
- grid-column: 1 / 4;
251
- }
252
- }
253
-
254
- /* ~ 770px */
255
- @media screen and (min-width: 48.125em) {
256
- body::after {
257
- content: 'navbar';
258
- display: none;
259
- }
260
- }
261
-
262
- /* ~ 855px */
263
- @media screen and (min-width: 53.4375em) {
264
- #header,
265
- #content,
266
- #footer,
267
- #instructor {
268
- padding: ($base-line * 1.5) 10%;
269
- }
270
- #footer {
271
- padding-top: 0;
272
- }
273
- #instructor {
274
- padding-bottom: 0;
275
- }
276
- h2 {
277
- font-size: $base-size * $mod-scale * $mod-scale * $mod-scale * $mod-scale;
278
- line-height: $base-line * 2.5;
279
- }
280
- .project .description {
281
- grid-column: 1 / 4;
282
- grid-row: 2 / 3;
283
- }
284
- .project .goals {
285
- grid-column: 4 / 6;
286
- grid-row: 2 / 3;
287
- }
288
- .project .deliverables,
289
- .project .requirements {
290
- grid-row: 3 / 6;
291
- }
292
- .project .deliverables {
293
- grid-column: 1 / 3;
294
- }
295
- .project .requirements {
296
- grid-column: 3 / 6;
297
- }
298
- .project .preview {
299
- grid-column: 1 / 4;
300
- }
301
- }
302
-
303
- /* ~ 1100px */
304
- @media screen and (min-width: 68.75em) {
305
- #header,
306
- #content,
307
- #footer,
308
- #instructor {
309
- padding-top: ($base-line * 3);
310
- }
311
- #footer {
312
- padding-top: 0;
313
- }
314
- #instructor {
315
- padding-bottom: 0;
316
- }
317
- .policy,
318
- .project,
319
- .week {
320
- grid-column-gap: $base-line * 1.5;
321
- }
322
- h2 {
323
- font-size: $base-size * $mod-scale * $mod-scale * $mod-scale * $mod-scale * $mod-scale;
324
- line-height: $base-line * 3;
325
- }
326
- }
327
-
328
- /* States */
329
- .js .past {
330
- display: none;
331
- }
332
-
333
- /**
334
- * A quick baseline grid overlay using css+svg.
335
- * Inspired by [Basehold.it](https://basehold.it/).
336
- * @author leshido
337
- */
338
-
339
- .g body {
340
- position: relative;
341
- }
342
-
343
- .g body::after {
344
- background: url('data:image/svg+xml;utf8,<svg height="24" width="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="0.5" style="fill:rgba(255, 0, 0, 0.3)" /></svg>') repeat top left;
345
- content: "";
346
- display: block;
347
- pointer-events: none;
348
- top: 0;
349
- right: 0;
350
- bottom: 0;
351
- left: 0;
352
- z-index: 9999;
353
- position: absolute;
354
- }
355
-
356
- .g body:active::after {
357
- display: none;
358
- }