[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] More wiki-like behaviour
From: |
Carsten Dominik |
Subject: |
Re: [Orgmode] More wiki-like behaviour |
Date: |
Sat, 7 Aug 2010 08:27:44 +0200 |
On Feb 5, 2009, at 8:48 PM, Paul Sexton wrote:
Hi,
I am interested in using Org mode to create a personal wiki (along
the lines of Wikidpad: http://wikidpad.sourceforge.net/ ), treating
top level headings (one star) as wiki topics.
To do this, I have added 2 behaviours to Org-mode.
1. Always narrow to subtree after following an internal link
(ideally I would like to only narrow to the relevant one-star
heading).
Added to .emacs:
(add-hook 'org-follow-link-hook (lambda () (org-narrow-to-subtree)))
2. More difficult: create a new wikiword if the internal link is not
found.
I have just pushed a change which does the following:
1. It makes a link like [[Find this text]] only match if there is an
exact headline like this. The fuzzy text search that used to
result from such a link at least I never use in Org files
2. If there is no match, it offers to create this headline.
Let me know if this works for you. Also: does this break
things for anyone else?
- Carsten
In .emacs, add a new function to create the new topic:
(defun org-create-new-wikiword (word)
(interactive "s")
(widen)
(end-of-buffer)
(newline 2)
(insert (format "* <<<%s>>>" word)) ; create as radio link
(backward-char 4)
(org-update-radio-target-regexp)
(newline 2)
(org-narrow-to-subtree))
Modification to the (VERY long) function org-open-at-point in org.el:
((string= type "thisfile")
(if in-emacs
(switch-to-buffer-other-window
(org-get-buffer-for-internal-link (current-buffer)))
(org-mark-ring-push))
(let ((cmd `(org-link-search
,path
,(cond ((equal in-emacs '(4)) 'occur)
((equal in-emacs '(16)) 'org-occur)
(t nil))
,pos)))
(condition-case nil (eval cmd)
(error (progn (widen)
;; BEGIN CHANGE
(condition-case nil (eval cmd)
(error
(when (yes-or-no-p
(format "Topic '%s' not found; create?"
path))
(org-create-new-wikiword path)))))))))
;; END CHANGE
I am not the greatest emacs-lisp orgrammer. Is there an easier way
to do this? If not, is it possible to create a 'link-not-found' hook
so that I don't need to modify org.el?
Thanks
Paul
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Orgmode] More wiki-like behaviour,
Carsten Dominik <=