[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/toc-org aa52bd036d 071/128: handle headlines with COMMENT
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/toc-org aa52bd036d 071/128: handle headlines with COMMENT |
Date: |
Sun, 2 Jan 2022 09:59:10 -0500 (EST) |
branch: elpa/toc-org
commit aa52bd036da7d61005b75bab7f1667c02f01064c
Author: Sergei Nosov <sergei.nosov@gmail.com>
Commit: Sergei Nosov <sergei.nosov@gmail.com>
handle headlines with COMMENT
---
toc-org-test.el | 24 +++++++++++++++++++++++-
toc-org.el | 11 +++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/toc-org-test.el b/toc-org-test.el
index 7bf8233d14..b9777aa24c 100644
--- a/toc-org-test.el
+++ b/toc-org-test.el
@@ -32,13 +32,35 @@
"* About\n:TOC:\n drawer\n:END:\n\ntoc-org is a utility to have an
up-to-date table of contents in the\norg files without exporting (useful
primarily for readme files on\nGitHub).\n\nIt is similar to the
[[https://github.com/ardumont/markdown-toc][markdown-toc]] package, but works
for org files.\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n -
[[#use][Use]]\n - [[#different-href-styles][Different href st [...]
"* About\n* Installation\n** via package.el\n** Manual\n* Use\n* Different
href styles\n* Example\n")
+ ;; test #+OPTIONS behavior
(test-toc-org-raw-toc-gold-test
"* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: todo:t\n\n* Installation\n** DONE via
package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/.emacs file\n#
[...]
"* About\n* Installation\n** DONE via package.el\n** TODO Manual\n")
(test-toc-org-raw-toc-gold-test
"* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
- "* About\n* Installation\n** DONE via package.el\n** TODO Manual\n"))
+ "* About\n* Installation\n** DONE via package.el\n** TODO Manual\n")
+
+ ;; test COMMENT behavior
+ (test-toc-org-raw-toc-gold-test
+ "* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
+ "* About\n* Installation\n** DONE via package.el\n")
+
+ (test-toc-org-raw-toc-gold-test
+ "* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
+ "* About\n* Installation\n** DONE via package.el\n* Rather commentious\n")
+
+ (test-toc-org-raw-toc-gold-test
+ "* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
+ "* About\n* Installation\n** DONE via package.el\n* Rather commentious\n**
No remove\n* Test\n")
+
+ (test-toc-org-raw-toc-gold-test
+ "* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
+ "* About\n* Installation\n** DONE via package.el\n*** Rather
commentious\n** No remove\n* Test\n")
+
+ (test-toc-org-raw-toc-gold-test
+ "* About\n:TOC:\n drawer\n:END:\n\n* Table of Contents
:TOC:\n - [[#about][About]]\n - [[#use][Use]]\n
- [[#different-href-styles][Different href styles]]\n -
[[#example][Example]]\n\n#+OPTIONS: num: nil todo:t |:t\n\n* Installation\n**
DONE via package.el\nThis is the simplest method if you have the package.el
module\n(built-in since Emacs 24.1) you can simply use =M-x
package-install=\nand then put the following snippet in your ~/. [...]
+ "* About\n* Installation\n** DONE via package.el\n*** Rather
commentious\n** No remove\n* Test ***\n"))
(ert-deftest test-toc-org-hrefify-gh ()
"Test the `toc-org-hrefify-gh' function"
diff --git a/toc-org.el b/toc-org.el
index 368b7305e8..bc323743c2 100644
--- a/toc-org.el
+++ b/toc-org.el
@@ -58,6 +58,8 @@ files on GitHub)"
"Regexp to find tags on the line")
(defconst toc-org-states-regexp "^*+\s+\\(TODO\s+\\|DONE\s+\\)"
"Regexp to find states on the line")
+(defconst toc-org-COMMENT-regexp "\\(^*+\\)\s+\\(COMMENT\s+\\)"
+ "Regexp to find COMMENT headlines")
(defconst toc-org-priorities-regexp "^*+\s+\\(\\[#.\\]\s+\\)"
"Regexp to find states on the line")
(defconst toc-org-links-regexp "\\[\\[\\(.*?\\)\\]\\[\\(.*?\\)\\]\\]"
@@ -126,6 +128,15 @@ auxiliary text."
(while (re-search-forward toc-org-states-regexp nil t)
(replace-match "" nil nil nil 1)))
+ ;; strip COMMENT headlines
+ (goto-char (point-min))
+ (while (re-search-forward toc-org-COMMENT-regexp nil t)
+ (let ((skip-depth (concat (match-string 1) "*")))
+ (while (progn
+ (beginning-of-line)
+ (delete-region (point) (min (1+ (line-end-position))
(point-max)))
+ (string-prefix-p skip-depth (current-word))))))
+
;; strip priorities
(goto-char (point-min))
(while (re-search-forward toc-org-priorities-regexp nil t)
- [nongnu] elpa/toc-org 356b3fbb89 101/128: Define fake markdown mode in tests, (continued)
- [nongnu] elpa/toc-org 356b3fbb89 101/128: Define fake markdown mode in tests, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 2c4ff18a4e 092/128: document quote functionality, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 4315afd2a4 095/128: fix readme, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org cf4a624b78 122/128: Add license file with GPLv3, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 2539b4be40 097/128: add test for parenthesis in custom TODO words declaration, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org f13f79737a 020/128: Wrap test call with `(eval-after-load "ert-autoloads"...), ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org e9cf57041a 008/128: fix heading regexp, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org abbcb67166 011/128: allow _ as seprartor, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org ad3424d457 067/128: move tests to a separate file, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 5a8a3f9b3a 080/128: Merge pull request #42 from snosov1/remove-opening-space, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org aa52bd036d 071/128: handle headlines with COMMENT,
ELPA Syncer <=
- [nongnu] elpa/toc-org d30b57f16d 077/128: Merge pull request #40 from alphapapa/update-primary-docstring, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 37f3bf2733 112/128: Add tests for the case-sensitive COMMENT regexp, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 4d259c9cea 086/128: Merge pull request #51 from snosov1/work-in-derived-modes, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org cd1868787c 087/128: Fix Emacs 26 warning, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 3315ef6c96 106/128: Merge pull request #66 from snosov1/enable-toc-org-for-markdown, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 9fefa63d42 119/128: Merge pull request #75 from Alexander-Miller/local-offset, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org 7ff7abb015 029/128: update documentation on org-toc-2 in the source, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org df4ad6ff15 121/128: Merge pull request #76 from snosov1/revert-75-local-offset, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org c4c61c5a38 117/128: Merge pull request #73 from syohex/correct-sample, ELPA Syncer, 2022/01/02
- [nongnu] elpa/toc-org acca680bc5 098/128: Add somewhat working TOC generation for markdown files, ELPA Syncer, 2022/01/02