Git Product home page Git Product logo

Comments (2)

DennisSuitters avatar DennisSuitters commented on August 22, 2024 1

The latest push update using changes via @DaniilVeriga seems to have fixed things on me end. Open a new issue if the problem persists.

from summernote-cleaner.

DaniilVeriga avatar DaniilVeriga commented on August 22, 2024

@StudioJunkyard, @gr0g, I've encountered the same problem and was about to submit a pull request with a slight change, but then had a deeper look at the cleaner button's handler:

click: function () {
    if ($note.summernote('createRange').toString()) {
        var text = cleanText($note.summernote('createRange').toString(), options.cleaner.newline);
        $note.summernote('pasteHTML', text);
    } else {
        // var text=cleanText($note.summernote().text(),options.cleaner.newline);
        // That is the initial idea for the pull request: .text() returns nothing
        var text = cleanText($note.summernote('code'), options.cleaner.newline);
        $note.summernote('code', text);
    }
    
    // irrelevant to the issue notification part
}

What bothers me:
Competely different behavior if anything is selected by user and if nothing is selected. As well, there is a difference with pasting.

If some text is selected, then $note.summernote('createRange').toString() returns already plain text, well, bypassing the cleaner logic at all. The cleanText() call looks redundant, because it is called on already plain text. So, the main plugin's cleanText() is just not applied in this scenario. A solution could be getting a range's HTML string (but not sure, it is possible) instead of getting plain text.

If no text is selected, then cleanText() is called on, seems, correct .summernote('code') (assuming my fix is applied). This scenario looks correct.

So, there is behavior ambiguity. On paste the plugin cleanse the text using cleanText(), but on the Cleaner button click the plugin is like "plain text maker". If it was the idea (although, I bet it was not), then it would be great to have this info in the readme and also I found (it looks so!) a solution for non-working .text().

So, this appears to be working:

click: function () {
    if ($note.summernote('createRange').toString()) {
        var text = $note.summernote('createRange').toString();
        $note.summernote('pasteHTML', text);
    } else {
        var text = $($note.summernote('code')).text();
        $note.summernote('code', text);
    }

    // irrelevant to the issue notification part
}

Submitted a pull request #29. Well, it is up to you to apply or not;)

Meanwhile, @StudioJunkyard, thank you for the nice plugin.

from summernote-cleaner.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.