- Emacs Lisp 79.2%
- TeX 20.8%
| example-latex-export.png | Update screenshots | |
| example.org | LaTeX: Add question tag and fix org-fm-replace-tags-with-latex | |
| example.pdf | LaTeX: Change status style in participant list | |
| example.png | Update screenshots | |
| example.tex | LaTeX: Change status style in participant list | |
| org-fm-latex-style-plain.tex | LaTeX: Add question tag and fix org-fm-replace-tags-with-latex | |
| org-fm.el | Change org-fm-alert-face | |
| README.org | Update README.org | |
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 beI:(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
See example.org.
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
- add easy way to include the time
-
add automatic expansion of abbreviations
-
instad use links? https://en.wikibooks.org/wiki/LaTeX/Hyperlinks#Hyperlink_and_Hypertarget
- Full name is given in the link label.
-
- activate faces only in headings with minutes?
- check in and ckeck out participants