Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143464
  • 博文数量: 8
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-05 09:40
文章分类

全部博文(8)

文章存档

2009年(2)

2008年(6)

我的朋友

分类: LINUX

2009-08-05 22:35:01

   今天总算把muse给配置好了,其实在学校的时候,就已经在用muse记笔记和写日记了。不过一直都没怎么做美化。这里讲下我的过程。
先google一个好点的网站模板,我是搜索个人网站模板的。找了个结构类似cu,绿色风格的。像这类模板一般提供psd或者html源码,下载下来后,进行少量的修改,比如导航,分类,颜色,logo什么的换一下,然后在dw中做一个页面。这个页面就是笔记发布的模板页了。
   下面讲下在emacs中配置muse,网上也有很多文章介绍的,我讲下我的理解。muse可以分为项目保存,比如笔记,日记是一个大的项目,这个项目有一个首页,还有几个头页面和尾页面。我们在muse-mode中编辑的内容会被转为指定的html标签,再插入到头页面和尾页面之间。以当前这篇文章为例,整个页面结构是头部是图片和导航,左边是分类.右边是文章正文.还有一个底部是版权信息什么的.像这张页面在模板页中做好后,要把正文这里加一个div,标记为content或其它.然后把当前html代码从头至
的复制下来,保存为头页面.再把剩下的
至的内容复制下来做为尾页面.
然后在emacs中定义
  (muse-derive-style "my-xhtml" "xhtml"
                     :header "~/site/style/head.html"
                     :footer "~/site/style/foot.html")
;;设置项目首页和路径
 (setq muse-project-alist
      '(("Website"
     ("~/site"
      :force-publish ("NoteIndex")
      :default "index")
     (:base "my-xhtml"
        :path "~/site/publish/web"))

    ("Note"
     ("~/site/note" :default "index")
     (:base "my-xhtml"
        :path "~/site/publish/note"))))
~/site/note中存放的是源文件,都是.muse结尾的.publish/note中保存的是发布的文件,还有你的css,js包括images/都放在这里.
比如我在.muse中写好内容后,按C-c C-p发布项目,他就会把修改过,但还没发布的发布出去的,所谓的发布就是把head.html插入到发布页中,再插入.muse中的内容,再插入foot.html的内容.这样就构成了一个发布页面.当然如果head.html和foot.html中有lisp代码,都是先解释后再插入的.对于.muse中的内容,对应的标签会解析成对应的html,有些会成为特定的class.具体的发布下看下就清楚了.
   这里提一下我遇到的问题,一个是跳转问题,firefox下的跳转要用window.location=url来跳转.还有就是链接,由于发布页面是本地的html,如果你有多个项目,比如笔记,日记两个大项目.那么就要考虑到相对路径的问题,我是写了个js函数,在导航和分类onClick的时候,判断下对应跳转的页面的.当然或许可以在所有的链接那边写上lisp代码,得到项目的路径,这可能可以.但我觉得在链接中固定不灵活.
    其中一个问题是回车的问题,muse的段落要多敲一个回来才会隔开,发布成html各段之间会多出一行.由于原来是只用emacs来浏览的,所以以前写的内容都是不多敲回车的,那么发布的时间,就都合并到一块了.解决的方法是在现有页面的头部加上尾部加上.这样就可以保留原页面中的回车了,而且这样输出的页面,比较符合一般的习惯.
  ls *.muse |awk '{print "sed -f pat "$1" >d2/"$1.muse}' >sed.sh
pat的内容是
1i\
$a\

这样就可以给当前目录下的所有muse的头尾加上标签对了.
再一个要注意的是标签,该标签发布成html时,是
.因为pre会保留所有的回车,这样有时候会导致内容不自动换行,从而撑大整个页面,影响美观.所以要在css中加上

pre {
    white-space: pre-wrap; /* css-3 */
    white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
    white-space: -pre-wrap; /* Opera 4-6 */
    white-space: -o-pre-wrap; /* Opera 7 */
    word-wrap: break-word; /* Internet Explorer 5.5+ */
}


这样就不会有这个问题了.其它待解决的问题,就是本地搜索,现在的替代方法是用google桌面来搜索的.但如果是muse源文件搜索的话,grep这些都是可以用的.
阅读(486) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~