fix hashpath prefix for docs/sitemap/etc

This commit is contained in:
Igor Minar 2011-06-06 10:15:17 -07:00
parent f8417b48be
commit c6dbdde6dc
5 changed files with 18 additions and 16 deletions

View file

@ -12,10 +12,10 @@ describe('sitemap', function(){
});
it('should render ngdoc url', function(){
var map = new SiteMap([new Doc({name: 'a.b.c<>\'"&'})]);
var map = new SiteMap([new Doc({section: 'foo', name: 'a.b.c<>\'"&'})]);
expect(map.render()).toContain([
' <url>',
'<loc>http://docs.angularjs.org/#!a.b.c&lt;&gt;&apos;&quot;&amp;</loc>',
'<loc>http://docs.angularjs.org/#!/foo/a.b.c&lt;&gt;&apos;&quot;&amp;</loc>',
'<changefreq>weekly</changefreq>',
'</url>'].join(''));

View file

@ -12,8 +12,10 @@ function SiteMap(docs){
map.push('<?xml version="1.0" encoding="UTF-8"?>');
map.push('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">');
docs.forEach(function(doc){
map.push(' <url><loc>http://docs.angularjs.org/#!' +
encode(doc.name) + '</loc><changefreq>weekly</changefreq></url>');
map.push(' <url><loc>http://docs.angularjs.org/#!/' +
encode(doc.section) + '/' +
encode(doc.name) +
'</loc><changefreq>weekly</changefreq></url>');
});
map.push('</urlset>');
map.push('');

View file

@ -534,9 +534,9 @@ Doc.prototype = {
function scenarios(docs){
var specs = [];
docs.forEach(function(doc){
specs.push('describe("' + doc.id + '", function(){');
specs.push('describe("' + doc.section + '/' + doc.id + '", function(){');
specs.push(' beforeEach(function(){');
specs.push(' browser().navigateTo("index.html#!' + doc.id + '");');
specs.push(' browser().navigateTo("index.html#!/' + doc.section + '/' + doc.id + '");');
specs.push(' });');
specs.push('');
doc.scenarios.forEach(function(scenario){

View file

@ -6,21 +6,21 @@ function DocsController($location, $browser, $window) {
this.$location = $location;
if (!HAS_HASH.test($location.href)) {
$location.hashPath = '!api/';
$location.hashPath = '!/api';
}
this.$watch('$location.hashPath', function(hashPath) {
if (hashPath.match(/^!/)) {
var parts = hashPath.substring(1).split('/');
self.sectionId = parts[0];
self.partialId = parts[1] || 'index';
self.sectionId = parts[1];
self.partialId = parts[2] || 'index';
self.pages = angular.Array.filter(NG_PAGES, {section:self.sectionId});
self.partialTitle = (angular.Array.filter(self.pages, function(doc){return doc.id == self.partialId;})[0]||{}).name;
}
});
this.getUrl = function(page){
return '#!' + page.section + '/' + page.id;
return '#!/' + page.section + '/' + page.id;
};
this.getCurrentPartial = function(){
@ -48,7 +48,7 @@ function DocsController($location, $browser, $window) {
this.afterPartialLoaded = function() {
SyntaxHighlighter.highlight();
$window.scrollTo(0,0);
$window._gaq.push(['_trackPageview', $location.hashPath.replace('!', '/')]);
$window._gaq.push(['_trackPageview', $location.hashPath.substr(1)]);
};
this.getFeedbackUrl = function() {

View file

@ -51,11 +51,11 @@
<ul id="navbar">
<li><a href="http://angularjs.org/">&lt;angular/&gt;</a></li>
<li><a href="#!guide" ng:class="selectedSection('guide')">Developer Guide</a></li>
<li><a href="#!api" ng:class="selectedSection('api')">API Reference</a></li>
<li><a href="#!cookbook" ng:class="selectedSection('cookbook')">Examples</a></li>
<li><a href="#!misc/started" ng:class="selectedSection('intro')">Getting Started</a></li>
<li><a href="#!tutorial" ng:class="selectedSection('tutorial')">Tutorial</a></li>
<li><a href="#!/guide" ng:class="selectedSection('guide')">Developer Guide</a></li>
<li><a href="#!/api" ng:class="selectedSection('api')">API Reference</a></li>
<li><a href="#!/cookbook" ng:class="selectedSection('cookbook')">Examples</a></li>
<li><a href="#!/misc/started" ng:class="selectedSection('misc')">Getting Started</a></li>
<li><a href="#!/tutorial" ng:class="selectedSection('tutorial')">Tutorial</a></li>
</ul>
<div id="sidebar">