From: dbitouze@wanadoo.fr (Denis Bitouzé)
To: emacs-orgmode@gnu.org
Subject: 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 [thread overview]
Message-ID: <m3pp1ba6i0.fsf@drums.chezmoi.fr> (raw)
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'>✘</font>" "NOK"
"NOK" "✘")
("ok" "{\\color{checkmark}\\ding{51}}" nil "<font
color='green'>✔</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 "\x0f"
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
next reply other threads:[~2015-09-21 20:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-21 19:59 Denis Bitouzé [this message]
2015-09-22 19:39 ` 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/)] Nicolas Goaziou
[not found] ` <8737y6b5v4.fsf-Gpy5sJQTEQHwkn9pgDnJRVAUjnlXr6A1@public.gmane.org>
2015-09-22 19:56 ` Denis Bitouzé
2015-09-22 20:01 ` Nicolas Goaziou
[not found] ` <87vbb29qay.fsf-Gpy5sJQTEQHwkn9pgDnJRVAUjnlXr6A1@public.gmane.org>
2015-09-22 20:11 ` Denis Bitouzé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3pp1ba6i0.fsf@drums.chezmoi.fr \
--to=dbitouze@wanadoo.fr \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).