python-textile icon indicating copy to clipboard operation
python-textile copied to clipboard

Alignment in restricted mode works not correctly.

Open bezbashnik opened this issue 7 years ago • 3 comments

In tests for checking aligment you use symbols '<' and '>'

result = t.image('!</imgs/myphoto.jpg!')

But in fact, these symbols was parsed in html special chars. Their looks like '&lt;' and '&gt;' . And therefore working only

Simple way in pattern of reg exp function


\\!                  # opening !
(\<|\=|\>)?         # optional alignment atts
...

replace by

...
\\!                  # opening !
(\&lt;|\=|\&gt;)?         # optional alignment atts
...

and further alignments = {'<': 'left', '=': 'center', '>': 'right'} replace by alignments = {'\&lt;': 'left', '=': 'center', '\&gt;': 'right'}

EDIT 2017-08-29 17:04 by @sebix: markup

bezbashnik avatar Aug 29 '17 13:08 bezbashnik

I'm not sure I'm understanding this issue. Everything seems to be working exactly as designed, and replacing the angle brackets with their html-encoded counterparts does not result in correct output. Can you describe the problem in another manner? Is there some textile markup you're using which exposes this issue?

ikirudennis avatar Aug 30 '17 01:08 ikirudennis

I apologize for the bad description of the problem - was the end of the day. If we turn to the examples and description of the documentation Textile, and then using your module, try to align any tag left-aligned, right-aligned, or justified. The module starts to work not correctly. The following examples are tested on version 2.3.16 of your module with restricted=True

input:

p<. Left aligned paragraph.

p>. Right aligned paragraph.

p=. Centered paragraph.

p<>. This is a very long, almost never ending, sentence with the sole purpose to demonstrate how a justified paragraph would look like if the sentence wraps around several lines.

output:

p<. Left aligned paragraph.

p>. Right aligned paragraph.

Centered paragraph.(worked only align:center)

p<>. This is a very long, almost never ending, sentence with the sole purpose to demonstrate how a justified paragraph would look like if the sentence wraps around several lines.

The problem I explained in a previous post. How valid this result? When restricted=False everything works perfectly. Digging in the code: first you translate all characters to have html in their html codes. But when perform the test of paragraph regular expression, you do it via the symbols >, <, =. While they are actually &lt;, &gt;, =. Hope I outlined the problem more clearly. I Express my gratitude for the module.

bezbashnik avatar Aug 30 '17 06:08 bezbashnik

Okay, now that you mentioned it's only in restricted mode, that changes things a little bit. And unfortunately, it looks like this is an upstream issue with php-textile. When I tried to run those txstyle examples through php-textile in restricted mode, it raises fatal errors. I'll bring this up as an issue with them, we'll discuss what the proper output should be and work from there.

ikirudennis avatar Aug 30 '17 14:08 ikirudennis