[-- Attachment #1: Type: text/plain, Size: 682 bytes --] Hi mailing list, is something like this of interest to add to org-mode? Attached is a prototype to a read-only view mode. It tries to hide as much of markup as possible to make it more "readable". It uses built-in view-mode to make the buffer read only and enable some common commands. I plan to add more "dired like" movement though. I don't claim it is very well written or efficient; I appreciate input on that regard. To note is that I use minor-modes as "toggles", to make the functionality avialable as "solo pieces" as well as a code generation tool. I am just checking interest here. More info and a screencast are avialable at: https://github.com/amno1/org-view-mode [-- Attachment #2: org-view-mode.el --] [-- Type: text/plain, Size: 8140 bytes --] ;;; org-view-mode.el --- Read-only viewer with less markup clutter in org mode files -*- lexical-binding: t; -*- ;; Copyright (C) 2021 Arthur Miller ;; Author: Arthur Miller <arthur.miller@live.com> ;; Keywords: convenience, outlines, tools ;; This program 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 of the License, 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. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see <https://www.gnu.org/licenses/>. ;; Author: Arthur Miller ;; Version: 0.0.1 ;; Keywords: tools convenience ;; Package-Requires: ((emacs "24.1")) ;; URL: https://github.com/amno1/org-view-mode ;;; Commentary: ;; A minor mode to help reduce clutter in org-mode files by ;; hiding/unhiding org-mode markup language ;; ;; To turn it on execute: ;; ;; `M-x org-view-mode'. ;; ;; To turn it off execute the same command. ;;; Issues ;;; Code: (require 'org) (defgroup org-view nil "Hide tags in org-headings." :prefix "org-view-" :group 'org) (defvar-local org-view-center-credentials nil "Whether to align title and author in center or not. Centering is done pixel wise relative to window width.") (defcustom org-view-diminish-mode t "Hide lighters for individual minor modes when org-view-mode is on." :type 'boolean :group 'org-view) (defvar org-view-stars-re "^[ \t]*\\*+" "Regex used to recognize leading stars in org-headings.") (defvar org-view-credentials-re "[ \t]*#\\+\\(TITLE\\|AUTHOR\\):" "Regex used to update author and title lines.") (defun org-view--update-tags (visibility) "Update invisible property to VISIBILITY for tags in the current buffer." (save-excursion (goto-char (point-min)) (with-silent-modifications (while (re-search-forward org-view-stars-re nil t) (goto-char (line-end-position)) (when (re-search-backward org-tag-line-re (line-beginning-position) t) (put-text-property (match-beginning 1) (match-end 1) 'invisible visibility)) (forward-line))))) (defun org-view--update-keywords (visibility) "Set VISIBILITY for each line starting with a keyword from KEYWORDS list." (org-with-wide-buffer (save-excursion (with-silent-modifications (goto-char (point-min)) (while (re-search-forward "^[ \t]*#\\+.*$" nil t) (goto-char (match-beginning 0)) (unless (looking-at-p org-view-credentials-re) (put-text-property (1- (match-beginning 0)) (match-end 0) 'invisible visibility)) (goto-char (match-end 0))))))) (defun org-view--update-properties (visibility) "Set invisible property to VISIBILITY for properties in the current buffer." (org-with-wide-buffer (save-excursion (with-silent-modifications (goto-char (point-min)) (while (re-search-forward org-property-drawer-re nil t) (put-text-property (match-beginning 0) (match-end 0) 'invisible visibility)) (goto-char (point-min)) (while (re-search-forward "^[ \t]*#\\+PROPERTY:.*$" nil t) (put-text-property (1- (match-beginning 0)) (1+ (match-end 0)) 'invisible visibility)))))) (defun org-view--update-stars (visibility) "Update invisible property to VISIBILITY for markers in the current buffer." (org-with-wide-buffer (save-excursion (goto-char (point-min)) (with-silent-modifications (while (re-search-forward org-view-stars-re nil t) (put-text-property (match-beginning 0) (match-end 0) 'invisible visibility)))))) (defun org-view--update-credentials (visibility) "Set invisible property to VISIBILITY for export settings." (org-with-wide-buffer (save-excursion (with-silent-modifications (goto-char (point-min)) (while (re-search-forward org-view-credentials-re nil t) (put-text-property (match-beginning 0) (match-end 0) 'invisible visibility) (when org-view-center-credentials (org-view--center-in-window visibility))) (goto-char (point-min)))))) (defun org-view--center-in-window (center) "Center a line in a window pixel wise." (save-excursion (goto-char (line-beginning-position)) (let ((end (line-end-position)) (beg (line-beginning-position))) (if center (let* ((line (buffer-substring beg end)) (length (/ (string-pixel-width line) 2))) (put-text-property beg (1+ beg) 'display `(space :align-to (- center (,length))))) (remove-text-properties beg (1+ beg) '(display nil)))))) ;;;###autoload (define-minor-mode org-view-hide-tags-mode "Hide/show tags in org-headings." :global nil :lighter " org-htm" (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (org-view--update-tags org-view-hide-tags-mode)) ;;;###autoload (define-minor-mode org-view-hide-stars-mode "Hide/show leading stars in org-headings." :global nil :lighter " org-hsm" (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (org-view--update-stars org-view-hide-stars-mode)) ;;;###autoload (define-minor-mode org-view-hide-keywords-mode "Hide/show leading stars in org-headings." :global nil :lighter " org-hkm" (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (org-view--update-keywords org-view-hide-stars-mode)) ;;;###autoload (define-minor-mode org-view-hide-properties-mode "Hide/show properties and property drawers." :global nil :lighter " org-hpm" (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (org-view--update-properties org-view-hide-properties-mode)) ;;;###autoload (define-minor-mode org-view-pretty-credentials-mode "Prettify credentials in org-buffers." :global nil :lighter " org-pcm" (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (org-view--update-credentials org-view-pretty-credentials-mode)) (defun org-view-quit () (interactive) (org-view-mode -1) (message "org-view mode disabled in current buffer")) (defvar-keymap org-view-mode-map :doc "Keymap for ‘ORG-view-mode’" "c" #'org-view-quit "C" #'org-view-quit "e" #'org-view-quit "E" #'org-view-quit "q" #'org-view-quit "Q" #'org-view-quit) ;;;###autoload (define-minor-mode org-view-mode "Hide/show babel source code blocks on demand." :global nil :lighter " org-view" :keymap org-view-mode-map (unless (derived-mode-p 'org-mode) (error "Not in org-mode")) (cond (org-view-mode (org-view-hide-tags-mode org-view-mode) (org-view-hide-stars-mode org-view-mode) (org-view-hide-keywords-mode org-view-mode) (org-view-hide-properties-mode org-view-mode) (org-view-pretty-credentials-mode org-view-mode) (when org-view-diminish-mode (dolist (mode '(org-view-hide-tags-mode org-view-hide-stars-mode org-view-hide-keywords-mode org-view-hide-properties-mode org-view-pretty-credentials-mode)) (let ((mode-str (cdr (assq mode minor-mode-alist)))) (setcar mode-str "")))) (view-mode +1)) (t (view-mode -1) (org-view-hide-tags-mode -1) (org-view-hide-stars-mode -1) (org-view-hide-keywords-mode -1) (org-view-hide-properties-mode -1) (org-view-pretty-credentials-mode -1)))) (provide 'org-view-mode) ;;; org-view-mode.el ends here
On 2022-01-23, at 08:19, Arthur Miller <arthur.miller@live.com> wrote: > Hi mailing list, > > is something like this of interest to add to org-mode? Yes! Yes! Yes! I can see all sorts of stuff going from here. Three examples follow. 1. I have a daily journal in Org-mode, and I wrote a simple function showing me "what happened on this day in all previous years of journaling". Making that read-only, with view-mode-like bindings is an obvious thing to do. (In fact, I plan to blog about that function soon.) 2. I imagine this could be used to create menus, a bit like Magit, with toggleable sections etc. 3. I once coded myself a kind of "dashboard", showing various things in (almost) real time - think current time, weather, departures of busses from a nearby bus stop, Emacs uptime, number of open buffers, a todo list for today etc. (Sadly, I didn't finish it, though.) A mode derived from your mode could be great for that. Thanks a lot for working on this, -- Marcin Borkowski http://mbork.pl
Hi Arthur,
On Sun, 23 Jan 2022 at 07:53, Arthur Miller <arthur.miller@live.com> wrote:
>
> Hi mailing list,
>
> is something like this of interest to add to org-mode?
I'm interested in Linux-native smartphones (e.g. the Pine Phone) and
in using Org there as fully as possible. I probably wouldn't _alter_
my Org content on the phone as extensively as I do on a laptop, but
I'd certainly like to _see_ all my Org content and have something like
an agenda. Then the question arises of how best to display that
content and support occasional editing of it. Apps like Orgzly have
been developed to meet this need, but (a) Orgzly is Android-specific,
and (b) I would really love if a good answer could be: simply run
Emacs on the phone and view your Org content that way. A read-only
Org view mode feels like it could be a very useful ingredient for
that!
Best wishes,
Neil
Why not just do an ASCII export to a temporary read only buffer for viewing? I always thought the point of Org was to have minimal markup so that the native file was plainly legible. On Sun, Jan 23, 2022 at 08:19:12AM +0100, Arthur Miller wrote: > Hi mailing list, > > is something like this of interest to add to org-mode? > > Attached is a prototype to a read-only view mode. It tries to hide as much of > markup as possible to make it more "readable". It uses built-in view-mode to > make the buffer read only and enable some common commands. I plan to add more > "dired like" movement though. > > I don't claim it is very well written or efficient; I appreciate input on that > regard. To note is that I use minor-modes as "toggles", to make the > functionality avialable as "solo pieces" as well as a code generation tool. > > I am just checking interest here. More info and a screencast are avialable at: > > https://github.com/amno1/org-view-mode > > ;;; org-view-mode.el --- Read-only viewer with less markup clutter in org mode files -*- lexical-binding: t; -*- > > ;; Copyright (C) 2021 Arthur Miller > > ;; Author: Arthur Miller <arthur.miller@live.com> > ;; Keywords: convenience, outlines, tools > > ;; This program 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 of the License, 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. > > ;; You should have received a copy of the GNU General Public License > ;; along with this program. If not, see <https://www.gnu.org/licenses/>. > > ;; Author: Arthur Miller > ;; Version: 0.0.1 > ;; Keywords: tools convenience > ;; Package-Requires: ((emacs "24.1")) > ;; URL: https://github.com/amno1/org-view-mode > > ;;; Commentary: > > ;; A minor mode to help reduce clutter in org-mode files by > ;; hiding/unhiding org-mode markup language > ;; > ;; To turn it on execute: > ;; > ;; `M-x org-view-mode'. > ;; > ;; To turn it off execute the same command. > > ;;; Issues > > ;;; Code: > (require 'org) > > (defgroup org-view nil > "Hide tags in org-headings." > :prefix "org-view-" > :group 'org) > > (defvar-local org-view-center-credentials nil > "Whether to align title and author in center or not. > > Centering is done pixel wise relative to window width.") > > (defcustom org-view-diminish-mode t > "Hide lighters for individual minor modes when org-view-mode is on." > :type 'boolean > :group 'org-view) > > (defvar org-view-stars-re "^[ \t]*\\*+" > "Regex used to recognize leading stars in org-headings.") > > (defvar org-view-credentials-re "[ \t]*#\\+\\(TITLE\\|AUTHOR\\):" > "Regex used to update author and title lines.") > > (defun org-view--update-tags (visibility) > "Update invisible property to VISIBILITY for tags in the current buffer." > (save-excursion > (goto-char (point-min)) > (with-silent-modifications > (while (re-search-forward org-view-stars-re nil t) > (goto-char (line-end-position)) > (when (re-search-backward org-tag-line-re (line-beginning-position) t) > (put-text-property > (match-beginning 1) (match-end 1) 'invisible visibility)) > (forward-line))))) > > (defun org-view--update-keywords (visibility) > "Set VISIBILITY for each line starting with a keyword from KEYWORDS list." > (org-with-wide-buffer > (save-excursion > (with-silent-modifications > (goto-char (point-min)) > (while (re-search-forward "^[ \t]*#\\+.*$" nil t) > (goto-char (match-beginning 0)) > (unless (looking-at-p org-view-credentials-re) > (put-text-property > (1- (match-beginning 0)) (match-end 0) 'invisible visibility)) > (goto-char (match-end 0))))))) > > (defun org-view--update-properties (visibility) > "Set invisible property to VISIBILITY for properties in the current buffer." > (org-with-wide-buffer > (save-excursion > (with-silent-modifications > (goto-char (point-min)) > (while (re-search-forward org-property-drawer-re nil t) > (put-text-property > (match-beginning 0) (match-end 0) 'invisible visibility)) > (goto-char (point-min)) > (while (re-search-forward "^[ \t]*#\\+PROPERTY:.*$" nil t) > (put-text-property > (1- (match-beginning 0)) (1+ (match-end 0)) 'invisible visibility)))))) > > (defun org-view--update-stars (visibility) > "Update invisible property to VISIBILITY for markers in the current buffer." > (org-with-wide-buffer > (save-excursion > (goto-char (point-min)) > (with-silent-modifications > (while (re-search-forward org-view-stars-re nil t) > (put-text-property > (match-beginning 0) (match-end 0) 'invisible visibility)))))) > > (defun org-view--update-credentials (visibility) > "Set invisible property to VISIBILITY for export settings." > (org-with-wide-buffer > (save-excursion > (with-silent-modifications > (goto-char (point-min)) > (while (re-search-forward org-view-credentials-re nil t) > (put-text-property > (match-beginning 0) (match-end 0) 'invisible visibility) > (when org-view-center-credentials > (org-view--center-in-window visibility))) > (goto-char (point-min)))))) > > (defun org-view--center-in-window (center) > "Center a line in a window pixel wise." > (save-excursion > (goto-char (line-beginning-position)) > (let ((end (line-end-position)) > (beg (line-beginning-position))) > (if center > (let* ((line (buffer-substring beg end)) > (length (/ (string-pixel-width line) 2))) > (put-text-property > beg (1+ beg) 'display `(space :align-to (- center (,length))))) > (remove-text-properties beg (1+ beg) '(display nil)))))) > > ;;;###autoload > (define-minor-mode org-view-hide-tags-mode > "Hide/show tags in org-headings." > :global nil :lighter " org-htm" > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (org-view--update-tags org-view-hide-tags-mode)) > > ;;;###autoload > (define-minor-mode org-view-hide-stars-mode > "Hide/show leading stars in org-headings." > :global nil :lighter " org-hsm" > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (org-view--update-stars org-view-hide-stars-mode)) > > ;;;###autoload > (define-minor-mode org-view-hide-keywords-mode > "Hide/show leading stars in org-headings." > :global nil :lighter " org-hkm" > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (org-view--update-keywords org-view-hide-stars-mode)) > > ;;;###autoload > (define-minor-mode org-view-hide-properties-mode > "Hide/show properties and property drawers." > :global nil :lighter " org-hpm" > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (org-view--update-properties org-view-hide-properties-mode)) > > ;;;###autoload > (define-minor-mode org-view-pretty-credentials-mode > "Prettify credentials in org-buffers." > :global nil :lighter " org-pcm" > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (org-view--update-credentials org-view-pretty-credentials-mode)) > > (defun org-view-quit () > (interactive) > (org-view-mode -1) > (message "org-view mode disabled in current buffer")) > > (defvar-keymap org-view-mode-map > :doc "Keymap for ‘ORG-view-mode’" > "c" #'org-view-quit > "C" #'org-view-quit > "e" #'org-view-quit > "E" #'org-view-quit > "q" #'org-view-quit > "Q" #'org-view-quit) > > ;;;###autoload > (define-minor-mode org-view-mode > "Hide/show babel source code blocks on demand." > :global nil :lighter " org-view" :keymap org-view-mode-map > (unless (derived-mode-p 'org-mode) > (error "Not in org-mode")) > (cond (org-view-mode > (org-view-hide-tags-mode org-view-mode) > (org-view-hide-stars-mode org-view-mode) > (org-view-hide-keywords-mode org-view-mode) > (org-view-hide-properties-mode org-view-mode) > (org-view-pretty-credentials-mode org-view-mode) > (when org-view-diminish-mode > (dolist (mode '(org-view-hide-tags-mode > org-view-hide-stars-mode > org-view-hide-keywords-mode > org-view-hide-properties-mode > org-view-pretty-credentials-mode)) > (let ((mode-str (cdr (assq mode minor-mode-alist)))) > (setcar mode-str "")))) > (view-mode +1)) > (t (view-mode -1) > (org-view-hide-tags-mode -1) > (org-view-hide-stars-mode -1) > (org-view-hide-keywords-mode -1) > (org-view-hide-properties-mode -1) > (org-view-pretty-credentials-mode -1)))) > > (provide 'org-view-mode) > > ;;; org-view-mode.el ends here ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
[-- Attachment #1: Type: text/plain, Size: 10569 bytes --] On Mon, 24 Jan 2022, 11:14 Russell Adams, <RLAdams@adamsinfoserv.com> wrote: > Why not just do an ASCII export to a temporary read only buffer for > viewing? > Do you mean that you're agreeing with the concept, but finding the implementation unnecessarily complicated? > I always thought the point of Org was to have minimal markup so that > the native file was plainly legible. > > On Sun, Jan 23, 2022 at 08:19:12AM +0100, Arthur Miller wrote: > > Hi mailing list, > > > > is something like this of interest to add to org-mode? > > > > Attached is a prototype to a read-only view mode. It tries to hide as > much of > > markup as possible to make it more "readable". It uses built-in > view-mode to > > make the buffer read only and enable some common commands. I plan to add > more > > "dired like" movement though. > > > > I don't claim it is very well written or efficient; I appreciate input > on that > > regard. To note is that I use minor-modes as "toggles", to make the > > functionality avialable as "solo pieces" as well as a code generation > tool. > > > > I am just checking interest here. More info and a screencast are > avialable at: > > > > https://github.com/amno1/org-view-mode > > > > > ;;; org-view-mode.el --- Read-only viewer with less markup clutter in > org mode files -*- lexical-binding: t; -*- > > > > ;; Copyright (C) 2021 Arthur Miller > > > > ;; Author: Arthur Miller <arthur.miller@live.com> > > ;; Keywords: convenience, outlines, tools > > > > ;; This program 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 of the License, 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. > > > > ;; You should have received a copy of the GNU General Public License > > ;; along with this program. If not, see <https://www.gnu.org/licenses/ > >. > > > > ;; Author: Arthur Miller > > ;; Version: 0.0.1 > > ;; Keywords: tools convenience > > ;; Package-Requires: ((emacs "24.1")) > > ;; URL: https://github.com/amno1/org-view-mode > > > > ;;; Commentary: > > > > ;; A minor mode to help reduce clutter in org-mode files by > > ;; hiding/unhiding org-mode markup language > > ;; > > ;; To turn it on execute: > > ;; > > ;; `M-x org-view-mode'. > > ;; > > ;; To turn it off execute the same command. > > > > ;;; Issues > > > > ;;; Code: > > (require 'org) > > > > (defgroup org-view nil > > "Hide tags in org-headings." > > :prefix "org-view-" > > :group 'org) > > > > (defvar-local org-view-center-credentials nil > > "Whether to align title and author in center or not. > > > > Centering is done pixel wise relative to window width.") > > > > (defcustom org-view-diminish-mode t > > "Hide lighters for individual minor modes when org-view-mode is on." > > :type 'boolean > > :group 'org-view) > > > > (defvar org-view-stars-re "^[ \t]*\\*+" > > "Regex used to recognize leading stars in org-headings.") > > > > (defvar org-view-credentials-re "[ \t]*#\\+\\(TITLE\\|AUTHOR\\):" > > "Regex used to update author and title lines.") > > > > (defun org-view--update-tags (visibility) > > "Update invisible property to VISIBILITY for tags in the current > buffer." > > (save-excursion > > (goto-char (point-min)) > > (with-silent-modifications > > (while (re-search-forward org-view-stars-re nil t) > > (goto-char (line-end-position)) > > (when (re-search-backward org-tag-line-re > (line-beginning-position) t) > > (put-text-property > > (match-beginning 1) (match-end 1) 'invisible visibility)) > > (forward-line))))) > > > > (defun org-view--update-keywords (visibility) > > "Set VISIBILITY for each line starting with a keyword from KEYWORDS > list." > > (org-with-wide-buffer > > (save-excursion > > (with-silent-modifications > > (goto-char (point-min)) > > (while (re-search-forward "^[ \t]*#\\+.*$" nil t) > > (goto-char (match-beginning 0)) > > (unless (looking-at-p org-view-credentials-re) > > (put-text-property > > (1- (match-beginning 0)) (match-end 0) 'invisible > visibility)) > > (goto-char (match-end 0))))))) > > > > (defun org-view--update-properties (visibility) > > "Set invisible property to VISIBILITY for properties in the current > buffer." > > (org-with-wide-buffer > > (save-excursion > > (with-silent-modifications > > (goto-char (point-min)) > > (while (re-search-forward org-property-drawer-re nil t) > > (put-text-property > > (match-beginning 0) (match-end 0) 'invisible visibility)) > > (goto-char (point-min)) > > (while (re-search-forward "^[ \t]*#\\+PROPERTY:.*$" nil t) > > (put-text-property > > (1- (match-beginning 0)) (1+ (match-end 0)) 'invisible > visibility)))))) > > > > (defun org-view--update-stars (visibility) > > "Update invisible property to VISIBILITY for markers in the current > buffer." > > (org-with-wide-buffer > > (save-excursion > > (goto-char (point-min)) > > (with-silent-modifications > > (while (re-search-forward org-view-stars-re nil t) > > (put-text-property > > (match-beginning 0) (match-end 0) 'invisible visibility)))))) > > > > (defun org-view--update-credentials (visibility) > > "Set invisible property to VISIBILITY for export settings." > > (org-with-wide-buffer > > (save-excursion > > (with-silent-modifications > > (goto-char (point-min)) > > (while (re-search-forward org-view-credentials-re nil t) > > (put-text-property > > (match-beginning 0) (match-end 0) 'invisible visibility) > > (when org-view-center-credentials > > (org-view--center-in-window visibility))) > > (goto-char (point-min)))))) > > > > (defun org-view--center-in-window (center) > > "Center a line in a window pixel wise." > > (save-excursion > > (goto-char (line-beginning-position)) > > (let ((end (line-end-position)) > > (beg (line-beginning-position))) > > (if center > > (let* ((line (buffer-substring beg end)) > > (length (/ (string-pixel-width line) 2))) > > (put-text-property > > beg (1+ beg) 'display `(space :align-to (- center > (,length))))) > > (remove-text-properties beg (1+ beg) '(display nil)))))) > > > > ;;;###autoload > > (define-minor-mode org-view-hide-tags-mode > > "Hide/show tags in org-headings." > > :global nil :lighter " org-htm" > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (org-view--update-tags org-view-hide-tags-mode)) > > > > ;;;###autoload > > (define-minor-mode org-view-hide-stars-mode > > "Hide/show leading stars in org-headings." > > :global nil :lighter " org-hsm" > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (org-view--update-stars org-view-hide-stars-mode)) > > > > ;;;###autoload > > (define-minor-mode org-view-hide-keywords-mode > > "Hide/show leading stars in org-headings." > > :global nil :lighter " org-hkm" > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (org-view--update-keywords org-view-hide-stars-mode)) > > > > ;;;###autoload > > (define-minor-mode org-view-hide-properties-mode > > "Hide/show properties and property drawers." > > :global nil :lighter " org-hpm" > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (org-view--update-properties org-view-hide-properties-mode)) > > > > ;;;###autoload > > (define-minor-mode org-view-pretty-credentials-mode > > "Prettify credentials in org-buffers." > > :global nil :lighter " org-pcm" > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (org-view--update-credentials org-view-pretty-credentials-mode)) > > > > (defun org-view-quit () > > (interactive) > > (org-view-mode -1) > > (message "org-view mode disabled in current buffer")) > > > > (defvar-keymap org-view-mode-map > > :doc "Keymap for ‘ORG-view-mode’" > > "c" #'org-view-quit > > "C" #'org-view-quit > > "e" #'org-view-quit > > "E" #'org-view-quit > > "q" #'org-view-quit > > "Q" #'org-view-quit) > > > > ;;;###autoload > > (define-minor-mode org-view-mode > > "Hide/show babel source code blocks on demand." > > :global nil :lighter " org-view" :keymap org-view-mode-map > > (unless (derived-mode-p 'org-mode) > > (error "Not in org-mode")) > > (cond (org-view-mode > > (org-view-hide-tags-mode org-view-mode) > > (org-view-hide-stars-mode org-view-mode) > > (org-view-hide-keywords-mode org-view-mode) > > (org-view-hide-properties-mode org-view-mode) > > (org-view-pretty-credentials-mode org-view-mode) > > (when org-view-diminish-mode > > (dolist (mode '(org-view-hide-tags-mode > > org-view-hide-stars-mode > > org-view-hide-keywords-mode > > org-view-hide-properties-mode > > org-view-pretty-credentials-mode)) > > (let ((mode-str (cdr (assq mode minor-mode-alist)))) > > (setcar mode-str "")))) > > (view-mode +1)) > > (t (view-mode -1) > > (org-view-hide-tags-mode -1) > > (org-view-hide-stars-mode -1) > > (org-view-hide-keywords-mode -1) > > (org-view-hide-properties-mode -1) > > (org-view-pretty-credentials-mode -1)))) > > > > (provide 'org-view-mode) > > > > ;;; org-view-mode.el ends here > > > > ------------------------------------------------------------------ > Russell Adams RLAdams@AdamsInfoServ.com > > PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ > > Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 > > [-- Attachment #2: Type: text/html, Size: 13874 bytes --]
On Mon, Jan 24, 2022 at 11:40:05AM +0000, Neil Jerram wrote: > On Mon, 24 Jan 2022, 11:14 Russell Adams, <RLAdams@adamsinfoserv.com> wrote: > > > Why not just do an ASCII export to a temporary read only buffer for > > viewing? > > Do you mean that you're agreeing with the concept, but finding the > implementation unnecessarily complicated? I'm not being negative about the concept. I'm asking if the poster had considered using the built-in tools before creating another new library. I did a short look at the site and the assertion "view org with less markup", and that was my first impression. I had two thoughts. The first was if the markup is a problem and you want a read only view, why not use the built in ascii export to a buffer and view that buffer? I just hit C-c C-e t A and M-x read-only-mode and was able to navigate my ascii org file as a read only buffer. Second thought was that Org's syntax was supposed to minimize the markup so it didn't negatively impact reading. Maybe the poster is identifying a pain point we should be aware of as a community, ie: that too much markup makes it hard to read. My impression is only property drawers and source blocks are potentially visually loud compared to the other markup. Timestamps are pretty minimal and links already only show a descriptive text instead of the full [[]] syntax. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3