将angularjs模板转换为jinja2模板进行seo。
angular2tmpl的Python项目详细描述
将angularjs模板转换为jinja2模板进行seo。
其基本思想是创建一个角度驱动的网站,可以 在服务器上呈现供搜索引擎使用这就完成了 分为两部分:
- 使用angulart2tmpl将角度模板转换为jinja2模板。今年五月 要求在python中实现自定义角度指令(使用 xml.dom.minidom)
- 实现一个Python WSGI应用程序,该应用程序使用相同的 为Angular应用程序供电并将其传递给生成的Jinja2的API 模板。
这个项目并不打算完全实现angularjs 在Python中。相反,它打算实现角度的最小子集 足以为SEO提供服务器端呈现这个 结果服务器呈现的站点不需要是交互式的,但是它们应该看起来 与基于javascript的对应项大致相同。
功能
- 避免了运行无头浏览器 的费用和复杂性
- 与PaaS平台兼容,如Google App Engine
状态
Angular2Templ是alpha之前的软件它目前实现了非常最小值 ng和ngRoute模块的子集,很少尝试寻址 边箱。目前还不能保证保持向后 兼容性。单元测试仍然是它眼中的闪光点
也就是说,angular2tmpl目前确实满足了它原来所在站点的需求 为之而建
安装依赖项
安装很简单:
pip install angular2tmpl
唯一的依赖项是jinja2和html5lib,它们都是 自动安装。Angular2Templ是在Python2.7上构建的,但是 用2to3转化的意图相当无痛如果你试一下,让我 知道怎么回事
用法
只需运行angular2tmpl。尝试--help查看可用标志和默认值 值,然后在每个角度模板上运行它。angular2tmpl指令 在保持pythonic和 利用非交互式的复杂性降低 致使。有关示例,请参见modules/ng.py
由于angular与jinja2表达式的语义不同,有些 对默认Jinja2环境和模板数据的修改如下 必要:
- Angular非常慷慨地忽略了 模板。要模拟此行为,请设置 jinja2环境对象到angular2tmpl.jinja2.PermissiveUndefined。
背景
有关google如何处理javascript繁重站点以及如何 使其请求站点的特殊服务器呈现版本,请参见 https://developers.google.com/webmasters/ajax-crawling/docs/specification。为了 关于在边界内使角工作的其他方法的更多信息 本规范,见 http://www.ng-newsletter.com/posts/serious-angular-seo.html。
免责声明
Angular2Templ与谷歌或Angularjs没有任何关联。