44.2 单文件软件包

单文件软件包由单个 Emacs Lisp 源文件构成。该文件必须符合 Emacs Lisp 库的头部规范(see Emacs 库的标准文件头)。软件包的各项属性取自文件头部字段,示例如下:

;;; superfrobnicator.el --- Frobnicate and bifurcate flanges  -*- lexical-binding:t -*-

;; Copyright (C) 2022, 2025 Free Software Foundation, Inc.

;; Author: J. R. Hacker <[email protected]>
;; Version: 1.3
;; Package-Requires: ((flange "1.0"))
;; Keywords: multimedia, hypermedia
;; URL: https://example.com/jrhacker/superfrobnicate

...

;;; Commentary:

;; This package provides a minor mode to frobnicate and/or
;; bifurcate any flanges you desire.  To activate it, just type
...

;;;###autoload
(define-minor-mode superfrobnicator-mode
...

软件包名称与文件首行的基础文件名一致。本例中为 ‘superfrobnicator’。

简要描述同样取自首行。本例中为 ‘处理与分支法兰’。

版本号优先取自 ‘Package-Version’ 头部,若无则取自 ‘Version’ 头部。二者必须存在其一。本例版本号为 1.3。

若文件包含 ‘;;; Commentary:’ 段落,该段落将作为详细描述。(Emacs 显示描述时会省略 ‘;;; Commentary:’ 行以及注释本身开头的注释符号。)

若文件包含 ‘Package-Requires’ 头部,则其内容作为软件包依赖。上例中该软件包依赖 ‘flange’ 软件包 1.0 及以上版本。See Emacs 库的标准文件头 中有关于 ‘Package-Requires’ 头部的说明。若要指定依赖特定版本的 Emacs,可将软件包名称写为 ‘emacs’。省略该头部则表示无依赖。

Keywords’ 与 ‘URL’ 头部为可选但推荐项。describe-package 命令会使用它们在输出中添加链接。‘Keywords’ 头部应至少包含一个来自 finder-known-keywords 列表的标准关键字。

文件中还应包含一个或多个自动加载魔法注释,如 软件包基础 所述。上例中通过魔法注释自动加载了 superfrobnicator-mode

See 创建与维护软件包归档 中说明了如何将单文件软件包添加到软件包归档。