From f43477263f18f6f51cd16400803cc4d6cb32805d Mon Sep 17 00:00:00 2001 From: Jay Traband Date: Tue, 11 Aug 2015 00:27:09 -0700 Subject: [PATCH] First pass at build-shred-map complete --- gulpfile.js | 21 +++-- public/doc-shredder/doc-shredder.js | 90 ++++++++++--------- public/doc-shredder/extractPathsReader.js | 11 +-- public/doc-shredder/regionExtractor.js | 4 +- public/doc-shredder/shredMapProcessor.js | 51 ++++++++--- public/doc-shredder/test/gulpfile.js | 20 +++-- public/doc-shredder/test/report.md | 6 -- .../doc-shredder/test/test_jade/setupAlt.jade | 4 +- .../doc-shredder/test/test_jade/xref-doc.html | 28 ------ .../doc-shredder/test/test_jade/xref-doc.js | 1 - .../doc-shredder/test/xref-frag-to-jade.html | 38 ++++++++ .../doc-shredder/test/xref-jade-to-frag.html | 20 +++++ public/doc-shredder/test/xref-jade.json | 46 ++++++++++ public/doc-shredder/xref-doc.html.template | 16 ---- ...doc.js.template => xref-doc.json.template} | 0 public/doc-shredder/xref-frag.html.template | 17 ++++ public/doc-shredder/xref-jade.html.template | 21 +++++ .../_fragments/gettingstarted/js/main.js.md | 17 ++++ public/docs/xref-frag-to-jade.html | 46 ++++++++++ public/docs/xref-jade-to-frag.html | 13 +++ public/docs/xref-jade.json | 27 ++++++ .../gettingstarted/js/index.html | 11 +++ .../no-multiregion/gettingstarted/js/main.js | 17 ++++ .../gettingstarted/protractor-spec.js | 20 +++++ .../gettingstarted/ts/index.html | 15 ++++ .../no-multiregion/gettingstarted/ts/main.js | 33 +++++++ .../gettingstarted/ts/main.js.map | 1 + .../no-multiregion/gettingstarted/ts/main.ts | 16 ++++ 28 files changed, 481 insertions(+), 129 deletions(-) delete mode 100644 public/doc-shredder/test/report.md delete mode 100644 public/doc-shredder/test/test_jade/xref-doc.html delete mode 100644 public/doc-shredder/test/test_jade/xref-doc.js create mode 100644 public/doc-shredder/test/xref-frag-to-jade.html create mode 100644 public/doc-shredder/test/xref-jade-to-frag.html create mode 100644 public/doc-shredder/test/xref-jade.json delete mode 100644 public/doc-shredder/xref-doc.html.template rename public/doc-shredder/{xref-doc.js.template => xref-doc.json.template} (100%) create mode 100644 public/doc-shredder/xref-frag.html.template create mode 100644 public/doc-shredder/xref-jade.html.template create mode 100644 public/docs/_fragments/gettingstarted/js/main.js.md create mode 100644 public/docs/xref-frag-to-jade.html create mode 100644 public/docs/xref-jade-to-frag.html create mode 100644 public/docs/xref-jade.json create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/index.html create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/main.js create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/protractor-spec.js create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/index.html create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js.map create mode 100644 tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.ts diff --git a/gulpfile.js b/gulpfile.js index 01435336a0..1b1c83745b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,13 +3,14 @@ var watch = require('gulp-watch'); var gutil = require('gulp-util'); var path = require('path'); var del = require('del'); +var _ = require('lodash'); var docShredder = require('./public/doc-shredder/doc-shredder'); var _shredOptions = { basePath: path.resolve('./public/docs'), - sourceDir: "_examples", - destDir: "_fragments" + examplesDir: "_examples", + fragmentsDir: "_fragments" }; /* @@ -42,19 +43,29 @@ gulp.task('serve-and-watch', function (cb) { }); gulp.task('shred-full', ['shred-clean'], function() { - docShredder.shred( _shredOptions); + return docShredder.shred( _shredOptions); }); gulp.task('shred-clean', function(cb) { - var cleanPath = path.join(_shredOptions.basePath, _shredOptions.destDir, '**/*.*') + var cleanPath = path.join(_shredOptions.basePath, _shredOptions.fragmentsDir, '**/*.*') del([ cleanPath, '!**/*.ovr.*'], function (err, paths) { // console.log('Deleted files/folders:\n', paths.join('\n')); cb(); }); }); +gulp.task('build-shred-maps', ['shred-full'], function() { + var options = _.extend(_shredOptions, { + jadeDir: '.', + outputDir: '.' + }); + return docShredder.buildShredMap(options).then(function(x) { + // var json = x[2]; + }); +}) + function shredWatch(shredOptions, postShredAction) { - var pattern = path.join(shredOptions.basePath, shredOptions.sourceDir, "**/*.*"); + var pattern = path.join(shredOptions.basePath, shredOptions.examplesDir, "**/*.*"); watch([pattern], function (event, done) { console.log('Event type: ' + event.event); // added, changed, or deleted console.log('Event path: ' + event.path); // The path of the modified file diff --git a/public/doc-shredder/doc-shredder.js b/public/doc-shredder/doc-shredder.js index 70b4d980a5..3036cd4c60 100644 --- a/public/doc-shredder/doc-shredder.js +++ b/public/doc-shredder/doc-shredder.js @@ -7,28 +7,7 @@ var delPromise = Q.denodeify(del); var Dgeni = require('dgeni'); var _ = require('lodash'); -var resolveShredOptions = function(shredOptions) { - return _.defaults({}, shredOptions, { - basePath: path.resolve('.'), - // read files from any subdir under here - sourceDir: "docs/_examples", - // shredded files get copied here with same subdir structure. - destDir: "docs/_fragments", - // whether to include subdirectories when shredding. - includeSubdirs: true - }); -} -var resolveMapOptions = function(mapOptions) { - return _.defaults({}, mapOptions, { - basePath: path.resolve('.'), - // read files from any subdir under here - sourceDir: "docs", - destDir: "docs", - // whether to include subdirectories when shredding. - includeSubdirs: true - }); -} var shred = function(shredOptions) { try { @@ -42,26 +21,26 @@ var shred = function(shredOptions) { } var shredSingleDir = function(shredOptions, filePath) { - shredOptions = resolveOptions(shredOptions); - var root = path.resolve(shredOptions.basePath, shredOptions.sourceDir); + shredOptions = resolveShredOptions(shredOptions); + var root = path.resolve(shredOptions.basePath, shredOptions.examplesDir); var fileDir = path.dirname(filePath); var relativePath = path.relative(root, fileDir); - var sourceDir = path.join(shredOptions.sourceDir, relativePath); - var destDir = path.join(shredOptions.destDir, relativePath); + var examplesDir = path.join(shredOptions.examplesDir, relativePath); + var fragmentsDir = path.join(shredOptions.fragmentsDir, relativePath); var options = { basePath: shredOptions.basePath, includeSubdirs: false, - sourceDir: sourceDir, - destDir: destDir + examplesDir: examplesDir, + fragmentsDir: fragmentsDir } - var cleanPath = path.join(shredOptions.basePath, destDir, '*.*') + var cleanPath = path.join(shredOptions.basePath, fragmentsDir, '*.*') return delPromise([ cleanPath, '!**/*.ovr.*']).then(function(paths) { // console.log('Deleted files/folders:\n', paths.join('\n')); return shred(options); }); } -var getShredMap = function(shredMapOptions) { +var buildShredMap = function(shredMapOptions) { try { var pkg = createShredMapPackage(shredMapOptions); var dgeni = new Dgeni([ pkg]); @@ -73,11 +52,11 @@ var getShredMap = function(shredMapOptions) { } + module.exports = { shred: shred, shredSingleDir: shredSingleDir, - resolveShredOptions: resolveShredOptions, - getShredMap: getShredMap + buildShredMap: buildShredMap }; function createShredPackage(shredOptions) { @@ -103,9 +82,9 @@ function createShredPackage(shredOptions) { var extns = ['*.js', '*.html', '*.ts', '*.css' ]; var includeFiles = extns.map(function(extn) { if (options.includeSubdirs) { - return path.join(options.sourceDir, '**', extn); + return path.join(options.examplesDir, '**', extn); } else { - return path.join(options.sourceDir, extn); + return path.join(options.examplesDir, extn); } }); readFilesProcessor.sourceFiles = [ { @@ -113,18 +92,18 @@ function createShredPackage(shredOptions) { include: includeFiles, // When calculating the relative path to these files use this as the base path. // So `src/foo/bar.js` will have relative path of `foo/bar.js` - basePath: options.sourceDir + basePath: options.examplesDir } ]; }) .config(function(writeFilesProcessor) { // Specify where the writeFilesProcessor will write our generated doc files - writeFilesProcessor.outputFolder = options.destDir; + writeFilesProcessor.outputFolder = options.fragmentsDir; }); return pkg; } var createShredMapPackage = function(mapOptions) { - var pkg = new Dgeni.Package('docshred-mapper', [ + var pkg = new Dgeni.Package('doc-shred-mapper', [ require('dgeni-packages/base'), require('dgeni-packages/nunjucks') ]); @@ -133,7 +112,9 @@ var createShredMapPackage = function(mapOptions) { initializePackage(pkg) .factory(require('./extractPathsReader')) .processor(require('./shredMapProcessor')) - + .config(function(shredMapProcessor) { + shredMapProcessor.options = options; + }) .config(function(readFilesProcessor, extractPathsReader ) { readFilesProcessor.fileReaders = [ extractPathsReader]; }) @@ -146,9 +127,9 @@ var createShredMapPackage = function(mapOptions) { var extns = ['*.jade' ]; var includeFiles = extns.map(function(extn) { if (options.includeSubdirs) { - return path.join(options.sourceDir, '**', extn); + return path.join(options.jadeDir, '**', extn); } else { - return path.join(options.sourceDir, extn); + return path.join(options.jadeDir, extn); } }); readFilesProcessor.sourceFiles = [ { @@ -156,15 +137,15 @@ var createShredMapPackage = function(mapOptions) { include: includeFiles, // When calculating the relative path to these files use this as the base path. // So `src/foo/bar.js` will have relative path of `foo/bar.js` - basePath: options.sourceDir + basePath: options.jadeDir } ]; }) .config(function(writeFilesProcessor) { // Specify where the writeFilesProcessor will write our generated doc files - writeFilesProcessor.outputFolder = options.destDir; + writeFilesProcessor.outputFolder = options.outputDir; }) .config(function(templateFinder) { - // Add a folder to search for our own templates to use when rendering docs + // look for templates in this folder templateFinder.templateFolders = [ path.resolve(__dirname) ]; // Specify how to match docs to templates. @@ -174,6 +155,7 @@ var createShredMapPackage = function(mapOptions) { .config(function(computePathsProcessor, computeIdsProcessor) { computePathsProcessor.$enabled = false; computeIdsProcessor.$enabled = false; + // Unused for now. //computePathsProcessor.pathTemplates.push({ // docTypes: ['foo'], // pathTemplate: '', @@ -192,6 +174,30 @@ var createShredMapPackage = function(mapOptions) { return pkg; } +function resolveShredOptions(shredOptions) { + return _.defaults({}, shredOptions, { + basePath: path.resolve('.'), + // read files from any subdir under here + examplesDir: "docs/_examples", + // shredded files get copied here with same subdir structure. + fragmentsDir: "docs/_fragments", + // whether to include subdirectories when shredding. + includeSubdirs: true + }); +} + +function resolveMapOptions(mapOptions) { + return _.defaults({}, mapOptions, { + basePath: path.resolve('.'), + // read files from any subdir under here + jadeDir: "docs", + fragmentsDir: "docs/_fragments", + examplesDir: "docs/_examples", + // whether to include subdirectories when shredding. + includeSubdirs: true + }); +} + function initializePackage(pkg) { return pkg .processor(require('dgeni-packages/base/processors/read-files')) diff --git a/public/doc-shredder/extractPathsReader.js b/public/doc-shredder/extractPathsReader.js index 56515fc9f8..410f2474de 100644 --- a/public/doc-shredder/extractPathsReader.js +++ b/public/doc-shredder/extractPathsReader.js @@ -1,29 +1,30 @@ /** - * @dgService htmlFileShredder + * @dgService extractPathsReader * @description */ var path = require('canonical-path'); module.exports = function extractPathsReader(log) { + // regex for makeTabs line var rx = /\s*\+makeTabs\(\s*["'](.*?)["']\s*,\s*["'](.*?)["'].*?\)/g return { name: 'extractPathsReader', getDocs: function (fileInfo) { var content = fileInfo.content; - var refPaths = []; + var fragPaths = []; var r; while ((r = rx.exec(content)) !== null) { var basePath = r[1]; var fileNames = r[2].split(','); fileNames.forEach(function(fn) { - refPaths.push(path.join(basePath, fn)); + fragPaths.push(path.join(basePath, fn.trim())); }) } - if (refPaths.length) { + if (fragPaths.length) { return [{ - refPaths: refPaths + fragPaths: fragPaths }]; } else { return []; diff --git a/public/doc-shredder/regionExtractor.js b/public/doc-shredder/regionExtractor.js index 8941667a96..e52535887d 100644 --- a/public/doc-shredder/regionExtractor.js +++ b/public/doc-shredder/regionExtractor.js @@ -29,6 +29,7 @@ module.exports = function regionExtractor() { } }); + var rx = new RegExp(nullLine + '\n', 'g'); docs.forEach(function(doc) { var content; if (doc.endIx) { @@ -37,8 +38,7 @@ module.exports = function regionExtractor() { content = lines.slice(doc.startIx + 1).join('\n'); } // eliminate all #docregion lines - var rx = new RegExp(nullLine + '\n', 'g'); - var content = content.replace(rx, ''); + content = content.replace(rx, ''); if (content.substr(-3) === nullLine) { content = content.substr(0, content.length-3); } diff --git a/public/doc-shredder/shredMapProcessor.js b/public/doc-shredder/shredMapProcessor.js index 17ea5aeddf..8446df721c 100644 --- a/public/doc-shredder/shredMapProcessor.js +++ b/public/doc-shredder/shredMapProcessor.js @@ -3,28 +3,53 @@ * @description * */ +var path = require('canonical-path'); +var fs = require('fs'); + module.exports = function shredMapProcessor(log) { return { $runAfter: ['readFilesProcessor'], $runBefore: ['rendering-docs'], + $process: function(docs) { - var docMaps = [] + var options = this.options; + var jadeToFragMap = {}; + var fragToJadeMap = {}; docs.forEach(function(doc) { - var docMap = { - jadePath: doc.fileInfo.filePath, - jadeRelativePath: doc.fileInfo.projectRelativePath, - refPaths: doc.refPaths - } - docMaps.push(docMap); + var jadePath = path.join(options.jadeDir, doc.fileInfo.relativePath); + var fragInfos = doc.fragPaths.map(function(fragPath) { + fragPath = path.join(options.fragmentsDir, fragPath) + '.md'; + var fullPath = path.join(options.basePath, fragPath); + var fragInfo = { fragPath: fragPath, exists: fs.existsSync(fullPath) }; + if (fragInfo.exists) { + var jadePaths = fragToJadeMap[fragInfo]; + if (!jadePaths) { + jadePaths = []; + fragToJadeMap[fragPath] = jadePaths; + } + jadePaths.push(jadePath); + } + return fragInfo; + }); + jadeToFragMap[jadePath] = fragInfos; }); var newDocs = [{ - docType: 'xref-doc.html', - docMaps: docMaps, - outputPath: 'xref-doc.html' + docType: 'xref-jade.html', + basePath: this.options.basePath, + jadeToFragMap: jadeToFragMap, + outputPath: 'xref-jade-to-frag.html' }, { - docType: 'xref-doc.js', - json: JSON.stringify(docMaps), - outputPath: 'xref-doc.js' + docType: 'xref-frag.html', + basePath: this.options.basePath, + fragToJadeMap: fragToJadeMap, + outputPath: 'xref-frag-to-jade.html' + }, { + docType: 'xref-doc.json', + json: JSON.stringify({ + basePath: this.options.basePath, + jadeToFragMap: jadeToFragMap, + }, null, 2), + outputPath: 'xref-jade.json' }] return newDocs; } diff --git a/public/doc-shredder/test/gulpfile.js b/public/doc-shredder/test/gulpfile.js index c61748cdcc..1705237c1e 100644 --- a/public/doc-shredder/test/gulpfile.js +++ b/public/doc-shredder/test/gulpfile.js @@ -6,17 +6,17 @@ var watch = require('gulp-watch'); var docShredder = require('../doc-shredder'); -var shredOptions = docShredder.resolveShredOptions({ - sourceDir: "test_source", - destDir: "test_fragments" -}); +var shredOptions = { + examplesDir: "test_source", + fragmentsDir: "test_fragments" +}; gulp.task('shred', function() { return docShredder.shred(shredOptions); }); gulp.task('clean', function (cb) { - var cleanPath = path.join(shredOptions.destDir, '**/*.*') + var cleanPath = path.join(shredOptions.fragmentsDir, '**/*.*') del([ cleanPath, '!**/*.ovr.*'], function (err, paths) { // console.log('Deleted files/folders:\n', paths.join('\n')); cb(); @@ -24,7 +24,7 @@ gulp.task('clean', function (cb) { }); gulp.task('watch', function (cb) { - var pattern = path.join(shredOptions.sourceDir, "**/*.*"); + var pattern = path.join(shredOptions.examplesDir, "**/*.*"); watch([ pattern], function(event, done) { console.log('Event type: ' + event.event); // added, changed, or deleted console.log('Event path: ' + event.path); // The path of the modified file @@ -34,10 +34,12 @@ gulp.task('watch', function (cb) { gulp.task('map', function() { var options = { - sourceDir: 'test_jade', - destDir: 'test_jade' + jadeDir: 'test_jade', + examplesDir: 'test_source', + fragmentsDir: 'test_fragments', + outputDir: '.' } - return docShredder.getShredMap(options).then(function(x) { + return docShredder.buildShredMap(options).then(function(x) { var docMaps = x.docMaps; }) diff --git a/public/doc-shredder/test/report.md b/public/doc-shredder/test/report.md deleted file mode 100644 index f2a3725be4..0000000000 --- a/public/doc-shredder/test/report.md +++ /dev/null @@ -1,6 +0,0 @@ -# Jade file -> Example file cross references - - Jade file: - C:/xxx/yyy/zzz - References: - - a/b/c - - b/d/e \ No newline at end of file diff --git a/public/doc-shredder/test/test_jade/setupAlt.jade b/public/doc-shredder/test/test_jade/setupAlt.jade index f23bdde63d..440784bb1b 100644 --- a/public/doc-shredder/test/test_jade/setupAlt.jade +++ b/public/doc-shredder/test/test_jade/setupAlt.jade @@ -36,7 +36,7 @@ include ../../../../_includes/_util-fns The TypeScript setup includes System.js, a third-party open-source library that adds ES6 module loading functionality to browsers. This step isn't needed for the ES5 version. - +makeTabs('gettingstarted', 'ts/index.html,js/index.html', 'TypeScript, JavaScript') + +makeTabs('gettingstarted', 'ts/index2.html,js/index.html', 'TypeScript, JavaScript') .callout.is-helpful header Don't use code.angularjs.org in a live app @@ -52,7 +52,7 @@ include ../../../../_includes/_util-fns `` element in `index.html`, and call Angular's `bootstrap()` to kick it all off like this: - +makeTabs("gettingstarted", "ts/main.ts, js/main.js", "TypeScript, JavaScript") + +makeTabs("gettingstarted", "ts/main.ts, js/main2.js", "TypeScript, JavaScript") .callout.is-helpful header Annotations vs Decorators diff --git a/public/doc-shredder/test/test_jade/xref-doc.html b/public/doc-shredder/test/test_jade/xref-doc.html deleted file mode 100644 index 237e1f84d9..0000000000 --- a/public/doc-shredder/test/test_jade/xref-doc.html +++ /dev/null @@ -1,28 +0,0 @@ -

Jade document --> example Cross Reference Report - -
    -
  1. - Jade file: test_jade/guides/setupAlt2.jade -

    Reference paths

    -
      -
    • Path: gettingstarted/ts/index.html
    • -
    • Path: gettingstarted/js/index.html
    • -
    • Path: gettingstarted/ts/main.ts
    • -
    • Path: gettingstarted/ js/main.js
    • -
    • Path: gettingstarted/ts/main-import.ts
    • -
    -
    -
  2. -
  3. - Jade file: test_jade/setupAlt.jade -

    Reference paths

    -
      -
    • Path: gettingstarted/ts/index.html
    • -
    • Path: gettingstarted/js/index.html
    • -
    • Path: gettingstarted/ts/main.ts
    • -
    • Path: gettingstarted/ js/main.js
    • -
    • Path: gettingstarted/ts/main-import.ts
    • -
    -
    -
  4. -
\ No newline at end of file diff --git a/public/doc-shredder/test/test_jade/xref-doc.js b/public/doc-shredder/test/test_jade/xref-doc.js deleted file mode 100644 index 82329fcfa0..0000000000 --- a/public/doc-shredder/test/test_jade/xref-doc.js +++ /dev/null @@ -1 +0,0 @@ -[{"jadePath":"c:/GitHub/angular.io.ideablade/public/doc-shredder/test/test_jade/guides/setupAlt2.jade","jadeRelativePath":"test_jade/guides/setupAlt2.jade","refPaths":["gettingstarted/ts/index.html","gettingstarted/js/index.html","gettingstarted/ts/main.ts","gettingstarted/ js/main.js","gettingstarted/ts/main-import.ts"]},{"jadePath":"c:/GitHub/angular.io.ideablade/public/doc-shredder/test/test_jade/setupAlt.jade","jadeRelativePath":"test_jade/setupAlt.jade","refPaths":["gettingstarted/ts/index.html","gettingstarted/js/index.html","gettingstarted/ts/main.ts","gettingstarted/ js/main.js","gettingstarted/ts/main-import.ts"]}] \ No newline at end of file diff --git a/public/doc-shredder/test/xref-frag-to-jade.html b/public/doc-shredder/test/xref-frag-to-jade.html new file mode 100644 index 0000000000..cc7fbd1d96 --- /dev/null +++ b/public/doc-shredder/test/xref-frag-to-jade.html @@ -0,0 +1,38 @@ +

Frament path to jade path cross reference report + +

Base path: c:/GitHub/angular.io.ideablade/public/doc-shredder/test

+
    + +
  1. + Fragment file: test_fragments/gettingstarted/ts/index.html.md +

    Jade files

    +
      +
    • test_jade/guides/setupAlt2.jade
    • +
    +
    +
  2. +
  3. + Fragment file: test_fragments/gettingstarted/js/index.html.md +

    Jade files

    +
      +
    • test_jade/setupAlt.jade
    • +
    +
    +
  4. +
  5. + Fragment file: test_fragments/gettingstarted/ts/main.ts.md +

    Jade files

    +
      +
    • test_jade/setupAlt.jade
    • +
    +
    +
  6. +
  7. + Fragment file: test_fragments/gettingstarted/ts/main-import.ts.md +

    Jade files

    +
      +
    • test_jade/setupAlt.jade
    • +
    +
    +
  8. +
\ No newline at end of file diff --git a/public/doc-shredder/test/xref-jade-to-frag.html b/public/doc-shredder/test/xref-jade-to-frag.html new file mode 100644 index 0000000000..7da870ff03 --- /dev/null +++ b/public/doc-shredder/test/xref-jade-to-frag.html @@ -0,0 +1,20 @@ +

Jade path to fragment path cross reference report + +

Base path: c:/GitHub/angular.io.ideablade/public/doc-shredder/test

+
    + +
  1. + Jade file: test_jade/guides/setupAlt2.jade +

    Fragment files

    +
    • test_fragments/gettingstarted/ts/index.html.md
    • test_fragments/gettingstarted/js/index.html.md
    • test_fragments/gettingstarted/ts/main.ts.md
    • *** NOT FOUND*** : test_fragments/gettingstarted/ js/main.js.md
    • test_fragments/gettingstarted/ts/main-import.ts.md
    • +
    +
    +
  2. +
  3. + Jade file: test_jade/setupAlt.jade +

    Fragment files

    +
    • *** NOT FOUND*** : test_fragments/gettingstarted/ts/index2.html.md
    • test_fragments/gettingstarted/js/index.html.md
    • test_fragments/gettingstarted/ts/main.ts.md
    • *** NOT FOUND*** : test_fragments/gettingstarted/ js/main2.js.md
    • test_fragments/gettingstarted/ts/main-import.ts.md
    • +
    +
    +
  4. +
\ No newline at end of file diff --git a/public/doc-shredder/test/xref-jade.json b/public/doc-shredder/test/xref-jade.json new file mode 100644 index 0000000000..9a5629090f --- /dev/null +++ b/public/doc-shredder/test/xref-jade.json @@ -0,0 +1,46 @@ +{ + "test_jade/guides/setupAlt2.jade": [ + { + "fragPath": "test_fragments/gettingstarted/ts/index.html.md", + "exists": true + }, + { + "fragPath": "test_fragments/gettingstarted/js/index.html.md", + "exists": true + }, + { + "fragPath": "test_fragments/gettingstarted/ts/main.ts.md", + "exists": true + }, + { + "fragPath": "test_fragments/gettingstarted/ js/main.js.md", + "exists": false + }, + { + "fragPath": "test_fragments/gettingstarted/ts/main-import.ts.md", + "exists": true + } + ], + "test_jade/setupAlt.jade": [ + { + "fragPath": "test_fragments/gettingstarted/ts/index2.html.md", + "exists": false + }, + { + "fragPath": "test_fragments/gettingstarted/js/index.html.md", + "exists": true + }, + { + "fragPath": "test_fragments/gettingstarted/ts/main.ts.md", + "exists": true + }, + { + "fragPath": "test_fragments/gettingstarted/ js/main2.js.md", + "exists": false + }, + { + "fragPath": "test_fragments/gettingstarted/ts/main-import.ts.md", + "exists": true + } + ] +} \ No newline at end of file diff --git a/public/doc-shredder/xref-doc.html.template b/public/doc-shredder/xref-doc.html.template deleted file mode 100644 index 98a3dcea8c..0000000000 --- a/public/doc-shredder/xref-doc.html.template +++ /dev/null @@ -1,16 +0,0 @@ -

Jade document --> example Cross Reference Report - -
    - {%- for docMap in doc.docMaps %} -
  1. - Jade file: {{ docMap.jadeRelativePath }} -

    Reference paths

    -
      - {%- for refPath in docMap.refPaths %} -
    • Path: {{ refPath }}
    • - {%- endfor %} -
    -
    -
  2. - {%- endfor %} -
\ No newline at end of file diff --git a/public/doc-shredder/xref-doc.js.template b/public/doc-shredder/xref-doc.json.template similarity index 100% rename from public/doc-shredder/xref-doc.js.template rename to public/doc-shredder/xref-doc.json.template diff --git a/public/doc-shredder/xref-frag.html.template b/public/doc-shredder/xref-frag.html.template new file mode 100644 index 0000000000..ba554c15e7 --- /dev/null +++ b/public/doc-shredder/xref-frag.html.template @@ -0,0 +1,17 @@ +

Frament path to jade path cross reference report + +

Base path: {{ doc.basePath }}

+
    + {% for fragPath, jadePaths in doc.fragToJadeMap %} +
  1. + Fragment file: {{ fragPath }} +

    Jade files

    +
      + {%- for jadePath in jadePaths %} +
    • {{ jadePath }}
    • + {%- endfor %} +
    +
    +
  2. + {%- endfor %} +
\ No newline at end of file diff --git a/public/doc-shredder/xref-jade.html.template b/public/doc-shredder/xref-jade.html.template new file mode 100644 index 0000000000..a6a1c53e3f --- /dev/null +++ b/public/doc-shredder/xref-jade.html.template @@ -0,0 +1,21 @@ +

Jade path to fragment path cross reference report + +

Base path: {{ doc.basePath }}

+
    + {% for jadePath, fragInfos in doc.jadeToFragMap %} +
  1. + Jade file: {{ jadePath }} +

    Fragment files

    +
      + {%- for fragInfo in fragInfos %} + {%- if fragInfo.exists -%} +
    • {{ fragInfo.fragPath }}
    • + {%- else -%} +
    • *** NOT FOUND*** : {{ fragInfo.fragPath }}
    • + {%- endif -%} + {%- endfor %} +
    +
    +
  2. + {%- endfor %} +
\ No newline at end of file diff --git a/public/docs/_fragments/gettingstarted/js/main.js.md b/public/docs/_fragments/gettingstarted/js/main.js.md new file mode 100644 index 0000000000..b125812b56 --- /dev/null +++ b/public/docs/_fragments/gettingstarted/js/main.js.md @@ -0,0 +1,17 @@ +``` +function AppComponent() {} + +AppComponent.annotations = [ + new angular.ComponentAnnotation({ + selector: 'my-app' + }), + new angular.ViewAnnotation({ + template: '

My first Angular 2 App

' + }) +]; + +document.addEventListener('DOMContentLoaded', function() { + angular.bootstrap(AppComponent); +}); + +``` \ No newline at end of file diff --git a/public/docs/xref-frag-to-jade.html b/public/docs/xref-frag-to-jade.html new file mode 100644 index 0000000000..cd7000bff7 --- /dev/null +++ b/public/docs/xref-frag-to-jade.html @@ -0,0 +1,46 @@ +

Frament path to jade path cross reference report + +

Base path: c:\GitHub\angular.io.ideablade\public\docs

+
    + +
  1. + Fragment file: _fragments/gettingstarted/ts/index.html.md +

    Jade files

    +
      +
    • js/latest/guide/setupAlt.jade
    • +
    +
    +
  2. +
  3. + Fragment file: _fragments/gettingstarted/js/index.html.md +

    Jade files

    +
      +
    • js/latest/guide/setupAlt.jade
    • +
    +
    +
  4. +
  5. + Fragment file: _fragments/gettingstarted/ts/main.ts.md +

    Jade files

    +
      +
    • js/latest/guide/setupAlt.jade
    • +
    +
    +
  6. +
  7. + Fragment file: _fragments/gettingstarted/js/main.js.md +

    Jade files

    +
      +
    • js/latest/guide/setupAlt.jade
    • +
    +
    +
  8. +
  9. + Fragment file: _fragments/gettingstarted/ts/main-import.ts.md +

    Jade files

    +
      +
    • js/latest/guide/setupAlt.jade
    • +
    +
    +
  10. +
\ No newline at end of file diff --git a/public/docs/xref-jade-to-frag.html b/public/docs/xref-jade-to-frag.html new file mode 100644 index 0000000000..1d7bf4dce0 --- /dev/null +++ b/public/docs/xref-jade-to-frag.html @@ -0,0 +1,13 @@ +

Jade path to fragment path cross reference report + +

Base path: c:\GitHub\angular.io.ideablade\public\docs

+
    + +
  1. + Jade file: js/latest/guide/setupAlt.jade +

    Fragment files

    +
    • _fragments/gettingstarted/ts/index.html.md
    • _fragments/gettingstarted/js/index.html.md
    • _fragments/gettingstarted/ts/main.ts.md
    • _fragments/gettingstarted/js/main.js.md
    • _fragments/gettingstarted/ts/main-import.ts.md
    • +
    +
    +
  2. +
\ No newline at end of file diff --git a/public/docs/xref-jade.json b/public/docs/xref-jade.json new file mode 100644 index 0000000000..d5cd12908b --- /dev/null +++ b/public/docs/xref-jade.json @@ -0,0 +1,27 @@ +{ + "basePath": "c:\\GitHub\\angular.io.ideablade\\public\\docs", + "jadeToFragMap": { + "js/latest/guide/setupAlt.jade": [ + { + "fragPath": "_fragments/gettingstarted/ts/index.html.md", + "exists": true + }, + { + "fragPath": "_fragments/gettingstarted/js/index.html.md", + "exists": true + }, + { + "fragPath": "_fragments/gettingstarted/ts/main.ts.md", + "exists": true + }, + { + "fragPath": "_fragments/gettingstarted/js/main.js.md", + "exists": true + }, + { + "fragPath": "_fragments/gettingstarted/ts/main-import.ts.md", + "exists": true + } + ] + } +} \ No newline at end of file diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/index.html b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/index.html new file mode 100644 index 0000000000..432b17eb52 --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/index.html @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/main.js b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/main.js new file mode 100644 index 0000000000..b752be57b4 --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/js/main.js @@ -0,0 +1,17 @@ +// #docregion +function AppComponent() {} + +AppComponent.annotations = [ + new angular.ComponentAnnotation({ + selector: 'my-app' + }), + new angular.ViewAnnotation({ + template: '

My first Angular 2 App

' + }) +]; + +// #docregion bootstrap +document.addEventListener('DOMContentLoaded', function() { + angular.bootstrap(AppComponent); +}); +// #enddocregion \ No newline at end of file diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/protractor-spec.js b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/protractor-spec.js new file mode 100644 index 0000000000..2a7633774e --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/protractor-spec.js @@ -0,0 +1,20 @@ +// protractor-spec.js +describe('Protractor quick start test', function() { + + // #docregion javascript + it('should display Alice with JavaScript', function() { + browser.get('gettingstarted/js/index.html'); + }); + // #enddocregion + + // #docregion typescript + it('should display Alice with TypeScrip', function() { + browser.get('gettingstarted/ts/index.html'); + }); + // #enddocregion + + afterEach(function() { + expect(element(by.id('output')).getText()).toEqual('My first Angular 2 App'); + }); +}); + diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/index.html b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/index.html new file mode 100644 index 0000000000..b44d34d016 --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/index.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js new file mode 100644 index 0000000000..77c82e8254 --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js @@ -0,0 +1,33 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); + } +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +// #docregion +// #docregion import +var angular2_1 = require('angular2/angular2'); +// #enddocregion +var AppComponent = (function () { + function AppComponent() { + } + AppComponent = __decorate([ + angular2_1.Component({ + selector: 'my-app' + }), + angular2_1.View({ + template: '

My first Angular 2 App

' + }), + __metadata('design:paramtypes', []) + ], AppComponent); + return AppComponent; +})(); +// #docregion bootstrap +angular2_1.bootstrap(AppComponent); +// #enddocregion +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js.map b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js.map new file mode 100644 index 0000000000..a03477dbb1 --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":["AppComponent","AppComponent.constructor"],"mappings":";;;;;;;;;;;AAEA,AAFA,UAAU;AACV,iBAAiB;AACjB,yBAAyC,mBAAmB,CAAC,CAAA;AAG7D,AAFA,aAAa;;IAEbA;IAOAC,CAACA;IAPDD;QAACA,oBAASA,CAACA;YACTA,QAAQA,EAAEA,QAAQA;SACnBA,CAACA;QACDA,eAAIA,CAACA;YACJA,QAAQA,EAAEA,6CAA6CA;SACxDA,CAACA;;qBAEDA;IAADA,mBAACA;AAADA,CAACA,AAPD,IAOC;AAGD,AADA,oBAAoB;AACpB,oBAAS,CAAC,YAAY,CAAC,CAAC;AACxB,aAAa"} \ No newline at end of file diff --git a/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.ts b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.ts new file mode 100644 index 0000000000..7cf1b4659a --- /dev/null +++ b/tools/doc-shredder/_test/test_source/no-multiregion/gettingstarted/ts/main.ts @@ -0,0 +1,16 @@ +// #docregion +// #docregion import +import {Component, View, bootstrap} from 'angular2/angular2'; +// #enddocregion + +@Component({ + selector: 'my-app' +}) +@View({ + template: '

My first Angular 2 App

' +}) +class AppComponent { +} +// #docregion bootstrap +bootstrap(AppComponent); +// #enddocregion