jekyll-theme-open-course 0.0.1 → 1.3.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 +4 -4
- data/Gemfile.lock +6 -6
- data/_config.yml +35 -2
- data/_data/utility.yml +1 -1
- data/_layouts/calendar.html +68 -17
- data/_layouts/default.html +39 -22
- data/_layouts/error.html +10 -0
- data/_layouts/policies.html +17 -0
- data/_layouts/projects.html +71 -0
- data/_sass/_base.scss +108 -0
- data/_sass/_colors.scss +190 -0
- data/_sass/_fonts.scss +10 -0
- data/_sass/_typography.scss +358 -0
- data/assets/css/print.css +26 -24
- data/assets/css/screen.scss +22 -0
- data/assets/js/site.js +289 -0
- data/assets/js/sw.js +220 -0
- data/exe/jtoc +76 -0
- data/lib/jtoc.rb +177 -0
- data/lib/starter_files/_config.yml.erb +84 -0
- data/lib/starter_files/_data/calendar.yml.erb +6 -0
- data/lib/starter_files/_data/utility.yml +35 -0
- data/lib/starter_files/index.md.erb +5 -0
- data/lib/starter_files/offline/index.md +7 -0
- data/lib/starter_files/syllabus/_policies/academic-integrity.md +3 -0
- data/lib/starter_files/syllabus/_policies/assignment-submission.md +3 -0
- data/lib/starter_files/syllabus/_policies/books.md +17 -0
- data/lib/starter_files/syllabus/_policies/description.md +3 -0
- data/lib/starter_files/syllabus/_policies/goals.md +3 -0
- data/lib/starter_files/syllabus/_policies/grading-criteria.md +3 -0
- data/lib/starter_files/syllabus/_policies/grading-policy.md +3 -0
- data/lib/starter_files/syllabus/_policies/late-work.md +3 -0
- data/lib/starter_files/syllabus/_policies/materials.md +17 -0
- data/lib/starter_files/syllabus/_policies/objectives.md +3 -0
- data/lib/starter_files/syllabus/_policies/outcomes.md +3 -0
- data/lib/starter_files/syllabus/_policies/participation.md +3 -0
- data/lib/starter_files/syllabus/_policies/special-needs.md +3 -0
- data/lib/starter_files/syllabus/_policies/technology-policy.md +3 -0
- data/lib/starter_files/syllabus/_projects/project-00.md.erb +23 -0
- data/lib/starter_files/syllabus/_weeks/week-00.md.erb +11 -0
- data/projects/index.md +1 -30
- metadata +39 -26
- data/_data/weeks/01.yml +0 -21
- data/_data/weeks/02.yml +0 -1
- data/_data/weeks/03.yml +0 -1
- data/_data/weeks/04.yml +0 -1
- data/_data/weeks/05.yml +0 -1
- data/_data/weeks/06.yml +0 -1
- data/_data/weeks/07.yml +0 -1
- data/_data/weeks/08.yml +0 -1
- data/_data/weeks/09.yml +0 -1
- data/_data/weeks/10.yml +0 -1
- data/_data/weeks/11.yml +0 -1
- data/_data/weeks/12.yml +0 -1
- data/_data/weeks/13.yml +0 -1
- data/_data/weeks/14.yml +0 -1
- data/_data/weeks/15.yml +0 -1
- data/_data/weeks/16.yml +0 -1
- data/_projects/project-01.md +0 -25
- data/_projects/project-02.md +0 -25
- data/_projects/project-03.md +0 -25
- data/assets/.keep +0 -0
- data/assets/css/screen.css +0 -408
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0695b828b4a9c6cc6f7daf682989a2f9b2d6733dcef9e8f36132772bb4930090'
|
4
|
+
data.tar.gz: 3baf24cd2b52376168d0cdca5d05c34ebce51106d2c92268d4c93be5fb0884a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4de957ff6a9db42a0b97b8db8f679034d19f02efbb5219f8136bfca6716a87e19032ce92ed258cb4ab6794926ebb61103119d893d65821fe738f8230ac43a51b
|
7
|
+
data.tar.gz: a8db4a7d28aa773fcab866abda10c31647e004c771db152243fdd1a44c4c86a409fe4f74a2395a381b07981f7f12bdd23cccf4280c23fb239b7ddb1a42d775ea
|
data/Gemfile.lock
CHANGED
@@ -9,10 +9,10 @@ GEM
|
|
9
9
|
eventmachine (>= 0.12.9)
|
10
10
|
http_parser.rb (~> 0.6.0)
|
11
11
|
eventmachine (1.2.7)
|
12
|
-
ffi (1.11.
|
12
|
+
ffi (1.11.3)
|
13
13
|
forwardable-extended (2.6.0)
|
14
14
|
http_parser.rb (0.6.0)
|
15
|
-
i18n (1.
|
15
|
+
i18n (1.8.1)
|
16
16
|
concurrent-ruby (~> 1.0)
|
17
17
|
jekyll (4.0.0)
|
18
18
|
addressable (~> 2.4)
|
@@ -37,17 +37,17 @@ GEM
|
|
37
37
|
kramdown-parser-gfm (1.1.0)
|
38
38
|
kramdown (~> 2.0)
|
39
39
|
liquid (4.0.3)
|
40
|
-
listen (3.2.
|
40
|
+
listen (3.2.1)
|
41
41
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
42
42
|
rb-inotify (~> 0.9, >= 0.9.10)
|
43
43
|
mercenary (0.3.6)
|
44
44
|
pathutil (0.16.2)
|
45
45
|
forwardable-extended (~> 2.6)
|
46
|
-
public_suffix (4.0.
|
46
|
+
public_suffix (4.0.3)
|
47
47
|
rb-fsevent (0.10.3)
|
48
|
-
rb-inotify (0.10.
|
48
|
+
rb-inotify (0.10.1)
|
49
49
|
ffi (~> 1.0)
|
50
|
-
rouge (3.
|
50
|
+
rouge (3.14.0)
|
51
51
|
safe_yaml (1.0.5)
|
52
52
|
sassc (2.2.1)
|
53
53
|
ffi (~> 1.9)
|
data/_config.yml
CHANGED
@@ -10,6 +10,7 @@ course:
|
|
10
10
|
tagline: >
|
11
11
|
Online course covering theory and principles of editing through intensive applied practice.
|
12
12
|
term: Spring 2020
|
13
|
+
# Set `days: ""` (empty string) for weekly/asynchronous classes
|
13
14
|
days:
|
14
15
|
- Monday
|
15
16
|
- Wednesday
|
@@ -28,9 +29,40 @@ course:
|
|
28
29
|
Office hours via Basecamp Chat or Pings on Tuesdays, 4pm to 5pm, or by appointment or chance.
|
29
30
|
I’m always signed into Basecamp and closely monitor my notifications. Message or email any
|
30
31
|
time—I make students a priority, and I will repond as soon as I am able.
|
32
|
+
navigation:
|
33
|
+
- label: Calendar
|
34
|
+
href: "#this-week"
|
35
|
+
id: cal
|
36
|
+
- label: Projects
|
37
|
+
href: "projects/#current"
|
38
|
+
id: pro
|
39
|
+
- label: Policies
|
40
|
+
href: "policies/"
|
41
|
+
id: pol
|
42
|
+
css:
|
43
|
+
font-url: "https://use.typekit.net/pig5ein.css"
|
44
|
+
|
45
|
+
collections_dir: syllabus
|
31
46
|
|
32
47
|
collections:
|
33
|
-
|
48
|
+
weeks:
|
49
|
+
projects:
|
50
|
+
policies:
|
51
|
+
order:
|
52
|
+
- description.md
|
53
|
+
- goals.md
|
54
|
+
- outcomes.md
|
55
|
+
- objectives.md
|
56
|
+
- books.md
|
57
|
+
- materials.md
|
58
|
+
- special-needs.md
|
59
|
+
- participation.md
|
60
|
+
- assignment-submission.md
|
61
|
+
- late-work.md
|
62
|
+
- grading-policy.md
|
63
|
+
- grading-criteria.md
|
64
|
+
- technology-policy.md
|
65
|
+
- academic-integrity.md
|
34
66
|
|
35
67
|
defaults:
|
36
68
|
-
|
@@ -44,6 +76,7 @@ highlighter: using_prism_thanks
|
|
44
76
|
exclude:
|
45
77
|
- backstop_data
|
46
78
|
- backstop.json
|
79
|
+
- exe
|
80
|
+
- lib
|
47
81
|
- Rakefile
|
48
|
-
- "Gemfile*"
|
49
82
|
- "*.gemspec"
|
data/_data/utility.yml
CHANGED
data/_layouts/calendar.html
CHANGED
@@ -2,32 +2,49 @@
|
|
2
2
|
layout: default
|
3
3
|
---
|
4
4
|
{% assign util = site.data.utility %}
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
{% assign projects = site.projects %}
|
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
|
+
|
13
|
+
{% assign current = true %}
|
14
|
+
{% if today > last_expiry %}
|
15
|
+
{% assign current = false %}
|
16
|
+
{% endif %}
|
17
|
+
|
9
18
|
{% for entry in site.data.calendar %}
|
10
19
|
{% assign week_int = forloop.index | times: 1 %}
|
11
|
-
{% capture
|
12
|
-
{% assign week = site.
|
20
|
+
{% capture week_num %}{% if week_int < 10 %}0{% endif %}{{ week_int }}{% endcapture %}
|
21
|
+
{% assign week = site.weeks[forloop.index0] %}
|
22
|
+
{% assign expiry = entry.expires | date: "%s" %}
|
13
23
|
|
14
|
-
|
15
|
-
|
16
|
-
|
24
|
+
<!-- past dates? -->
|
25
|
+
<article class="week{% if current == true %} past{% endif %}" id="week-{{ week_num }}" data-week="{{ entry.begins | date: '%U' }}" data-expires="{{ entry.expires }}">
|
26
|
+
{% if today < expiry and current == true %}
|
27
|
+
<header id="this-week">
|
28
|
+
{% assign current = false %}
|
29
|
+
{% else %}
|
30
|
+
<header>
|
31
|
+
{% endif %}
|
32
|
+
<h2>
|
17
33
|
{{ week.theme | escape }}
|
18
|
-
</
|
19
|
-
<small>Week {{ util.spelled_nums[
|
34
|
+
</h2>
|
35
|
+
<small>Week {{ util.spelled_nums[week_int] }}</small>
|
20
36
|
</header>
|
37
|
+
<div class="agendas">
|
21
38
|
{% for meeting in week.meetings %}
|
22
39
|
<section class="agenda">
|
23
|
-
{% if site.course.days %}
|
40
|
+
{% if site.course.days.size > 0 %}
|
24
41
|
{% assign day_key = site.course.days[forloop.index0] | downcase %}
|
25
42
|
{% assign day_offset = site.data.utility.day_offsets[day_key] | times: 1 %}
|
26
|
-
{% capture dateline %}{{ entry.begins | date: "%s" | plus: day_offset | date: "%A, %B
|
43
|
+
{% capture dateline %}{{ entry.begins | date: "%s" | plus: day_offset | date: "%A, %B %-e" }}{% endcapture %}
|
27
44
|
{% else %}
|
28
|
-
{% capture dateline %}
|
45
|
+
{% capture dateline %}Agenda for the Week of {{ entry.begins | date: "%B %-e" }}{% endcapture %}
|
29
46
|
{% endif %}
|
30
|
-
<
|
47
|
+
<h3>{{ dateline }}{% if meeting.video %} <a href="{{ meeting.video }}">Video</a>{% endif %}</h3>
|
31
48
|
<ol>
|
32
49
|
{% for item in meeting.agenda %}
|
33
50
|
<li>{{ item | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
@@ -35,10 +52,34 @@ layout: default
|
|
35
52
|
</ol>
|
36
53
|
</section>
|
37
54
|
{% endfor %}
|
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 -%}
|
38
72
|
|
73
|
+
{% if week.readings or week.tasks or deliverables_li.size > 1%}
|
39
74
|
<aside class="assigned">
|
40
75
|
<header>
|
41
76
|
<h3>Assigned Work</h3>
|
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>
|
42
83
|
</header>
|
43
84
|
{% if week.readings %}
|
44
85
|
<section class="readings">
|
@@ -60,8 +101,18 @@ layout: default
|
|
60
101
|
</ol>
|
61
102
|
</section>
|
62
103
|
{% endif %}
|
104
|
+
|
105
|
+
{% if deliverables_li.size > 1 %}
|
106
|
+
<!-- {{ deliverables_li.size }} -->
|
107
|
+
<section class="deadlines">
|
108
|
+
<h4>Project Deadlines</h4>
|
109
|
+
<ol>
|
110
|
+
{{ deliverables_li }}
|
111
|
+
</ol>
|
112
|
+
</section>
|
113
|
+
{% endif %}
|
114
|
+
|
63
115
|
</aside>
|
116
|
+
{% endif %}
|
64
117
|
</article>
|
65
118
|
{% endfor %}
|
66
|
-
|
67
|
-
</section>
|
data/_layouts/default.html
CHANGED
@@ -1,45 +1,38 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html lang="en" id="{{page.id}}" prefix="og: http://ogp.me/ns#">
|
2
|
+
<html lang="en" id="{{page.id}}" prefix="og: http://ogp.me/ns#" class="loading">
|
3
3
|
<head>{% assign course = site.course %}{% assign instructor = site.course.instructor %}
|
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" />
|
7
|
-
<link rel="stylesheet" href="{{ site.baseurl }}assets/css/screen.css" />
|
7
|
+
<link rel="stylesheet" href="{{ site.baseurl }}assets/css/screen.css" media="all"/>
|
8
8
|
<link rel="stylesheet" href="{{ site.baseurl }}assets/css/print.css" media="print" />
|
9
9
|
<!-- Open Graph -->
|
10
10
|
<meta property="og:url" content="{{ site.url }}{{ site.baseurl }}" />
|
11
11
|
<meta property="og:title" content="{{ course.number }}: {{ course.title }}" />
|
12
12
|
<meta property="og:description" content="{{ course.tagline | strip_newlines }}" />
|
13
|
-
<meta property="og:image" content="{{ site.url }}{{ site.baseurl }}
|
13
|
+
<meta property="og:image" content="{{ site.url }}{{ site.baseurl }}{{ course.uid }}.png" />
|
14
14
|
<meta property="og:image:type" content="image/png" />
|
15
15
|
<meta property="og:type" content="website" />
|
16
16
|
</head>
|
17
17
|
<body>
|
18
18
|
<header id="header">
|
19
|
-
<
|
20
|
-
<
|
21
|
-
|
22
|
-
</a>
|
19
|
+
<h1>
|
20
|
+
<a rel="home" href="{{ site.url }}{{ site.baseurl }}">{{ course.title}}</a>
|
21
|
+
</h1>
|
23
22
|
<p class="tagline">
|
24
23
|
{% if course.tagline %}{{ course.tagline }}{% endif %}
|
25
24
|
Taught by <a href="#instructor">{{ instructor.title }} {{ instructor.name }}</a>,
|
26
25
|
{{ course.term }}.
|
27
26
|
</p>
|
28
|
-
<nav id="
|
27
|
+
<nav id="quick-nav">
|
28
|
+
<h3 id="nav-con"><a href="#content"><span class="access">Jump to</span> {{ page.title }}</a></h3>
|
29
29
|
<ul class="nav">
|
30
|
-
<li id="nav-
|
31
|
-
<li id="nav-bcp"><a href="https://3.basecamp.com/3058761/projects/8576268">Basecamp</a></li>
|
32
|
-
<li id="nav-dem"><a href="https://github.com/itmd-362-2019">Demos</a></li>
|
33
|
-
<li id="nav-lnk"><a href="{{ site.baseurl }}#links">Links</a></li>
|
34
|
-
<li id="nav-pro"><a href="{{ site.baseurl }}projects/#current">Projects</a></li>
|
35
|
-
<li id="nav-pol"><a href="{{ site.baseurl }}policies/">Policies</a></li>
|
30
|
+
<li id="nav-nav"><a href="#full-nav"><span class="access">Jump to</span> Menu</a></li>
|
36
31
|
</ul>
|
37
32
|
</nav>
|
38
33
|
</header>
|
39
34
|
<main id="content">
|
40
|
-
|
41
35
|
{{ content }}
|
42
|
-
|
43
36
|
</main>
|
44
37
|
|
45
38
|
<aside id="instructor">
|
@@ -58,13 +51,37 @@
|
|
58
51
|
</ul>
|
59
52
|
</aside>
|
60
53
|
|
54
|
+
|
61
55
|
<footer id="footer">
|
62
|
-
<
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
56
|
+
<nav id="full-nav">
|
57
|
+
<h3>Navigation</h3>
|
58
|
+
<ul class="nav">
|
59
|
+
{% for nav in course.navigation %}
|
60
|
+
{% assign protocol = nav.href | slice: 0, 4 %}
|
61
|
+
{% if protocol == 'http' %}
|
62
|
+
{% assign fullhref = nav.href %}
|
63
|
+
{% else %}
|
64
|
+
{% capture fullhref %}{{ site.baseurl }}{{ nav.href }}{% endcapture %}
|
65
|
+
{% endif %}
|
66
|
+
<li id="nav-{{ nav.id }}"><a href="{{ fullhref }}">{{ nav.label }}</a></li>
|
67
|
+
{% endfor %}
|
68
|
+
</ul>
|
69
|
+
</nav>
|
70
|
+
<section id="colophon">
|
71
|
+
<h3>Colophon</h3>
|
72
|
+
<p class="fineprint">
|
73
|
+
Course syllabus by <a href="{{ instructor.url }}">{{ instructor.name }}</a>.
|
74
|
+
Licensed under
|
75
|
+
<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>.
|
82
|
+
</p>
|
83
|
+
</section>
|
68
84
|
</footer>
|
85
|
+
<script src="{{ site.baseurl }}assets/js/site.js"></script>
|
69
86
|
</body>
|
70
87
|
</html>
|
data/_layouts/error.html
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
|
6
|
+
{% for policy in site.policies %}
|
7
|
+
{% if policy.content.size > 1 %}
|
8
|
+
{% assign filename = policy.path | split: "/" %}
|
9
|
+
{% assign slug = filename[1] | remove: ".md" %}
|
10
|
+
<article class="policy" id="{{ slug }}">
|
11
|
+
<header>
|
12
|
+
<h2>{{ policy.title }}</h2>
|
13
|
+
</header>
|
14
|
+
{{ policy.content }}
|
15
|
+
</article>
|
16
|
+
{% endif %}
|
17
|
+
{% endfor %}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% assign current = true %}
|
6
|
+
{% assign today = "today" | date: "%s" %}
|
7
|
+
|
8
|
+
{% for project in site.projects %}
|
9
|
+
{% assign dd = project.due_date | date: "%s" %}
|
10
|
+
|
11
|
+
<article class="project" id="project-{{ site.data.utility.spelled_nums[forloop.index] | downcase }}">
|
12
|
+
{% if today < dd and current == true %}
|
13
|
+
<header id="current">
|
14
|
+
{% assign current = false %}
|
15
|
+
{% else %}
|
16
|
+
<header>
|
17
|
+
{% endif %}
|
18
|
+
<h2>Project {{ site.data.utility.spelled_nums[forloop.index] }}: {{ project.title }}</h2>
|
19
|
+
<small>Due by {{ project.due_date | date: "%A, %B %-e, %Y"}}</small>
|
20
|
+
</header>
|
21
|
+
|
22
|
+
<section class="description {% if project.preview %}preview{% endif %}">
|
23
|
+
<h3>Project Description</h3>
|
24
|
+
{{ project.content }}
|
25
|
+
</section>
|
26
|
+
|
27
|
+
{% unless project.preview %}
|
28
|
+
{% if project.deliverables %}
|
29
|
+
<section class="deliverables">
|
30
|
+
<h3>Deliverables and Deadlines</h3>
|
31
|
+
<ol>
|
32
|
+
{% for deliverable in project.deliverables %}
|
33
|
+
<li>
|
34
|
+
{% if deliverable.deadline %}Due by <b>{{ deliverable.deadline | date: "%A, %B %-e"}}</b>: {% endif %}
|
35
|
+
{{ deliverable.action | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}
|
36
|
+
{{ deliverable.description | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}
|
37
|
+
{% if deliverable.details %}
|
38
|
+
<ul>
|
39
|
+
{% for detail in deliverable.details %}
|
40
|
+
<li> {{ detail | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
41
|
+
{% endfor %}
|
42
|
+
</ul>
|
43
|
+
{% endif %}
|
44
|
+
</li>
|
45
|
+
{% endfor %}
|
46
|
+
</ol>
|
47
|
+
</section>
|
48
|
+
{% endif %}
|
49
|
+
{% if project.requirements %}
|
50
|
+
<section class="requirements">
|
51
|
+
<h3>Project Requirements</h3>
|
52
|
+
<ol>
|
53
|
+
{% for requirement in project.requirements %}
|
54
|
+
<li>{{ requirement | markdownify | remove: "<p>" | remove: "</p>" | strip_newlines }}</li>
|
55
|
+
{% endfor %}
|
56
|
+
</ol>
|
57
|
+
</section>
|
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
|
+
{% endunless %}
|
70
|
+
</article>
|
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
|
+
}
|