jekyll-theme-open-course 0.0.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +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
|
+
}
|