emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 5eaf787 078/272: doc/ivy.org: Improve the Texinfo/HTML exp


From: Oleh Krehel
Subject: [elpa] master 5eaf787 078/272: doc/ivy.org: Improve the Texinfo/HTML export structure
Date: Mon, 25 Apr 2016 10:13:17 +0000

branch: master
commit 5eaf78780e70e9328c8802ebb4c94841f9c8c500
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    doc/ivy.org: Improve the Texinfo/HTML export structure
    
    * doc/ivy-ox.el: Store the settings for org-mode export to HTML and
      Texinfo.
    
    * doc/ivy.texi: Update.
    
    * doc/style.css: Remove. Rely on theme-readtheorg.setup instead.
    
    The HTML file shouldn't be in this repository to avoid bloat, instead
    it's in the gh-pages branch at
    https://github.com/abo-abo/swiper/tree/gh-pages.
---
 doc/ivy-ox.el |  147 ++++++++++++++++++++++++++++++++++++++++++++
 doc/ivy.org   |  189 +++++++++++++++++++++++++++++++++++----------------------
 doc/ivy.texi  |  108 ++++++++++++++-------------------
 doc/style.css |  107 --------------------------------
 4 files changed, 311 insertions(+), 240 deletions(-)

diff --git a/doc/ivy-ox.el b/doc/ivy-ox.el
new file mode 100644
index 0000000..cb0d2fc
--- /dev/null
+++ b/doc/ivy-ox.el
@@ -0,0 +1,147 @@
+;;; ivy-ox.el --- org-export settings for Ivy
+
+;; Copyright (C) 2015  Free Software Foundation, Inc.
+
+;; Author: Oleh Krehel
+
+;; This file is part of GNU Emacs.
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; For a full copy of the GNU General Public License
+;; see <http://www.gnu.org/licenses/>.
+
+;;* ox-texinfo
+(require 'ox-texinfo)
+(org-export-define-backend 'texinfo
+  '((bold . org-texinfo-bold)
+    (center-block . org-texinfo-center-block)
+    (clock . org-texinfo-clock)
+    (code . org-texinfo-kbd)
+    (drawer . org-texinfo-drawer)
+    (dynamic-block . org-texinfo-dynamic-block)
+    (entity . org-texinfo-entity)
+    (example-block . org-texinfo-example-block)
+    (export-block . org-texinfo-export-block)
+    (export-snippet . org-texinfo-export-snippet)
+    (fixed-width . org-texinfo-fixed-width)
+    (footnote-definition . org-texinfo-footnote-definition)
+    (footnote-reference . org-texinfo-footnote-reference)
+    (headline . org-texinfo-headline)
+    (inline-src-block . org-texinfo-inline-src-block)
+    (inlinetask . org-texinfo-inlinetask)
+    (italic . org-texinfo-italic)
+    (item . org-texinfo-item)
+    (keyword . org-texinfo-keyword)
+    (line-break . org-texinfo-line-break)
+    (link . org-texinfo-link)
+    (node-property . org-texinfo-node-property)
+    (paragraph . org-texinfo-paragraph)
+    (plain-list . org-texinfo-plain-list)
+    (plain-text . org-texinfo-plain-text)
+    (planning . org-texinfo-planning)
+    (property-drawer . org-texinfo-property-drawer)
+    (quote-block . org-texinfo-quote-block)
+    (radio-target . org-texinfo-radio-target)
+    (section . org-texinfo-section)
+    (special-block . org-texinfo-special-block)
+    (src-block . org-texinfo-src-block)
+    (statistics-cookie . org-texinfo-statistics-cookie)
+    (subscript . org-texinfo-subscript)
+    (superscript . org-texinfo-superscript)
+    (table . org-texinfo-table)
+    (table-cell . org-texinfo-table-cell)
+    (table-row . org-texinfo-table-row)
+    (target . org-texinfo-target)
+    (template . org-texinfo-template)
+    (timestamp . org-texinfo-timestamp)
+    (verbatim . org-texinfo-code)
+    (verse-block . org-texinfo-verse-block))
+  :filters-alist
+  '((:filter-headline . org-texinfo--filter-section-blank-lines)
+    (:filter-parse-tree . org-texinfo--normalize-headlines)
+    (:filter-section . org-texinfo--filter-section-blank-lines))
+  :menu-entry
+  '(?i "Export to Texinfo"
+    ((?t "As TEXI file" org-texinfo-export-to-texinfo)
+     (?i "As INFO file" org-texinfo-export-to-info)
+     (?o "As INFO file and open"
+      (lambda (a s v b)
+        (if a (org-texinfo-export-to-info t s v b)
+          (org-open-file (org-texinfo-export-to-info nil s v b)))))))
+  :options-alist
+  '((:texinfo-filename "TEXINFO_FILENAME" nil nil t)
+    (:texinfo-class "TEXINFO_CLASS" nil org-texinfo-default-class t)
+    (:texinfo-header "TEXINFO_HEADER" nil nil newline)
+    (:texinfo-post-header "TEXINFO_POST_HEADER" nil nil newline)
+    (:subtitle "SUBTITLE" nil nil parse)
+    (:subauthor "SUBAUTHOR" nil nil newline)
+    (:texinfo-dircat "TEXINFO_DIR_CATEGORY" nil nil t)
+    (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t)
+    (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t)
+    (:texinfo-printed-title "TEXINFO_PRINTED_TITLE" nil nil t)
+    ;; Other variables.
+    (:texinfo-classes nil nil org-texinfo-classes)
+    (:texinfo-format-headline-function nil nil 
org-texinfo-format-headline-function)
+    (:texinfo-node-description-column nil nil 
org-texinfo-node-description-column)
+    (:texinfo-active-timestamp-format nil nil 
org-texinfo-active-timestamp-format)
+    (:texinfo-inactive-timestamp-format nil nil 
org-texinfo-inactive-timestamp-format)
+    (:texinfo-diary-timestamp-format nil nil 
org-texinfo-diary-timestamp-format)
+    (:texinfo-link-with-unknown-path-format nil nil 
org-texinfo-link-with-unknown-path-format)
+    (:texinfo-tables-verbatim nil nil org-texinfo-tables-verbatim)
+    (:texinfo-table-scientific-notation nil nil 
org-texinfo-table-scientific-notation)
+    (:texinfo-def-table-markup nil nil org-texinfo-def-table-markup)
+    (:texinfo-text-markup-alist nil nil org-texinfo-text-markup-alist)
+    (:texinfo-format-drawer-function nil nil 
org-texinfo-format-drawer-function)
+    (:texinfo-format-inlinetask-function nil nil 
org-texinfo-format-inlinetask-function)))
+
+(defun org-texinfo-kbd (code _contents _info)
+  "Transcode a CODE object from Org to Texinfo."
+  (format "@kbd{%s}" (org-element-property :value code)))
+
+(defun org-texinfo-plain-list (plain-list contents info)
+  "Transcode a PLAIN-LIST element from Org to Texinfo.
+CONTENTS is the contents of the list.  INFO is a plist holding
+contextual information."
+  (let* ((attr (org-export-read-attribute :attr_texinfo plain-list))
+         (indic (or (plist-get attr :indic)
+                    (plist-get info :texinfo-def-table-markup)))
+         (table-type (plist-get attr :table-type))
+         (type (org-element-property :type plain-list))
+         (list-type (cond
+                      ((eq type 'ordered) "enumerate")
+                      ((eq type 'unordered) "itemize")
+                      ((member table-type '("ftable" "vtable")) table-type)
+                      (t "table"))))
+    (if (equal list-type "table")
+        (mapconcat (lambda (s)
+                     (concat "@subsubheading" s))
+                   (split-string (substring-no-properties contents) 
"address@hidden" t)
+                   "\n")
+      (format "@address@hidden %s"
+              (if (eq type 'descriptive) (concat list-type " " indic) 
list-type)
+              contents
+              list-type))))
+
+;;* ox-html
+(require 'ox-html)
+(setq org-html-validation-link nil)
+(setq org-html-postamble nil)
+(setq org-html-text-markup-alist
+      '((bold . "<b>%s</b>")
+        (code . "<kbd>%s</kbd>")
+        (italic . "<i>%s</i>")
+        (strike-through . "<del>%s</del>")
+        (underline . "<span class=\"underline\">%s</span>")
+        (verbatim . "<code>%s</code>")))
+(setq org-html-style-default nil)
+
+(provide 'ivy-ox)
diff --git a/doc/ivy.org b/doc/ivy.org
index 68c045e..b2d5203 100644
--- a/doc/ivy.org
+++ b/doc/ivy.org
@@ -1,40 +1,46 @@
 #+TITLE: Ivy User Manual
 #+AUTHOR: Oleh Krehel
 #+EMAIL: address@hidden
-#+DATE: 2015
 #+LANGUAGE: en
 
 #+TEXINFO_DIR_CATEGORY: Emacs
 #+TEXINFO_DIR_TITLE: Ivy: (ivy).
 #+TEXINFO_DIR_DESC: Using Ivy for completion.
-#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css"/>
+#+SETUPFILE: ~/git/org-html-themes/setup/theme-readtheorg.setup
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="kbd-style.css"/>
+#+EXPORT_FILE_NAME: index.html
 
 #+OPTIONS: H:6 num:6 toc:4
 #+STARTUP: indent
 * Macros                                                                       
       :noexport:
 #+MACRO: defopt #+TEXINFO: @defopt $1
 #+MACRO: endopt #+TEXINFO: @end defopt
+* Setup                                                                        
       :noexport:
+#+BEGIN_SRC elisp :exports results :results silent
+(add-to-list 'load-path default-directory)
+(require 'ivy-ox)
+#+END_SRC
 * Copying
 :PROPERTIES:
 :COPYING:  t
+:CUSTOM_ID: copying
 :END:
-
-#+BEGIN_TEXINFO
address@hidden
+#+TEXINFO: @ifnottex
 Ivy manual, version 0.7.0
 
 Ivy is an interactive interface for completion in Emacs. Emacs uses
 completion mechanism in a variety of contexts: code, menus, commands,
 variables, functions, etc. Completion entails listing, sorting,
 filtering, previewing, and applying actions on selected items. When
-active, @code{ivy-mode} completes the selection process by narrowing
+active, =ivy-mode= completes the selection process by narrowing
 available choices while previewing in the minibuffer. Selecting the
 final candidate is either through simple keyboard character inputs or
-through powerful regular expressions. @end ifnottex
+through powerful regular expressions.
+#+TEXINFO: @end ifnottex
 
-Copyright @copyright{} 2015 Free Software Foundation, Inc.
+Copyright (C) 2015 Free Software Foundation, Inc.
 
address@hidden
+#+BEGIN_QUOTE
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
@@ -44,10 +50,13 @@ is included in the section entitled ``GNU Free 
Documentation License.''
 
 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
 modify this GNU manual.''
address@hidden quotation
-#+END_TEXINFO
+#+END_QUOTE
 
+#+HTML: <a 
href="https://github.com/abo-abo/swiper/blob/master/doc/ivy.org";>This manual 
source</a>
 * Introduction
+:PROPERTIES:
+:CUSTOM_ID: introduction
+:END:
 Ivy is for quick and easy selection from a list. When Emacs prompts
 for a string from a list of several possible choices, Ivy springs into
 action to assist in narrowing and picking the right string from a vast
@@ -56,17 +65,13 @@ number of choices.
 Ivy strives for minimalism, simplicity, customizability and
 discoverability.
 
-#+BEGIN_TEXINFO
address@hidden Minimalism
-#+END_TEXINFO
+- Minimalism ::
 Uncluttered minibuffer is minimalism. Ivy shows the completion
 defaults, the number of matches, and 10 candidate matches below the
 input line. Customize =ivy-length= to adjust the number of candidate
 matches displayed in the minibuffer.
 
-#+BEGIN_TEXINFO
address@hidden Simplicity
-#+END_TEXINFO
+- Simplicity ::
 Simplicity is about Ivy's behavior in the minibuffer. It is also about
 the code interface to extend Ivy's functionality. The minibuffer area
 behaves as close to =fundamental-mode= as possible. ~SPC~ inserts a
@@ -75,9 +80,7 @@ space, for example, instead of being bound to the more complex
 variables; avoids needless complications with branch-introducing
 custom macros.
 
-#+BEGIN_TEXINFO
address@hidden Customizability
-#+END_TEXINFO
+- Customizability ::
 Customizability is about being able to use different methods and
 interfaces of completion to tailor the selection process. For example,
 adding a custom display function that points to a selected candidate
@@ -88,9 +91,7 @@ after the candidate function is selected. ~RET~ uses
 jumps to that function's definition in the code. The ~M-o~ prefix can
 be uniformly used with characters like ~d~ to group similar actions.
 
-#+BEGIN_TEXINFO
address@hidden Discoverability
-#+END_TEXINFO
+- Discoverability ::
 Ivy displays easily discoverable commands through the hydra facility.
 ~C-o~ in the minibuffer displays a hydra menu. It opens up within an
 expanded minibuffer area. Each menu item comes with short
@@ -101,11 +102,17 @@ discoverability minimizes exiting Ivy interface for 
documentation
 look-ups.
 
 * Installation
+:PROPERTIES:
+:CUSTOM_ID: installation
+:END:
 
 Install Ivy automatically through Emacs's package manager, or manually
 from Ivy's development repository.
 
 ** Installing from Emacs Package Manager
+:PROPERTIES:
+:CUSTOM_ID: installing-from-emacs-package-manager
+:END:
 
 ~M-x~ =package-install= ~RET~ =swiper= ~RET~
 
@@ -129,6 +136,9 @@ After this do ~M-x~ =package-refresh-contents= ~RET~, 
followed by
 For package manager details, see [[info:emacs#Packages]].
 
 ** Installing from the Git repository
+:PROPERTIES:
+:CUSTOM_ID: installing-from-the-git-repository
+:END:
 
 Why install from Git?
 
@@ -157,8 +167,10 @@ make
 #+end_src
 
 * Getting started
-
-First enable Ivy completion everywhere:
+:PROPERTIES:
+:CUSTOM_ID: getting-started
+:END:
+First, enable Ivy completion everywhere:
 
 #+begin_src elisp
 (ivy-mode 1)
@@ -166,6 +178,9 @@ First enable Ivy completion everywhere:
 
 Note: =ivy-mode= can be toggled on and off with ~M-x~ =ivy-mode=.
 ** Basic customization
+:PROPERTIES:
+:CUSTOM_ID: basic-customization
+:END:
 Here are some basic settings particularly useful for new Ivy
 users:
 #+begin_src elisp
@@ -179,12 +194,16 @@ For additional customizations, refer to =M-x 
describe-variable=
 documentation.
 
 * Key bindings
+:PROPERTIES:
+:CUSTOM_ID: key-bindings
+:END:
 ** Global key bindings
+:PROPERTIES:
+:CUSTOM_ID: global-key-bindings
+:END:
+The recommended key bindings are:
 
-Recommended key bindings are:
-#+BEGIN_TEXINFO
address@hidden Ivy-based interface to standard commands
-#+END_TEXINFO
+- Ivy-based interface to standard commands ::
 #+begin_src elisp
 (global-set-key (kbd "C-s") 'swiper)
 (global-set-key (kbd "M-x") 'counsel-M-x)
@@ -195,9 +214,8 @@ Recommended key bindings are:
 (global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
 (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
 #+end_src
-#+BEGIN_TEXINFO
address@hidden Ivy-based interface to shell and system tools
-#+END_TEXINFO
+
+- Ivy-based interface to shell and system tools ::
 #+begin_src elisp
 (global-set-key (kbd "C-c g") 'counsel-git)
 (global-set-key (kbd "C-c j") 'counsel-git-grep)
@@ -205,15 +223,17 @@ Recommended key bindings are:
 (global-set-key (kbd "C-x l") 'counsel-locate)
 (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
 #+end_src
-#+BEGIN_TEXINFO
address@hidden Ivy-resume and other commands
-#+END_TEXINFO
+
+- Ivy-resume and other commands ::
 =ivy-resume= resumes the last Ivy-based completion.
 #+begin_src elisp
 (global-set-key (kbd "C-c C-r") 'ivy-resume)
 #+end_src
 
 ** Minibuffer key bindings
+:PROPERTIES:
+:CUSTOM_ID: minibuffer-key-bindings
+:END:
 
 Ivy includes several minibuffer bindings, which are defined in the
 =ivy-minibuffer-map= keymap variable. The most frequently used ones
@@ -224,6 +244,9 @@ are described here.
 under their respective commands.
 
 *** Key bindings for navigation
+:PROPERTIES:
+:CUSTOM_ID: key-bindings-for-navigation
+:END:
 
 - ~C-n~ (=ivy-next-line=) selects the next candidate
 - ~C-p~ (=ivy-previous-line=) selects the previous candidate
@@ -246,6 +269,9 @@ scroll size for ~C-v~ and ~M-v~.
 {{{endopt}}}
 
 *** Key bindings for single selection, action, then exit minibuffer
+:PROPERTIES:
+:CUSTOM_ID: key-bindings-for-single-selection-action-then-exit-minibuffer
+:END:
 
 Ivy can offer several actions from which to choose which action to
 run. This "calling an action" operates on the selected candidate. For
@@ -285,14 +311,14 @@ current input to create a new directory with 
=dired-create-directory=.
 an action on the /currently selected/ candidate and calling an action
 on the /current input/.
 
-#+BEGIN_TEXINFO
-Invoking avy completion with @kbd{C-'} (@code{ivy-avy}).
-#+END_TEXINFO
-~C-'~ uses avy's visible jump mechanism, which can further reduce
-Ivy's line-by-line scrolling that requires multiple ~C-n~ or ~C-p~
-keystrokes.
+~C-'~ (=ivy-avy=) uses avy's visible jump mechanism, which can further
+reduce Ivy's line-by-line scrolling that requires multiple ~C-n~ or
+~C-p~ keystrokes.
 
 *** Key bindings for multiple selections and actions, keep minibuffer open
+:PROPERTIES:
+:CUSTOM_ID: 
key-bindings-for-multiple-selections-and-actions-keep-minibuffer-open
+:END:
 
 For repeatedly applying multiple actions or acting on multiple
 candidates, Ivy does not close the minibuffer between commands. It
@@ -329,6 +355,9 @@ the same as above except that it moves through the list in 
the other
 direction.
 
 *** Key bindings that alter the minibuffer input
+:PROPERTIES:
+:CUSTOM_ID: key-bindings-that-alter-the-minibuffer-input
+:END:
 
 ~M-n~ (=ivy-next-history-element=) and ~M-p~
 (=ivy-previous-history-element=) cycle through the Ivy command
@@ -355,11 +384,17 @@ completion, the selected candidate string is inserted 
into the
 minibuffer.
 
 *** Other key bindings
+:PROPERTIES:
+:CUSTOM_ID: other-key-bindings
+:END:
 
 ~M-w~ (=ivy-kill-ring-save=) copies selected candidates to the kill
 ring; when the region is active, copies active region.
 
 *** Hydra in the minibuffer
+:PROPERTIES:
+:CUSTOM_ID: hydra-in-the-minibuffer
+:END:
 
 ~C-o~ (=hydra-ivy/body=) invokes Hydra menus with key shortcuts.
 
@@ -375,6 +410,9 @@ bindings:
 Minibuffer editing is disabled when Hydra is active.
 
 *** Saving the current completion session to a buffer
+:PROPERTIES:
+:CUSTOM_ID: saving-the-current-completion-session-to-a-buffer
+:END:
 
 ~C-c C-o~ (=ivy-occur=) saves the current candidates to a new buffer;
 the list is active in the new buffer.
@@ -389,6 +427,9 @@ descriptive names, for example: =*ivy-occur 
counsel-describe-variable
 "function$*=.
 
 * Completion styles
+:PROPERTIES:
+:CUSTOM_ID: completion-styles
+:END:
 
 Ivy's completion functions rely on the highly configurable regex
 builder.
@@ -414,6 +455,9 @@ flexibility, Ivy operates within a consistent and uniform 
interface.
 The main regex-builders currently in Ivy are:
 
 ** ivy--regex-plus
+:PROPERTIES:
+:CUSTOM_ID: ivy--regex-plus
+:END:
 
 =ivy--regex-plus= is Ivy's default completion method.
 
@@ -421,54 +465,57 @@ The main regex-builders currently in Ivy are:
 rebuilding it into a regex.
 
 As the search string is typed in Ivy's minibuffer, it is transformed
-into proper regex syntax. If the string is "for example", it is
+into proper regex syntax. If the string is ="for example"=, it is
 transformed into
 
-#+BEGIN_EXAMPLE
+#+begin_src elisp
 "\\(for\\).*\\(example\\)"
-#+END_EXAMPLE
+#+end_src
 
-which in regex terminology matches "for" followed by a wild card and
-then "example". Note how Ivy uses the space character to build
-wild cards. For literal white space matching in Ivy, use an extra space:
-to match one space type two spaces, to match two spaces type three
+which in regex terminology matches ="for"= followed by a wild card and
+then ="example"=. Note how Ivy uses the space character to build wild
+cards. For literal white space matching in Ivy, use an extra space: to
+match one space type two spaces, to match two spaces type three
 spaces, and so on.
 
 As Ivy transforms typed characters into regex strings, it provides an
 intuitive feedback through font highlights.
 
-Ivy supports regexp negation with "!". For example, "define key ! ivy
-quit" first selects everything matching "define.*key", then removes
-everything matching "ivy", and finally removes everything matching
-"quit". What remains is the final result set of the negation regexp.
-
-#+BEGIN_EXAMPLE
-Standard regexp identifiers work:
+Ivy supports regexp negation with ="!"=. 
+For example, ="define key ! ivy quit"= first selects everything
+matching ="define.*key"=, then removes everything matching ="ivy"=,
+and finally removes everything matching ="quit"=. What remains is the
+final result set of the negation regexp.
 
-"^", "$", "\b" or "[a-z]"
-#+END_EXAMPLE
-
-Since Ivy treats minibuffer input as a regexp, standard regexp
-identifiers work as usual. The exceptions are spaces, which
-translate to ".*", and "!" that signal the beginning of a negation
-group.
+Since Ivy treats minibuffer input as a regexp, the standard regexp
+identifiers work: ="^"=, ="$"=, ="\b"= or ="[a-z]"=. The exceptions
+are spaces, which translate to =".*"=, and ="!"= that signal the
+beginning of a negation group.
 
 ** ivy--regex-ignore-order
+:PROPERTIES:
+:CUSTOM_ID: ivy--regex-ignore-order
+:END:
 
 =ivy--regex-ignore-order= ignores the order of regexp tokens when
-searching for matching candidates. For instance, the input "for
-example" will match "example test for". Otherwise =ivy--regex-plus=
-normal behavior is to honor the order of regexp tokens.
+searching for matching candidates. For instance, the input 
+="for example"= will match ="example test for"=. 
 
 ** ivy--regex-fuzzy
+:PROPERTIES:
+:CUSTOM_ID: ivy--regex-fuzzy
+:END:
 
 =ivy--regex-fuzzy= splits each character with a wild card. Searching
-for "for" returns all "f.*o.*r" matches, resulting in a large number
-of hits.  Yet some searches need these extra hits. Ivy sorts such
-large lists using =flx= package's scoring mechanism, if it's
+for ="for"= returns all ="f.*o.*r"= matches, resulting in a large
+number of hits.  Yet some searches need these extra hits. Ivy sorts
+such large lists using =flx= package's scoring mechanism, if it's
 installed.
 
 * Variable Index
-#+BEGIN_TEXINFO
address@hidden vr
-#+END_TEXINFO
+:PROPERTIES:
+:INDEX:    vr
+:CUSTOM_ID: variable-index
+:END:
+
+
diff --git a/doc/ivy.texi b/doc/ivy.texi
index b06c68c..42b8a91 100644
--- a/doc/ivy.texi
+++ b/doc/ivy.texi
@@ -17,9 +17,10 @@ filtering, previewing, and applying actions on selected 
items. When
 active, @code{ivy-mode} completes the selection process by narrowing
 available choices while previewing in the minibuffer. Selecting the
 final candidate is either through simple keyboard character inputs or
-through powerful regular expressions. @end ifnottex
+through powerful regular expressions.
address@hidden ifnottex
 
-Copyright @copyright{} 2015 Free Software Foundation, Inc.
+Copyright (C) 2015 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -84,9 +85,9 @@ Key bindings
 Minibuffer key bindings
 
 * Key bindings for navigation::
-* Key bindings for single selection, action, then exit minibuffer: Key 
bindings for single selection action then exit minibuffer.
-* Key bindings for multiple selections and actions, keep minibuffer open: Key 
bindings for multiple selections and actions keep minibuffer open.
-* Key bindings that alter minibuffer input::
+* Key bindings for single selection, action, then exit minibuffer: Key 
bindings for single selection action then exit minibuffer. 
+* Key bindings for multiple selections and actions, keep minibuffer open: Key 
bindings for multiple selections and actions keep minibuffer open. 
+* Key bindings that alter the minibuffer input::
 * Other key bindings::
 * Hydra in the minibuffer::
 * Saving the current completion session to a buffer::
@@ -168,7 +169,6 @@ command.
 For current hourly builds, use the MELPA archives. See the code below
 for adding MELPA to the list of package archives:
 
-
 @lisp
 (require 'package)
 (add-to-list 'package-archives
@@ -197,21 +197,18 @@ Contribute to Ivy's development; send patches; pull 
requests
 @strong{Configuration steps}
 
 First clone the Swiper repository:
-
 @example
 cd ~/git && git clone https://github.com/abo-abo/swiper
 cd swiper && make compile
 @end example
 
 Then add this to Emacs init:
-
 @lisp
 (add-to-list 'load-path "~/git/swiper/")
 (require 'ivy)
 @end lisp
 
 To update the code:
-
 @example
 git pull
 make
@@ -220,8 +217,7 @@ make
 @node Getting started
 @chapter Getting started
 
-First enable Ivy completion everywhere:
-
+First, enable Ivy completion everywhere:
 
 @lisp
 (ivy-mode 1)
@@ -237,7 +233,6 @@ Note: @code{ivy-mode} can be toggled on and off with 
@kbd{M-x} @code{ivy-mode}.
 
 Here are some basic settings particularly useful for new Ivy
 users:
-
 @lisp
 (setq ivy-use-virtual-buffers t)
 (setq ivy-height 10)
@@ -259,9 +254,9 @@ documentation.
 @node Global key bindings
 @section Global key bindings
 
-Recommended key bindings are:
address@hidden Ivy-based interface to standard commands
+The recommended key bindings are:
 
address@hidden Ivy-based interface to standard commands
 @lisp
 (global-set-key (kbd "C-s") 'swiper)
 (global-set-key (kbd "M-x") 'counsel-M-x)
@@ -272,8 +267,8 @@ Recommended key bindings are:
 (global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
 (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
 @end lisp
address@hidden Ivy-based interface to shell and system tools
 
address@hidden Ivy-based interface to shell and system tools
 @lisp
 (global-set-key (kbd "C-c g") 'counsel-git)
 (global-set-key (kbd "C-c j") 'counsel-git-grep)
@@ -281,9 +276,9 @@ Recommended key bindings are:
 (global-set-key (kbd "C-x l") 'counsel-locate)
 (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
 @end lisp
+
 @subsubheading Ivy-resume and other commands
 @code{ivy-resume} resumes the last Ivy-based completion.
-
 @lisp
 (global-set-key (kbd "C-c C-r") 'ivy-resume)
 @end lisp
@@ -300,9 +295,9 @@ are described here.
 under their respective commands.
 @menu
 * Key bindings for navigation::
-* Key bindings for single selection, action, then exit minibuffer: Key 
bindings for single selection action then exit minibuffer.
-* Key bindings for multiple selections and actions, keep minibuffer open: Key 
bindings for multiple selections and actions keep minibuffer open.
-* Key bindings that alter minibuffer input::
+* Key bindings for single selection, action, then exit minibuffer: Key 
bindings for single selection action then exit minibuffer. 
+* Key bindings for multiple selections and actions, keep minibuffer open: Key 
bindings for multiple selections and actions keep minibuffer open. 
+* Key bindings that alter the minibuffer input::
 * Other key bindings::
 * Hydra in the minibuffer::
 * Saving the current completion session to a buffer::
@@ -369,9 +364,7 @@ when applying multiple actions. Multiple actions and 
multiple
 selections as covered in the next section of this manual.
 
 @kbd{TAB} (@code{ivy-partial-or-done}) attempts partial completion, extending
-current input as much as possible.
-
address@hidden TAB} is the same as @kbd{C-j}.
+current input as much as possible. @kbd{TAB TAB} is the same as @kbd{C-j}.
 
 @kbd{C-M-j} (@code{ivy-immediate-done}) is useful when there is no match for
 the given input. Or there is an incorrect partial match. @kbd{C-M-j} with
@@ -382,10 +375,9 @@ current input to create a new directory with 
@code{dired-create-directory}.
 an action on the @emph{currently selected} candidate and calling an action
 on the @emph{current input}.
 
-Invoking avy completion with @kbd{C-'} (@code{ivy-avy}).
address@hidden uses avy's visible jump mechanism, which can further reduce
-Ivy's line-by-line scrolling that requires multiple @kbd{C-n} or @kbd{C-p}
-keystrokes.
address@hidden'} (@code{ivy-avy}) uses avy's visible jump mechanism, which can 
further
+reduce Ivy's line-by-line scrolling that requires multiple @kbd{C-n} or
address@hidden keystrokes.
 
 @node Key bindings for multiple selections and actions keep minibuffer open
 @subsection Key bindings for multiple selections and actions, keep minibuffer 
open
@@ -424,8 +416,8 @@ action on each successive element of the list.
 the same as above except that it moves through the list in the other
 direction.
 
address@hidden Key bindings that alter minibuffer input
address@hidden Key bindings that alter minibuffer input
address@hidden Key bindings that alter the minibuffer input
address@hidden Key bindings that alter the minibuffer input
 
 @kbd{M-n} (@code{ivy-next-history-element}) and @kbd{M-p}
 (@code{ivy-previous-history-element}) cycle through the Ivy command
@@ -438,9 +430,9 @@ minibuffer. Useful for copying and renaming files, for 
example: @kbd{M-i}
 to insert the original file name string, edit it, and then @kbd{C-m} to
 complete the renaming.
 
address@hidden (@code{ivy-yank-word}) inserts sub-word at point into 
minibuffer. This
-is similar to @kbd{C-s C-w} with @code{isearch}. Ivy reserves @kbd{C-w} for
address@hidden
address@hidden (@code{ivy-yank-word}) inserts the sub-word at point into the
+minibuffer. This is similar to @kbd{C-s C-w} with @code{isearch}. Ivy reserves
address@hidden for @code{kill-region}.
 
 @kbd{S-SPC} (@code{ivy-restrict-to-matches}) deletes the current input, and
 resets the candidates list to the currently restricted matches. This
@@ -499,7 +491,6 @@ Ivy's completion functions rely on the highly configurable 
regex
 builder.
 
 The default is:
-
 @lisp
 (setq ivy-re-builders-alist
       '((t . ivy--regex-plus)))
@@ -508,7 +499,6 @@ The default is:
 The default @code{ivy--regex-plus} narrowing is always invoked unless
 specified otherwise. For example, file name completion may have a
 custom completion function:
-
 @lisp
 (setq ivy-re-builders-alist
       '((read-file-name-internal . ivy--regex-fuzzy)
@@ -534,58 +524,52 @@ The main regex-builders currently in Ivy are:
 rebuilding it into a regex.
 
 As the search string is typed in Ivy's minibuffer, it is transformed
-into proper regex syntax. If the string is "for example", it is
+into proper regex syntax. If the string is @code{"for example"}, it is
 transformed into
 
address@hidden
address@hidden
 "\\(for\\).*\\(example\\)"
address@hidden verbatim
address@hidden lisp
 
-which in regex terminology matches "for" followed by a wild card and
-then "example". Note how Ivy uses the space character to build
-wild cards. For literal white space matching in Ivy, use an extra space:
-to match one space type two spaces, to match two spaces type three
+which in regex terminology matches @code{"for"} followed by a wild card and
+then @code{"example"}. Note how Ivy uses the space character to build wild
+cards. For literal white space matching in Ivy, use an extra space: to
+match one space type two spaces, to match two spaces type three
 spaces, and so on.
 
 As Ivy transforms typed characters into regex strings, it provides an
 intuitive feedback through font highlights.
 
-Ivy supports regexp negation with "!". For example, "define key ! ivy
-quit" first selects everything matching "define.*key", then removes
-everything matching "ivy", and finally removes everything matching
-"quit". What remains is the final result set of the negation regexp.
-
address@hidden
-Standard regexp identifiers work:
-
-"^", "$", "\b" or "[a-z]"
address@hidden verbatim
+Ivy supports regexp negation with @code{"!"}. 
+For example, @code{"define key ! ivy quit"} first selects everything
+matching @code{"define.*key"}, then removes everything matching @code{"ivy"},
+and finally removes everything matching @code{"quit"}. What remains is the
+final result set of the negation regexp.
 
-Since Ivy treats minibuffer input as a regexp, standard regexp
-identifiers work as usual. The exceptions are spaces, which
-translate to ".*", and "!" that signal the beginning of a negation
-group.
+Since Ivy treats minibuffer input as a regexp, the standard regexp
+identifiers work: @code{"^"}, @code{"$"}, @code{"\b"} or @code{"[a-z]"}. The 
exceptions
+are spaces, which translate to @code{".*"}, and @code{"!"} that signal the
+beginning of a negation group.
 
 @node ivy--regex-ignore-order
 @section ivy--regex-ignore-order
 
 @code{ivy--regex-ignore-order} ignores the order of regexp tokens when
-searching for matching candidates. For instance, the input "for
-example" will match "example test for". Otherwise @code{ivy--regex-plus}
-normal behavior is to honor the order of regexp tokens.
+searching for matching candidates. For instance, the input 
address@hidden"for example"} will match @code{"example test for"}. 
 
 @node ivy--regex-fuzzy
 @section ivy--regex-fuzzy
 
 @code{ivy--regex-fuzzy} splits each character with a wild card. Searching
-for "for" returns all "f.*o.*r" matches, resulting in a large number
-of hits.  Yet some searches need these extra hits. Ivy sorts such
-large lists using @code{flx} package's scoring mechanism, if it's
+for @code{"for"} returns all @code{"f.*o.*r"} matches, resulting in a large
+number of hits.  Yet some searches need these extra hits. Ivy sorts
+such large lists using @code{flx} package's scoring mechanism, if it's
 installed.
 
 @node Variable Index
address@hidden Variable Index
address@hidden Variable Index
 
 @printindex vr
 
address@hidden
address@hidden
\ No newline at end of file
diff --git a/doc/style.css b/doc/style.css
deleted file mode 100644
index 547b4f0..0000000
--- a/doc/style.css
+++ /dev/null
@@ -1,107 +0,0 @@
-body {
-    color: #333;
-    background-color: #ffffff;
-    margin-left: 1em;
-    margin-right: auto;
-    font-family: 'Ubuntu Mono', sans-serif;
-    max-width: 50em;
-}
-
-body a {
-    color: blue;
-}
-
-h2 {
-    font-weight: normal;
-    text-indent: 0;
-    border-radius: 15px;
-    background-color: #d6d8ec;
-    text-align: left;
-    padding: 3px 3px 3px 3px;
-}
-
-h2 a[id^="unnumbered"] {
-    background-color: #d6d8ec;
-}
-
-h2 a {
-    color: white;
-    background-color:#777777;
-    font-size:18px;
-    border-radius:3px;
-    padding: 0px 5px 0px 5px; 
-}
-
-kbd {
-    padding:0.1em 0.6em;
-    border:1px solid #ccc;
-    font-size:13px;
-    font-weight:bold;
-    font-family:monospace;
-    background-color:#d6d8ec;
-    color:#333;
-    -moz-box-shadow:0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset;
-    -webkit-box-shadow:0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset;
-    box-shadow:0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset;
-    -moz-border-radius:3px;
-    -webkit-border-radius:3px;
-    border-radius:3px;
-    display:inline-block;
-    margin:0 0.1em;
-    text-shadow:0 1px 0 #fff;
-    line-height:1.4;
-    white-space:nowrap;
-}
-
-body a code {
-    color: black;
-    border: 1px solid Blue;
-    border-radius:3px;
-}
-
-code {
-    font-size:13px;
-    border: 1px solid Silver;
-    background-color: #e3e4ec;
-}
-
-pre {
-    border: 1px solid Silver;
-    background-color: #eeeeee;
-    padding: 3px;
-    margin-left: 1em;
-}
-
-cursor {
-    color: #fff;
-    background-color: #000;
-    overflow: hidden;
-}
-
-h3 {
-    counter-reset: chapter;
-}
-
-h4 {
-    margin-left: auto;
-}
-
-table, td, th {
-    border: 0px;
-}
-
-th {
-    background-color:#d6d8ec;
-}
-
-tr:nth-child(odd) {
-    background-color:#fff;
-}
-tr:nth-child(even) {
-    background-color:#d6d8ec;
-}
-
-.region {
-    color: #ffffff;
-    background-color: #f9b593;
-}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]