emacs-orgmode
[Top][All Lists]
Advanced

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

[O] Bug: The headers' anchors from custom ids should be at the beginning


From: Denis Bitouzé
Subject: [O] Bug: The headers' anchors from custom ids should be at the beginning, and not at the end, of these headers [8.3.1 (8.3.1-129-ga7c8d2-elpa @ /home/bitouze/.emacs.d/elpa/org-20150921/)]
Date: Mon, 21 Sep 2015 21:59:19 +0200


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.
------------------------------------------------------------------------

The following org file:

#+begin_src org
* Heading with custom id
:PROPERTIES:
:CUSTOM_ID: custom-id-heading
:END:

* Heading bis with custom id and very very very very very very very very very 
very very very very very very very very very very very very very very very long 
text
:PROPERTIES:
:CUSTOM_ID: custom-id-heading-bis
:END:

See [[#custom-id-heading-bis][heading bis with custom id and very long text]].
#+end_src

is exported as markdown to:

#+begin_src markdown
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#custom-id-heading">1. Heading with custom id</a></li>
<li><a href="#custom-id-heading-bis">2. Heading bis with custom id and very 
very very very very very very very very very very very very very very very very 
very very very very very very very long text</a></li>
</ul>
</div>
</div>

# Heading with custom id<a id="custom-id-heading"></a>

# Heading bis with custom id and very very very very very very very very very 
very very very very very very very very very very very very very very very long 
text<a id="custom-id-heading-bis"></a>

See [heading bis with custom id and very long text](#custom-id-heading-bis).
#+end_src

As you can see, the anchor in the .md file is at the end of the header and, in
case this header contains long text, clicking on a link to this anchor would
lead us to the end, eventually not at the first line, of this header.

The expected behavior would be:

#+begin_src markdown
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#custom-id-heading">1. Heading with custom id</a></li>
<li><a href="#custom-id-heading-bis">2. Heading bis with custom id and very 
very very very very very very very very very very very very very very very very 
very very very very very very very long text</a></li>
</ul>
</div>
</div>

# <a id="custom-id-heading"></a>Heading with custom id

# <a id="custom-id-heading-bis"></a>Heading bis with custom id and very very 
very very very very very very very very very very very very very very very very 
very very very very very very long text

See [heading bis with custom id and very long text](#custom-id-heading-bis).
#+end_src

I didn't look at it but, from this point of view, I guess other exports are
suboptimal as well.

Emacs  : GNU Emacs 24.5.1 (i686-pc-linux-gnu, GTK+ Version 3.14.8)
 of 2015-06-29 on drums.chezmoi.fr
Package: Org-mode version 8.3.1 (8.3.1-129-ga7c8d2-elpa @ 
/home/bitouze/.emacs.d/elpa/org-20150921/)

current state:
==============
(setq
 org-entities-user '(("nok" "{\\color{red}\\ding{55}}" nil "<font
 color='red'>&#x2718;</font>" "NOK"
                      "NOK" "✘")
                     ("ok" "{\\color{checkmark}\\ding{51}}" nil "<font
 color='green'>&#x2714;</font>"
                      "OK" "OK" "✔")
                     )
 org-enforce-todo-checkbox-dependencies t
 org-inlinetask-default-state "TODO"
 org-agenda-search-view-always-boolean t
 org-agenda-log-mode-items '(clock)
 org-latex-format-headline-function 'leuven--org-latex-format-headline
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point 
org-babel-execute-safely-maybe)
 org-pretty-entities t
 org-latex-packages-alist '(("" "listings") ("" "xcolor") ("french" "babel"))
 org-html-format-inlinetask-function 
'org-html-format-inlinetask-default-function
 org-stuck-projects '("+LEVEL=2/-DONE" ("TODO" "STRT") nil "")
 org-refile-use-cache t
 org-clock-in-resume t
 org-clock-out-when-done nil
 org-log-states-order-reversed nil
 org-odt-preferred-output-format "doc"
 org-agenda-sticky t
 org-goto-interface 'outline-path-completion
 outline-minor-mode-hook '(leuven--outline-minor-mode-hook
                           (lambda nil
                            (if (and outline-minor-mode (derived-mode-p (quote
                                                                         
emacs-lisp-mode)))
                             (progn (hide-sublevels 1000)))
                            )
                           )
 org-agenda-skip-scheduled-if-done t
 org-ellipsis " ►"
 org-clock-persist t
 org-archive-location "::* Archive"
 org-agenda-window-setup 'current-window
 org-adapt-indentation nil
 org-agenda-entry-text-leaders "               │ "
 org-agenda-scheduled-leaders '("Scheduled  " "           ")
 org-clock-mode-line-total 'all
 org-tab-first-hook '(org-hide-block-toggle-maybe
                      org-babel-hide-result-toggle-maybe
                      org-babel-header-arg-expand)
 org-agenda-exporter-settings '((ps-number-of-columns 1) (ps-landscape-mode t)
                                (htmlize-output-type (quote css)))
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-refile-targets '((nil :maxlevel . 4) (nil :maxlevel . 2))
 org-html-htmlize-output-type 'css
 org-modules '(org-info org-habit org-gnus org-id org-checklist)
 org-cycle-hook '(org-inlinetask-hide-tasks org-cycle-hide-archived-subtrees
                  org-cycle-hide-drawers
                  org-cycle-show-empty-lines 
