qbektrix / keynote-nf

Automatically exported from code.google.com/p/keynote-nf
0 stars 0 forks source link

Hyperlink to top of a note within same keynote file is broken #499

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago

What steps will reproduce the problem?
1. Create a multi-tabbed (multi-note) keynotes file (at least 2 note tabs).
2. Create at least a couple of nodes within at least a couple of those notes 
tabs.
3. Using the URL linking method documented in the help file, try and link from 
one of the nodes of the first note tab to the top of another note tab (omitting 
the specification of any particular target node.

What is the expected output? What do you see instead?
Activating the link should display the top of the target note (whichever node 
is currently at the top of that target note hierarchy)

What version are you using? On what operating system?
KeyNote NF 1.7.9 Beta 4

Please provide any additional information below.

The method described in the help file to hyperlink from one note node to 
another note (without target node specification) does not work, specifically 
this example from the online help is broken:
file:///?BlueNote

Instead, it pops an error message to complain about "empty node".

Indeed, if I add any existing node to the URI, then the hyperlink works (I'd 
rather not have to specify any target node, as the top node may be later moved 
to some other place in the tree, which would require editing all relevant 
hyperlinks to redirect to whichever node becomes the top of the note 
hierarchy...)

Relevant extract from the help:

KEYNOTE LINKS (HYPERLINKS TO OTHER NOTES)

The last type of hyperlinking that KeyNote supports is the ability to link to 
other notes and tree nodes in KeyNote files. You can create hyperlinks to 
places in the same (current) file, or any other KeyNote file on your computer.

Basically, this is an extension of the "file:///" URL, so everything written in 
the section above applies here as well.

Inserting a "KeyNote link" requires two steps: marking the target, i.e. the 
place to which the link will jump, and then inserting the link somewhere else.

1. In the editor, position the caret or click the place to which you want to 
create a link. Clicking the link will jump here. In the "Insert" menu, click 
the "KeyNote link", and then click the "Mark Location" command in the submenu.

2. Navigate to the place where you want the link to appear. This can be any 
place in any note, in the file that is currntly open or in another file. (You 
can close the current file and open another one.) Click the place in the editor 
where you want to insert the link. In the "Insert" menu, click the "KeyNote 
link", and then click the "Insert Link" command in the submenu.

A KeyNote link will be inserted. Clicking this link will jump to the location 
which you marked in step 1. Try it!

In order to be able to jump to a selected place in a file, KeyNote uses a 
special extended syntax for such links. KeyNote creates the links automatically 
and you do not have to worry about the special syntax - but it looks like this:

a) link to a place in the current KeyNote file:

file:///?NoteName|NodeName|CursorPosition|SelectionLength

b) link to a place in another KeyNote file:

file:///Path_to_File.KNT?NoteName|NodeName|CaretPosition|SelectionLength

Explanation:

file:///                                                standard URL scheme 
prefix

Path_To_File                                full path to the .KNT file to which 
the link points. If the link points to a location in the same file in which the 
link is inserted, the path is omitted.

?                                                Since the question mark 
character cannot be present in a filename on a Windows system, it tells KeyNote 
that this is the special kind of link, the "KNT link".

NoteName                                The name of the note to which the link 
will jump

NodeName                                The name of the tree node to which the 
link will jump, if the target note is a tree-type note. If the target note is a 
plain RTF note, the NodeName section is blank.

CaretPosition                                The position, in the editor, where 
the caret will be placed after the jump.

SelectionLength                The length of the text that will be selected 
after the jump. Normally it is 0, but if a porion of text was selected when you 
clicked the "Mark Location" command, the link will remember this and will 
restore the selection when you jump.

The special sections of the link are separated with the '|' character.

The NodeName, CaretPosition and SelectionLength sections are optional and need 
not be present for the hyperlink to work. The following hyperlinks are all 
valid:

file:///c:\My%20Documents\diary.knt?BlueNote|Monday|30|0 

               - open the file called "diary.knt", switch to the note called "BlueNote", select the "Monday" node in the tree, and position the caret at character number 30

file:///?BlueNote|Monday|30|0

               - in current file, switch to the note called "BlueNote", select the "Monday" node in the tree, and position the caret at character number 30

file:///?BlueNote|Monday|30

               - same as above

file:///?BlueNote

               - in current file, switch to the note called "BlueNote". (Caret will be positioned at the start of the note)

Original issue reported on code.google.com by Olivie...@gmail.com on 16 Apr 2014 at 6:04