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, localhostcut 
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.**onClick - 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.**allTiddlersAsHtml - 
>>>> 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:[email protected]
>>>  
>>
>
>
> -- 
> Jeremy Ruston
> mailto:[email protected] <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 [email protected].
To post to this group, send email to [email protected].
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