org-optimize-window-after-visibility-change)
 org-html-checkbox-type 'unicode
 org-mime-send-subtree-hook '((lambda nil
                               (org-entry-put (point) "mail_composed"
                                (current-time-string)))
                              )
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-confirm-babel-evaluate nil
 org-speed-command-hook '(org-speed-command-default-hook 
org-babel-speed-command-hook)
 org-src-window-setup 'current-window
 org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
 org-export-preprocess-hook '(leuven--org-export-preprocess-hook)
 org-clock-total-time-cell-format "%s"
 org-export-snippet-translation-alist '(("b" . "beamer") ("l" . "latex") ("h" . 
"html"))
 org-agenda-current-time-string "Right now"
 org-blocker-hook '(org-block-todo-from-checkboxes 
org-block-todo-from-children-or-siblings-or-parent)
 org-fontify-done-headline t
 org-agenda-skip-deadline-prewarning-if-scheduled 7
 org-agenda-restore-windows-after-quit t
 org-return-follows-link t
 org-babel-pre-tangle-hook '(save-buffer)
 org-agenda-diary-file "~/org/diary.org"
 org-export-time-stamp-file nil
 org-occur-hook '(org-first-headline-recenter)
 org-emphasis-alist '(("*" bold "<b>" "</b>") ("/" italic "<i>" "</i>")
                      ("_" underline "<span
 style=\"text-decoration:underline;\">" "</span>")
                      ("=" org-verbatim "<code>" "</code>" verbatim)
                      ("~" org-code "<code>" "</code>" verbatim))
 org-font-lock-hook '(org-inlinetask-fontify)
 org-agenda-auto-exclude-function 'leuven--org-auto-exclude-function
 org-refile-target-verify-function 'bh/verify-refile-target
 org-speed-commands-user '(("y" org-todo-yesterday "DONE") ("d" org-todo 
"DONE"))
 org-src-lang-modes '(("dot" . graphviz-dot) ("ocaml" . tuareg) ("elisp"
                                                                 . emacs-lisp)
                      ("ditaa" . artist) ("asymptote" . asy) ("dot"
                                                              . fundamental) 
("sqlite" . sql)
                      ("calc" . fundamental) ("C" . c) ("cpp" . c++) ("C++"
                                                                      . c++)
                      ("screen" . shell-script) ("shell" . sh) ("bash" . sh))
 org-log-redeadline 'time
 org-clock-history-length 35
 org-deadline-warning-days 7
 org-html-format-headline-function 'org-html-format-headline-default-function
 org-structure-template-alist '(("E" "\\begin{equation}\n?\n\\end{equation}" "")
                                ("C" "#+begin_comment\n?\n#+end_comment")
                                ("t" "#+begin_tip\n?\n#+end_tip")
                                ("w" "#+begin_warning\n?\n#+end_warning")
                                ("n" "#+begin_note\n?\n#+end_note") ("s"
                                                                     
"#+begin_src ?\n\n#+end_src")
                                ("e" "#+begin_example\n?\n#+end_example")
                                ("q" "#+begin_quote\n?\n#+end_quote")
                                ("v" "#+begin_verse\n?\n#+end_verse")
                                ("V" "#+begin_verbatim\n?\n#+end_verbatim")
                                ("c" "#+begin_center\n?\n#+end_center")
                                ("l" "#+begin_latex\n?\n#+end_latex") ("L"
                                                                       
"#+latex: ")
                                ("h" "#+begin_html\n?\n#+end_html") ("H"
                                                                     "#+html: ")
                                ("a" "#+begin_ascii\n?\n#+end_ascii") ("A"
                                                                       
"#+ascii: ")
                                ("i" "#+index: ?") ("I" "#+include: %file ?"))
 org-export-with-sub-superscripts '{}
 org-use-sub-superscripts '{}
 org-refile-allow-creating-parent-nodes 'confirm
 org-clock-out-remove-zero-time-clocks t
 org-agenda-skip-timestamp-if-done t
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-reveal-start-hook '(org-decrypt-entry)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-clock-file-time-cell-format "%s"
 org-descriptive-links nil
 org-fast-tag-selection-single-key t
 org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id
 org-cycle-include-plain-lists nil
 org-agenda-sorting-strategy '((agenda time-up category-up priority-down
                                effort-down)
                               (todo category-up priority-down effort-down)
                               (tags category-up priority-down effort-down) 
