On Thu, 29 Jun 2017 11:13:51 +0000 Andrew Williams <a...@andywilliams.me> said:

> Hi,
> 
> Just to wrap this thread up following EDD:
> 
> * no-one is proposing that we remove the ability to mark up text through
> the markup format mechanism, it is a great feature
> * we cannot make changes to this legacy API as apps depend on it or have
> adapted to it
> 
> * the new textblock API, which is currently plain text only is being
> extended with a solid markup API
> * The existing markup format will be supported through _markup_text_set or
> similar API leaving text_set/get to be plain text only
> 
> It was beileved that this would satisfy all requirements whilst removing
> any confusion about the nature of text encoding when using plain text.
> This allows us to take a path-of-least-surprise approach for the new Eo
> based text APIs

you have to have a markup version of everything. set, append, prepend, insert,
replace etc.

> Thanks everyone for the discussion :)
> Andy
> 
> On Sat, 24 Jun 2017 at 05:39 Carsten Haitzler <ras...@rasterman.com> wrote:
> 
> > On Fri, 23 Jun 2017 21:55:14 +0200 Davide Andreoli <d...@gurumeditation.it
> > >
> > said:
> >
> > > 2017-06-19 13:36 GMT+02:00 Daniel Hirt <hirt.da...@gmail.com>:
> > > > Hi,
> > > >
> > > > On Mon, Jun 19, 2017 at 12:01 PM, Andrew Williams <
> > a...@andywilliams.me>
> > > > wrote:
> > > >
> > > >> Hi,
> > > >>
> > > >> Looking at the tests you point me at - selection (and the past) is a
> > > plain
> > > >> text copy with the markup stripped - exactly what I would expect for
> > > >> text_get - but the current content transformed with the helper will
> > not
> > > get
> > > >> you there - there is no built in interpretation of formatting - just
> > > >> rendered understands it.
> > > >>
> > > >>
> > > > "elm_entry_selection_get" returns the text in markup format. The test
> > > prints
> > > > both types one after another (markup followed by plaintext) using
> > > > "elm_entry_markup_to_utf8".
> > > > It is essential for copy & paste of markup text between two entry
> > clients,
> > > > so the pasted formatting is kept.
> > > >
> > > >
> > > >> Overall the implementation feels wrong - supporting markup is great
> > but
> > > >> returning it inline in text_get feels like we are imposing internal
> > > choices
> > > >> on other devs.
> > > >>
> > > >> I note that the code considers format but only when interacting with
> > > files
> > > >> - so I can have plain text files but not plain text input.
> > > >>
> > > >>
> > > > Right, it's a feature so you can load plain files. You specify the
> > format
> > > > you
> > > > want to load (plaintext or markup). But, after the file is loaded, it's
> > > > discarded.
> > > >
> > > > It's important to point out that because there's an actual
> > representation
> > > > (markup), it's costly to store both plaintext and markup content in the
> > > > object.
> > > > Asking you to convert using "markup_to_utf8" is understandable, as it
> > what
> > > > we would actually do internally if we were to add API to get the text
> > in
> > > > plaintext. It's only one function call away, and it's easier than just
> > add
> > > > more
> > > > API to the widget. No need for a new function if there's a way to do
> > this
> > > > already.
> > > >
> > > >
> > > >> Lastly the documentation clearly discussed markup capability but it
> > > *never*
> > > >> discusses encoding and there is no explicit mention that your text
> > will
> > > be
> > > >> transformed after text_set. If it were then it should be symmetrically
> > > >> transformed back on text_get - path of least surprise.
> > > >>
> > > >>
> > > > Actually, it is not transformed on "text_set". You are expected to
> > enter a
> > > > markup-compatible text. Otherwise you will have the mentioned special
> > > > characters (like "<") misinterpreted as markup. You can try with
> > > > "elm_object_text_set" on an entry widget.
> > > >
> > > >
> > > >> I don't quite understand why we would build formatting in as
> > mandatory,
> > > >> functionality is great but it should be possible to turn it off.
> > > >>
> > > >> I agree that people complain when markup is not supported in a widget
> > but
> > > >> that is the expectation we have set - consistency is very important
> > > indeed
> > > >> and I think we don't have it in this regard.
> > > >>
> > > >> Additionally I think the markup_to_utf8 methods are peculiarly named -
> > > they
> > > >> do no character encoding so the usage of utf8 is probably incorrect...
> > > >>
> > > >
> > > > They're correct. UTF-8 is the standard plaintext encoding. We support
> > > UTF-8,
> > > > and provide converters for your convenience. You probably won't need
> > those
> > > > most
> > > > of the time.
> > > > Your plaintext is always "encoded", but you probably won't notice that
> > > > because
> > > > it's backward-compatible with US ASCII (1-byte per character).
> > > >
> > > >
> > > >>
> > > >> Andrew
> > > >>
> > > >>
> > > > Lastly, I would like to mention "Efl.Ui.Text" - this new widget is a
> > part
> > > > of a
> > > > rework of the Textblock object. It's in BETA stage.
> > > > It does what you require: all text input is expected to be plaintext.
> > > > There's no
> > > > "markup" logic in it. Instead, you format your text by setting ranges
> > and
> > > > calling
> > > > functions to apply formatting. Again, markup does not exist in this
> > > object,
> > >
> > > What? no more markup support? This is really, really sad to hear :(
> >
> > i've ben trying to tell people that markup is LESS bad than no markup (or
> > having to do it via api calls)... but the people giving the opinions on
> > this
> > aren't writing the apps.
> >
> > maybe you c an convince them.
> >
> > > I'm using markup everywhere in my media center and I'm really happy with
> > > it's usage.
> >
> > too bad. plain text for you unless you call lots of api calls to insert it
> > tag
> > by tag. have fun.
> >
> > > Please think carefully at my use case:
> > >
> > > http://www.enlightenment.org/ss/e-594d67c3ee4752.10999768.jpg
> > >
> > > Look at the the textblock in the lower-right corner,
> > > the code to set the text is something like this:
> > >
> > > text = sprintf("<title>%s</> <small>%s</small><br>"
> > >        "<small><name>%s</> %s <name>/ %s %s</><br>"
> > >        "<views>%s %s</> <name>/</> "
> > >        "<likes>%s %s</> <name>/</> "
> > >        "<comments>%s %s</></small><br>%s",
> > >        video.name, video.duration,
> > >        _('user'), video.user,
> > >        _('uploaded'), relative_date(video.created_time),
> > >        views, ngettext('view', 'views', views),
> > >        likes, ngettext('like', 'likes', likes),
> > >        comments, ngettext('comment', 'comments', comments),
> > >        video.description)
> > >
> > > ..thats it, and I have those beautiful (theme-able!) formatted text.
> > >
> > > Now try to think at the code needed to do the same with the "new" API !!
> > >
> > > Another insurmountable problem of the API approach: the text in my
> > example
> > > comes from plugins (the vimeo plugin in this case) that are separate
> > > processes
> > > from the core mediacenter, plugins just fetch datas from the net and pass
> > > them back to the core. This means that the plugins do not have access to
> > the
> > > textblock API.
> > >
> > > Some more examples:
> > > https://github.com/DaveMDS/epymc/wiki/Screenshots
> > >
> > > I can understand the initial issue Andrew was speaking in this thread
> > > (text_get
> > > is difficult to use). And I agree that the default behavior should be
> > plain
> > > text set/get,
> > > BUT: we really need to implement something like: text_markup_set(...)
> > >
> > > To be more clear: loosing the markup ability (in textblock, buttons, and
> > > any other widget) is a shame, we are loosing IMO the most powerful and
> > > useful
> > > feature of textblock in efl.
> > >
> > > > can be re-added as a module in later stages.
> > >
> > > Please, please, please re-added it now, otherwise I will not be able to
> > > port my
> > > applications to the new API, until a "later stage" will eventually occur.
> > >
> > >
> > > > You can check its current state in "efl ui text" test in
> > elementary_test.
> > > > Feedback
> > > > will be very much appreciated.
> > > >
> > > > Hope this answers a few of your questions.
> > > > Best,
> > > > --
> > > > Danny (herdsman) Hirt
> > > >
> > >
> > ------------------------------------------------------------------------------
> > > > Check out the vibrant tech community on one of the world's most
> > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > > > _______________________________________________
> > > > enlightenment-devel mailing list
> > > > enlightenment-devel@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > >
> > ------------------------------------------------------------------------------
> > > Check out the vibrant tech community on one of the world's most
> > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > > _______________________________________________
> > > enlightenment-devel mailing list
> > > enlightenment-devel@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > >
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> -- 
> http://andywilliams.me
> http://ajwillia.ms
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to