一个集成的web模板环境

pagd的Python项目详细描述


概述

静态网站生成器,基于理解良好的MVC-模型,视图, 控制器-设计原理。基于web的mvc的总体思想 应用程序的视角是

                           +--------+
                           |template|
                           +--------+
                               |
                               V
+-------+   +----------+    +------+    +-----+
|request|-->|controller|--->|action|<---|model|
+-------+   +----------+    +------+    +-----+
                               |
                               V
                          +---------+
                          |HTML page|
                          +---------+
                               |
                               V
     goes to the client  +-------------+
   <---------------------|http-response|
                         +-------------+

总的来说,

  • http请求到达web应用程序的控制器逻辑。
  • 控制器通过解析请求url将请求解析为web操作。
  • 动作逻辑从数据库模型中收集必要的上下文信息 以及其他消息来源。
  • 一个html模板被标识,最后的html页面使用 来自模型的上下文信息和来自一个或多个模板的页面布局 文件夹。

pagd或多或少遵循了一个类似的原则,即从 作为目录树组织的文件集合。以下是关于如何 已完成

+------+    +---------+      +-------------+
|layout|--->|generator|<---->|page-iterator|
+------+    +---------+      +-------------+
                 |                  ^
                 |                  |          +------------+
                 V                  +<---------|page-context|
            +---------+             |          +------------+
            |Html-page|             |
            +---------+             |          +-------------+
                 |                  +<---------|page-template|
                 |                  |          +-------------+
                 V            +------------+
            +--------+        |page-content|
            |web-site|        +------------+
            +--------+

功能

  • 生成静态输出,因此可以承载在任何位置。
  • 可插拔布局。
    • 我目前使用pagd.my blog布局来发布我的博客文章。
    • 可以创建任意数量的布局,作为pagd 工具或单独包装。
    • 尽管鼓励布局遵循模型视图控制器 上面解释的概念,由布局插件定义结构 以及布局的源目录树的含义。
  • pagd需要完成的所有工作都是通过pagd命令完成的 线路接口。
  • 命令行界面带有简单的子命令,如,
    • 创建,以创建新布局。
    • gen,从源布局生成静态网站。
  • 子命令是插件,可以通过实现 pagd.interfaces.icommand接口。
  • 要将pagd用作python库,请参阅pagd下的script.py模块 包裹。
  • 可以使用tayra template设计网站模板。
    • mako和jinja2提供了实验功能。如果你面对问题 有了这些模板,请告诉我。
  • 重构文本指令,
    • 代码语法突出显示。
    • 在页面内容中播放YouTube视频。
    • 将图像集合显示为库,使用magnific-popupjquery 插件。magnific popop是一个记录良好的jquery插件,它是可能的 更改css文件和/或pagd模板脚本以自定义 很多方面。
    • 将github gist、整个gist或单个文件嵌入gist。
  • pagd.mybloglayout装有电池。
    • 用重组文本、标记、纯文本、HTML或 即使是泰拉模板。
    • 使用Tayra模板创建网站模板。
    • 使用json文件配置站点生成。
    • 将上下文添加到单个页面是子目录下的所有页面 通过一个或多个json文件。
    • 使用google-webfonts通过使用config.json属性配置css链接 谷歌网络字体
    • 与论文评议系统的集成。评论将存储在 DISPS服务器。
    • 与Git、Mercurial存储库集成以收集文件的元数据,如 页面的作者、电子邮件、创建时间、上次修改时间等,这是 完全可选。
    • 与twitter、facebook、hackernews、google+、reddit进行社交分享, LinkedIn等。
    • 包括jquery,模板可以用jquery插件定制。
    • 了解更多-pagd.myblog
  • 只有无法配置、自定义或完全替换的部分是 工具的名称;)
  • 许可证:GPLv3 license
  • 需要:linux、python-3.x、pluggdapps。
    • 要解释标记文本,需要安装python-markdown
    • 要解释rst文本,需要安装docutils
    • 要解释原始html,需要安装python-lxml
    • 如果需要在中突出显示源代码你的第一个文本,pygmentsdocutils需要安装。
    • 要使用Jinja2或Mako模板,相应的包需要 安装。
  • 状态:核心设计稳定。预计不会改变。

有关默认布局pagd.myblog,请参阅glossary和文档。

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

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener