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.

