[IPython-dev] Right to left markdown in IPython (1.0)

Ronen Abravanel ronena at gmail.com
Mon Aug 26 09:37:25 EDT 2013


And now on github:
https://github.com/ronenabr/ipython_bidi_markdown



On Mon, Aug 26, 2013 at 3:59 PM, Ronen Abravanel <ronena at gmail.com> wrote:

> Works, thanks!
>
> But only combining with my previews hack ("my" code to alter the preloaded
> page and Matthias' to handle new-generated content.
>
>
>
>
> On Mon, Aug 26, 2013 at 10:57 AM, Matthias BUSSONNIER <
> bussonniermatthias at gmail.com> wrote:
>
>>
>> Le 25 août 2013 à 22:11, Ronen Abravanel a écrit :
>>
>> > The issue itself is general, but all the response are about editing,
>> which seems for me less important then display.  My 'extension' tries to
>> solve the display part.
>> >
>> > Markdown dose not define any behavior for RTL text, and all I found
>> online is some hacks (like the one I used). Real solution will be to extend
>> markdown (marked?) both for implicit Right-to-left (like bidiweb is doing)
>> and explicit (invent some 'set RTL' mark?). But that's seems for me event
>> outside the scope of IPython.
>> >
>>
>>
>> Yes extending marked is outside of scope of IPython.
>>
>> Sadly we don't trigger even on markdown rendering. You can open an issue
>> on github about that.
>>
>> the current rendering code is the following :
>>
>>
>> MarkdownCell.prototype.render = function () {
>>         if (this.rendered === false) {
>>             var text = this.get_text();
>>             var math = null;
>>             if (text === "") { text = this.placeholder; }
>>             var text_and_math = IPython.mathjaxutils.remove_math(text);
>>             text = text_and_math[0];
>>             math = text_and_math[1];
>>             var html = marked.parser(marked.lexer(text));
>>             html = $(IPython.mathjaxutils.replace_math(html, math));
>>             // links in markdown cells should open in new tabs
>>             html.find("a[href]").not('[href^="#"]').attr("target",
>> "_blank");
>>             try {
>>                 this.set_rendered(html);
>>             } catch (e) {
>>                 console.log("Error running Javascript in Markdown:");
>>                 console.log(e);
>>                 this.set_rendered($("<div/>").addClass("js-error").html(
>>                     "Error rendering Markdown!<br/>" + e.toString())
>>                 );
>>             }
>>             this.element.find('div.text_cell_input').hide();
>>             this.element.find("div.text_cell_render").show();
>>             this.typeset()
>>             this.rendered = true;
>>         }
>>     };
>>
>> I can give you the **bad** advice to monkey patch
>> MarkdownCell.prototype.render
>>
>> to be the following + what you need to handle RTL.
>> It is **only** a temporary solution that **will** break later.
>>
>>
>> In custom js that would look ilke  :
>>
>> IPython.MarkdownCell.prototype.render = function () {
>>         if (this.rendered === false) {
>>             … same as above
>>             this.typeset()
>>
>>             // triger even and/or bidiweb.style('.rendered_html *');
>>             // or anly the `html` DOM above for speed.
>>             // if you are greedy.
>>             this.rendered = true;
>>         }
>>     };
>>
>>
>> --
>> M
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20130826/6b213193/attachment.html>


More information about the IPython-dev mailing list