Html 自定义“组织发布项目列表”`
我正在尝试使用组织模式发布网页。两个问题:Html 自定义“组织发布项目列表”`,html,emacs,org-mode,Html,Emacs,Org Mode,我正在尝试使用组织模式发布网页。两个问题: 是否有方法“同步”基本目录中的组织模式文件和发布目录中的html文件?具体来说,如果我删除了基本目录中的一个org文件,我是否可以让org publish html也删除html目录中的相应文件 如果子目录中有页面,如何在根目录中指定一个.css文件用于样式表?例如,我的目录结构如下: 公共网页/ css/ mystyle.css index.html 细分/ index.html 使用org publish project alist中的
基本目录中的一个org文件
,我是否可以让org publish html
也删除html目录中的相应文件.css
文件用于样式表?例如,我的目录结构如下:
公共网页/
- css/
- mystyle.css
- index.html
- 细分/
- index.html
org publish project alist
中的以下规范(这只是一个子集)--
:发布目录“public\u html”
:样式“”
mystyle.css
由public\u html/index.html
使用,但不由public\u html/subdir/index.html
使用。有没有简单的补救办法(我希望子目录中的两个/所有文件都使用样式表)
多谢~
组织发布项目列表中设置:completion function
属性来控制的。您可以使用此钩子编写一个函数,将基本目录
和子目录中的*.org文件与附带的*.html发布文件进行比较,并删除那些没有附带*.org文件的*.html文件
我想,通过让您的Lisp完成函数调用一个shell脚本来删除必要的文件,最容易实现这一点。如果您正在使用:include
、:exclude
或:base extension
属性进行一些有趣的操作,您可能希望完成函数
从plist
获取相关信息,然后将它们传递给shell脚本。有一个示例完成函数
,它显示了如何为组织发布项目列表
获取属性值。然后需要将它们传递给shell脚本
。/
另一种可能性是为目录树中的每个级别生成通用模板文件。提供了一个很好的示例,说明如何设置此选项
最后,另一个选项是使用org publish project alist
的:preparation function
属性定义一个函数,该函数将自动更改每个文件的样式文件。同样,最好使用Lisp准备函数调用shell脚本来解析文件。我可以想象用Unixsed
程序来找到一个表示为href=“@MYLOC@/stylesheet.css”/>
之类的正则表达式,并用目录树中的适当级别替换@
之间的内容。考虑到其他选择,这似乎有些过分了
:publishing-directory "public_html"
:style "<link rel=\"stylesheet\" href=\"css/mystyle.css\" type=\"text/css\"/>"