将angularjs模板转换为jinja2模板进行seo。

angular2tmpl的Python项目详细描述


将angularjs模板转换为jinja2模板进行seo。

其基本思想是创建一个角度驱动的网站,可以 在服务器上呈现供搜索引擎使用这就完成了 分为两部分:

  1. 使用angulart2tmpl将角度模板转换为jinja2模板。今年五月 要求在python中实现自定义角度指令(使用 xml.dom.minidom
  2. 实现一个Python WSGI应用程序,该应用程序使用相同的 为Angular应用程序供电并将其传递给生成的Jinja2的API 模板。

这个项目并不打算完全实现angularjs 在Python中。相反,它打算实现角度的最小子集 足以为SEO提供服务器端呈现这个 结果服务器呈现的站点不需要是交互式的,但是它们应该看起来 与基于javascript的对应项大致相同。

功能

    重用现有的角度模板和后端API
  • 避免了运行无头浏览器
  • 的费用和复杂性
  • 与PaaS平台兼容,如Google App Engine

状态

Angular2Templ是alpha之前的软件它目前实现了非常最小值 ngngRoute模块的子集,很少尝试寻址 边箱。目前还不能保证保持向后 兼容性。单元测试仍然是它眼中的闪光点

也就是说,angular2tmpl目前确实满足了它原来所在站点的需求 为之而建

安装依赖项

安装很简单:

pip install angular2tmpl

唯一的依赖项是jinja2和html5lib,它们都是 自动安装。Angular2Templ是在Python2.7上构建的,但是 用2to3转化的意图相当无痛如果你试一下,让我 知道怎么回事

用法

只需运行angular2tmpl。尝试--help查看可用标志和默认值 值,然后在每个角度模板上运行它。angular2tmpl指令 在保持pythonic和 利用非交互式的复杂性降低 致使。有关示例,请参见modules/ng.py

由于angular与jinja2表达式的语义不同,有些 对默认Jinja2环境和模板数据的修改如下 必要:

  1. Angular非常慷慨地忽略了 模板。要模拟此行为,请设置 jinja2环境对象到angular2tmpl.jinja2.PermissiveUndefined
  2. JavaScript对象允许访问不存在的属性并进行处理 foo.barfoo['bar']相同为了摆脱同样的行为 模板变量,使用angular2tmpl.jinja2.js_data转换它们

背景

有关google如何处理javascript繁重站点以及如何 使其请求站点的特殊服务器呈现版本,请参见 https://developers.google.com/webmasters/ajax-crawling/docs/specification。为了 关于在边界内使角工作的其他方法的更多信息 本规范,见 http://www.ng-newsletter.com/posts/serious-angular-seo.html

免责声明

Angular2Templ与谷歌或Angularjs没有任何关联。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我们可以使用java for loop with switch语句。。?   java如何从具有循环关系的数据集生成树?   使用s:mvcUrl标记时java Spring启动问题   javascript Wicket调色板水平滚动条在firefox中不显示   java如何清理Maven插件绑定?   java将文件从设备发送到计算机不起作用(文件被破坏)   Java GPU编程的性能   java字符串标记器问题   连接Java LDAP断开连接   java Android GridView将无法确定正确的位置   java AlarmManager在指定时间未显示toast消息   MVC中的java测试外观|断言返回类型   logcat上的java Android运行时错误   java Building Workspace在Eclipse中遇到错误   堆栈溢出尾部递归遗传算法抛出“awteventque0”java。StackOverflowerr语言   java ArrayOutOfBounds测试代码不工作   java有没有像Moodle这样流行的课程管理系统?   java如何从jsp获取xml文件作为响应