bug-texinfo
[Top][All Lists]

## Re: Single key navigation for texinfos HTML

 From: Sebastian Rose Subject: Re: Single key navigation for texinfos HTML Date: Thu, 22 Jan 2009 12:43:49 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

address@hidden (Karl Berry) writes:
> Hi Sebastian,
>
>     > http://orgmode.org/worg/code/org-info-js/
>     ...
>     >     http://wiki.github.com/SebastianRose/org-info-js/org-keys
>     ...
>     >
> http://github.com/SebastianRose/org-info-js/blob/ef18719be875f0dd7c352ddc55d277493150ea69/org-keys.js
>
>     Did you recognize the occur' and search features?
>
> No -- that's fantastic!  I suggest adding them to the doc.  By trial and
> error, I found occur is on "o", but I tried doing occur on "name", I
> couldn't make sense of the result.  What does it do?  Highlight
> occurrences I guess?

In the docs, just type ?' for keyboard help ;-)

What it does is to simulate OrgModes occur behaviour:

1.) Switch the view-mode from 'info-view-mode' to 'plain-view-mode'
(i.e. not the info-like displaying, but just the HTML as it is. Look at
the HTML-source and you'll find, that it's just one big HTML
file. This is what m' does.).
2.) Fold everything to display level 1 headlines only.
3.) Search for the string.
4.) Fold out every section that contains a match and highlight the match.

Example for occur usage:
go to http://orgmode.org/Changes.html

type o'
type todo RET'

now you may jump to the next section with a match by pressing SHIFT-s'
(repeatedly if you like).

You may go back in navigation history using b', foreward in navigation
history by B'.

To see what the folding feature is, press m'. In plain-view-mode', you
may also click the headlines to (un-)fold the sections. Try F' and f'
to get a feeling for the folding feature. Note also, that l' and L'
let you create an HTML or OrgMode link respectively. For texinfo files,
we could as well change L' to create a \ref{} link.

Hm - this would mean to transform the whole org-info.js to a texinfo
version. The exporter could offer some kind of option to include the big
script, or just the few lines needed for navigation.

> As for search, does it work across nodes?

No. The script can only access the document itself. It's completly
client side.

>     The javascript code is a bit more than needed (there is the console'
>     which is not used yet and some more).
>
> It is the console stuff which I was worried about.  Anything that says
> stuff like "40px" and "1px solid #cccccc" seems problematic to me.  If
> it's not really needed, can you just take it out?  What's it for?  Is it
> somehow related to the text box formatting (which is weird -- the top of
> the heading is cut off for me).

It's just, that the only way to read input cross-browser is to have a
<input type="text"> somewhere. The input will not work, if that input
field is hidden. So I hide it by placing it outside the visible area of
the browser window.

> Also, forgive my ignorance of JavaScript, but I can't figure out how the
> code works.  I can vaguely see you're hooking into the access keys, but
> where is occur/search implement?

The occur code is not included in org-keys.js. It's just in
org-info.js. I've cut that out to get a first compact version (which
could be a little bit more compact even). In info files, we can't search
all the files that way.

We _could_ search accross documents actually. The script only knows
about the previous' and next' documents, but nothing about their
contents. This would mean, to load the next document when searching
foreward (SHIFT-s in org-info.js) and pass some URL-params to let the
script know about the search. I nothing is found, ask the user what to
do (go back, stay, search next document if any).

>     Note also: the code and functionality of the HTML is not changed at
>     all. Access keys keep working.
>
> I did notice that, and that is cool :).
>
> Thanks,
> Karl

--
Sebastian Rose, EMMA STIL - mediendesign, Niemeyerstr.6, 30449 Hannover
Tel.:  +49 (0)511 - 36 58 472
Fax:   +49 (0)1805 - 233633 - 11044
mobil: +49 (0)173 - 83 93 417
Http:  www.emma-stil.de