* contrib/lisp/org-contacts.el: Add a complex org-contacts template to
the file header, which can help users to know all the org-contacts
properties quickly.
* contrib/lisp/org-contacts.el (org-contacts-ignore-property): Improve
formatting and spelling.
(org-contacts-complete-name): Improve formatting.
(org-contacts-vcard-format): Improve formatting and silent byte compiler.
(org-contacts-split-property): Fix a bug where `omit-nulls' were not
forced to `t' when `separators' was nil.
* contrib/lisp/org-contacts.el (org-contacts-ignore-property): New variable.
(org-contacts-remove-ignored-property-values): New function, which
remove all ignore-list's elements from list.
(org-contacts-complete-name): When completing, ignore the
values which has been included into the ignore property.
(org-contacts-vcard-format): Don't export the values which has
been included into the ignore property.
If emails or phones is included into the ignore property, they will
not show in complete buffer. When the contact is exported to vcard,
they will be ignored too.
* lisp/ox-latex.el (org-latex-compile): Properly set working
directory.
* lisp/ox-man.el (org-man-compile): Properly set working directory.
* lisp/ox-texinfo.el (org-texinfo-compile): Properly set working
directory.
* contrib/lisp/ox-groff.el (org-groff-compile): Properly set working
directory.
* lisp/ox-latex.el (org-latex-compile): Make sure generated file can
be found by `file-exists-p'.
* contrib/lisp/ox-groff.el (org-groff-compile): Make sure generated
file can be found by `file-exists-p'.
* lisp/ox-man.el (org-man-compile): Make sure generated file can be
found by `file-exists-p'.
* lisp/ox-texinfo.el (org-texinfo-compile): Make sure generated file
can be found by `file-exists-p'.
* lisp/ox-html.el (org-html-doctype): Add new function `org-html-doctype'.
(org-html-template): Use `org-html-doctype' function instead of inline
code.
* contrib/lisp/ox-deck.el (org-deck-template): Use `org-html-doctype'
function instead of inline code.
* contrib/lisp/ox-s5.el (org-s5-template): Use `org-html-doctype'
function instead of inline code.
* contrib/lisp/ox-deck.el (deck): add new deck specific link handler.
(org-deck-toc): Add "sec-" to non-custom link ids.
(org-deck-link): New function. Rename internal link to point at
container instead of heading.
(org-deck-template): Use alist doctype instead of string (per changes
to ox-html).
* ox-koma-letter.el: =`org-koma-letter-subject-format'= can now be a list. Default is t.
If nil neither subject format nor type is exported.
* ox-koma-letter.el (org-koma-letter-template): better subject handling.
* ox-koma-letter.el (org-koma-letter-template): allow for t value of =#+OPTIONS: subject:VALUE=
* ox-koma-letter.el (org-koma-letter-template): export of subject format is independent
of title, but title is not independent of =:with-subject=.
The issue was with =#+OPTIONS: subject:t= one would get a LaTeX error.
New behavior:
If =#+OPTIONS: subject:(x,y)= then =\KOMAoption{subject}{x, y}=.
If =subject:x= then =\KOMAoption{subject}{x}=.
If =subject:t= then =\KOMAoption{subject}{...}= is not set but
\setkomavar{subject}{...} is set (in the output file)
If =subject:nil= neither are printed.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el(org-koma-letter-signature): set to nil.
The previoues value corresponds to the default value cf. the the koma
manual pp. 183.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el (org-koma-letter-special-tags-after-closing):
specials tags inserted after =\end{closing}=.
* ox-koma-letter.el (org-koma-letter-special-tags): collect
the special lists.
* ox-koma-letter.el (org-koma-letter-headline): stores content
in of headline if the first tag is special. Otherwise return content.
* ox-koma-letter.el (org-koma-letter-special-content): holds special
content temporarily.
* ox-koma-letter.el (org-koma-letter--format-string-as-macro): format a string as
a macro or don't.
* ox-koma-letter.el (org-koma-letter-template): added support
for the headings with special tags.
The following example will now export a sensible manner.
* my letter
here's a letter
* PS :ps:
it's requires this patch
* CC :cc:
Nicolas, Viktor and Alan
* ENCL :encl:
many patches
1. this patch
2. another patch.
* include patches :after_letter:
\myspecialmacro
\includepdf{pdf}
Namely, content of ps, encl and cc headings will be exported after
\closing{.} in the order prescribed by
=`org-koma-letter-special-tags-after-closing'= as a (LaTeX) macro
removing trailing and leading newlines. The macro is the same as the
tag, althogh the case is determined by the special list.
The concents of the =after_letter= heading will be inserted after
=\end{letter}= and newlines are preserved.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el (org-koma-letter-author): defaults to a function
that returns =`user-full-name'=.
Setting the variables `org-koma-letter-author' and
`org-koma-letter-email' to the values of `user-full-name' and
`user-mail-address' respectively, allows the user to skip =#+AUTHOR:=
and =#+EMAIL:= lines when configuring a letter. However, if the user
wishes to set this information in LCO files, these variables need to
be set to nil.
With the old after-init-hook method my user name was always set to "".
Now org-koma-letter will (i) allow for default nil values (good if you
use LCO files); (ii) default to =`user-full-name'= and
=`user-mail-address'= like =ox-latex.el=. These values are obtained
on-the-fly.
The two variables in question can also be strings or functions
returning strings.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* contrib/lisp/ox-deck.el (deck): Add deck specific link function.
(org-deck-toc): Generate correct link to slide for custom ids as well
as default section ids.
(org-deck-link): HTML custom ids link to the headline. deck.js
requires linking to the wrapper (slide) so modify the link to point at
the container instead of the headline.
(org-deck-template): Fix doctype handling to use alist option instead
of literal string.
* ox-koma-letter.el: changed the unorthodox =SENDER= keyword to
the ordinary =AUTHOR= keyword.
* ox-koma-letter.el: changed email to work as in standard
latex exporter and dropped dedicated ox-koma-letter variable.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
Prior to the fix the firefox link grabber won't work correctly if a cursor has been already positioned in the URL field. The fix works by adding an additional keystore for selecting all the text in that field.
* The shortcut is set to [S]
* Grabs not just the link to file, but a page
* Inserts the selected text as a description, if present. Otherwise
inserts "<filename>, p. <page #>"
* Defines a new "skim" link type
* contrib/lisp/org-contacts.el (org-contacts-setup-completion-at-point):
Setup `completion-at-point-functions' in a dedicated function so it's
easier to add and to remove it from `message-mode-hook'.
(org-contacts-unload-hook): This function removes all hooks added while
loading `org-contacts' in order to respect Emacs coding conventions.
* ox-koma-letter.el (org-koma-letter-opening): No default / set to nil.
(org-koma-letter-closing): No default / set to nil.
We should not assume a formal English opening and closing
line. A letter requires many personal options, such as the
address, so it is no more work to also these options.
TINYCHANGE
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* contrib/lisp/org-contacts.el (org-contacts-filter): Add a PROP-MATCH
argument.
(org-contacts-gnus-article-from-get-marker): Search for email as a
property not a tag.
`org-contacts-gnus-article-from-get-marker' seems to assume that the
contact properties exist within the contact's tags as colon-separated
KEY={VALUE} entries. This isn't the case for me, using org-mode from
git master.
This commit adds a PROP-MATCH argument to `org-contacts-filter' so
that `org-contacts-gnus-article-from-get-marker` can filter by the
EMAIL property.
* contrib/lisp/org-contacts.el (org-contacts-db): Use
`make-progress-reporter' instead of `message' for messages. Also
change the sentence to present progressive tense.
* ox-taskjuggler.el (org-taskjuggler-project-plan): Use the
project name as the title of the (default) report if the
document title is empty.
Thanks to Eric S Fraga for reporting this bug.
* ox-taskjuggler.el (org-taskjuggler-get-start): Use memq
instead of member as we are searching for symbols. Also
search in valid-task-attributes instead of
valid-resource-attributes.
* contrib/lisp/org-contacts.el (org-contacts-property-values-separators):
Definition of a new constant that will be used as default value of
separators for `org-contacts-split-property'.
* contrib/lisp/org-contacts.el (org-contacts-vcard-format): We are now
using the default separator in general.
* contrib/lisp/org-contacts.el (org-contacts-show-map): Line break
corrected.
* contrib/lisp/org-contacts.el (org-contacts-split-property): Correct
the comment describing the function. Application of the newly
defined constant `org-contacts-property-values-separators'.
* contrib/lisp/org-contacts.el (org-contacts-split-property):
Introduce a custom version of split-string that keeps org links
intact.
* contrib/lisp/org-contacts.el (org-contacts-strip-link): Introduce a
new function that removes brackets, description, link type and colon
from an org link string returning the pure link target.
* contrib/lisp/org-contacts.el (provide 'org-contacts): Remove a
redundant line.
* contrib/lisp/org-contacts.el (org-contacts-complete-group,
org-contacts-complete-name, org-contacts-view-send-email,
org-contacts-get-icon, org-contacts-vcard-format): Apply the new
functions to the already existing functions extracting telephone
numbers and email addresses from the properties.
Allowed separators for email addresses and phone numbers are `,', `;'
and whitespace. `:' is not allowed anymore as separator to avoid
confusion with implicit links.
Examples of properties that are possible after those changes:
* Surname, Name
:PROPERTIES:
:EMAIL: mailto:test2@test.de; [[mailto:name@test.de]] foo@bar.biz
:PHONE: [[tel:+49 351 4129535]], +491766626196 [[+49 (351) 41295-35]]
:END:
Phone links of the form [[tel:+49 351 412 95-35][My phone number]] or
[[tel:+49 351 41295-35]] are expected. `-', `/', `(', `)' and
whitespace characters are allowed in telephone numbers.
* contrib/lisp/org-contacts.el (org-contacts-db): fix typo in the
word `matching'.
* contrib/lisp/org-contacts.el (org-contacts-complete-group): fix typo
in the word `found'.
TINYCHANGE
* ox-taskjuggler.el (org-taskjuggler-resolve-dependencies): When
resolving dependencies do not only look for matching task_id
properties but also for the standard ID property.
That way the user can make use of the standard org-id functionality to
create unique ids for a task and yanking the id in another task as a
BLOCKER.
* ox-taskjuggler.el (org-taskjuggler-default-reports)
(org-taskjuggler-project-plan): If the default reports contain
%title it will be replaced with the document title.
This is based on a suggestion by John Hendy.
* ox-taskjuggler.el (org-taskjuggler-get-start): Use both the
scheduled and the start property (if it is in
org-taskjuggler-valid-resource-attributes) to determine the
start of a task or the project.
Thanks to John Hendy for the report and thorough analysis.
* ox-taskjuggler.el (org-taskjuggler-process-command)
(org-taskjuggler-reports-directory): Add a defcustom to define
the tj3 command and the directory where the reports are to be
generated.
(org-taskjuggler-export-and-process)
(org-taskjuggler-export-process-and-open): Split the command
so that you can now process and open in separate commands.
(org-taskjuggler-compile): New function to process a tjp file
using org-taskjuggler-process-command.
Finally we have support for processing and opening the exported file
with tj3. For TaskJuggler 2.4 this always worked. Now it also works
for tj3. `org-taskjuggler-export-and-process' exports the file and
runs it through tj3. `org-taskjuggler-export-process-and-open'
additionally opens the reports in a browser.
* ox-koma-letter.el (org-koma-letter-template): Treat `#+LCO:'
variable as a list of multiple LCO files separated by spaces.
Example:
#+LCO: Default Signed
will result in the following LaTeX fragment
#+BEGIN_SRC latex
\LoadLetterOption{Default}
\LoadLetterOption{Signed}
#+END_SRC
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el ((org-koma-letter-use-subject):
Configure printing of subject line.
(org-koma-letter-use-backaddress): Configure presence of back
address.
(org-koma-letter-use-foldmarks): Configure presence of foldmarks.
(org-koma-letter-use-phone): Configure printing of phone number.
(org-koma-letter-use-email): Configure printing of email.
(org-koma-letter-use-place): Configure printing of place.
(koma-letter): Add export option to exporter backend.
(org-koma-letter-template): Evaluate export options in
exporter template.
Usage:
#+OPTIONS: backaddress:t foldmarks:t subject:titled phone:t email:t place:t
Except for `subject', all options are boolean, i.e., the accept the
values `nil' and `t'. `subject' accepts the values defined in
`scrlttr2`, i.e., `afteropening', `beforeopening', `centered', `left',
`right', `titled', `underlined', and `untitled'.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el (org-koma-letter-closing): More
business-like closing.
(org-koma-letter-from-address): Do not set default personal
information.
(org-koma-letter-opening): Gendered opening.
(org-koma-letter-phone-number): Do not set default personal
information.
(org-koma-letter-sender): Use `#+SENDER:' instead of
`#+AUTHOR:' because the latter is always set by the LaTeX
exporter.
(org-koma-letter-email): Duplicte `#+EMAIL:' in this exporter
because it is always set by the LaTeX exporter.
(koma-letter): Add additional `#+SENDER:' and `#+EMAIL:' to
exporter (see above).
(org-koma-letter-template): Set LCO before evaluating other
KOMA variables if they are set; add `#+SENDER:' and `#+EMAIL:'
to template (see above).
The LCO file is set loaded first and KOMA variables are only set if
their value is not `nil'.
Example:
#+LCO: Default
#+SIGNATURE: A friend
will result in the following LaTeX code:
#+BEGIN_SRC latex
\LoadLetterOption{Default} % LCO file, with default signature
\setkomavar{signature}{A friend} % Overwrite signature
#+END_SRC
Other KOMA variables defined in the LCO file, e.g., `fromaddress', will
not be overwritten.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-koma-letter.el (koma-letter): Use `L' to export to LaTeX
buffer, `l' to export to LaTeX file, and `o' to export to PDF
file and open.
Patch suggested by Rasmus.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-taskjuggler.el (org-taskjuggler-default-reports): Set the default
reports so that the user gets a good out-of-the-box experience with
tj3.
The defaults in the defcustom now out-of-the-box support tj3. If you
really want to export to taskjuggler 2.x the documentation explains
how you can do that.
* ox-taskjuggler.el: Update the comment section to TaskJuggler
3.x.
(org-taskjuggler-target-version): Add a link to
`org-taskjuggler-default-reports' to make it clear that both
need to be changed in order to support TaskJuggler 2.4.
* contrib/lisp/org-contacts.el (org-contacts-alias-property): add new
varible
(org-contacts-matcher): add org-contacts-alias-property to this list
Name alias is a very useful feature, especially for CJK users.
* contrib/lisp/org-contacts.el (org-contacts-export-as-vcard): Don't use
non-existent function `org-install-letbind'.
Thanks to Simon Thum for reporting this.
* org-contacts.el (org-contacts-vcard-format): let the function
work with email-address list.
The org-contact file is :
* Name
:PROPERTIES:
:EMAIL: name1@test.org; name2@test.org, name3@test.orgname4@test.org
:END:
The export result is like:
BEGIN:VCARD
VERSION:3.0
N:Name;;;
FN:Name
EMAIL:name1@test.org
EMAIL:name2@test.org
EMAIL:name3@test.org
EMAIL:name4@test.org
END:VCARD
* contrib/lisp/org-git-link.el: Wrap into `eval-and-compile'
to silent warnings.
(org-git-show): Use `with-current-buffer' instead
of (save-excursion (set-buffer ...))
TINYCHANGE
* contrib/lisp/ox-deck.el (org-deck--build-meta-info): Use
`org-export-get-date'.
* contrib/lisp/ox-groff.el (org-groff--mt-head): Use
`org-export-get-date'.
* contrib/lisp/ox-koma-letter.el (org-koma-letter-template): Use
`org-export-get-date'.
* ox-rss.el (org-rss-headline): Convert the PUBDATE property
value to a RFC 822 time string.
(org-rss-add-pubdate-property): Set the PUBDATE property value
as an Org time-stamp, so that users can edit it easily.
* contrib/lisp/ox-s5.el (org-s5-template): Set org-html-divs based on
:html-container. If it's "li", use XOXO format ("ol").
(org-s5-divs): Changed to internal variable from option and renamed to
`org--s5--divs' -- Changing the element type or id of the
preamble (header) or postamble (footer) breaks the S5 stylesheets.
backend.
* lisp/ox-html.el (org-html--build-pre/postamble): Add css class to
wrapper div (defaults to `org-pre/postamble-class'). Move spec
building to separate function (`org-html-format-spec').
(org-html-format-spec): New function.
(org-pre/postamble-class): New variable.
* contrib/lisp/ox-deck.el: Replace :html-{pre,post}amble export
options with :deck versions.
(org-deck-postamble): Replaces `org-deck-postamble-template', uses
format-spec (and `org-html-format-spec') instead of custom template
option.
(org-deck-preamble): Replaces `org-deck-postamble-template', uses
format-spec (and `org-html-format-spec') instead of custom template
option.
(org-deck-title-slide-template): Use standard format specs.
(org-deck-template): Use org-html--build-pre/postamble instead of
`org-deck-fill-template'. Use fill-template for title slide (with
standard format specs) instead of custom `org-fill-template'
(org-deck-template-alist): Delete.
(org-deck-postamble-template): Delete.
(org-deck-preamble-template): Delete.
* contrib/lisp/ox-s5.el: Same overall set of changes as ox-deck.
(org-s5-divs): New option, similar usage to `org-html-divs'.
(org-s5-footer-template): Delete.
(org-s5-header-template): Delete.
specification.
* contrib/lisp/ox-deck.el:
- Rename header/footer options and methods to preamble/postamble to
be more consistent with underlining html exporter. Also remove
included wrapper section to allow for using the element specified in
`org-html-divs'.
- add `org-deck-preamble-postamble-styles' variable
- Rename `org-deck-title-page-styles' to `org-deck-styles'.
- Rename `org-deck-title-page-* to `org-deck-title-slide-*'
(org-deck-template):
- use :html-doctype instead of forcing html5.
- use xhtml valid meta charset tag
- Use elements specified in `org-html-divs'.
- Cleanup embeded css (move into a single style section)
* contrib/lisp/ox-s5.el:
- Use `org-html-div' container class for content
- Change header/footer templates to remove wrapper from
customization string.
(org-s5-toc): Use :html-container instead of hard-coded div.
(org-s5-template): use :html-doctype, :html-container and
`org-html-divs' container class.
* contrib/lisp/org-bullets.el (org-bullets-mode): Remove bad require.
Add comma in backticked list to evaluate org-outline-regexp-bol,
which replaced a regexp constant.
* lisp/ox.el (org-export-read-attribute): Do not use `read' to read
attributes. Instead, extract keywords and values from it, which
means each value will be a string when non-nil.
* contrib/lisp/ox-groff.el (org-groff-link--inline-image): Use new
attribute syntax. Small refactoring.
* lisp/ox-ascii.el (org-ascii-horizontal-rule): Use new attribute
syntax.
* lisp/ox-beamer.el (org-beamer-plain-list): Use new attribute syntax.
* lisp/ox-html.el (org-html--textarea-block): Use new attribute
syntax.
* lisp/ox-latex.el (org-latex--inline-image, org-latex--org-table,
org-latex--math-table): Use new attribute syntax.
* lisp/ox-man.el (org-man-table--org-table): Use new attribute syntax.
Small refactoring.
* lisp/ox-odt.el (org-odt-link--inline-image, org-odt-table-cell): Use
new attribute syntax.
* testing/lisp/test-ox.el: Add tests.
This patch introduces two changes. To begin with, it removes the need
for quoting and escaping characters. Also, all non-nil values are
stored as strings. As an exception "nil" is stored as nil.