From eb6fe567a91429c0c2a15616271f3148e4494798 Mon Sep 17 00:00:00 2001 From: Visuwesh Date: Wed, 9 Oct 2024 19:36:18 +0530 Subject: [PATCH] Add imenu support for ODF files in doc-view * lisp/doc-view.el (doc-view--outline): Pass the right file to doc-view--pdf-outline. * doc/emacs/misc.texi (DocView Navigation): Mention support for Open Format Document (ODF) files too. * etc/NEWS: Announce the change. (bug#73719) (cherry picked from commit 9ddeeda8ce156201ea3c8cc8d6b388efb4d80bef) --- doc/emacs/misc.texi | 15 +++++++++------ etc/NEWS | 8 +++++--- lisp/doc-view.el | 2 ++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index d995d2e5297..288beeaf50c 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -586,12 +586,15 @@ default size for DocView, customize the variable @vindex doc-view-djvused-program DocView can generate an outline menu for PDF and DjVu documents using the @command{mutool} and the @command{djvused} programs, respectively, -when they are available. This uses the @code{imenu} facility -(@pxref{Imenu}). You can customize how the @code{imenu} items for this -outline are formatted and displayed using the variables -@code{doc-view-imenu-format} and @code{doc-view-imenu-flatten}. The -filename of the @command{djvused} program can be customized by changing -the @code{doc-view-djvused-program} user option. +when they are available. The outline for Open Document Format files as +used by OpenOffice and LibreOffice are also generated using the +@command{mutool} after they are converted to PDF. This uses the +@code{imenu} facility (@pxref{Imenu}). You can customize how the +@code{imenu} items for this outline are formatted and displayed using +the variables @code{doc-view-imenu-format} and +@code{doc-view-imenu-flatten}. The filename of the @command{djvused} +program can be customized by changing the +@code{doc-view-djvused-program} user option. @node DocView Searching @subsection DocView Searching diff --git a/etc/NEWS b/etc/NEWS index 66d822eda2e..7bb4d60ac06 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -334,10 +334,12 @@ command 'doc-view-page-to-register' (bound to 'm'), and later the stored page can be restored with 'doc-view-jump-to-register' (bound to '''). +++ -*** Docview can generate imenu index for DjVu files. +*** Docview can generate imenu index for DjVu and ODF documents. When the 'djvused' program is available, Docview can now generate imenu -index for DjVu files from its outline. -The name of the 'djvused' program can be customized by changing the user +index for DjVu files from its outline. Index for Open Document Format +(ODF) files as used by OpenOffice and LibreOffice are generated using +the 'mutool' program after their initial conversion to PDF format. The +name of the 'djvused' program can be customized by changing the user option 'doc-view-djvused-program'. ** Tramp diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 392f4b5e506..e56f4bc3f8e 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -2100,6 +2100,8 @@ If FILE-NAME is nil, use the current file instead." ('djvu (when doc-view-djvused-program (doc-view--djvu-outline file-name))) + ('odf + (doc-view--pdf-outline (doc-view-current-cache-doc-pdf))) (_ (doc-view--pdf-outline file-name))))) (when outline (imenu-add-to-menubar "Outline")) -- 2.39.5