1
0
Fork
You've already forked org-fm
0
Take fast minutes in Org documents
  • Emacs Lisp 79.2%
  • TeX 20.8%
Find a file
2026年01月23日 17:00:40 +01:00
example-latex-export.png Update screenshots 2025年04月19日 12:58:11 +02:00
example.org LaTeX: Add question tag and fix org-fm-replace-tags-with-latex 2025年04月19日 12:18:46 +02:00
example.pdf LaTeX: Change status style in participant list 2025年04月19日 12:57:14 +02:00
example.png Update screenshots 2025年04月19日 12:58:11 +02:00
example.tex LaTeX: Change status style in participant list 2025年04月19日 12:57:14 +02:00
org-fm-latex-style-plain.tex LaTeX: Add question tag and fix org-fm-replace-tags-with-latex 2025年04月19日 12:18:46 +02:00
org-fm.el Change org-fm-alert-face 2026年01月23日 17:00:40 +01:00
README.org Update README.org 2025年04月19日 22:21:50 +02:00

org-fm

org-fm supports taking and exporting minutes in org-mode files. org-fm assumes a very simple but effective minutes format consisting of plain lists, where list items can be typed and assigned to participants using the dictionary notation of org-mode lists.

Emacs screenshot:

/timmli/org-fm/media/branch/master/example.png

Example of PDF export via LaTeX:

/timmli/org-fm/media/branch/master/example-latex-export.png

Installation

Installation with Melpa

Not yet available.

Installation from Github

Download org-fm.el to your .emacs.d folder and add the following code to your init file:

(use-package org-fm
 :load-path "relative/path/to/org-fm/"
 :config
 (org-fm-minor-mode))

For LaTeX export, you will also need org-fm-latex-style-plain.tex.

Usage

The basic list format

Minutes taken with org-fm consist of one arbitrarily deeply embedded list, where the topmost level is an enumeration (1), 2), ...).

org-fm items have the following structure

1) (I:? <TIMESTAMP>? <NAMES>? <SEPARATOR>)? <CONTENT>
- (<TYPE>? <TIMESTAMP>? <NAMES>? <SEPARATOR>)? <CONTENT>

which means:

  • <TYPE> is the type of the item. There is a choice of item types built in:

    <TYPE> description
    A:, [ ] action/agenda
    AC:, [X] cleared
    D:, E: decision/Entscheidung
    C:, B: consultation/Beratung
    I: information
    N: note
    Q: open question about minutes
  • <TIMESTAMP> is an (inactive) org-timestamp.
  • <NAMES> is a comma-separated list of participant names.
  • <SEPARATOR> can be :: or ||.
  • When <TYPE>, <TIMESTAMP> or <NAMES> are given, there also has to be a <SEPARATOR>.
  • When <NAMES> but not <TYPE> is given, the implicit type will be I: (information).
Timestamps

Items may contain an inactive org-timestamp, which is located after <TYPE> and before <NAMES>:

- N: [2020年06月08日 Mo 12:18] :: This is a note.

Timestamps can be inserted or updated with org-fm-add-or-update-timestamp.

Timestamps are not exported with org-fm-export except for the note type (N:).

Inline elements

org-fm also provides two types of inline elements:

inline element description
enclosed by ?: and :? question about minutes
enclosed by #: and :# private comment
enclosed by !: and :! alert

Keywords

There is a number of special org-fm keywords that are used during export:

keywords description
#+MINUTES_TITLE: title of the document; used as #+TITLE:
#+MINUTES_EVENT: name of the event
#+MINUTES_PLACE: place of the event
#+MINUTES_DATE: date of the event; used as #+DATE:
#+MINUTES_AUTHOR: name of minute taker; used as #+AUTHOR:
#+MINUTES_CHAIR: chair of the event
#+MINUTES_DRAFT-TEXT: text of the draft watermark
#+MINUTES_PARTICIPANTS: names of participants
#+MINUTES_LANGUAGE: language of minutes
#+MINUTES_LATEX_STYLE: name of \LaTeX style file
#+MINUTES_OPTIONS: used as #+OPTIONS:

Participants can be included using the drawer :PARTICIPANTS-LIST: which is assumed to contain exactly one list. The content of :PARTICIPANTS-LIST: will overwrite #+MINUTES_PARTICIPANTS:.

The schema of the participation list looks like this:

- <CHECKBOX> <NAME> [<ABBREVIATION>]
 - <COMMENT>?

Note that, currently, only one comment item per participant is supported when exporting to LaTeX.

Automatic abbreviation expansion

org-fm lets you easily define abbreviations of participant names that are expanded during export.

Within :PARTICIPANTS-LIST:, abbreviations (and optionally expansions) can be specified in square brackets:

- [X] Susan Parker [SP=Sue]
- [ ] Kim Miller [KM]

When no expansion is given, either the part preceding a comma (,) or the last word in the preceding name will be used.

One can mask abbreviations (and suppress their expansion) by prefixing it with ##, which will be removed during expansion.

Example

Export

The export is triggered with org-fm-export.

org-fm-export will first copy the content of the org-mode heading at point into a temporary buffer, perform a couple of replacements and then call org-export-dispatch.

Plans