Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
feat(doc): generate both normal and debug version of index.html
Browse files Browse the repository at this point in the history
- index.html has manifest file and angular.min.js
- index-jq.html has manifest file, angular.min.js and jquery.min.js
- index-debug.html has angular.js
- index-jq-debug.html has angular.js and jquery.min.js
  • Loading branch information
Di Peng authored and IgorMinar committed Aug 24, 2011
1 parent 08a33e7 commit 1940128
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 12 deletions.
16 changes: 16 additions & 0 deletions docs/spec/writerSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,20 @@ describe('writer', function(){
expect(toString(['abc',{}])).toEqual('abc{}');
});
});

describe('replace method', function() {
var content,
replacements;

beforeEach(function() {
content = 'angular super jQuery manifest';
});

it('should replace placeholders', function() {
replacements = {'angular': 'ng', 'jQuery': 'jqlite','notHere': 'here'};

content = writer.replace(content, replacements);
expect(content).toBe('ng super jqlite manifest');
});
});
});
29 changes: 24 additions & 5 deletions docs/src/gen-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,30 @@ function writeTheRest(writesFuture) {

writesFuture.push(writer.copyDir('img'));
writesFuture.push(writer.copyDir('examples'));
writesFuture.push(writer.copyTpl('index.html'));
writesFuture.push(writer.copy('docs/src/templates/index.html',
'build/docs/index-jq.html',
'<!-- jquery place holder -->',
'<script src=\"jquery.min.js\"><\/script>'));

var manifest = 'manifest="appcache.manifest"',
jq = '<script src="jquery.min.js"></script>',
ngMin = '<script src="../angular.min.js" ng:autobind></script>',
ng = '<script src="../angular.js" ng:autobind></script>'

writesFuture.push(writer.copy('docs/src/templates/index.html', 'build/docs/index.html',
writer.replace, {'doc:manifest': manifest,
'<!-- angular script place holder -->': ngMin}));

writesFuture.push(writer.copy('docs/src/templates/index.html', 'build/docs/index-jq.html',
writer.replace, {'doc:manifest': manifest,
'<!-- angular script place holder -->': ngMin,
'<!-- jquery place holder -->': jq}));

writesFuture.push(writer.copy('docs/src/templates/index.html', 'build/docs/index-debug.html',
writer.replace, {'doc:manifest': '',
'<!-- angular script place holder -->': ng}));

writesFuture.push(writer.copy('docs/src/templates/index.html', 'build/docs/index-jq-debug.html',
writer.replace, {'doc:manifest': '',
'<!-- angular script place holder -->': ng,
'<!-- jquery place holder -->': jq}));

writesFuture.push(writer.copyTpl('offline.html'));
writesFuture.push(writer.copyTpl('docs-scenario.html'));
writesFuture.push(writer.copyTpl('jquery.min.js'));
Expand Down
4 changes: 2 additions & 2 deletions docs/src/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html xmlns:ng="http://angularjs.org/"
xmlns:doc="http://docs.angularjs.org/"
ng:controller="DocsController"
manifest="appcache.manifest">
doc:manifest>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title ng:bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
Expand Down Expand Up @@ -103,7 +103,7 @@ <h2>Would you like full offline support for this AngularJS Docs App?</h2>

<script src="syntaxhighlighter/syntaxhighlighter-combined.js"></script>
<!-- jquery place holder -->
<script src="../angular.min.js" ng:autobind></script>
<!-- angular script place holder -->
<script src="docs-combined.js"></script>
<script src="docs-keywords.js"></script>
</body>
Expand Down
29 changes: 24 additions & 5 deletions docs/src/writer.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,35 @@ exports.copyTpl = function(filename) {
return exports.copy('docs/src/templates/' + filename, OUTPUT_DIR + filename);
};

exports.copy = function (from, to, replacementKey, replacement) {
// Have to use rb (read binary), char 'r' is infered by library.
return qfs.read(from,'b').then(function(content) {
if(replacementKey && replacement) {
content = content.toString().replace(replacementKey, replacement);
/* Copy files from one place to another.
* @param from{string} path of the source file to be copied
* @param to{string} path of where the copied file should be stored
* @param transform{function=} transfromation function to be applied before return
*/
exports.copy = function(from, to, transform) {
var args = Array.prototype.slice.call(arguments, 3);

// We have to use binary reading, Since some characters are unicode.
return qfs.read(from, 'b').then(function(content) {
if (transform) {
args.unshift(content.toString());
content = transform.apply(null, args);
}
qfs.write(to, content);
});
}

/* Replace placeholders in content accordingly
* @param content{string} content to be modified
* @param replacements{obj} key and value pairs in which key will be replaced with value in content
*/
exports.replace = function(content, replacements) {
for(key in replacements) {
content = content.replace(key, replacements[key]);
}
return content;
}

exports.copyDir = function copyDir(dir) {
return qfs.listDirectoryTree('docs/' + dir).then(function(dirs) {
var done;
Expand Down

0 comments on commit 1940128

Please sign in to comment.