怎么样使用emacs写wiki?

怎么样使用emacs写wiki?

基本语法
锚(anchor)的设置
网页中目录的添加:
使用注脚[1]
css设置
wiki中强行分段
强行分行
插入图片
文字颜色设置
WikiName的屏蔽
¦的屏蔽
定制导航菜单
设定title为空
自动上传至httpd服务器
ChangeLog

基本语法

这里有具体说明; 或者也可以在emacs中C+h v emacs-wiki-publishing-markup得到帮助

锚(anchor)的设置

[[目的地址标识][链接名称]] 
  • 若目的地址可以是在同一页中,目的地址标识写成"#anchor"的形式;
  • 若目的地址不在当前页内,目的地址标识写成"pageName#ancho"的形式;
  • 目的地址也可以是普通网址,直接写为"http://......"即可。

    网页中目录的添加:

    试了n久,终于找到方法了。只需在文章前面加上<contents>,就会把通过*,**等设定的标题自动在网页顶部排列. 还可以在contents后面添加depth=2指定列到二级目录为止。 另外,还有其他的一些设置没仔细试过,参见emacs的帮助:C-h v emacs-wiki-markup-tags 

    使用注脚1

    其实方法跟anchor类似,在需要标注的地方加上[1],然后在被引用的行前面插入#fn.1 

    css设置

    修改emacs配置文件,通常是.emacs或者.emacs-wiki.el
    (setq emacs-wiki-style-sheet    "<link rel=/"stylesheet/" type=/"text/css/" href=/"core1.css/" >") 如果是指定某个网页的css,可以在页首加入#style current.css 

wiki中强行分段

有时候想要把文字分成两段,可以在两段文字间插入
<br>

强行分行

如果要在两行文字之间插入横线,可以在文字间插入
<hr>
例如:
第一段文字
第二段文字

插入图片

  • 方法1
    这种文法可以在emacs源文件中看到图像 [[目的地址标识][链接名称]]<br>如:[[test1.jpg][测试1]] 
    得到: 怎么样使用emacs写wiki?
  • 方法2
    和方法1一样,这种文法也可以在emacs源文件中看到图像 <table> <tr> <td> [[test2.jpg]] </td> </tr> </table> 
    得到:
    怎么样使用emacs写wiki?
  • 方法3
    直接在wiki中用html方式 <a href="my_picture.jpg">我的照片</a> 
    得到: 测试图3链接

方法3在网页中只出现一个链接,图片不直接出现在网页中

文字颜色设置

借用html代码方法
<font color=red>红色</font> 
红色
<font color=orange> 橙色 </font> 
橙色

WikiName的屏蔽

如果输入型如WikiName这样一个单词里面有两个大写字母的单词,wiki发布的时候就会把它默认为一个链接.
可以在前面加<nop>屏蔽: 
WikiName

¦的屏蔽

|在wiki中是用作表格的,连<nop>都无法屏蔽,只能用 &#166 来替代 

定制导航菜单

应该有很多种方法,这是我用的办法:
1. 修改emacs-wiki-publish.el文件,把 <lisp>(when (boundp 'emacs-wiki-menu-factory)       (funcall emacs-wiki-menu-factory))</lisp> 反注释掉,这样每个网页上都将出现导航菜单 2. M-x customize-group RET emacs-wiki 找到并进入Emacs Wiki Menu group、 修改Emacs Wiki Menu Factory,把值改成emacs-wiki-menu-make-from-list 3.在页面中,用#menu (("menuitem1" "url" "tooltip1") ("menuitem2" "url" "tooltip2"))添加导航菜单 4.如果不想在页面中引用,在页首加入 <lisp>(set (make-variable-buffer-local 'emacs-wiki-menu-factory)       'emacs-wiki-menu-no-menu)</lisp> 

设定title为空

#title可以设定网页标题 #title &nbsp即可 

自动上传至httpd服务器

使用emacs可以很轻松在服务器上发布网页,不过需要服务器支持ftp上传。先从这里下载ftp的上传工具ncftp,ncftp的windows版本可以从我这里下载。 修改.emacs文件,具体可以参考emacs配置文件中的 update-remote.el
;;ncftp网页自动上传 (require 'update-remote) ;; and setting proper variables. Here is a example (setq update-remote-cmd-name "ncftpput") ;;-u 加用户名 -p 加密码 接着是服务器的名字 (setq update-remote-cmd-prefix "-u xxx -p xxx servername.com.cn")   (defun update-my-homepage ()    (interactive) ;;update-remote 后面第一项是服务器端目录,第二项是本地欲上传的目录    (update-remote "/" "c:/wiki/")) ; 

然后用M-x update-my-homepage就可以自动更新服务器端的网页,我把update-my-hmoepage绑定至C-c C-u键

;;将update-my-homepage绑定至C-c C-u键 (add-hook 'emacs-wiki-mode-hook (lambda ()  (define-key emacs-wiki-mode-map (kbd "C-c C-u") 'update-my-homepage) )) 

写ChangeLog

使用C-x 4 a可以直接把网页所作的变动记录到ChangeLog文件中.

备注,注脚被引用处