(search category-up))
 org-log-into-drawer t
 org-tag-faces '(("refile" (:slant italic :foreground "#A9876E"))
                 ("personal" (:slant italic :foreground "#5C88D3"))
                 ("work" (:slant italic :foreground "#699761"))
                 ("FLAGGED" (:weight bold :slant italic :foreground
                             "white" :background "#DB2D27"))
                 ("now" (:slant italic :foreground "#000000"))
                 ("notbillable" (:slant italic :foreground "#8774AF")))
 org-publish-list-skipped-files nil
 org-default-notes-file "~/org/notes.org"
 org-columns-default-format "%60ITEM(Details) %5PRIORITY(Prio) 
%14SCHEDULED(Scheduled) %15TAGS(Context) %7TODO(To Do) %6CLOCKSUM(Clock) 
%5Effort(Effort){:} "
 org-priority-faces '((65 :weight bold :foreground "#5F3731" :background
                       "#EFC4C0")
                      (66 :foreground "#475443" :background "#D5E1D0")
                      (67 :foreground "#2D373F" :background "#C9DBE3"))
 org-latex-format-drawer-function '(lambda (name contents) contents)
 org-babel-after-execute-hook '(org-display-inline-images)
 org-agenda-block-separator 
#("____________________________________________________________________________________________________________________________________"
 0 132 (face (:foreground "#59ACE2")))
 org-src-tab-acts-natively t
 org-agenda-span 'day
 org-habit-show-habits-only-for-today nil
 org-hide-macro-markers t
 org-export-backends '(ascii html icalendar latex odt md)
 org-agenda-format-date "%Y-%m-%d %a                                            
                      _"
 org-refile-use-outline-path 'file
 org-blank-before-new-entry '((heading . t) (plain-list-item . auto))
 org-agenda-dim-blocked-tasks nil
 org-agenda-deadline-faces '((1.0001 . leuven-org-deadline-overdue)
                             (0.9999 . leuven-org-deadline-today)
                             (0.8571 . leuven-org-deadline-tomorrow)
                             (0.0 . leuven-org-deadline-future))
 outline-minor-mode-prefix ""
 org-treat-S-cursor-todo-selection-as-state-change nil
 org-tag-alist '((:startgroup) ("personal" . 112) ("work" . 119) (:endgroup)
                 ("call" . 99)
                 ("errands" . 101) ("finance" . 102) ("mail" . 109)
                 ("notbillable" . 66)
                 ("ARCHIVE" . 97) ("crypt" . 67) ("FLAGGED" . 63))
 org-agenda-persistent-filter t
 org-global-properties '(("Effort_ALL" . "0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 
6:00 8:00"))
 org-highlight-latex-and-related '(latex script entities)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-link-abbrev-alist '(("cache" . "http://www.google.com/search?q=cache:%s";)
                         ("dictionary" .
                          
"http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=%s";)
                         ("google" . "http://www.google.com/search?q=%s";)
                         ("googlegroups"
                          . "http://groups.google.com/groups?q=%s";)
                         ("googlemaps" . "http://maps.google.com/maps?q=%s";)
                         ("imdb" . "http://us.imdb.com/Title?%s";)
                         ("openstreetmap"
                          . 
"http://nominatim.openstreetmap.org/search?q=%s&polygon=1";)
                         ("wpen" . "http://en.wikipedia.org/wiki/%s";)
                         ("wpfr" . "http://fr.wikipedia.org/wiki/%s";))
 org-agenda-prefix-format '((agenda . " %-11s%i %?-12t") (timeline . " % s")
                            (todo . " %i %-12:c")
                            (tags . " %i %-12:c") (search . " %i %-12:c"))
 org-image-actual-width '(320)
 org-latex-default-figure-position "!htbp"
 org-use-speed-commands t
 org-agenda-skip-deadline-if-done t
 org-export-before-parsing-hook '(leuven--change-pdflatex-packages 
