dsm-portfolio-theme 0.1.4 → 0.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -18
  3. data/_includes/breadcrumbs.html +11 -0
  4. data/_includes/competencies.html +28 -0
  5. data/_includes/navigation.html +42 -0
  6. data/_includes/notice.html +7 -0
  7. data/_includes/project-list.html +65 -21
  8. data/_includes/projects.html +32 -0
  9. data/_includes/scripts.html +5 -1
  10. data/_layouts/default.html +14 -16
  11. data/_layouts/examples/summary-example.md +17 -0
  12. data/_layouts/examples/vignette-example.md +8 -0
  13. data/_layouts/generate/about.html +180 -0
  14. data/_layouts/generate/api/documentation.html +313 -0
  15. data/_layouts/generate/api/v1/competencies.json +4 -0
  16. data/_layouts/generate/api/v1/portfolio.json +24 -0
  17. data/_layouts/generate/api/v1/progression.json +4 -0
  18. data/_layouts/generate/api/v1/projects.json +4 -0
  19. data/_layouts/generate/api/v1/summaries.json +14 -0
  20. data/_layouts/generate/api/v1/vignettes.json +14 -0
  21. data/_layouts/generate/competencies.md +9 -0
  22. data/_layouts/generate/progression.html +95 -0
  23. data/_layouts/generate/projects.md +9 -0
  24. data/_layouts/portfolio.html +28 -24
  25. data/_layouts/summary.html +67 -48
  26. data/_layouts/vignette.html +69 -34
  27. data/assets/scripts/vignette.js +204 -18
  28. data/assets/styles/main.scss +15 -29
  29. metadata +20 -23
  30. data/_includes/anaytics.html +0 -0
  31. data/_includes/footer.html +0 -0
  32. data/_includes/header.html +0 -13
  33. data/_layouts/project.html +0 -5
  34. data/_sass/atoms/_forms.scss +0 -0
  35. data/_sass/atoms/_images.scss +0 -0
  36. data/_sass/atoms/_links.scss +0 -0
  37. data/_sass/atoms/_lists.scss +0 -0
  38. data/_sass/atoms/_tables.scss +0 -0
  39. data/_sass/atoms/_typography.scss +0 -0
  40. data/_sass/base/_colours.scss +0 -0
  41. data/_sass/base/_fonts.scss +0 -0
  42. data/_sass/base/_normalize.scss +0 -0
  43. data/_sass/base/_spacing.scss +0 -0
  44. data/_sass/layouts/_evaluation.scss +0 -0
  45. data/_sass/layouts/_page.scss +0 -0
  46. data/_sass/layouts/_portfolio.scss +0 -0
  47. data/_sass/molecules/_footer.scss +0 -0
  48. data/_sass/molecules/_header.scss +0 -0
  49. data/_sass/organisms/_vignette-blocks.scss +0 -9
  50. data/_sass/organisms/_vignette-tabs.scss +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93b1d5e4f5bbf4efda233492143ae3cfc5edcc27
4
- data.tar.gz: 6fc0cc3f20513e4f8621f897e1990d9ba232c629
3
+ metadata.gz: 4c22c3fafa27def4d92dc1f88d818a290a9f19d1
4
+ data.tar.gz: 31d9294eb0928b0237a88ad2be62fdcc346cd8f2
5
5
  SHA512:
6
- metadata.gz: b25f1a073bfafae064ccd5ae658f2e15d9333d7ac0f974e7e05391e4fbfa6d0c6a6b7a3a18281e1433210e8a0e406ccdfea4df39ffbfce3ac7affe0d4809f186
7
- data.tar.gz: 8ee80aa88dcee2088494b56d2f72b52c73f91d9a3b89cada146d88bf255477cdf45175680e13a39d23c60a4383bc5f317a0e6b945e0c0916f7c797fcb96caf45
6
+ metadata.gz: bd3908a5f426ae686ebba5fa8ecc18e86115db502a76c0036a3f79bd8c80c21cba3ae1e662fbf559507baa2853826a566689330cd9eacb6ca0f9dc5edee14b35
7
+ data.tar.gz: e7b03efa7b07a2d351b9e78d4d7342b90961a1242f34064a0f620555152b70d725ad1b7dc40cb9d92231dd642ac8e3e45fa67fe69c24cc4b64e455a059df0c92
data/README.md CHANGED
@@ -1,21 +1,7 @@
1
- # dsm-portfolio
1
+ # dsm-portfolio-theme
2
2
 
