怎么样使用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]]
得到: -
方法2
和方法1一样,这种文法也可以在emacs源文件中看到图像 <table> <tr> <td> [[test2.jpg]] </td> </tr> </table>
得到:
-
方法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>都无法屏蔽,只能用 ¦ 来替代
定制导航菜单
应该有很多种方法,这是我用的办法: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  即可
自动上传至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文件中.备注,注脚被引用处