Re: [Zim-wiki] 1:1 vs. piped links
On Mon, Dec 14, 2009 at 16:13, 0x zero_...@yahoo.com wrote: M$ Office AutoCorrect/AutoFormat leverages Undo for similar functionality: the autolinking/autoformating is added to the undo list as a separate action from the typing, so that you can just type and press Ctrl+Z to supress the autothings when your don't want them. Currently in zim they are fused: FooBarSPACE turns it into a link when you add the SPACE; Ctrl+Z removes the link but also the SPACE; pressing SPACE again to continue typing restores the link. So maybe we want to adopt the separately-undoable autolinking model? I like this - in fact, I already use that (the format and/or markup going into the undo buffer separately from the text) other editors UPDATE: turns out it already works this way in perl zim, and almost-works in pyzim! pyzim does undo the autolinking separately, but currently places the cursor before the space. So to enter a non-link FooBar , you press: FooBarSPACECtrl+ZRIGHT. Will be fixed. See https://bugs.launchpad.net/zim/+bug/487084 for details. -- Beni Cherniavsky-Paskin c...@users.sf.net ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
0x wrote: I'm finding that I'm spending a lot of time going back and removing GUI-generated links (in Zim) - more time doing that, in fact, than I would manually entering links to begin with. What I would like to have (to do, perhaps) with the Zim GUI is what was suggested regarding a checkbox or radio button that will turn the auto-linking associated with CaML case on/off. I am working mostly with software development documentation and notes - /everything/ is CaML case - I don't mind having to hit ^L to make some text into a link. Uhm - did you ever check the preferences menu ? There is in fact exact such a checkbox there to control auto-linking of camel case words... -- Jaap ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
Beni Cherniavsky wrote: ... 8 ... Currently pyzim is close to the second and that's annoying - you have to type the same thing twice to create a link! Let me detail how it is intended to work in the current implementation: if the target and label already differ than the target will stay fixed while the text can be freely edited. However when both are the same they stay linked until the user eplicitly sets a different target. The reasoning is that it would be very counter intuitive to see an URL, edit it, and find the target did not update. The same goes for page names. The current dialog in pyzim allows you to specify both text an target, but this is not mandatory. If you enter the target, hit Enter twice (leaving the text empty) it will just use the target as the text. If you select text and open the dialog hitting Enter twice will turn it into a link. I myself find that links become better behaved by treating them like objects that need to be edited with a dialog instead of a formatting style. But obviously there are corner cases. The auto-linking of urls, camelcase, etc. should further reduce the numer of times that you actually need to use the dialog. Auto-linking behavior should be controllable from preferences because it can be very annoying when it gets things wrong. Also the undo action should properly undo autolinking as a separate editing step. ... 8 ... I'm not sure how all this should be blended, but here are some tricks/ideas: * Show broken links in red: this makes it obvious when you are breaking/retargetting links. This is something I would really like - at least for internal links - an url checker is something else. I did not implement this in the perl version because of the cost of resolving links. In the python version we have the SQLLite driven index which make looking up page links much cheaper. Should also set a style property for broken links in html export while we are at it. * Don't even show text field in Link dialog, only target. This makes it clear that text is edited by directly editing the page. Disadvantage is that when auto-formatting does not pick up the link you first type text, then go back select it and add the target. While now I hit the dialog, enter the target, hit Enter, and continue typing. Maybe very personal preference, but I don't like going back while typing in a flow. * Have checkbox or radiobox in Link dialog to toggle 1:1 mode (default on). How would that work ?? Once you have both a label and a target, how would you display it after switching back ? In general I would like to avoid switchable behavior for this. * Show the 2 link modes in different colors. E.g. blue/red for 1:1 links, green for other links. This could very well be done. Maybe keep the same color, but use e.g. a subtle underline to distinguish. Anyway the style would be controllable from the config file - so you cold make the colors more obvious if you want to. * While the editing cursor is on a link, it expands to also show the target, e.g. [link|target]. When the cursor leaves the link, it collapses and you see just the text in blue. This is difficult to get right when it is inline in the textview. Also makes the page look unstable because text starts moving around when you move the cursor over the page. Please note that the signals for mouse over are there already. Link target is displayed in the status bar on mouse over. Probably would more obvious when using tooltips for this. Should not be too hard to make. * While the editing cursor is on a link, a tooltip-like mini-dialog hovers beneath it. This is more discoverable and friendly, though less keyboard-friendly. Gmail does this. See above. At least statusbar display could be linked to cursor as well. Tooltip linked to cursor might be a bit annoying. * Consider Tomboy autolinking for creating links of the simple 1:1 kind? You mean turning words that match page names into links ? This has been implemented in some zim version already as a hidden option, but never worked very well. Goes back to the same discussion about the cost of resolving a link. Can now be done much easier due to the new page index. Would not use this myself, but I would welcome a patch for this as long as it is packaged as a plugin. Plugins can already hook into auto-formatting behavior, so while typing auto-linking can be done. And a plugin could check the page when loading. Please let me know your thoughts on these topics, and where you see room for improvement. Regards, Jaap ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
I think it should be a switch - a button on the toolbar that toggles the functionality on and off like the read-only toggle. There should be a keystroke for it, too, of course. Sorry, not following. Toggle which functionality? Autolinking on/off? Editing changes link/label? Something else? I'm finding that I'm spending a lot of time going back and removing GUI-generated links (in Zim) - more time doing that, in fact, than I would manually entering links to begin with. What I would like to have (to do, perhaps) with the Zim GUI is what was suggested regarding a checkbox or radio button that will turn the auto-linking associated with CaML case on/off. I am working mostly with software development documentation and notes - /everything/ is CaML case - I don't mind having to hit ^L to make some text into a link. Edit - Preferences - Editing - Autolink CamelCase checkbox! It's there in both perl zim and pyzim. Or do you mean make it accessible from toolbar keystroke so that you can change it frequenly? I would also Like the color coding of broken links tha was suggested, since my common workflow is - type in the literal links (this would be with the option mentioned above turned on), then make another pass through the text creating and editing links. Most wikis have some kind of coding for broken links. Anybody sees a reason we shouldn't follow? In addition to those points, I will add that in most cases the link generation in Zim is find - I like being able to type e.g. Glossary:TCP and get a link that - when I click it will create a page in the Glossary that I can fill in. I just need to be able to disable that functionality to keep e.g. spurious links from being generated when I want to use the literal page-name string instead of the link - if I format the string (e.g. as literal, bold, italic or whatever - that helps, but formatting is often lost, and the links re-generated. Probably this is different topic, though. M$ Office AutoCorrect/AutoFormat leverages Undo for similar functionality: the autolinking/autoformating is added to the undo list as a separate action from the typing, so that you can just type and press Ctrl+Z to supress the autothings when your don't want them. Currently in zim they are fused: FooBarSPACE turns it into a link when you add the SPACE; Ctrl+Z removes the link but also the SPACE; pressing SPACE again to continue typing restores the link. So maybe we want to adopt the separately-undoable autolinking model? It doesn't solve other questions but it does give a one-press way to decide autolinking case-by-case. -- Beni Cherniavsky-Paskin c...@users.sf.net ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
On Mon, Nov 23, 2009 at 13:26, Beni Cherniavsky c...@users.sf.net wrote: 0x zero_...@yahoo.com wrote: In addition to those points, I will add that in most cases the link generation in Zim is find - I like being able to type e.g. Glossary:TCP and get a link that - when I click it will create a page in the Glossary that I can fill in. I just need to be able to disable that functionality to keep e.g. spurious links from being generated when I want to use the literal page-name string instead of the link - if I format the string (e.g. as literal, bold, italic or whatever - that helps, but formatting is often lost, and the links re-generated. Probably this is different topic, though. M$ Office AutoCorrect/AutoFormat leverages Undo for similar functionality: the autolinking/autoformating is added to the undo list as a separate action from the typing, so that you can just type and press Ctrl+Z to supress the autothings when your don't want them. Currently in zim they are fused: FooBarSPACE turns it into a link when you add the SPACE; Ctrl+Z removes the link but also the SPACE; pressing SPACE again to continue typing restores the link. So maybe we want to adopt the separately-undoable autolinking model? It doesn't solve other questions but it does give a one-press way to decide autolinking case-by-case. Correction: in perl zim it already worked the smart way! In pyzim, the actions are fused. I'll file a feature request in the tracker for pyzim. -- Beni Cherniavsky-Paskin c...@users.sf.net ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
--- On Sun, 11/15/09, Beni Cherniavsky c...@users.sf.net wrote: From: Beni Cherniavsky c...@users.sf.net Subject: Re: [Zim-wiki] 1:1 vs. piped links To: Pedro pedro...@gmail.com Cc: Zim zim-wiki@lists.launchpad.net Date: Sunday, November 15, 2009, 11:31 PM On Sun, Nov 15, 2009 at 20:44, Pedro pedro...@gmail.com wrote: DokuWiki for example has both options: [[Link Target]] simple link [[Link Target|Click here]] link with a label This is jsut a possibility, since zim comes with a a GUI rather than being markup-centered, all the links could have the latest format, being up to the user to choose if any part of it should be automagically filled. Just to clarify: I was talking solely about user interface. For the purpose of this discussion, I don't care if the the underlying markup for 1:1 links is [[Link Target]] or [[Link Target|Link Target]]. (Generally, I do prefer the first format, so that the text files are easier to read and edit manually.) And I agree that there must be an option to make the label different from the target. I described the text is the link model because it affords a more intuitive and fluent GUI, to spark discussion about capturing its good qualities in a GUI that does allow text to differ from the link. -- Beni Cherniavsky-Paskin c...@users.sf.net I think it should be a switch - a button on the toolbar that toggles the functionality on and off like the read-only toggle. There should be a keystroke for it, too, of course. I'm finding that I'm spending a lot of time going back and removing GUI-generated links (in Zim) - more time doing that, in fact, than I would manually entering links to begin with. What I would like to have (to do, perhaps) with the Zim GUI is what was suggested regarding a checkbox or radio button that will turn the auto-linking associated with CaML case on/off. I am working mostly with software development documentation and notes - /everything/ is CaML case - I don't mind having to hit ^L to make some text into a link. I would also Like the color coding of broken links tha was suggested, since my common workflow is - type in the literal links (this would be with the option mentioned above turned on), then make another pass through the text creating and editing links. In addition to those points, I will add that in most cases the link generation in Zim is find - I like being able to type e.g. Glossary:TCP and get a link that - when I click it will create a page in the Glossary that I can fill in. I just need to be able to disable that functionality to keep e.g. spurious links from being generated when I want to use the literal page-name string instead of the link - if I format the string (e.g. as literal, bold, italic or whatever - that helps, but formatting is often lost, and the links re-generated. Probably this is different topic, though. 0x ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
I think it should be a switch - a button on the toolbar that toggles the functionality on and off like the read-only toggle. There should be a keystroke for it, too, of course. This ssounds like the best solution. I personally would prefer that there be no label for links: URLs are typed as they are, and Zim would autmatically make them clickable links. But I understand that not everyone would prefer that. I'm finding that I'm spending a lot of time going back and removing GUI-generated links (in Zim) - more time doing that, in fact, than I would manually entering links to begin with. I agree, it is a terrible time waster. What I would like to have (to do, perhaps) with the Zim GUI is what was suggested regarding a checkbox or radio button that will turn the auto-linking associated with CaML case on/off. Are you referring to internal links, or external links? I would personally prefer that there be no support for internal links, as I use CaMeL case for code variables and I store code examples in Zim. I do not use internal linking in Zim. I am working mostly with software development documentation and notes - /everything/ is CaML case - I don't mind having to hit ^L to make some text into a link. ++agree -- Dotan Cohen http://what-is-what.com http://gibberish.co.il ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
Re: [Zim-wiki] 1:1 vs. piped links
On Sun, Nov 15, 2009 at 20:44, Pedro pedro...@gmail.com wrote: DokuWiki for example has both options: [[Link Target]] simple link [[Link Target|Click here]] link with a label This is jsut a possibility, since zim comes with a a GUI rather than being markup-centered, all the links could have the latest format, being up to the user to choose if any part of it should be automagically filled. Just to clarify: I was talking solely about user interface. For the purpose of this discussion, I don't care if the the underlying markup for 1:1 links is [[Link Target]] or [[Link Target|Link Target]]. (Generally, I do prefer the first format, so that the text files are easier to read and edit manually.) And I agree that there must be an option to make the label different from the target. I described the text is the link model because it affords a more intuitive and fluent GUI, to spark discussion about capturing its good qualities in a GUI that does allow text to differ from the link. -- Beni Cherniavsky-Paskin c...@users.sf.net ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp
[Zim-wiki] 1:1 vs. piped links
I started to comment to pyzim bug 304605https://bugs.launchpad.net/zim/+bug/304605but I think it warrants a wider discussion. The bug refers to a specific situation: editing an existing link text modifies the target, thus breaking the link. But it reflects a wider usability/discoverability issue: sometimes we want to keep target synced to text, sometimes we don't, and we lack a good interface for both. At the ends of the spectrum, I see 2 self-consistent, UI models: The Text Is The Link: * All links explicitly say where they point to. Nothing is hidden. * Link creation can be as simple as applying a link style to typed text. * Link text can be directly edited to switch the link target. * Downside: there is no way to beautify links to streamline reading. * P.S. This model is easily extended to Tomboy-style autolinking. The Text Is Just A Label: * All links have text separate from target. The user controls link appearance. * Turning text into a link requires a dialog for the target. * Changing the text never updates the target. Beautifying links is easy. * Switching to a different target requires a dialog. The first model is nice but insufficient for many users. The second model is near-optimal when you do need the flexibility, but is cumbersome if you don't. Both can apply to external links (URL vs. label) as well as internal (page name vs. label). Currently pyzim is close to the second and that's annoying - you have to type the same thing twice to create a link! It's interesting to note that Gmail uses the second model (makes sense, mail links are all external with ugly URL). But their interface is more user-friendly than Zim's! Also, they augment it by URL discovery (they automatically turn into 1:1 links). Note that starting with 1:1 links and later beautifying them is a common workflow. I'm not sure how all this should be blended, but here are some tricks/ideas: * Show broken links in red: this makes it obvious when you are breaking/retargetting links. * Don't even show text field in Link dialog, only target. This makes it clear that text is edited by directly editing the page. * Have checkbox or radiobox in Link dialog to toggle 1:1 mode (default on). * Show the 2 link modes in different colors. E.g. blue/red for 1:1 links, green for other links. * While the editing cursor is on a link, it expands to also show the target, e.g. [link|target]. When the cursor leaves the link, it collapses and you see just the text in blue. * While the editing cursor is on a link, a tooltip-like mini-dialog hovers beneath it. This is more discoverable and friendly, though less keyboard-friendly. Gmail does this. * Consider Tomboy autolinking for creating links of the simple 1:1 kind? -- Beni Cherniavsky-Paskin c...@users.sf.net ___ Mailing list: https://launchpad.net/~zim-wiki Post to : zim-wiki@lists.launchpad.net Unsubscribe : https://launchpad.net/~zim-wiki More help : https://help.launchpad.net/ListHelp