leuven--change-pdflatex-program)
 org-list-description-max-indent 3
 org-enforce-todo-dependencies t
 org-mode-hook '(org-clock-load (lambda nil (local-set-key (kbd "C-c m")
                                             (function org-mime-subtree)))
                 #[nil "\300\301\302\303\304$\207"
                   [org-add-hook before-save-hook org-encrypt-entries nil t] 5]
                 #[nil "\300\301\302\303\304$\207"
                   [org-add-hook change-major-mode-hook org-show-block-all
                    append local] 5]
                 #[nil "\300\301\302\303\304$\207"
                   [org-add-hook change-major-mode-hook
                    org-babel-show-result-all append local] 5]
                 org-babel-result-hide-spec org-babel-hide-all-hashes
                 leuven--org-add-electric-pairs
                 leuven--org-switch-dictionary
                 (lambda nil (require (quote org-clock)) (setq org-clock-persist
                                                          t)
                  (org-clock-persistence-insinuate))
                 (lambda nil (local-set-key (kbd "C-M-n") (function
                                                           
outline-next-visible-heading))
                  (local-set-key (kbd "C-M-p") (function
                                                
outline-previous-visible-heading))
                  (local-set-key (kbd "C-M-u") (function outline-up-heading)))
                 (lambda nil (local-set-key (kbd "C-M-w") (function
                                                           
org-table-copy-region))
                  (local-set-key (kbd "C-M-y") (function
                                                org-table-paste-rectangle))
                  (local-unset-key (kbd "C-c SPC")) (local-unset-key (kbd "C-c
 C-<")))
                 fci-mode
                 (lambda nil
                  (if
                   (or (eq (aref (buffer-name) 0) 32)
                    (and (boundp (quote org-babel-exp-reference-buffer))
                     org-babel-exp-reference-buffer)
                    )
                   (message "DON'T TURN ON Flyspell mode in `%s'" (buffer-name))
                   (message "Turn on Flyspell mode in `%s'" (buffer-name))
                   (flyspell-mode))
                  )
                 org-src-block-check)
 org-time-clocksum-format '(:hours "%d" :require-hours t :minutes ":%02d" 
:require-minutes t)
 org-agenda-clockreport-parameter-plist '(:link t :maxlevel 3 :fileskip0 t)
 org-insert-mode-line-in-empty-file t
 org-export-with-smart-quotes t
 org-special-ctrl-a/e 'reversed
 org-startup-with-inline-images t
 org-agenda-start-on-weekday nil
 org-latex-pdf-process '("latexmk --version" "latexmk -cd -f -pdf 
-pdflatex=pdflatex %f && latexmk -c")
 org-table-export-default-format "orgtbl-to-csv"
 org-agenda-mode-hook '((lambda nil (local-set-key (kbd "C-c m") (function 
leuven-mail-subtree))))
 org-habit-today-glyph 9483
 org-ascii-format-drawer-function '(lambda (name contents width) contents)
 org-tags-exclude-from-inheritance '("crypt")
 org-babel-results-keyword "results"
 org-odt-format-drawer-function '(lambda (name contents) contents)
 org-clock-idle-time 120
 org-agenda-inhibit-startup t
 org-agenda-skip-scheduled-if-deadline-is-shown t
 org-show-context-detail '((occur-tree . minimal) (tags-tree . minimal) (isearch
                                                                         . 
