org2web, 在org模式下,基于 static 站点生成器

分享于 

5分钟阅读

GitHub

  繁體 雙語
a static site generator based on org-mode, forked from org-page
  • 源代码名称:org2web
  • 源代码网址:http://www.github.com/tumashu/org2web
  • org2web源代码文档
  • org2web源代码下载
  • Git URL:
    git://www.github.com/tumashu/org2web.git
    Git Clone代码到本地:
    git clone http://www.github.com/tumashu/org2web
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/tumashu/org2web
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    org2web自述文件

    org2web是org网页的新 NAME,将org网页改名为org2web的原因如下: https://github.com/purcell/package-lint/issues/75

    org2web是基于org模式的static 站点生成器,它是由org页面的Kelvin 派生的。

    两个项目的主要区别如下:

    org2web的核心不硬代码 git,它的过程如下:

    
    [ Org files in repository] [ Website project configure ]
    
    
    
     | |
    
    
     <Export> <Generate> 
    
    
     | |
    
    
    
     [ HTML files ] [ Uploader ] <- ( Uploader is a bash script )
    
    
    
     | |
    
    
     | |
    
    
     +-------------+-------------+
    
    
     |
    
    
     |
    
    
     <Run Uploader> <- ( For example: git uploader, rclone uploader or others )
    
    
     |
    
    
     |
    
    
    
     [ REMOTE ]
    
    
    
    

    org2web配置默认为 `org-publish-project-alist'样式表,它可以轻松地管理emacs会话中的多个站点配置。

    org网站从主题列表中找到主题文件,并首先找到同样主题文件。 用户可以在这里功能的帮助下设置备用主题

    org网站包括一个小型的emacs服务器,它可以用来测试发布。

    org网站可以使用其他上传器上传网站,例如: rclone。

    安装

    目前,org2web已经从著名的emacs软件包 repo melpa 获得,因此推荐的方法是通过emacs软件包管理系统安装它。 有关安装的详细信息,请参见"单据"文件夹中的tips.org

    配置

    org2web使用变量 `org2web-projects'用户可以在`add-to-list中添加项目来存储项目的所有配置'函数,但是最简单的方法是使用`org2web-add-project函数。

    下面的代码是我的网站配置,你可以调整并粘贴到你的.emacs 目录

    
    (add-to-list 'load-path"path/to/org2web") ; Only needed if you install org2web manually
    
    
    
    (require 'org2web)
    
    
    
    (org2web-add-project
    
    
     '("tumashu.github.com"
    
    
     :repository-directory"~/project/emacs-packages/tumashu.github.com"
    
    
     :remote (git"https://github.com/tumashu/tumashu.github.com.git""master")
    
    
     ;; you can use `rclone` with `:remote (rclone"remote-name""/remote/path/location")` instead.
    
    
     :site-domain"http://tumashu.github.com/"
    
    
     :site-main-title"Tumashu 的个人小站"
    
    
     :site-sub-title"(九天十地,太上忘情!!!)"
    
    
     :theme (worg)
    
    
     :source-browse-url ("Github""https://github.com/tumashu/tumashu.github.com")
    
    
     :personal-avatar"/media/img/horse.jpg"
    
    
     :personal-duoshuo-shortname"tumashu-website"
    
    
     :web-server-port 7654))
    
    
    
    

    pyim 配置的org2web是一个比较复杂的例子。

    你可以通过命令找到更多配置选项及其缺省值:

    
    C-h v org2web-projects
    
    
    C-h v org2web-config-fallback
    
    
    
    

    出版物

    
    M-x org2web-publish
    
    
    
    

    依赖项

    • emacs: 这是一个"当然"依赖项
    • 需要组织模式: v8.0,请使用 M-x org-version <RET> 确保你组织模式版本不小于 8.0
    • bash: 项目的GNU shell
    • 一个自由开源版本控制系统
    • rclone: 支持其他远程位置,有关更多信息,请参见rclone概述。 ( 可选)
    • mustache.el: 用于Emacs的mustache 模板库
    • ( 通常是这个库附带的库)
    • dash.el: 用于Emacs的现代列表库
    • ht.el: 一个用于Emacs的现代哈希表库
    • 简单的httpd: 可以扩展的Emacs HTTP 1.1服务器

    已知问题

    • 目前删除更改处理程序尚未实现,因这里如果删除了一些组织源,则必须手动删除相应的html文件。
    • URI路径更改检测不可用。 即,如果使用 URI"/blog/2013/03/25/the-old-post-name" 进行 post,然后在组织源中更改这个值,org2web将无法检测到这已经发生。 它只会为你发布一个新的html文件,因此你需要删除与旧URI相关的旧的html文件。

    el2org 转换为 org2web.el。


    BASE  STA  模式  STAT  Generator  静态  
    相关文章