Skip to content

Commit 98812ed

Browse files
committed
feat(plugins): Add dedicated plugin pages
1 parent 7ab4063 commit 98812ed

File tree

4 files changed

+62
-1
lines changed

4 files changed

+62
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ _data
2020
chai.js
2121
_site
2222
.sass-cache
23+
plugins/*.md

_layouts/plugin.html

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
layout: default
3+
bodyClass: plugin
4+
---
5+
{% assign plugin = site.data.plugins[page.pluginName] %}
6+
<div id="plugin" class="row">
7+
<div class="banner grid_4">
8+
<div class="wrap">
9+
<div class="title">
10+
<h2 class="plain">{{ plugin.name }}</h2>
11+
</div>
12+
<div class="desc">{{ plugin.description }}</div>
13+
<h3 class="link">
14+
{% if plugin.repository.url contains "github.com" %}
15+
<a href="https://{{ plugin.repository.url | replace: '[email protected]', 'github.com' | replace: 'git+ssh://', '' | replace: 'git+https://', '' | replace: 'git://', '' | replace: 'http://', '' | replace: 'https://', '' | replace: 'github.com:', 'github.com/' }}">
16+
View the Project on GitHub
17+
<span>{{ plugin.repository.url | split: 'github.com:' | last | split: 'github.com/' | last | replace: '.git', '' }}</span>
18+
</a>
19+
{% endif %}
20+
</h3>
21+
{% unless plugin.keywords contains 'browser-only' %}
22+
<div class="platform supported">
23+
<div class="icon"></div>
24+
node.js supported
25+
<pre><code>npm install {{ plugin.name }}</code></pre>
26+
</div>
27+
{% endunless %}
28+
{% if plugin.keywords contains 'browser' %}
29+
<div class="platform supported">
30+
<div class="icon"></div>
31+
browser supported
32+
</div>
33+
{% endif %}
34+
<div class="people">
35+
<div class="author">Project maintained by {{ plugin.author.name }}</div>
36+
</div>
37+
</div>
38+
</div>
39+
<div class="readme grid_8">
40+
<div class="wrap">
41+
{{ content }}
42+
</div>
43+
</div>
44+
</div>

_scripts/build-plugin-pages.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
var fs = require('fs');
2+
var files = fs.readdirSync('_data/plugins');
3+
files.filter(function (file) {
4+
return file.slice(-5) === '.json';
5+
}).forEach(function (file) {
6+
try {
7+
var name = file.slice(0, -5);
8+
var pluginJson = JSON.parse(fs.readFileSync('_data/plugins/' + file, 'utf8'));
9+
var contents = '---\nlayout: plugin\npermalink: plugins/' + name + '/\npluginName: ' + name + '\n---\n\n' + pluginJson.readme;
10+
fs.writeFileSync(__dirname + '/../plugins/' + name + '.md', contents, 'utf8');
11+
console.log('Wrote', 'plugins/' + file + '.md')
12+
} catch(e) {
13+
console.error(e.stack || e);
14+
process.exit(1);
15+
}
16+
});

plugins/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
{% for plugin_hash in site.data.plugins %}
2020
{% assign plugin = plugin_hash[1] %}
2121
<article id="{{ plugin.name }}" class="grid_3 contrast plugin-box_s">
22-
<a href="/plugins/{{ plugin.name }}" class="ablock">
22+
<a href="{{ site.baseurl }}/plugins/{{ plugin.name }}" class="ablock">
2323
<div class="wrap">
2424
<h3 class="fancy">{{ plugin.name }}</h3>
2525
<p>{{ plugin.description }}</p>

0 commit comments

Comments
 (0)