lineage)
                           (bookmark-jump . lineage) (default . ancestors))
 org-gnus-prefer-web-links t
 org-latex-listings t
 org-finalize-agenda-hook '(org-agenda-to-appt
                            (lambda nil
                             (let ((inhibit-read-only t)) (goto-char
                                                           (point-min))
                              (org-do-emphasis-faces (point-max)))
                             )
                            (lambda nil
                             (remove-text-properties (point-min) (point-max)
                              (quote (mouse-face t))))
                            leuven--org-agenda-right-justify-tags)
 org-read-date-prefer-future 'time
 org-time-stamp-rounding-minutes '(1 1)
 org-export-allow-bind-keywords t
 org-html-format-drawer-function '(lambda (name contents) contents)
 org-src-preserve-indentation t
 org-loop-over-headlines-in-active-region 'start-level
 org-open-non-existing-files t
 org-babel-no-eval-on-ctrl-c-ctrl-c t
 org-export-with-priority t
 org-tags-column -80
 org-latex-image-default-width ".75\\linewidth"
 org-hide-emphasis-markers t
 org-clock-in-switch-to-state 'leuven--org-switch-to-started
 org-odt-format-headline-function 'org-odt-format-headline-default-function
 org-latex-link-with-unknown-path-format "\\colorbox{red}{%s}"
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-todo-keywords '((sequence "NEW(n!)" "TODO(t!)" "STRT(s!)" "WAIT(w!)"
                      "SDAY(y!)" "|" "DONE(d!)"
                      "CANX(x!)")
                     (sequence "QTE(q!)" "QTD(Q!)" "|" "APP(A!)" "REJ(R!)")
                     (sequence "OPENPO(O!)" "|" "CLSDPO(C!)"))
 org-startup-folded nil
 org-habit-completed-glyph 10004
 org-agenda-time-grid '((daily remove-match) "" (800 1000 1200 1400 1600 1800 
2000))
 org-clock-in-prepare-hook '(leuven--org-ask-effort)
 org-clock-display-default-range 'untilnow
 org-todo-repeat-to-state "TODO"
 org-agenda-search-headline-for-time nil
 org-agenda-finalize-hook '(org-agenda-to-appt
                            (lambda nil
                             (let ((inhibit-read-only t)) (goto-char
                                                           (point-min))
                              (org-do-emphasis-faces (point-max)))
                             )
                            (lambda nil
                             (remove-text-properties (point-min) (point-max)
                              (quote (mouse-face t))))
                            leuven--org-agenda-right-justify-tags)
 org-list-allow-alphabetical t
 org-fontify-whole-heading-line t
 org-clock-report-include-clocking-task t
 org-clock-sound "~/Public/Music/Sounds/alarm.wav"
 org-src-mode-hook '(org-src-babel-configure-edit-buffer 
org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-html-head-include-scripts nil
 org-url-hexify-p nil
 org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function
 org-babel-tangle-lang-exts '(("awk" . "awk") ("java" . "java") ("latex"
                                                                 . "tex") 
("python" . "py")
                              ("emacs-lisp" . "el") ("elisp" . "el"))
 org-todo-keyword-faces '(("NEW" . leuven-org-created-kwd) ("TODO" . org-todo)
                          ("STRT" . leuven-org-in-progress-kwd) ("WAIT"
                                                                 . 
leuven-org-waiting-for-kwd)
                          ("SDAY" . leuven-org-someday-kwd) ("DONE" . org-done)
                          ("CANX" . org-done)
                          ("QTE" . leuven-org-quote-kwd) ("QTD"
                                                          . 
leuven-org-quoted-kwd)
                          ("APP" . leuven-org-approved-kwd) ("REJ"
                                                             . 
leuven-org-rejected-kwd)
                          ("OPENPO" . leuven-org-openpo-kwd) ("CLSDPO" . 
leuven-org-closedpo-kwd))
 org-babel-load-languages '((sql . t) (shell . t) (python . t) (org . t)
                            (makefile . t) (ledger . t)
                            (latex . t) (java . t) (dot . t) (ditaa . t) (awk
                                                                          . t) 
(R . t)
                            (emacs-lisp . t))
 org-babel-R-command "R --slave --no-save --ess --encoding=UTF-8"
 org-agenda-deadline-leaders '("Deadline   " "In %d d" "%d d ago")
 org-agenda-tags-todo-honor-ignore-options t
 org-latex-format-inlinetask-function 
'org-latex-format-inlinetask-default-function
 org-after-todo-statistics-hook '(leuven--org-summary-todo)
 org-fontify-quote-and-verse-blocks t
 org-confirm-shell-link-function 'yes-or-no-p
 org-agenda-clock-consistency-checks '(:max-duration "10:00" :min-duration
                                       0 :max-gap "0:00"
                                       :gap-ok-around ("4:00") :default-face
                                       ((:weight bold :box (:line-width 1 :color
                                                            "#AAEE77")
                                         :foreground "black" :background
                                         "#BFFA9E")
                                        )
                                       :gap-face
                                       ((:weight bold :box (:line-width 1 :color
                                                            "#BBDDFF")
                                         :foreground "black" :background
                                         "#D0EDFF")
                                        )
                                       )
 )
-- 
Denis



reply via email to

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