Skip to content

Commit 55e910d

Browse files
committed
chore(demos): start ionic-demo page
1 parent f19c6d0 commit 55e910d

File tree

17 files changed

+414
-67
lines changed

17 files changed

+414
-67
lines changed

docs/docs.config.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,16 @@ module.exports = function(config) {
2525
config.set('versionData', versionData);
2626
config.set('rendering.contentsFolder', path.join('docs', versionData.current.folder));
2727

28+
config.set('demos.outputFolder', path.join(__dirname, '../tmp/ionic-demo'));
29+
2830
config.set('processing.api-docs', {
2931
outputPath: 'api/${docType}/${name}/index.md',
3032
path: 'api/${docType}/${name}/',
3133
moduleOutputPath: 'api/module/${name}/index.md',
32-
modulePath: 'api/module/${name}/'
34+
modulePath: 'api/module/${name}/',
35+
mergeableTypes: {
36+
demo: 'demos'
37+
}
3338
});
3439

3540
config.append('rendering.filters', [
@@ -59,10 +64,10 @@ module.exports = function(config) {
5964
config.append('processing.processors', [
6065
require('./processors/latest-version'),
6166
require('./processors/keywords'),
62-
require('./processors/pages-data'),
6367
require('./processors/index-page'),
6468
require('./processors/version-data'),
65-
require('./processors/jekyll')
69+
require('./processors/jekyll'),
70+
require('./processors/demos')
6671
]);
6772

6873
return config;

docs/processors/demos.js

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
var path = require('canonical-path');
2+
var log = require('winston');
3+
var _ = require('lodash');
4+
5+
var currentVersion;
6+
var contentsFolder;
7+
module.exports = {
8+
name: 'demos',
9+
runAfter: ['api-docs'],
10+
runBefore: ['index-page'],
11+
description: 'Create demos',
12+
init: function(config) {
13+
currentVersion = config.get('currentVersion');
14+
contentsFolder = config.get('rendering.contentsFolder');
15+
},
16+
process: function(docs, config, extraData) {
17+
var demoTags = [
18+
'javascript',
19+
'html',
20+
'css',
21+
'spec',
22+
'scenario'
23+
];
24+
var extensions = {
25+
javascript: 'js',
26+
html: 'html',
27+
css: 'css',
28+
spec: 'js',
29+
scenario: 'js'
30+
};
31+
32+
var demoFolder = path.join(config.get('versionData.current.folder'),
33+
'${docType}/${name}');
34+
var demoPath = '${name}/${filename}.${extension}';
35+
var templatePath = 'demo/${filename}.template.${extension}';
36+
37+
var allDemos = [];
38+
_(docs)
39+
.filter(function(doc) { return doc.demos; })
40+
.forEach(function(doc) {
41+
var outputFolder = _.template(demoFolder,doc);
42+
43+
doc.demos.forEach(function(demo) {
44+
var demoData = {};
45+
allDemos.push(demoData);
46+
47+
var outputFolder = _.template(demoFolder, doc);
48+
demoData.module = demo.module;
49+
demoData.name = demo.name;
50+
demoData.docName = doc.name;
51+
demoData.href = '/' + outputFolder + '/' + demo.name;
52+
53+
demoTags.forEach(function(tagName) {
54+
var data = demo.tags.tagsByName[tagName];
55+
56+
if (data && data.length) {
57+
var content = data.map(function(d) {
58+
return d.description;
59+
}).join('\n');
60+
var filename = tagName;
61+
var ext = extensions[tagName];
62+
var outputPath = outputFolder + '/' + _.template(demoPath, {
63+
name: demo.name,
64+
filename: filename,
65+
extension: ext
66+
});
67+
var template = _.template(templatePath, {
68+
filename: filename,
69+
extension: ext
70+
});
71+
72+
demoData[tagName] = {
73+
path: outputPath,
74+
content: content
75+
};
76+
77+
//Write all the files for this demo (html, css, js)
78+
docs.push({
79+
docType: 'demo',
80+
id: doc.name + '/' + demo.name,
81+
outputPath: config.get('demos.outputFolder') + '/' + outputPath,
82+
template: template,
83+
contents: content
84+
});
85+
}
86+
87+
});
88+
var outputPath = outputFolder + '/' + _.template(demoPath, {
89+
name: demo.name,
90+
filename: 'index',
91+
extension: 'html'
92+
});
93+
94+
//Write this specific demo's index page
95+
docs.push({
96+
docType: 'demo',
97+
outputPath: path.join(config.get('demos.outputFolder'), outputPath),
98+
template: 'demo_index.template.html',
99+
demoData: demoData,
100+
name: doc.name
101+
});
102+
});
103+
})
104+
.value();
105+
106+
//Write the demo page for this whole version (eg at /nightly)
107+
docs.push({
108+
docType: 'demo',
109+
template: 'demo_index.template.html',
110+
outputPath: path.join(
111+
config.get('demos.outputFolder'),
112+
config.get('versionData.current.folder'),
113+
'index.html'
114+
)
115+
});
116+
117+
extraData.demos = allDemos;
118+
}
119+
};

docs/processors/pages-data.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

docs/tag-defs/index.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ module.exports = [
1616
});
1717
}
1818
},
19-
{
20-
name: 'codepen'
21-
},
22-
{
23-
name: 'alias'
24-
}
19+
{ name: 'codepen' },
20+
{ name: 'alias' },
21+
{ name: 'demo' },
22+
{ name: 'javascript' },
23+
{ name: 'css' },
24+
{ name: 'html' },
25+
{ name: 'ngModule' }
2526
];

docs/templates/api/directive.template.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<@ block additional @>
55

66
<@ block usage @>
7+
<pre><$ doc | json $></pre>
78
<h2 id="usage">Usage</h2>
89
<@ if doc.usage @>
910
<$ doc.usage $>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<$ doc.contents $>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<$ doc.contents $>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<$ doc.contents $>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<$ doc.contents $>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<$ doc.contents $>

0 commit comments

Comments
 (0)