chore: 修正 SEO 链接

This commit is contained in:
Zhicheng Wang 2018-09-21 08:49:57 +08:00
parent e6f3b76ce7
commit 747b86d792
2 changed files with 96 additions and 94 deletions

View File

@ -41,12 +41,12 @@
width="150" class="ng-star-inserted"><!----></a><!---->
<aio-top-menu class="ng-star-inserted">
<ul role="navigation"><!---->
<li class="ng-star-inserted"><a class="nav-link" href="features" title="特性">特性</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="docs" title="文档">文档</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="resources" title="资源">资源</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="events" title="会议">会议</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="/features" title="特性">特性</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="/docs" title="文档">文档</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="/resources" title="资源">资源</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="/events" title="会议">会议</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="https://blog.angular.io/" title="博客">博客</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="translations/cn/home" title="关于中文版">关于中文版</a></li>
<li class="ng-star-inserted"><a class="nav-link" href="/translations/cn/home" title="关于中文版">关于中文版</a></li>
</ul>
</aio-top-menu>
<aio-search-box class="search-container"><input aria-label="search" placeholder="搜索" type="search">
@ -67,7 +67,7 @@
<aio-nav-menu><!---->
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-1 collapsed"
style="position: relative" href="guide/quickstart" title="Angular 破冰"
style="position: relative" href="/guide/quickstart" title="Angular 破冰"
target="_self"> 快速上手 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!----><!---->
<div class="ng-star-inserted"><!----><!---->
@ -82,42 +82,42 @@
<div class="heading-children level-1 expanded"><!---->
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial"
style="position: relative" href="/tutorial"
title="第一部分:《英雄指南》教程简介" target="_self"> 1. 简介 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt0"
style="position: relative" href="/tutorial/toh-pt0"
title="第二部分:创建应用的外壳" target="_self"> 2. 应用的“外壳” <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt1"
style="position: relative" href="/tutorial/toh-pt1"
title="第三部分:构建一个简单的英雄编辑器" target="_self"> 3. 英雄编辑器 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt2"
style="position: relative" href="/tutorial/toh-pt2"
title="第四部分:构建一个主从结构的页面,用于展现英雄列表" target="_self"> 4. 显示英雄列表
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt3"
style="position: relative" href="/tutorial/toh-pt3"
title="第五部分:把主从结构的页面重构成多个组件" target="_self"> 5. 主从组件 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt4"
style="position: relative" href="/tutorial/toh-pt4"
title="第六部分:创建一个可复用的服务来管理英雄数据" target="_self"> 6. 服务 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt5"
style="position: relative" href="/tutorial/toh-pt5"
title="第七部分:添加 Angular 路由器,并且学习在视图之间导航" target="_self"> 7. 路由
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="tutorial/toh-pt6"
style="position: relative" href="/tutorial/toh-pt6"
title="第八部分:通过 HTTP 来获取并保存英雄数据" target="_self"> 8. HTTP
<!----></a><!----></div><!----></aio-nav-item>
</div>
@ -149,27 +149,27 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/architecture" title="Angular 应用的基本构造块" target="_self"> 架构概览 <!----></a><!----></div>
href="/guide/architecture" title="Angular 应用的基本构造块" target="_self"> 架构概览 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/architecture-modules" title="关于模块。" target="_self"> 模块NgModule简介 <!----></a>
href="/guide/architecture-modules" title="关于模块。" target="_self"> 模块NgModule简介 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/architecture-components" title="关于组件、模板和视图。" target="_self"> 组件简介 <!----></a><!---->
href="/guide/architecture-components" title="关于组件、模板和视图。" target="_self"> 组件简介 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/architecture-services" title="关于服务与依赖注入。" target="_self"> 服务与 DI 简介 <!----></a>
href="/guide/architecture-services" title="关于服务与依赖注入。" target="_self"> 服务与 DI 简介 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/architecture-next-steps" title="学完基础知识之后……" target="_self"> 后续步骤 <!----></a><!---->
href="/guide/architecture-next-steps" title="学完基础知识之后……" target="_self"> 后续步骤 <!----></a><!---->
</div><!----></aio-nav-item>
</div>
</div>
@ -189,57 +189,57 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/displaying-data" title="属性绑定可以帮助应用把数据显示在界面上" target="_self"> 显示数据 <!----></a><!---->
href="/guide/displaying-data" title="属性绑定可以帮助应用把数据显示在界面上" target="_self"> 显示数据 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 expanded selected" style="position: relative"
href="guide/template-syntax" title="学习如何写模板,以便借助数据绑定机制显示数据并响应事件。" target="_self"> 模板语法
href="/guide/template-syntax" title="学习如何写模板,以便借助数据绑定机制显示数据并响应事件。" target="_self"> 模板语法
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/lifecycle-hooks" title="Angular 调用指令和组件的生命周期钩子函数,包括它的创建、变更和销毁时。" target="_self">
href="/guide/lifecycle-hooks" title="Angular 调用指令和组件的生命周期钩子函数,包括它的创建、变更和销毁时。" target="_self">
生命周期钩子 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/component-interaction" title="在不同的指令和组件之间共享信息" target="_self"> 组件交互 <!----></a>
href="/guide/component-interaction" title="在不同的指令和组件之间共享信息" target="_self"> 组件交互 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/component-styles" title="添加专属于某个组件的样式" target="_self"> 组件样式 <!----></a><!----></div>
href="/guide/component-styles" title="添加专属于某个组件的样式" target="_self"> 组件样式 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/elements" title="把组件转换成自定义元素。" target="_self"> Angular 自定义元素 <!----></a><!---->
href="/guide/elements" title="把组件转换成自定义元素。" target="_self"> Angular 自定义元素 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/dynamic-component-loader" title="动态加载组件" target="_self"> 动态组件 <!----></a><!---->
href="/guide/dynamic-component-loader" title="动态加载组件" target="_self"> 动态组件 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/attribute-directives" title="属性型指令把行为添加到现有元素上。" target="_self"> 属性型指令 <!----></a>
href="/guide/attribute-directives" title="属性型指令把行为添加到现有元素上。" target="_self"> 属性型指令 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/structural-directives" title="结构型指令可以操纵页面的布局" target="_self"> 结构型指令 <!----></a>
href="/guide/structural-directives" title="结构型指令可以操纵页面的布局" target="_self"> 结构型指令 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/pipes" title="管道可以在模板中转换显示的内容。" target="_self"> 管道 <!----></a><!----></div><!---->
href="/guide/pipes" title="管道可以在模板中转换显示的内容。" target="_self"> 管道 <!----></a><!----></div><!---->
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/animations" title="Angular 动画体系指南" target="_self"> 动画 <!----></a><!----></div>
href="/guide/animations" title="Angular 动画体系指南" target="_self"> 动画 <!----></a><!----></div>
<!----></aio-nav-item>
</div>
</div>
@ -259,27 +259,27 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/user-input" title="用户输入触发 DOM 事件。我们通过事件绑定来监听它们,把更新过的数据导入回我们的组件和 model。"
href="/guide/user-input" title="用户输入触发 DOM 事件。我们通过事件绑定来监听它们,把更新过的数据导入回我们的组件和 model。"
target="_self"> 用户输入 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/forms" title="表单可以创建集中、高效、引人注目的输入体验。Angular 表单可以协调一组数据绑定控件,跟踪变更,验证输入,并表达错误信息。"
href="/guide/forms" title="表单可以创建集中、高效、引人注目的输入体验。Angular 表单可以协调一组数据绑定控件,跟踪变更,验证输入,并表达错误信息。"
target="_self"> 模板驱动表单 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/form-validation" title="验证用户的表单输入" target="_self"> 表单验证 <!----></a><!----></div>
href="/guide/form-validation" title="验证用户的表单输入" target="_self"> 表单验证 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/reactive-forms" title="使用 FormBuilder 、分组和数组创建响应式表单。" target="_self"> 响应式表单
href="/guide/reactive-forms" title="使用 FormBuilder 、分组和数组创建响应式表单。" target="_self"> 响应式表单
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/dynamic-form" title="使用FormGroup渲染动态表单" target="_self"> 动态表单 <!----></a><!---->
href="/guide/dynamic-form" title="使用FormGroup渲染动态表单" target="_self"> 动态表单 <!----></a><!---->
</div><!----></aio-nav-item>
</div>
</div>
@ -299,34 +299,34 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/observables" title="" target="_self"> 可观察对象(Observable) <!----></a><!----></div>
href="/guide/observables" title="" target="_self"> 可观察对象(Observable) <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/rx-library" title="" target="_self"> RxJS 库 <!----></a><!----></div><!---->
href="/guide/rx-library" title="" target="_self"> RxJS 库 <!----></a><!----></div><!---->
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/observables-in-angular" title="" target="_self"> Angular 中的可观察对象 <!----></a><!---->
href="/guide/observables-in-angular" title="" target="_self"> Angular 中的可观察对象 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/practical-observable-usage" title="" target="_self"> 用法实战 <!----></a><!----></div>
href="/guide/practical-observable-usage" title="" target="_self"> 用法实战 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/comparing-observables" title="" target="_self"> 与其它技术的比较 <!----></a><!----></div>
href="/guide/comparing-observables" title="" target="_self"> 与其它技术的比较 <!----></a><!----></div>
<!----></aio-nav-item>
</div>
</div>
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/bootstrapping"
style="position: relative" href="/guide/bootstrapping"
title="在应用的根模块AppModule中告诉 Angular 如何构造并引导引用。" target="_self">
引导启动 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!----><!---->
@ -344,62 +344,62 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/ngmodules" title="使用 NgModule 让你的应用更高效" target="_self"> NgModule 简介 <!----></a>
href="/guide/ngmodules" title="使用 NgModule 让你的应用更高效" target="_self"> NgModule 简介 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/ngmodule-vs-jsmodule" title="JavaScript 模块和 NgModule 之间的差异" target="_self"> JS 模块 vs
href="/guide/ngmodule-vs-jsmodule" title="JavaScript 模块和 NgModule 之间的差异" target="_self"> JS 模块 vs
NgModule <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/frequent-ngmodules" title="介绍最常用的 Angular 模块" target="_self"> 常用模块 <!----></a>
href="/guide/frequent-ngmodules" title="介绍最常用的 Angular 模块" target="_self"> 常用模块 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/module-types" title="介绍特性模块的几种类型" target="_self"> 特性模块的分类 <!----></a><!----></div>
href="/guide/module-types" title="介绍特性模块的几种类型" target="_self"> 特性模块的分类 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/entry-components" title="关于 Angular 中入口组件的一切" target="_self"> 入口组件 <!----></a>
href="/guide/entry-components" title="关于 Angular 中入口组件的一切" target="_self"> 入口组件 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/feature-modules" title="创建特性模块,以组织你的代码" target="_self"> 特性模块 <!----></a><!---->
href="/guide/feature-modules" title="创建特性模块,以组织你的代码" target="_self"> 特性模块 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/providers" title="服务提供商与 Angular 模块" target="_self"> 服务提供商 <!----></a><!----></div>
href="/guide/providers" title="服务提供商与 Angular 模块" target="_self"> 服务提供商 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/singleton-services" title="创建单例应用" target="_self"> 单例应用 <!----></a><!----></div>
href="/guide/singleton-services" title="创建单例应用" target="_self"> 单例应用 <!----></a><!----></div>
<!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/lazy-loading-ngmodules" title="惰性加载模块,以提高应用的性能" target="_self"> 惰性加载的特性模块<!----></a>
href="/guide/lazy-loading-ngmodules" title="惰性加载模块,以提高应用的性能" target="_self"> 惰性加载的特性模块<!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/sharing-ngmodules" title="共享 Angular 模块让你的应用现代化。" target="_self"> 共享 Angular 模块
href="/guide/sharing-ngmodules" title="共享 Angular 模块让你的应用现代化。" target="_self"> 共享 Angular 模块
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/ngmodule-api" title="理解 NgModule 的那些细节。" target="_self"> NgModule API <!----></a>
href="/guide/ngmodule-api" title="理解 NgModule 的那些细节。" target="_self"> NgModule API <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/ngmodule-faq" title="回答关于 NgModules 的常见问题。" target="_self"> NgModule 常见问题<!----></a>
href="/guide/ngmodule-faq" title="回答关于 NgModules 的常见问题。" target="_self"> NgModule 常见问题<!----></a>
<!----></div><!----></aio-nav-item>
</div>
</div>
@ -419,44 +419,44 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/dependency-injection-pattern" title="学习 Angular 依赖注入系统背后的依赖注入模式" target="_self">
href="/guide/dependency-injection-pattern" title="学习 Angular 依赖注入系统背后的依赖注入模式" target="_self">
依赖注入模式 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/dependency-injection" title="Angular 的依赖注入系统能够为 Angular 创建的类创建并交付它们所依赖的服务。"
href="/guide/dependency-injection" title="Angular 的依赖注入系统能够为 Angular 创建的类创建并交付它们所依赖的服务。"
target="_self"> Angular 依赖注入 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/hierarchical-dependency-injection" title="Angular 的多级注入体系会建立与组件平行的注入器树。"
href="/guide/hierarchical-dependency-injection" title="Angular 的多级注入体系会建立与组件平行的注入器树。"
target="_self"> 多级注入器 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/dependency-injection-in-action" title="依赖注入的使用技巧" target="_self"> DI 实用技巧<!----></a>
href="/guide/dependency-injection-in-action" title="依赖注入的使用技巧" target="_self"> DI 实用技巧<!----></a>
<!----></div><!----></aio-nav-item>
</div>
</div>
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/http"
style="position: relative" href="/guide/http"
title="通过 HTTP 协议与远程服务器对话。" target="_self"> HttpClient
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/router"
style="position: relative" href="/guide/router"
title="揭示如何通过 Angular 路由进行基本的屏幕导航。" target="_self"> 路由与导航
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/testing"
style="position: relative" href="/guide/testing"
title="测试 Angular 应用的技巧与实践。" target="_self"> 测试 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/cheatsheet"
style="position: relative" href="/guide/cheatsheet"
title="关于 Angular 常用编码技术的快速指南。" target="_self"> 速查表 <!----></a>
<!----></div><!----></aio-nav-item>
</div>
@ -475,17 +475,17 @@
<div class="heading-children level-1 expanded"><!---->
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/i18n"
style="position: relative" href="/guide/i18n"
title="把应用模板中的文本翻译成多种语言。" target="_self"> 国际化 (i18n) <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/language-service"
style="position: relative" href="/guide/language-service"
title="使用 Angular 语言服务来为开发提速。" target="_self"> 语言服务 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/security"
style="position: relative" href="/guide/security"
title="Angular 应用开发中的安全技术。" target="_self"> 安全 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!----><!---->
@ -503,37 +503,37 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/setup" title="在你自己的机器上安装 Angular QuickStart 种子,以便更快、更高效的开发。" target="_self">
href="/guide/setup" title="在你自己的机器上安装 Angular QuickStart 种子,以便更快、更高效的开发。" target="_self">
搭建本地开发环境 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/setup-systemjs-anatomy" title="基于 SystemJS 的本地开发环境内幕。" target="_self"> 搭建方式剖析
href="/guide/setup-systemjs-anatomy" title="基于 SystemJS 的本地开发环境内幕。" target="_self"> 搭建方式剖析
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/browser-support" title="浏览器支持与 Polyfills 指南" target="_self"> 浏览器支持 <!----></a>
href="/guide/browser-support" title="浏览器支持与 Polyfills 指南" target="_self"> 浏览器支持 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/npm-packages" title="建议的 npm 包,以及如何指定包的依赖。" target="_self"> npm 包 <!----></a><!---->
href="/guide/npm-packages" title="建议的 npm 包,以及如何指定包的依赖。" target="_self"> npm 包 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/typescript-configuration" title="给 Angular 开发者的 TypeScript 配置。" target="_self">
href="/guide/typescript-configuration" title="给 Angular 开发者的 TypeScript 配置。" target="_self">
TypeScript 配置 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/aot-compiler" title="学习如何使用 AOT 预编译器。" target="_self"> 预先AOT编译 <!----></a><!---->
href="/guide/aot-compiler" title="学习如何使用 AOT 预编译器。" target="_self"> 预先AOT编译 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/deployment" title="学习如何部署你的 Angular 应用。" target="_self"> 部署 <!----></a><!----></div>
href="/guide/deployment" title="学习如何部署你的 Angular 应用。" target="_self"> 部署 <!----></a><!----></div>
<!----></aio-nav-item>
</div>
</div>
@ -553,27 +553,27 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/service-worker-intro" title="Angular 对 Service Worker 的实现提升了慢速或不稳定的网络连接下的用户体验。"
href="/guide/service-worker-intro" title="Angular 对 Service Worker 的实现提升了慢速或不稳定的网络连接下的用户体验。"
target="_self"> 简介 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/service-worker-getting-started" title="在 CLI 项目中启用 Service Worker并在浏览器中查看效果。"
href="/guide/service-worker-getting-started" title="在 CLI 项目中启用 Service Worker并在浏览器中查看效果。"
target="_self"> 快速起步 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/service-worker-communications" title="那些能让你和 Angular 的 Service Worker 通讯的服务类。"
href="/guide/service-worker-communications" title="那些能让你和 Angular 的 Service Worker 通讯的服务类。"
target="_self"> 与 Service Worker 通讯 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/service-worker-devops" title="使用 Service Worker 运行应用、管理应用更新、调试以及杀掉正在运行的应用。"
href="/guide/service-worker-devops" title="使用 Service Worker 运行应用、管理应用更新、调试以及杀掉正在运行的应用。"
target="_self"> 生产环境下的 Service Worker <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/service-worker-config" title="配置 Service Worker 的缓存行为。" target="_self"> Service
href="/guide/service-worker-config" title="配置 Service Worker 的缓存行为。" target="_self"> Service
Worker 配置 <!----></a><!----></div><!----></aio-nav-item>
</div>
</div>
@ -593,12 +593,12 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/updating" title="关于如何把 Angular 应用升级到最新版的信息。" target="_self"> 更新你的项目 <!----></a>
href="/guide/updating" title="关于如何把 Angular 应用升级到最新版的信息。" target="_self"> 更新你的项目 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/releases" title="Angular 的版本、发布、支持与弃用策略。" target="_self"> Angular 的版本发布 <!----></a>
href="/guide/releases" title="Angular 的版本、发布、支持与弃用策略。" target="_self"> Angular 的版本发布 <!----></a>
<!----></div><!----></aio-nav-item>
</div>
</div>
@ -618,40 +618,40 @@
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/upgrade" title="把 AngularJS 应用增量式的升级到 Angular。" target="_self"> 升级步骤 <!----></a>
href="/guide/upgrade" title="把 AngularJS 应用增量式的升级到 Angular。" target="_self"> 升级步骤 <!----></a>
<!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/upgrade-performance"
href="/guide/upgrade-performance"
title="Upgrade from AngularJS to Angular in a more flexible way." target="_self"> Upgrading for
Performance <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a
class="vertical-menu-item ng-star-inserted level-3 collapsed" style="position: relative"
href="guide/ajs-quick-reference" title="学习如何把 AngularJS 的概念映射到 Angular 中。" target="_self">
href="/guide/ajs-quick-reference" title="学习如何把 AngularJS 的概念映射到 Angular 中。" target="_self">
AngularJS 与 Angular 的概念对照 <!----></a><!----></div><!----></aio-nav-item>
</div>
</div>
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 expanded"
style="position: relative" href="guide/universal"
style="position: relative" href="/guide/universal"
title="使用 Angular Universal 在服务端渲染 HTML。" target="_self"> 服务端渲染
<!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/visual-studio-2015"
style="position: relative" href="/guide/visual-studio-2015"
title="在 Visual Studio 2015 中使用快速起步中的文件" target="_self"> Visual
Studio 2015 快速上手 <!----></a><!----></div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/styleguide"
style="position: relative" href="/guide/styleguide"
title="写出 Angular 风格的程序" target="_self"> 风格指南 <!----></a><!---->
</div><!----></aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-2 collapsed"
style="position: relative" href="guide/glossary"
style="position: relative" href="/guide/glossary"
title="Angular 中最重要的词汇的简要定义。" target="_self"> 词汇表 <!----></a>
<!----></div><!----></aio-nav-item>
</div>
@ -659,7 +659,7 @@
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
<div class="ng-star-inserted"><!----><a class="vertical-menu-item ng-star-inserted level-1 collapsed"
style="position: relative" href="api" title="关于 Angular 中类和值的详细信息。"
style="position: relative" href="/api" title="关于 Angular 中类和值的详细信息。"
target="_self"> API 参考手册 <!----></a><!----></div><!---->
</aio-nav-item>
<aio-nav-item class="ng-star-inserted"><!---->
@ -715,9 +715,9 @@
<div class="grid-fluid"><!---->
<div class="footer-block ng-star-inserted"><h3>资源</h3>
<ul><!---->
<li class="ng-star-inserted"><a class="link" href="about" title="Angular 贡献者。">关于</a></li>
<li class="ng-star-inserted"><a class="link" href="resources" title="网络上的 Angular 工具、培训、博客等">资源列表</a></li>
<li class="ng-star-inserted"><a class="link" href="presskit" title="我们的联系方式、LOGO 和品牌">宣传资料</a></li>
<li class="ng-star-inserted"><a class="link" href="/about" title="Angular 贡献者。">关于</a></li>
<li class="ng-star-inserted"><a class="link" href="/resources" title="网络上的 Angular 工具、培训、博客等">资源列表</a></li>
<li class="ng-star-inserted"><a class="link" href="/presskit" title="我们的联系方式、LOGO 和品牌">宣传资料</a></li>
<li class="ng-star-inserted"><a class="link" href="https://blog.angular.io/" title="Angular 官方博客">博客</a>
</li>
</ul>
@ -737,7 +737,7 @@
</div>
<div class="footer-block ng-star-inserted"><h3>社区</h3>
<ul><!---->
<li class="ng-star-inserted"><a class="link" href="events"
<li class="ng-star-inserted"><a class="link" href="/events"
title="Post issues and suggestions on github.">活动</a></li>
<li class="ng-star-inserted"><a class="link" href="http://www.meetup.com/topics/angularjs/"
title="参加聚会,向别的开发人员学习">聚会</a></li>
@ -745,7 +745,7 @@
</li>
<li class="ng-star-inserted"><a class="link" href="https://github.com/angular/angular"
title="GitHub">GitHub</a></li>
<li class="ng-star-inserted"><a class="link" href="contribute" title="向 Angular 做贡献">做贡献</a></li>
<li class="ng-star-inserted"><a class="link" href="/contribute" title="向 Angular 做贡献">做贡献</a></li>
</ul>
</div>
<div class="footer-block ng-star-inserted"><h3>多语言</h3>
@ -756,7 +756,7 @@
</ul>
</div>
</div>
<p> Powered by Google ©2010-2018. 代码授权方式:<a href="license" title="License text">MIT-style License</a>. 文档授权方式:<a
<p> Powered by Google ©2010-2018. 代码授权方式:<a href="/license" title="License text">MIT-style License</a>. 文档授权方式:<a
href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
</p>
<p> 当前版本6.1.1-local+sha.fe5eef45e.

View File

@ -11,10 +11,12 @@ function buildSsrPages(): void {
.map((entry) => entry.replace(/^"url": "(.*?)".*$/, '$1'))
.filter(url => url.slice(0, 4) !== 'http')
.forEach(url => {
const generated: { title: string, content: string } = JSON.parse(fs.readFileSync(`./dist/generated/docs/${url}.json`, 'utf-8'));
const generated: { title: string, contents: string } = JSON.parse(fs.readFileSync(`./dist/generated/docs/${url}.json`, 'utf-8'));
const content = generated.contents.replace(/href="(?!http)(.{2,}?)"/gi, 'href="/$1"');
const pageContent = pageTemplate
.replace('<title>Angular Docs</title>', `<title>${generated.title} - Angular 官方文档</title>`)
.replace('<aio-page-content-placeholder></aio-page-content-placeholder>', generated.content);
.replace('<aio-page-content-placeholder></aio-page-content-placeholder>', content);
mkdirp.sync(path.dirname(`./dist/${url}`));
fs.writeFileSync(`./dist/${url}.html`, pageContent, 'utf-8');
});