Define convenient? :) CKEditor API is ok to work with Elm.

Le mardi 27 septembre 2016 13:36:22 UTC+2, Steve Jones a écrit :
>
> Does CKeditor provide a convenient api for working with elm?
>
> On Tuesday, September 27, 2016 at 6:12:37 AM UTC-4, Steve Jones wrote:
>>
>> Yes, that seems to have been the missing piece of the puzzle for me. 
>> 'arrive.js' (which is based on Mutation Observers) has been recommended to 
>> me, though your solution may be preferable, depending on the the browser 
>> support that I'm being held to.
>>
>> Thanks
>>
>> On Tuesday, September 27, 2016 at 4:56:48 AM UTC-4, Vincent Jousse wrote:
>>>
>>> The main "hack" I had to do was to wait on the Javascript side for the 
>>> DOM element to be rendered by ELM.
>>>
>>> A setTimeout recursively checking if the element exists (and so if I can 
>>> attach a CKEditor to it) did the trick.
>>>
>>> Le mardi 27 septembre 2016 01:26:45 UTC+2, Steve Jones a écrit :
>>>>
>>>> Well, I'm not sure yet. But I think it was to do do with dom lifecycle 
>>>> and timing (I haven't tried CKeditor yet though. So far, I've tried 
>>>> tinymce 
>>>> and quill). Things that work with static HTML do not with HTML generated 
>>>> with elm. I've not found a lot of people doing this sort of thing 
>>>> successfully, so I'm mostly trying to determine what's been done.
>>>>
>>>> Quill gives me "Invalid Quill container". And tinymce just silently 
>>>> fails to do anything.
>>>>
>>>>
>>>> On Monday, September 26, 2016 at 7:01:16 PM UTC-4, Vincent Jousse wrote:
>>>>>
>>>>> Yes it works for me.
>>>>>
>>>>> What's your problem exactly?
>>>>>
>>>>> Le lundi 26 septembre 2016 23:54:49 UTC+2, Steve Jones a écrit :
>>>>>>
>>>>>> Vincent,
>>>>>>
>>>>>> So, you've had some success with CKeditor? I'm having some difficulty 
>>>>>> getting any of these rich text editors to work within my app. I have 
>>>>>> tried 
>>>>>> CKeditor yet though.
>>>>>>
>>>>>> On Friday, September 2, 2016 at 9:34:19 AM UTC-4, Vincent Jousse 
>>>>>> wrote:
>>>>>>>
>>>>>>> Nice trick :D
>>>>>>>
>>>>>>> I think I'll stay with my CKeditor solution for the moment, but 
>>>>>>> thanks a lot anyway.
>>>>>>>
>>>>>>> Le mercredi 31 août 2016 16:02:30 UTC+2, Damir Batinović a écrit :
>>>>>>>>
>>>>>>>> I had to use contenteditable in my project. The true way to 
>>>>>>>> handling cursor position was to hard (I don't remeber what it was but 
>>>>>>>> I 
>>>>>>>> thing it involves window.selection) so I went with a  dirty hack. 
>>>>>>>> Added 
>>>>>>>> another field to my model (tmpInput), saving input events into that 
>>>>>>>> field 
>>>>>>>> until Blur event was fired. Upon blur event tmpInput is copied to real 
>>>>>>>> input. So model and view are out of sync until blur happens. It's not 
>>>>>>>> nice 
>>>>>>>> but there where no problems with implementation so far.
>>>>>>>>
>>>>>>>> Dana utorak, 30. kolovoza 2016. u 17:18:37 UTC+2, korisnik Vincent 
>>>>>>>> Jousse napisao je:
>>>>>>>>>
>>>>>>>>> I didn't but it's a very good idea :-)
>>>>>>>>>
>>>>>>>>> Do you see a way to overcome the cursor position problem with that 
>>>>>>>>> approach?
>>>>>>>>>
>>>>>>>>> Le mardi 30 août 2016 17:16:21 UTC+2, Peter Damoc a écrit :
>>>>>>>>>>
>>>>>>>>>> It makes perfect sense. 
>>>>>>>>>>
>>>>>>>>>> Have you thought about putting contenteditable on each individual 
>>>>>>>>>> span? 
>>>>>>>>>> This should allow for single word editing and for individual 
>>>>>>>>>> double clicks. 
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Aug 30, 2016 at 5:43 PM, Vincent Jousse <[email protected]
>>>>>>>>>> > wrote:
>>>>>>>>>>
>>>>>>>>>>> I mainly need double click events. I'm doing a transcription 
>>>>>>>>>>> editor: I'm using a Speech To Text tool to generate words with 
>>>>>>>>>>> their 
>>>>>>>>>>> timestamps.
>>>>>>>>>>>
>>>>>>>>>>> I'm putting the words in a contenteditable div so that people 
>>>>>>>>>>> can correct the transcription, and each word is surrounded by a 
>>>>>>>>>>> span 
>>>>>>>>>>> containing the timestamp info in some data- attribute.
>>>>>>>>>>> When people double click on the span, I want the audio player to 
>>>>>>>>>>> play the file starting at this timestamp. And when the audio is 
>>>>>>>>>>> playing, I 
>>>>>>>>>>> want the «current word» to be highlighted in the contenteditable 
>>>>>>>>>>> div.
>>>>>>>>>>>
>>>>>>>>>>> Does it make sense?
>>>>>>>>>>>
>>>>>>>>>>> Le mardi 30 août 2016 16:36:10 UTC+2, Peter Damoc a écrit :
>>>>>>>>>>>>
>>>>>>>>>>>> Well, it was a naive approach. ^_^ 
>>>>>>>>>>>>
>>>>>>>>>>>> As for events inside the contenteditable div, I have no idea 
>>>>>>>>>>>> but what kind of events do you want to handle in this kind of a 
>>>>>>>>>>>> scenario?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Aug 30, 2016 at 5:11 PM, Vincent Jousse <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks, but I would not say that it's "working" as it seems 
>>>>>>>>>>>>> that the cursor position is reset after each event, causing the 
>>>>>>>>>>>>> text to be 
>>>>>>>>>>>>> written from right to left :-)
>>>>>>>>>>>>>
>>>>>>>>>>>>> It's seems related to this issue: 
>>>>>>>>>>>>> https://github.com/elm-lang/virtual-dom/issues/23
>>>>>>>>>>>>>
>>>>>>>>>>>>> And with this approach (storing a string), how could I trigger 
>>>>>>>>>>>>> events on the HTML inside the contenteditable div?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>> -- 
>>>>>>>>>>>> There is NO FATE, we are the creators.
>>>>>>>>>>>> blog: http://damoc.ro/
>>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>> Google Groups "Elm Discuss" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from 
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> There is NO FATE, we are the creators.
>>>>>>>>>> blog: http://damoc.ro/
>>>>>>>>>>
>>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to