Hi Jeremy,

what's the usual way of getting TW5? I've saved the page of [1] via FireFox 
(which brought an .htm) and that instance is not able to save (TiddlyFox 
sais

[Exception... "Component returned failure code: 0x80004005 
(NS_ERROR_FAILURE) [nsILocalFile.create]"  nsresult: "0x80004005 
(NS_ERROR_FAILURE)"  location: "JS frame :: 
chrome://tiddlyfox/content/overlay.js :: TiddlyFox.saveFile :: line 96"  
data: no]

on an attempt to save; I accepted TiddlyFox to save when the prompt 
appeared onload). Can't see any "download" button at [1] :)

Best regards,
Yakov.

[1] five.tiddlywiki.com

понедельник, 19 августа 2013 г., 16:57:42 UTC+4 пользователь Jeremy Ruston 
написал:
>
> Hi Yakov
>
> Thanks for that. I've committed a first pass at a saver for AndTidWiki to 
> GitHub and five.tiddlywiki.com, I'd be very grateful if you could give it 
> a go.
>
> The code is here:
>
>
> https://github.com/Jermolene/TiddlyWiki5/commit/1fd59a4bd312ead20251da80dd7bceb52f9c2bb0
>
> Best wishes
>
> Jeremy
>
>
> On Sat, Aug 17, 2013 at 11:25 AM, Yakov <yakov.litv...@gmail.com<javascript:>
> > wrote:
>
>> Hi Jeremy,
>>
>> четверг, 15 августа 2013 г., 21:34:50 UTC+4 пользователь Jeremy Ruston 
>> написал:
>>>
>>> Hi Yakov
>>>
>>> checked that. AndTidWiki changes saveFile function: its test is the 
>>>> following
>>>>
>>>> function (fileUrl,content) {
>>>>     return window.twi.saveFile(fileUrl,**content);
>>>> }
>>>>
>>>> so presumably to make TW5 work with ATW, one should use that 
>>>> window.twi.saveFile interface in the TW5 saving engine.
>>>>
>>>
>>> That's great. There's two other things we need to figure out:
>>>
>>> 1) How AndTidWiki detects a TiddlyWiki document to determine if it 
>>> should inject it's code (it's possible that it injects it's code into all 
>>> HTML files, not just specifically TiddlyWikis). Right now TW5 is unlikely 
>>> to be detected as a TiddlyWiki file.
>>>
>>> I wouldn't expect ATW somehow detect a TW file. And my test somewhat 
>> confirms this: an html
>>
>> <html>
>>  <body>
>>   <p><a href="javascript:;" onclick='
>>     alert(saveFile);
>>   '>let's try</a></p>
>>  </body>
>> </html>
>>  
>> shows the save text of saveFile onclick.
>>
>> 2) How the fileUrl parameter has been mangled and encoded by the time 
>>> that the saveFile() function is called.
>>>
>>> Well, the simplest idea for this is to create a function that copies the 
>> way the path is formed in TWc in saveChanges before it is passed to 
>> saveFile, isn't it? According to the current core code, that would be
>>
>> var originalPath = document.location.toString(); // not netscape, 
>> convertUriToUTF8 
>> is not needed in ATW
>>
>> // Remove any location or query part of the URL
>> var argPos = originalPath.indexOf("?");
>> if(argPos != -1)
>>     originalPath = originalPath.substr(0,argPos);
>> var hashPos = originalPath.indexOf("#");
>> if(hashPos != -1)
>>     originalPath = originalPath.substr(0,hashPos);
>>
>> // Convert file://localhost/ to file:///            (is not needed in ATW)
>> if(originalPath.indexOf("file://localhost/") == 0)
>>     originalPath = "file://" + originalPath.substr(16);
>>
>> // Convert to a native file format                  (in ATW, the third 
>> case takes place)
>> //# "file:///x:/path/path/path..." - pc local file --> 
>> "x:\path\path\path..."
>> //# "file://///server/share/path/path/path..." - FireFox pc network file 
>> --> "\\server\share\path\path\path..."
>> //# "file:///path/path/path..." - mac/unix local file --> 
>> "/path/path/path..."
>> //# "file://server/share/path/path/path..." - pc network file --> 
>> "\\server\share\path\path\path..."
>> var localPath;
>> if(originalPath.charAt(9) == ":") // pc local file
>>     localPath = unescape(originalPath.substr(8)).replace(new 
>> RegExp("/","g"),"\\");
>> else if(originalPath.indexOf("file://///") == 0) // FireFox pc network 
>> file
>>     localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new 
>> RegExp("/","g"),"\\");
>> else if(originalPath.indexOf("file:///") == 0) // mac/unix local file
>>     localPath = unescape(originalPath.substr(7));
>> else if(originalPath.indexOf("file:/") == 0) // mac/unix local file
>>     localPath = unescape(originalPath.substr(5));
>> else // pc network file
>>     localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new 
>> RegExp("/","g"),"\\");
>>
>> return localPath;
>>  
>> So probably this can be shortened further (cut unnecessary cases, 
>> localhost cut etc).
>>
>> A quick hack to determine the answer to (2) would be if you could modify 
>>> a TW classic file to insert "alert(localPath)" just before the call to 
>>> saveFile() in the saveMain() function. Then can you attempt a save under 
>>> AndTidWiki, and note the path that is alerted. Ideally, could you include a 
>>> character like "%" in the filename.
>>>
>>
>> An example of originalPath is "file:///mnt/sdcard/...../atw test.html" 
>> and the corresponding localPath is "/mnt/sdcard/...../atw test.html".
>>
>> Best regards,
>> Yakov.
>>
>>
>>> I'm not sure how to deal with (1); if you can help with (2) I'll create 
>>> an exploratory TW5 saver for AndTidWiki and we can experiment further.
>>>
>>> Many thanks,
>>>
>>> Jeremy
>>>  
>>>
>>>>
>>>> Best regards,
>>>> Yakov.
>>>>
>>>> четверг, 15 августа 2013 г., 11:13:21 UTC+4 пользователь Jeremy Ruston 
>>>> написал:
>>>>>
>>>>> Hi Yakov
>>>>>
>>>>> There are two ways that TiddlyWiki can interact with a server:
>>>>>
>>>>> 1. By saving the entire file to the server (this is how TiddlySpot 
>>>>> works, and the iPhone/iPad app TWEdit)
>>>>> 2. By syncing changes to individual tiddlers to the server (this is 
>>>>> how TiddlyWeb/TiddlySpace works)
>>>>>
>>>>> I would expect AndTidWiki to work using the first technique. Typically 
>>>>> that would be done by injecting code that overrides the saveChanges 
>>>>> function, or the lower level saveFile/loadFile functions.
>>>>>
>>>>> You can see an example of the technique in the source to TiddlyFox. 
>>>>> This is the javascript file that TiddlyFox injects into TiddlyWiki 
>>>>> documents:
>>>>>
>>>>> https://github.com/TiddlyWiki/****TiddlyFox/blob/master/content/****
>>>>> inject.js<https://github.com/TiddlyWiki/TiddlyFox/blob/master/content/inject.js>
>>>>>
>>>>> You can see the internal functions being overridden at lines 50 to 53.
>>>>>
>>>>> Best wishes
>>>>>
>>>>> Jeremy
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Aug 15, 2013 at 12:27 AM, Yakov <yakov.litv...@gmail.**com>wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> пятница, 2 августа 2013 г., 14:27:41 UTC+4 пользователь Jeremy Ruston 
>>>>>> написал:
>>>>>>
>>>>>>> понедельник, 29 июля 2013 г., 15:43:02 UTC+4 пользователь Arlen 
>>>>>>>> Beiler написал:
>>>>>>>>
>>>>>>>>> Using TiddlyWiki5 which I just downloaded in AndTidWiki, I can 
>>>>>>>>> edit fine, but when I try to save it, I get an Internal Javascript 
>>>>>>>>> Error. 
>>>>>>>>> "Uncaught TypeError: Cannot call method 'getItem' of null".
>>>>>>>>>
>>>>>>>>> That's unfortunate. Theoretically it's possible to "emulate" the 
>>>>>>>> saving engine of TWc in TW5 by a plugin, but that's far from my 
>>>>>>>> knowledge 
>>>>>>>> (I haven't researched TW5 core yet, and also don't quite understand 
>>>>>>>> how ATW 
>>>>>>>> and TW interact).
>>>>>>>>
>>>>>>>
>>>>>>> I agree that we should be able to make TW5 work with the existing 
>>>>>>> AndTidWiki app. I don't have an Android device for testing, and have 
>>>>>>> had 
>>>>>>> bad experiences in the past with the poor performance of the Android 
>>>>>>> emulator. So I'd be very grateful if anyone can help with information 
>>>>>>> on 
>>>>>>> the way that AndTidWiki works.
>>>>>>>
>>>>>>> Hi Jeremy,
>>>>>>
>>>>>> I'm not familiar with how TiddlyWiki interacts with any server side, 
>>>>>> so may be you can help me with that first..
>>>>>>
>>>>>> the chain
>>>>>> config.macros.saveChanges.**onCl**ick - saveChanges - saveMain - 
>>>>>> saveFile - ...
>>>>>> doesn't seem to have anything that's "awaiting" server side, so
>>>>>>
>>>>>> my only guess on where server side can jump in is
>>>>>>
>>>>>> TiddlyWiki.prototype.**allTiddle**rsAsHtml - 
>>>>>> TiddlyWiki.prototype.getSaver - TW21Saver/some other saver - 
>>>>>> .externalize - 
>>>>>> .externalizeTiddler
>>>>>>
>>>>>> so is it true that usually server sides create their own SaverBase 
>>>>>> instance with their own externalizeTiddler method and change 
>>>>>> TiddlyWiki.prototype.getSaver and that's how they make TW use some new 
>>>>>> functionality to save? Or is it done somehow else?
>>>>>>
>>>>>> Best regards,
>>>>>> Yakov.
>>>>>>  
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>> On Mon, Jul 29, 2013 at 4:39 AM, Yakov 
>>>>>>>>> <yakov.litv...@gmail.**com>wrote:
>>>>>>>>>
>>>>>>>>>> Hi Leo,
>>>>>>>>>>
>>>>>>>>>> by the way, have you tried AndTidWiki? As for now, I only use 
>>>>>>>>>> TiddlyWiki Classic on Android, so don't know if TW5 works with it. 
>>>>>>>>>> As a 
>>>>>>>>>> side note: with AndTidWiki, I only have to add 
>>>>>>>>>> ToggleLeft/RightSidebar [1], 
>>>>>>>>>> add a line-menu on top by changing PageTemplate and a few CSS 
>>>>>>>>>> adjustments, 
>>>>>>>>>> while FireFox needs some more work on styles (in fact, I need to 
>>>>>>>>>> create a 
>>>>>>>>>> plugin which will apply different styles depending on what "browser" 
>>>>>>>>>> opened 
>>>>>>>>>> TW).
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Yakov.
>>>>>>>>>>
>>>>>>>>>> [1] http://tiddlytools.com/#**Toggle******RightSidebar%**
>>>>>>>>>> 20ToggleLeftSideb******ar<http://tiddlytools.com/#ToggleRightSidebar%20ToggleLeftSidebar>
>>>>>>>>>>
>>>>>>>>>> вторник, 16 июля 2013 г., 8:54:26 UTC+4 пользователь Leo Staley 
>>>>>>>>>> написал:
>>>>>>>>>>  
>>>>>>>>>>> Thank you Eric! I didn't know how to do that from my Android. 
>>>>>>>>>>> Firefox didn't install it when I clicked on it like I thought it 
>>>>>>>>>>> should 
>>>>>>>>>>> have.
>>>>>>>>>>>
>>>>>>>>>>> After downloading it with another browser (because firefox 
>>>>>>>>>>> didn't let me "save link" on long-press) and opening the file using 
>>>>>>>>>>> firefox, I was able to install it. 
>>>>>>>>>>>
>>>>>>>>>>> Sadly though, no "save" button appears under the tools menu. The 
>>>>>>>>>>> button at the top, to download a copy of the page worked once, but 
>>>>>>>>>>> i'm 
>>>>>>>>>>> having trouble doing it again.  
>>>>>>>>>>>
>>>>>>>>>>> Additionally, when i create a new tiddler, I first have to 
>>>>>>>>>>> delete the existing text in both the title and the main text area, 
>>>>>>>>>>> which 
>>>>>>>>>>> takes some time with an android keyboard. 
>>>>>>>>>>>
>>>>>>>>>>> Eric, How compatible are most of the items on TiddlyTools with 
>>>>>>>>>>> Tiddly5? Is development still continuing with the current edition 
>>>>>>>>>>> of 
>>>>>>>>>>> Tiddlywiki, and if so, in what Capacity? Forgive me for being such 
>>>>>>>>>>> a noob. 
>>>>>>>>>>>
>>>>>>>>>>> On Monday, July 15, 2013 9:15:47 PM UTC-7, Eric Shulman wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Monday, July 15, 2013 9:13:16 PM UTC-7, Leo Staley wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> More significantly, There was no way to save any changes I 
>>>>>>>>>>>>> made. Took me a while to realize that. 
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>> As Jeremy noted in his previous post:
>>>>>>>>>>>>    "... install TiddlyFox to save changes locally on the device 
>>>>>>>>>>>> (https://github.com/TiddlyWiki******
>>>>>>>>>>>> /TiddlyFox/raw/master/tiddlyfo******x.xpi<https://github.com/TiddlyWiki/TiddlyFox/raw/master/tiddlyfox.xpi>
>>>>>>>>>>>> )."
>>>>>>>>>>>>
>>>>>>>>>>>> enjoy,
>>>>>>>>>>>> -e
>>>>>>>>>>>> Eric Shulman
>>>>>>>>>>>> TiddlyTools / ELS Design Studios
>>>>>>>>>>>>
>>>>>>>>>>>> HELP ME TO HELP YOU - MAKE A CONTRIBUTION TO MY "TIP JAR"...
>>>>>>>>>>>>    
>>>>>>>>>>>> http://www.TiddlyTools.com/#D******onations<http://www.TiddlyTools.com/#Donations>
>>>>>>>>>>>>
>>>>>>>>>>>> Professional TiddlyWiki Consulting Services...
>>>>>>>>>>>> Analysis, Design, and Custom Solutions:
>>>>>>>>>>>>    
>>>>>>>>>>>> http://www.TiddlyTools.com/#C******ontact<http://www.TiddlyTools.com/#Contact>
>>>>>>>>>>>>
>>>>>>>>>>>  
>>>>>
>>>>>
>>>>> -- 
>>>>> Jeremy Ruston
>>>>> mailto:jeremy...@gmail.com
>>>>>  
>>>>
>>>
>>>
>>> -- 
>>> Jeremy Ruston
>>> mailto:jeremy...@gmail.com
>>>  
>>
>
>
> -- 
> Jeremy Ruston
> mailto:jeremy...@gmail.com <javascript:>
>  

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywikidev+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywikidev@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywikidev.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to