Hi Saq, Many thanks for all your help! Sure I will! Of course this is a product from *TW Colab*! ;-) :-) I add documentation and soon I will push it to GitHub!
I also appreciate all the help from Josih! Best wishes Mohammad On Sat, May 22, 2021 at 11:59 PM Saq Imtiaz <[email protected]> wrote: > Hi Mohammad! As per our email discourse, your code is good. Polish it up > and publish the first kookma JavaScript plugin! > > On Saturday, May 22, 2021 at 6:32:31 PM UTC+2 Mohammad wrote: > >> On Sat, May 22, 2021 at 8:44 PM Saq Imtiaz <[email protected]> wrote: >> >>> @Mohammad yes you need to have a while loop: >>> >>> while(results.Title.indexOf(title) == -1) { >>> title = title + "1"; >>> } >>> >> >> That is correct! I did a similar in R04! >> >> results.*Title*.indexOf(title) >> I did not know this! >> >>> >>> >>> Another improvement you can make just to have neater code, is to make a >>> function called getTitle outside and before the $tw.utils.each loop. >>> >>> var getTitle = function(title) { >>> title = title.replace..... >>> while(title in resultsTitles) { >>> title = title + "1"; >>> } >>> return title; >>> } >>> >>> >> Very nice! So, one can define a new function in middle of the code! >> >> >> >> >>> Inside this function you can do the string replacement of unwanted >>> characters and also check for already existing titles in a loop, and return >>> the new title. This is an aesthetic thing though and wont really impact the >>> efficiency of the code. >>> >> >> Perfect! >> >> >> >>> @TT the regexp is good, Mohammad refers to check for duplicate titles >>> only once instead of in a loop. So if "TiddlyWiki.com" already exists, we >>> have to check if "TiddlyWiki.com1" already exists. >>> >> >> >> Thank you for all your help! I would appreciate sharing your final >> version! and give a link for the community! >> I think that my version is not good enough to be used by other users! >> (p.s I am not sure if these deserializers may be part of core later or >> not! If not, it is worth having them as a plugin!) >> I will write small help for potential users! >> >> >> >> >>> >>> On Saturday, May 22, 2021 at 4:39:13 PM UTC+2 TiddlyTweeter wrote: >>> >>>> IF the regex on match is NOT GLOBAL flagged it will only match the >>>> first instance. >>>> >>>> I am NOT familiar with JS regex flags but try this ... >>>> >>>> */[|{}\[\]]/gi* >>>> >>>> >>>> Let me know! >>>> TT >>>> On Saturday, 22 May 2021 at 16:18:56 UTC+2 Mohammad wrote: >>>> >>>>> Ah, there is an issue! It only searches for the first occurrence! >>>>> Needs to be corrected! >>>>> >>>>> Best wishes >>>>> Mohammad >>>>> >>>>> >>>>> On Sat, May 22, 2021 at 6:39 PM Mohammad Rahmani < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Saq, >>>>>> This is the third revision! I used indexOf() and it seems it is >>>>>> compatible with ES5. >>>>>> I am not sure if the code is an efficient one or not, but it works! >>>>>> >>>>>> To give it a try I have attached a bookmarks file containing >>>>>> characters on parsing to generate duplicates! >>>>>> >>>>>> >>>>>> Best wishes >>>>>> Mohammad >>>>>> >>>>>> >>>>>> On Sat, May 22, 2021 at 3:56 PM Saq Imtiaz <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Mohammad, it looks good! >>>>>>> >>>>>>> So we can't use the unusedtitle macro from TiddlyWiki because inside >>>>>>> the deserializer code, these are not tiddlers yet. >>>>>>> >>>>>>> What I recommend is to create another empty array where we make the >>>>>>> array for results, called resultsTitles >>>>>>> >>>>>>> Then inside the $tw.utils loop, where we have results.push, we >>>>>>> should also for each bookmark do resultsTitles.push(title). Now we >>>>>>> have an array of results titles. >>>>>>> >>>>>>> So now we have to add an extra step for creating the title after the >>>>>>> regex string replacement, here is pseudo code: >>>>>>> >>>>>>> while title exists in resultsTitles array >>>>>>> title = title + "1" >>>>>>> >>>>>>> The title variable should now be unique for the bookmarks we are >>>>>>> importing. >>>>>>> >>>>>>> >>>>>>> On Saturday, May 22, 2021 at 1:03:23 PM UTC+2 Mohammad wrote: >>>>>>> >>>>>>>> @ TT >>>>>>>> Check the attached revised one! >>>>>>>> 1. drag and drop the attached JSON in empath.html (download one >>>>>>>> from https://tiddlywiki.com/prerelease/) >>>>>>>> 2. save and reload >>>>>>>> 3. drag and bookmarks.html exported from FF/Edge/Chrome (I have one >>>>>>>> with nasty chars in the title) >>>>>>>> 4. See how the import works in Tiddlywiki >>>>>>>> >>>>>>>> @Saq >>>>>>>> >>>>>>>> Hoora! It works! Please see the code and advise! >>>>>>>> >>>>>>>> 1. I attached the revised deserializer and it works for titles with >>>>>>>> nasty characters. >>>>>>>> 2. Next step I will see how to use a unique title, help please >>>>>>>> 2.1. how can do this? should I use unusedtitle macro from TW core? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Best wishes >>>>>>>> Mohammad >>>>>>>> >>>>>>>> >>>>>>>> On Sat, May 22, 2021 at 3:21 PM TiddlyTweeter <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Right. >>>>>>>>> >>>>>>>>> Try the second match pattern I gave and let me know if it works >>>>>>>>> for those cases ... */[|{}\[\]]/* >>>>>>>>> >>>>>>>>> On Saturday, 22 May 2021 at 12:46:05 UTC+2 Mohammad wrote: >>>>>>>>> >>>>>>>>>> Do we need to capture what is in this between? >>>>>>>>>> >>>>>>>>>> consider a title like: AIChE | American Institute of Chemical >>>>>>>>>> Engineers [2021] >>>>>>>>>> we need to remove [] and replace with - >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Best wishes >>>>>>>>>> Mohammad >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sat, May 22, 2021 at 3:12 PM TiddlyTweeter < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> @TT >>>>>>>>>>> What is the regex to replace the below chars with `-` at thesame >>>>>>>>>>> time >>>>>>>>>>> |, {, } >>>>>>>>>>> >>>>>>>>>>> In raw JavaScript the regex match could be: */[|{}]/* >>>>>>>>>>> The replace simply: */-/* >>>>>>>>>>> IF you want to change "[" and "]" too try: */[|{}\[\]]/* >>>>>>>>>>> I have NOT tested this so if there are issues let me know! >>>>>>>>>>> TT >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "TiddlyWiki" group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>> >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/tiddlywiki/4ccfc5e7-a333-4ad8-99c4-466e30f5f185n%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/4ccfc5e7-a333-4ad8-99c4-466e30f5f185n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "TiddlyWiki" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> >>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/tiddlywiki/59ef0fc2-66b4-43d7-8469-ee0b97089bf7n%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/59ef0fc2-66b4-43d7-8469-ee0b97089bf7n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "TiddlyWiki" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/tiddlywiki/f73a724e-b8ad-4c81-9956-726b6341266an%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/f73a724e-b8ad-4c81-9956-726b6341266an%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "TiddlyWiki" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/tiddlywiki/ffd4411a-a18f-419e-a348-b75c2d3460e1n%40googlegroups.com >>> <https://groups.google.com/d/msgid/tiddlywiki/ffd4411a-a18f-419e-a348-b75c2d3460e1n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "TiddlyWiki" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tiddlywiki/d7ff28ea-d806-4f79-9475-4ee7a87d3dd6n%40googlegroups.com > <https://groups.google.com/d/msgid/tiddlywiki/d7ff28ea-d806-4f79-9475-4ee7a87d3dd6n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/CAAV1gMD6dKN0ttz%3D__hD6c70jOgr7KwjbpF%2BPHdx708_MQ-3TA%40mail.gmail.com.

