jekyll-theme-open-course 1.3.0 → 2.1.0

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 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
- }