From: Carsten Dominik <dominik@uva.nl>
To: Paul Sexton <psexton@xnet.co.nz>
Cc: emacs-orgmode@gnu.org
Subject: Re: More wiki-like behaviour
Date: Sat, 7 Aug 2010 08:27:44 +0200 [thread overview]
Message-ID: <99CACA02-DD88-4F27-A0EA-D11560E94728@uva.nl> (raw)
In-Reply-To: <EBF4915C777B431884526B781E6C3896@quince>
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.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
prev parent reply other threads:[~2010-08-08 17:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-05 19:48 More wiki-like behaviour Paul Sexton
2010-08-07 6:27 ` Carsten Dominik [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=99CACA02-DD88-4F27-A0EA-D11560E94728@uva.nl \
--to=dominik@uva.nl \
--cc=emacs-orgmode@gnu.org \
--cc=psexton@xnet.co.nz \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.