3
- Describe the work here...
3
+ [![Gem Version](https://badge.fury.io/rb/dsm-portfolio-theme.svg)](https://badge.fury.io/rb/dsm-portfolio-theme)
4
4
 
5
- The theme is the main body of work.
5
+ The theme used for the dsm-portfolio-project.
6
6
 
7
- The site is a pre-generated site using the theme, with dummy information to be altered by users.
8
-
9
- ## Usage
10
-
11
- See 'USAGE.md' in 'docs', which describes how to use this repository to maintain a portfolio of submissions.
12
-
13
- ## Contributing
14
-
15
- See 'MODIFICATIONS.md' in 'docs', which describes how to alter the repository.
16
-
17
- ## Legal
18
-
19
- See 'LEGAL.md' in 'docs', which describes licensing and attributions.
20
-
21
- ### All information is duplicated in the repository's ['wiki'](#) and the theme iteslf.
7
+ Read the [hosted about page](https://joshhills.github.io/dsm-portfolio-site/about) for usage, modification and legal information.
@@ -0,0 +1,11 @@
1
+ <div class="row">
2
+ <div class="col">
3
+ <nav aria-label="breadcrumb">
4
+ <ol class="breadcrumb">
5
+ <li class="breadcrumb-item"><a href="{{ '/' | relative_url }}">Portfolio</a></li>
6
+ <li class="breadcrumb-item">{{ page.project_title }}</li>
7
+ <li class="breadcrumb-item active" aria-current="page">{{ page.type | capitalize }}</li>
8
+ </ol>
9
+ </nav>
10
+ </div>
11
+ </div>
@@ -0,0 +1,28 @@
1
+ <div class="table-responsive">
2
+ <table class="table">
3
+ <tr>
4
+ <th>Id</th>
5
+ <th>Title</th>
6
+ <th>Description</th>
7
+ <th>Categories</th>
8
+ </tr>
9
+ {% for competency in site.data.competencies %}
10
+ <tr id="{{ competency.id }}">
11
+ <td>
12
+ {{ competency.id }}
13
+ </td>
14
+ <td>
15
+ {{ competency.title }}
16
+ </td>
17
+ <td>
18
+ {{ competency.description }}
19
+ </td>
20
+ <td>
21
+ {% for category in competency.categories %}
22
+ {{ category }}<br/>
23
+ {% endfor %}
24
+ </td>
25
+ </tr>
26
+ {% endfor %}
27
+ </table>
28
+ </div>
@@ -0,0 +1,42 @@
1
+ <nav class="navbar navbar-expand-lg navbar-light bg-light">
2
+ <a class="navbar-brand" href="{{ '/' | relative_url }}">Portfolio</a>
3
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
4
+ <span class="navbar-toggler-icon"></span>
5
+ </button>
6
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
7
+ <ul class="navbar-nav ml-auto">
8
+ {% assign page_url = page.url | replace: ".html","" %}
9
+ <li class="nav-item {% if page_url == '/progression' %}active{% endif %} mr-2">
10
+ <a class="nav-link" href="{{ '/progression' | relative_url }}">
11
+ Progression
12
+ </a>
13
+ </li>
14
+ <li class="nav-item {% if page_url == '/projects' %}active{% endif %} mr-2">
15
+ <a class="nav-link" href="{{ '/projects' | relative_url }}">
16
+ Projects
17
+ </a>
18
+ </li>
19
+ <li class="nav-item {% if page_url == '/competencies' %}active{% endif %}">
20
+ <a class="nav-link" href="{{ '/competencies' | relative_url }}">
21
+ Competencies
22
+ </a>
23
+ </li>
24
+ <li>
25
+ <a class="nav-link disabled" href="#">|</a>
26
+ </li>
27
+ {% for navigation-link in site.data.navigation-links %}
28
+ <li class="nav-item {% if page_url == navigation-link.url %}active{% endif %} {% unless forloop.last %}mr-2{% endunless %}">
29
+ {% if navigation-link.external %}
30
+ <a class="btn btn-outline-primary" href="{{ navigation-link.url | relative_url }}" target="_blank">
31
+ {{ navigation-link.title }}
32
+ </a>
33
+ {% else %}
34
+ <a class="nav-link" href="{{ navigation-link.url | relative_url }}" target="_self">
35
+ {{ navigation-link.title }}
36
+ </a>
37
+ {% endif %}
38
+ </li>
39
+ {% endfor %}
40
+ </ul>
41
+ </div>
42
+ </nav>
@@ -0,0 +1,7 @@
1
+ {% assign page_url = page.url | replace: ".html","" %}
2
+
3
+ {% if site.data.notices[page_url] %}
4
+ <p>
5
+ {{ site.data.notices[page_url] }}
6
+ <p>
7
+ {% endif %}
@@ -1,29 +1,73 @@
1
- <!-- List all projects in collection -->
2
- <div class="o-project-list">
3
- <h2>
4
- Projects
5
- </h2>
6
- <div class="">
7
- <!-- Group posts by subdirectory (parent project Id) -->
1
+ <div class="row">
2
+ <div class="col">
3
+ <h2 class="mb-4">
4
+ Submitted Projects
5
+ </h2>
6
+ {% assign truncate_value = site.project_description_truncation | default: 64 %}
8
7
  {% assign postsByProject = site.posts | group_by_exp: "post", "post.project_id" %}
9
- {% for project in postsByProject %}
10
- <div class="">
11
- <p class="">
12
- <!-- Date of submission -->
13
- {{ project.items[0].date | date: "%d-%m-%Y" }}
14
- </p>
15
- <div class="">
16
- <!-- Project details -->
17
- <h3 class="">
18
- {{ project.items[0].project_title }}
19
- </h3>
20
- <div class="">
8
+ {% if postsByProject.size > 0 %}
9
+ {% for project in postsByProject %}
10
+ {% if project.items[0].project_code != -1 %}
11
+ {% assign linked_project = site.data.projects | where:"id", project.items[0].project_code | first %}
12
+ {% assign projectType = "Academic Project" %}
13
+ {% if linked_project and linked_project.deadline %}
14
+ {% assign today_date = 'now' | date: '%s' %}
15
+ {% assign pre_date = linked_project.deadline | date: '%s' %}
16
+ {% if today_date < pre_date %}
17
+ {% assign days_until_deadline = pre_date | minus: today_date | divided_by: 3600 | divided_by: 24 | plus: 1 %}
18
+ {% assign days_until_deadline = days_until_deadline | pluralize: "Day", "Days" %}
19
+ {% assign incomplete = true %}
20
+ {% assign classString = "border-warning" %}
21
+ {% else %}
22
+ {% assign incomplete = false %}
23
+ {% assign classString = "" %}
24
+ {% endif %}
25
+ {% else %}
26
+ {% assign classString = "border-primary" %}
27
+ {% assign incomplete = false %}
28
+ {% endif %}
29
+ {% else %}
30
+ {% assign projectType = "Personal Project" %}
31
+ {% assign classString = "" %}
32
+ {% assign linked_project = nil %}
33
+ {% assign incomplete = false %}
34
+ {% endif %}
35
+
36
+ {% for item in project.items %}
37
+ {% if item.type == "summary" %}
38
+ {% assign project_summary = item.excerpt %}
39
+ {% break %}
40
+ {% endif %}
41
+ {% endfor %}
42
+ <div class="card mb-4 {{ classString }}">
43
+ <div class="card-body">
44
+ <h5 class="card-title">{{ project.items[0].project_title }}</h5>
45
+ {% if incomplete %}
46
+ {% assign deadlineString = " | Deadline: " | append: linked_project.deadline | append: " (" | append: days_until_deadline | append: ")" %}
47
+ {% else %}
48
+ {% assign deadlineString = "" %}
49
+ {% endif %}
50
+ <h6 class="card-subtitle mb-2 text-muted">{{ project.items[0].date | date: "%d-%m-%Y" }}{{ deadlineString }}</h6>
51
+ <p class="card-text"><small class="text-muted text-primary">{{ projectType }}</small></p>
52
+ {% if project_summary %}
53
+ <p class="card-text">{{ project_summary | truncatewords: truncate_value }}</p>
54
+ {% elsif linked_project and linked_project.description %}
55
+ <p class="card-text">{{ linked_project.description | truncatewords: truncate_value }}</p>
56
+ {% endif %}
21
57
  {% for file in project.items %}
22
- <a class="" href="{{ file.url | relative_url }}">{{ file.type | capitalize }}</a>
58
+ <a class="card-link" href="{{ file.url | relative_url }}">{{ file.type | capitalize }}{% if file.type == "vignette" and file["vignettes"].size > 0 %}
59
+ <span class="badge badge-primary">{{file["vignettes"].size}}</span>
60
+ {% endif %}</a>
23
61
  {% endfor %}
24
62
  </div>
25
63
  </div>
64
+ {% assign project_summary = nil %}
65
+ {% endfor %}
26
66
  </div>
27
- {% endfor %}
67
+ {% else %}
68
+ <p class="lead">
69
+ No projects found. See <a href="{{ '/about' | relative_url }}">about</a> to find out how to make them.
70
+ </p>
71
+ {% endif %}
28
72
  </div>
29
73
  </div>
@@ -0,0 +1,32 @@
1
+ <div class="table-responsive">
2
+ <table class="table">
3
+ <tr>
4
+ <th>Id</th>
5
+ <th>Title</th>
6
+ <th>Description</th>
7
+ <th>Deadline</th>
8
+ <th>Targets</th>
9
+ </tr>
10
+ {% for project in site.data.projects %}
11
+ <tr id="{{ project.id }}">
12
+ <td>
13
+ {{ project.id }}
14
+ </td>
15
+ <td>
16
+ {{ project.title }}
17
+ </td>
18
+ <td>
19
+ {{ project.description }}
20
+ </td>
21
+ <td>
22
+ {{ project.deadline | date: "%d-%m-%Y" }}
23
+ </td>
24
+ <td>
25
+ {% for target in project.targets %}
26
+ {{ target }}<br/>
27
+ {% endfor %}
28
+ </td>
29
+ </tr>
30
+ {% endfor %}
31
+ </table>
32
+ </div>
@@ -1,3 +1,7 @@
1
1
  {% if page['type'] == 'vignette' %}
2
2
  <script src="{{ "/assets/scripts/vignette.js" | relative_url }}" type="text/javascript"></script>
3
- {% endif %}
3
+ {% endif %}
4
+
5
+ <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
6
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
7
+ <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
@@ -4,25 +4,23 @@
4
4
  <!-- Meta-->
5
5
  <meta charset="UTF-8">
6
6
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
- <meta name="viewport" content="width=device-width, initial-scale=1">
8
-
9
- <!-- TODO: SEO-->
7
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
10
8
 
11
9
  <!-- Styles -->
12
10
  <link rel="stylesheet" href="{{ "/assets/styles/main.css" | relative_url }}">
13
-
11
+ <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
12
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
14
13
  </head>
15
- <body>
16
- <!-- Header-->
17
- {% include header.html %}
18
-
19
- <!-- Wrapper Content -->
20
- {{ content }}
21
-
22
- <!-- Footer -->
23
- {% include footer.html %}
24
-
25
- <!-- Scripts -->
26
- {% include scripts.html %}
14
+ <body data-spy="scroll" data-target="#index" data-offset="0">
15
+ <div class="container">
16
+ {% include navigation.html %}
17
+ <div class="row p-4">
18
+ <div class="col">
19
+ {{ content }}
20
+ </div>
21
+ </div>
22
+ <!-- Scripts -->
23
+ {% include scripts.html %}
24
+ </div>
27
25
  </body>
28
26
  </html>
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: summary
3
+ length: X Months
4
+ # notebook_file: demo.ipynb
5
+ external_resources:
6
+ - url: "#"
7
+ title: Resource One
8
+ - url: "#"
9
+ title: Resource Two
10
+ tags:
11
+ - Example Tag One
12
+ - Example Tag Two
13
+ ---
14
+
15
+ This is a place to write a summary of your project - an abstract, and examples. Anything can be included, and bespoke sections have been pinned to the side. This is a great place to demonstrate capabilities to your peers and potential employers.
16
+
17
+ To link a notebook file place it in <code>assets/notebooks</code>, and then reference it's filename in the front-matter as <code>notebook_file</code>.
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: vignette
3
+ # project_code: X
4
+ ---
5
+
6
+ {% v %}
7
+ Write your vignette blocks in chronological order using {% raw %}<code class="text-nowrap">{% v %} TEXT HERE {% endv %}</code>{% endraw %}, and tag competencies inside using {% raw %}<code class="text-nowrap">{% c COMPETENCY_ID %}</code>{% endraw %}.
8
+ {% endv %}
@@ -0,0 +1,180 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ <div class="container">
6
+ <div class="row">
7
+ <div class="col-lg-3 mb-4">
8
+ <!-- About Navigation -->
9
+ <div class="row sticky-top t-1" style="top: 1rem">
10
+ <ul id="index" class="list-group container-fluid" style="padding-left: 15px">
11
+ <a href="#about" class="list-group-item list-group-item-light flex-column align-items-start">
12
+ <h5 class="mb-1">About</h5>
13
+ </a>
14
+ <a href="#usage" class="list-group-item">
15
+ <h6 class="mb-1">Usage</h6>
16
+ </a>
17
+ <a href="#technology" class="list-group-item">Technology</a>
18
+ <a href="#installation--forking" class="list-group-item">Installation & Forking</a>
19
+ <a href="#altering-details" class="list-group-item">Altering Details</a>
20
+ <a href="#creating-projects" class="list-group-item">Creating Projects</a>
21
+ <a href="#progression" class="list-group-item">Progression</a>
22
+ <a href="#hosting-on-github-pages" class="list-group-item">Hosting On Github Pages</a>
23
+ <a href="#api" class="list-group-item">API</a>
24
+ <a href="#modifications" class="list-group-item">
25
+ <h6 class="mb-1">Modifications</h6>
26
+ </a>
27
+ <a href="#legal" class="list-group-item">
28
+ <h6 class="mb-1">Legal</h6>
29
+ </a>
30
+ <a href="#attributions" class="list-group-item">
31
+ <h6 class="mb-1">Attributions</h6>
32
+ </a>
33
+ </ul>
34
+ </div>
35
+ </div>
36
+ <!-- Contents -->
37
+ <div class="col-lg">
38
+ <div class="row">
39
+ <div class="container">
40
+ <h1>About</h1>
41
+ {% include notice.html %}
42
+ {% capture about_contents %}
43
+ This guide provides a brief overview of how to use this portfolio. An example
44
+ site has been provided to reduce the amount of pre-requisite knowledge needed,
45
+ and the theme itself has been built with degradation in mind (meaning that
46
+ it should be easy to customise and somewhat hard to break!).
47
+
48
+ The software is produced and maintained by [Josh Hills](mailto:josh@jargonify.com)
49
+ (post-graduate), for the purpose of providing a modern solution to submitting and
50
+ assessing work for the data science masters course at Newcastle University. It may
51
+ be used beyond this scope - see [modifications](#modifications).
52
+
53
+ ## Usage
54
+
55
+ ### Technology
56
+
57
+ [Jekyll](https://jekyllrb.com/) is a static-site generator running in the programming language Ruby.
58
+ It can be run on any major platform.
59
+
60
+ It uses the [Liquid](https://help.shopify.com/en/themes/liquid) templating engine. You write posts in Markdown, and they
61
+ are converted to a folder containing your entire portfolio site. Data files are
62
+ written in [YAML](http://yaml.org/).
63
+
64
+ The site provides means for the academic institution to add information about
65
+ projects, competencies, useful links and documentation. It provides means for
66
+ students to extend this information, and submit associated work.
67
+
68
+ It also provides an API to expose student progression for analysis.
69
+
70
+ ### Installation & Forking
71
+
72
+ - Clone the example site
73
+ - Install Ruby & Jekyll
74
+ - Install & update gem dependencies using commands `bundle install && bundle update`
75
+ - Run Jekyll using command `jekyll serve`
76
+ - Access at `localhost:4000`
77
+ - Every time the site builds it will generate the site at `_site`
78
+
79
+ ### Altering Details
80
+
81
+ - In `config.yml`, edit user details
82
+ - Overrides/extensions for data files can be added - see the [example folder](https://github.com/joshhills/dsm-portfolio-theme/tree/master/_data) in the demo project.
83
+
84
+ ### Creating Projects
85
+
86
+ Writing any file for a project can be done using Markdown or HTML. See [cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
87
+
88
+ - `jekyll project "NAME OF PROJECT"`
89
+ - OR copy [example structure](https://github.com/joshhills/dsm-portfolio-theme/tree/master/_posts/2018-02-07-test-project-one) from demo project
90
+
91
+ Note that the date is YYYY-MM-DD-title. This date should be when you start writing. If it is dated in the
92
+ future it wont be included in the site.
93
+
94
+ #### Summaries
95
+
96
+ This is a place to summarise a project. You may write this in any format.
97
+
98
+ By adding a Jupyter notebook file to `assets/notebooks` and including the name in
99
+ the frontmatter, it will render below your summary.
100
+
101
+ See the [example file](https://github.com/joshhills/dsm-portfolio-theme/blob/master/_posts/2018-02-07-test-project-one/summary.md) in the demo project.
102
+
103
+ #### Vignettes
104
+
105
+ This is a place to evaluate your project work, tagging relevant sections with
106
+ the competencies you have satisfied.
107
+
108
+ By linking your project submission to an academic project, it will pull in information
109
+ from the data file such as skill targets, description and deadline. You can view all
110
+ academic projects at [projects]({{ '/projects' | relative_url }}).
111
+
112
+ Individual iterations on your evaluation within the page are created by using a custom
113
+ 'liquid' tag `{% raw %}{% v %} ... {% end v %}{% endraw %}`. When you have met a specific
114
+ competency, you can include that in the evaluation using `{% raw %}{% c COMPETENCY_ID %}{% endraw %}`.
115
+ You can view all competencies at [competencies]({{ '/competencies' | relative_url }}).
116
+
117
+ See the [example file](https://github.com/joshhills/dsm-portfolio-theme/blob/master/_posts/2018-02-07-test-project-one/vignette.md) in the demo project.
118
+
119
+ ### Progression
120
+
121
+ You can see an overview of all projects at [progression]({{ '/progression' | relative_url }}).
122
+
123
+ ### Hosting on Github Pages
124
+
125
+ - `git init` in `_site`
126
+ - Create branch `gh-pages`
127
+ - Set remote to the same repository using command `git remote add origin git@github.com:username/repositoryname.git`
128
+ - Add, commit and push changes
129
+ - View latest version of branch at `https://username.github.io/repositoryname/`
130
+
131
+ ### API
132
+
133
+ The API and associated documentation pages are auto-generated upon build. Their documentation can be found [here]({{ '/api' | relative_url }}).
134
+
135
+ ## Modifications
136
+
137
+ Administrators may fork the [theme](https://github.com/joshhills/dsm-portfolio-theme) in order to maintain an updated version of `_data` and other information. They may also fork the [site example]() in order to point this to their version of the theme. Pull requests made to the original of either will be accepted upon code review.
138
+
139
+
140
+ Students should fork the [site example](https://github.com/joshhills/dsm-portfolio-site) for a quick set-up. Pull requests may be made to the original repository, however only modifications to the initial theme in the form of optional feature extensions (widgets) or bug-fixes will be accepted by students. Make sure that tests pass, and that no personal information is included.
141
+
142
+ Issues raised represent feedback that may be taken into consideration during further development. Contact your course representatives for immediate concerns.
143
+
144
+ ## Legal
145
+
146
+ This theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
147
+
148
+ ## Attributions
149
+
150
+ - [jekyll](https://github.com/jekyll/jekyll) w/ MIT licence
151
+ - [jekyll-jupyter-notebook](https://github.com/red-data-tools/jekyll-jupyter-notebook) by RED Data Tools w/ Apache 2.0 license
152
+ - [jekyll-remote-theme](https://github.com/benbalter/jekyll-remote-theme) by Ben Balter w/ MIT license
153
+ - [jekyll-data](https://github.com/ashmaroli/jekyll-data) by Ashwin Maroli w/ MIT
154
+ &nbsp;
155
+ &nbsp;
156
+ &nbsp;
157
+ &nbsp;
158
+ &nbsp;
159
+ &nbsp;
160
+ &nbsp;
161
+ &nbsp;
162
+ &nbsp;
163
+ &nbsp;
164
+ &nbsp;
165
+ &nbsp;
166
+ &nbsp;
167
+ &nbsp;
168
+ &nbsp;
169
+ &nbsp;
170
+ &nbsp;
171
+ &nbsp;
172
+ &nbsp;
173
+ &nbsp;
174
+ {% endcapture %}
175
+ {{ about_contents | markdownify }}
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ </div>