FastHub Version: 4.0.3
Android Version: 7.1.2 (SDK: 25)
Device Information:
Some formatting combinations are not rendered correctly by FastHub.
This should be all possible combinations for manual review. Actually two do not even work correctly on GitHub itself. I reported this to GitHub already.
bold / code
**`this`**: this**`*this*`**: *this***`*~~this~~*`**: *~~this~~***`_this_`**: _this_**`_~~this~~_`**: _~~this~~_**`~~this~~`**: ~~this~~**`~~*this*~~`**: ~~*this*~~**`~~_this_~~`**: ~~_this_~~__`this`__: __this____`*this*`__: __*this*____`*~~this~~*`__: __*~~this~~*____`_this_`__: ___this_____`_~~this~~_`__: ___~~this~~_____`~~this~~`__: __~~this~~____`~~*this*~~`__: __~~*this*~~____`~~_this_~~`__: __~~_this_~~__bold / italic
***this***: this**_this_**: _this_*__this__*: __this___**this**_: _this___*this*__: __this_____this___: ___this___bold / italic / code
***`this`***: this***`~~this~~`***: ~~this~~**_`this`_**: _this_**_`~~this~~`_**: _~~this~~_*__`this`__*: __this__*__`~~this~~`__*: __~~this~~___**`this`**_: _this__**`~~this~~`**_: _~~this~~___*`this`*__: __this____*`~~this~~`*__: __~~this~~_____`this`___: ___this______`~~this~~`___: ___~~this~~___bold / italic / strike-through
***~~this~~***: **_~~this~~_**: _**~~*this*~~**: **~~_this_~~**: *__~~this~~__*: __*~~**this**~~*: *~~__this__~~*: _**~~this~~**_: ___*~~this~~*__: _____~~this~~___: _____~~*this*~~__: ____~~_this_~~__: ___~~**this**~~_: __~~__this__~~_: _~~***this***~~: ~~**_this_**~~: ~~*__this__*~~: ~~_**this**_~~: ~~__*this*__~~: ~~___this___~~: bold / italic / strike-through / code
***~~`this`~~***: this**_~~`this`~~_**: _this**~~*`this`*~~**: this**~~_`this`_~~**: this_*__~~`this`~~__*: __this*~~**`this`**~~*: this*~~__`this`__~~*: this___**~~`this`~~**_: _this__*~~`this`~~*__: __this___~~`this`~~___: ___this__~~*`this`*~~__: __this__~~_`this`_~~__: __this__~~**`this`**~~_: _this_~~__`this`__~~_: _this__~~***`this`***~~: this~~**_`this`_**~~: this_~~*__`this`__*~~: this__~~_**`this`**_~~: this_~~__*`this`*__~~: this__~~___`this`___~~: this___bold / strike-through
**~~this~~**: __~~this~~__: __~~**this**~~: ~~__this__~~: bold / strike-through / code
**~~`this`~~**: this**~~`*this*`~~**: *this***~~`_this_`~~**: _this___~~`this`~~__: __this__~~`*this*`~~__: __*this*__~~`_this_`~~__: ___this_~~**`this`**~~: this~~**`*this*`**~~: *this*~~**`_this_`**~~: _this_~~__`this`__~~: this__~~__`*this*`__~~: *this*__~~__`_this_`__~~: _this___code
`*this*`: *this*`**this**`: **this**`***this***`: ***this***`***~~this~~***`: ***~~this~~***`**_this_**`: **_this_**`**_~~this~~_**`: **_~~this~~_**`**~~this~~**`: **~~this~~**`**~~*this*~~**`: **~~*this*~~**`**~~_this_~~**`: **~~_this_~~**`*__this__*`: *__this__*`*__~~this~~__*`: *__~~this~~__*`*~~this~~*`: *~~this~~*`*~~**this**~~*`: *~~**this**~~*`*~~__this__~~*`: *~~__this__~~*`_this_`: _this_`_**this**_`: _**this**_`_**~~this~~**_`: _**~~this~~**_`__this__`: __this__`__*this*__`: __*this*__`__*~~this~~*__`: __*~~this~~*__`___this___`: ___this___`___~~this~~___`: ___~~this~~___`__~~this~~__`: __~~this~~__`__~~*this*~~__`: __~~*this*~~__`__~~_this_~~__`: __~~_this_~~__`_~~this~~_`: _~~this~~_`_~~**this**~~_`: _~~**this**~~_`_~~__this__~~_`: _~~__this__~~_`~~this~~`: ~~this~~`~~*this*~~`: ~~*this*~~`~~**this**~~`: ~~**this**~~`~~***this***~~`: ~~***this***~~`~~**_this_**~~`: ~~**_this_**~~`~~*__this__*~~`: ~~*__this__*~~`~~_this_~~`: ~~_this_~~`~~_**this**_~~`: ~~_**this**_~~`~~__this__~~`: ~~__this__~~`~~__*this*__~~`: ~~__*this*__~~`~~___this___~~`: ~~___this___~~italic / code
*`this`*: this*`**this**`*: **this***`**~~this~~**`*: **~~this~~***`__this__`*: __this__*`__~~this~~__`*: __~~this~~__*`~~this~~`*: ~~this~~*`~~**this**~~`*: ~~**this**~~*`~~__this__~~`*: ~~__this__~~_`this`_: _this__`**this**`_: _**this**__`**~~this~~**`_: _**~~this~~**__`__this__`_: ___this____`__~~this~~__`_: ___~~this~~____`~~this~~`_: _~~this~~__`~~**this**~~`_: _~~**this**~~__`~~__this__~~`_: _~~__this__~~_italic / strike-through
*~~this~~*: _~~this~~_: _~~*this*~~: ~~_this_~~: italic / strike-through / code
*~~`this`~~*: this*~~`**this**`~~*: **this***~~`__this__`~~*: __this___~~`this`~~_: _this_~~`**this**`~~_: _**this**_~~`__this__`~~_: ___this__~~*`this`*~~: this~~*`**this**`*~~: **this**~~*`__this__`*~~: __this__~~_`this`_~~: this_~~_`**this**`_~~: **this**_~~_`__this__`_~~: __this___strike-through / code
~~`this`~~: this~~`*this*`~~: *this*~~`**this**`~~: **this**~~`***this***`~~: ***this***~~`**_this_**`~~: **_this_**~~`*__this__*`~~: *__this__*~~`_this_`~~: _this_~~`_**this**_`~~: _**this**_~~`__this__`~~: __this__~~`__*this*__`~~: __*this*__~~`___this___`~~: ___this___And here again in tabular form as requested by @yakov116:
bold / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
**`this`** | this | ok | not ok | not ok
**`*this*`** | *this* | ok | not ok | not ok
**`*~~this~~*`** | *~~this~~* | ok | not ok | not ok
**`_this_`** | _this_ | ok | not ok | not ok
**`_~~this~~_`** | _~~this~~_ | ok | not ok | not ok
**`~~this~~`** | ~~this~~ | ok | not ok | not ok
**`~~*this*~~`** | ~~*this*~~ | ok | not ok | not ok
**`~~_this_~~`** | ~~_this_~~ | ok | not ok | not ok
__`this`__ | __this__ | ok | not ok | not ok
__`*this*`__ | __*this*__ | ok | not ok | not ok
__`*~~this~~*`__ | __*~~this~~*__ | ok | not ok | not ok
__`_this_`__ | ___this___ | ok | not ok | not ok
__`_~~this~~_`__ | ___~~this~~___ | ok | not ok | not ok
__`~~this~~`__ | __~~this~~__ | ok | not ok | not ok
__`~~*this*~~`__ | __~~*this*~~__ | ok | not ok | not ok
__`~~_this_~~`__ | __~~_this_~~__ | ok | not ok | not ok
bold / italic
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
***this*** | this | ok | not ok | ok
**_this_** | _this_ | ok | not ok | not ok
*__this__* | __this__ | ok | ok | ok
_**this**_ | _this_ | ok | ok | ok
__*this*__ | __this__ | ok | not ok | not ok
___this___ | ___this___ | ok | not ok | ok
bold / italic / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
***`this`*** | this | ok | not ok | not ok
***`~~this~~`*** | ~~this~~ | ok | not ok | not ok
**_`this`_** | _this_ | ok | not ok | not ok
**_`~~this~~`_** | _~~this~~_ | ok | not ok | not ok
*__`this`__* | __this__ | ok | not ok | not ok
*__`~~this~~`__* | __~~this~~__ | ok | not ok | not ok
_**`this`**_ | _this_ | ok | not ok | not ok
_**`~~this~~`**_ | _~~this~~_ | ok | not ok | not ok
__*`this`*__ | __this__ | ok | not ok | not ok
__*`~~this~~`*__ | __~~this~~__ | ok | not ok | not ok
___`this`___ | ___this___ | ok | not ok | not ok
___`~~this~~`___ | ___~~this~~___ | ok | not ok | not ok
bold / italic / strike-through
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
***~~this~~*** | this | ok | not ok | ok
**_~~this~~_** | _this_ | ok | not ok | not ok
**~~*this*~~** | this | ok | not ok | not ok
**~~_this_~~** | _this_ | ok | not ok | not ok
*__~~this~~__* | __this__ | ok | not ok | ok
*~~**this**~~* | this | ok | not ok | ok
*~~__this__~~* | __this__ | ok | not ok | ok
_**~~this~~**_ | _this_ | ok | not ok | ok
__*~~this~~*__ | __this__ | ok | not ok | not ok
___~~this~~___ | ___this___ | ok | not ok | ok
__~~*this*~~__ | __this__ | ok | not ok | not ok
__~~_this_~~__ | ___this___ | ok | not ok | not ok
_~~**this**~~_ | _this_ | ok | not ok | ok
_~~__this__~~_ | ___this___ | ok | not ok | ok
~~***this***~~ | this | ok | not ok | ok
~~**_this_**~~ | _this_ | ok | not ok | not ok
~~*__this__*~~ | __this__ | ok | not ok | ok
~~_**this**_~~ | _this_ | ok | not ok | ok
~~__*this*__~~ | __this__ | ok | not ok | not ok
~~___this___~~ | ___this___ | ok | not ok | ok
bold / italic / strike-through / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
***~~`this`~~*** | | ok | not ok | not okthis
**_~~`this`~~_** | __ | ok | not ok | not okthis
**~~*`this`*~~** | | ok | not ok | not okthis
**~~_`this`_~~** | _ | ok | not ok | not okthis_
*__~~`this`~~__* | ____ | ok | not ok | not okthis
*~~**`this`**~~* | | ok | not ok | not okthis
*~~__`this`__~~* | __ | ok | not ok | not okthis__
_**~~`this`~~**_ | __ | ok | not ok | not okthis
__*~~`this`~~*__ | ____ | ok | not ok | not okthis
___~~`this`~~___ | ______ | ok | not ok | not okthis
__~~*`this`*~~__ | ____ | ok | not ok | not okthis
__~~_`this`_~~__ | _____ | ok | not ok | not okthis_
_~~**`this`**~~_ | __ | ok | not ok | not okthis
_~~__`this`__~~_ | ____ | ok | not ok | not okthis__
~~***`this`***~~ | | ok | ok | okthis
~~**_`this`_**~~ | _ | ok | not ok | not okthis_
~~*__`this`__*~~ | __ | ok | not ok | not okthis__
~~_**`this`**_~~ | _ | ok | not ok | not okthis_
~~__*`this`*__~~ | __ | ok | not ok | not okthis__
~~___`this`___~~ | ___ | ok | ok | okthis___
bold / strike-through
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
**~~this~~** | this | ok | not ok | ok
__~~this~~__ | __this__ | ok | not ok | ok
~~**this**~~ | this | ok | not ok | ok
~~__this__~~ | __this__ | ok | not ok | ok
bold / strike-through / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
**~~`this`~~** | | ok | not ok | not okthis
**~~`*this*`~~** | | ok | not ok | not ok*this*
**~~`_this_`~~** | | ok | not ok | not ok_this_
__~~`this`~~__ | ____ | ok | not ok | not okthis
__~~`*this*`~~__ | ____ | ok | not ok | not ok*this*
__~~`_this_`~~__ | ____ | ok | not ok | not ok_this_
~~**`this`**~~ | | ok | not ok | not okthis
~~**`*this*`**~~ | | ok | not ok | not ok*this*
~~**`_this_`**~~ | | ok | not ok | not ok_this_
~~__`this`__~~ | __ | ok | not ok | not okthis__
~~__`*this*`__~~ | __ | ok | not ok | not ok*this*__
~~__`_this_`__~~ | __ | ok | not ok | not ok_this___
code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
`*this*` | *this* | ok | ok | ok
`**this**` | **this** | ok | ok | ok
`***this***` | ***this*** | ok | ok | ok
`***~~this~~***` | ***~~this~~*** | ok | ok | ok
`**_this_**` | **_this_** | ok | ok | ok
`**_~~this~~_**` | **_~~this~~_** | ok | ok | ok
`**~~this~~**` | **~~this~~** | ok | ok | ok
`**~~*this*~~**` | **~~*this*~~** | ok | ok | ok
`**~~_this_~~**` | **~~_this_~~** | ok | ok | ok
`*__this__*` | *__this__* | ok | ok | ok
`*__~~this~~__*` | *__~~this~~__* | ok | ok | ok
`*~~this~~*` | *~~this~~* | ok | ok | ok
`*~~**this**~~*` | *~~**this**~~* | ok | ok | ok
`*~~__this__~~*` | *~~__this__~~* | ok | ok | ok
`_this_` | _this_ | ok | ok | ok
`_**this**_` | _**this**_ | ok | ok | ok
`_**~~this~~**_` | _**~~this~~**_ | ok | ok | ok
`__this__` | __this__ | ok | ok | ok
`__*this*__` | __*this*__ | ok | ok | ok
`__*~~this~~*__` | __*~~this~~*__ | ok | ok | ok
`___this___` | ___this___ | ok | ok | ok
`___~~this~~___` | ___~~this~~___ | ok | ok | ok
`__~~this~~__` | __~~this~~__ | ok | ok | ok
`__~~*this*~~__` | __~~*this*~~__ | ok | ok | ok
`__~~_this_~~__` | __~~_this_~~__ | ok | ok | ok
`_~~this~~_` | _~~this~~_ | ok | ok | ok
`_~~**this**~~_` | _~~**this**~~_ | ok | ok | ok
`_~~__this__~~_` | _~~__this__~~_ | ok | ok | ok
`~~this~~` | ~~this~~ | ok | ok | ok
`~~*this*~~` | ~~*this*~~ | ok | ok | ok
`~~**this**~~` | ~~**this**~~ | ok | ok | ok
`~~***this***~~` | ~~***this***~~ | ok | ok | ok
`~~**_this_**~~` | ~~**_this_**~~ | ok | ok | ok
`~~*__this__*~~` | ~~*__this__*~~ | ok | ok | ok
`~~_this_~~` | ~~_this_~~ | ok | ok | ok
`~~_**this**_~~` | ~~_**this**_~~ | ok | ok | ok
`~~__this__~~` | ~~__this__~~ | ok | ok | ok
`~~__*this*__~~` | ~~__*this*__~~ | ok | ok | ok
`~~___this___~~` | ~~___this___~~ | ok | ok | ok
italic / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
*`this`* | this | ok | ok | ok
*`**this**`* | **this** | ok | ok | ok
*`**~~this~~**`* | **~~this~~** | ok | ok | ok
*`__this__`* | __this__ | ok | ok | ok
*`__~~this~~__`* | __~~this~~__ | ok | ok | ok
*`~~this~~`* | ~~this~~ | ok | ok | ok
*`~~**this**~~`* | ~~**this**~~ | ok | ok | ok
*`~~__this__~~`* | ~~__this__~~ | ok | ok | ok
_`this`_ | _this_ | ok | ok | ok
_`**this**`_ | _**this**_ | ok | ok | ok
_`**~~this~~**`_ | _**~~this~~**_ | ok | ok | ok
_`__this__`_ | ___this___ | ok | ok | ok
_`__~~this~~__`_ | ___~~this~~___ | ok | ok | ok
_`~~this~~`_ | _~~this~~_ | ok | ok | ok
_`~~**this**~~`_ | _~~**this**~~_ | ok | ok | ok
_`~~__this__~~`_ | _~~__this__~~_ | ok | ok | ok
italic / strike-through
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
*~~this~~* | this | ok | not ok | ok
_~~this~~_ | _this_ | ok | not ok | ok
~~*this*~~ | this | ok | not ok | ok
~~_this_~~ | _this_ | ok | not ok | ok
italic / strike-through / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
*~~`this`~~* | | ok | not ok | okthis
*~~`**this**`~~* | | ok | not ok | ok**this**
*~~`__this__`~~* | | ok | not ok | ok__this__
_~~`this`~~_ | __ | ok | not ok | okthis
_~~`**this**`~~_ | __ | ok | not ok | ok**this**
_~~`__this__`~~_ | __ | ok | not ok | ok__this__
~~*`this`*~~ | | ok | not ok | okthis
~~*`**this**`*~~ | | ok | not ok | ok**this**
~~*`__this__`*~~ | | ok | not ok | ok__this__
~~_`this`_~~ | _ | ok | not ok | okthis_
~~_`**this**`_~~ | _ | ok | not ok | ok**this**_
~~_`__this__`_~~ | _ | ok | not ok | ok__this___
strike-through / code
Format | Rendered | GitHub | FastHub preview | FastHub display
------- | ---------- | ------- | ----------------- | -----------------
~~`this`~~ | | ok | not ok | okthis
~~`*this*`~~ | | ok | not ok | ok*this*
~~`**this**`~~ | | ok | not ok | ok**this**
~~`***this***`~~ | | ok | not ok | ok***this***
~~`**_this_**`~~ | | ok | not ok | ok**_this_**
~~`*__this__*`~~ | | ok | not ok | ok*__this__*
~~`_this_`~~ | | ok | not ok | ok_this_
~~`_**this**_`~~ | | ok | not ok | ok_**this**_
~~`__this__`~~ | | ok | not ok | ok__this__
~~`__*this*__`~~ | | ok | not ok | ok__*this*__
~~`___this___`~~ | | ok | not ok | ok___this___
@Vampire please make it into a table and merge with the other ticket.
@Vampire if you need my help let me know
@yakov116 why do you think this is in any way related to #817? That one is about a missing formatting button, this one is about wrong rendering of nested formats.
Don't care much about review as Android isn't a web browser that could display all of this, care more about the end result, if you post a valid syntax that FastHub didn't handle properly, it will be displayed properly when loading it from GitHub.
_Sent from my Samsung SM-G950F using FastHub Debug_
@yakov116 I transformed it into a table, but then it is almost useless, because table rendering is horrible on FastHub. In preview it does not work at all and in rendering it is so tiny that you cannot read anything, let alone identify formatting which this issue is about. So in favor of being able to view the formatting in FastHub, I transformed it back to the list form I had before.
@k0shk0sh I'm not sure I got you right. Did you mean to say "FastHub is rendering the stuff wrongly, but who cares, just open the website"? I'm using an App, so that I do _not_ have to open the browser for this. If the rendering is broken, this greatly reduces the usefulness of such an app. :-(
@Vampire when we work we are on a computer.....
_Sent from my Google Nexus 9 using FastHub Debug_
I didn't mean that, what I meant in preview mod, some stuff they don't work for sure, but you can still submit them and FastHub will display them properly in the comment section for instance, by stating Android isn't a browser meaning that Android textview is very very limited to html content so most stuff is done manually by drawing them, the table look very bad of course, but that's how drawing would look in a textview, matter of fact its pretty impossible to do so but yeah, you got a table :)
_Sent from my Samsung SM-G950F using FastHub Debug_
@yakov116 mostly, yes, but what has that to do with broken formatting in the app? If I report some issue and preview how it will look like, it would be nice if I see the proper formatting. If I look at an issue or comment on-the-go, it would be nice if I see the proper formatting. The author of a text surely meant to provide a certain meaning with the formatting combination he choosed, so it should be displayed properly.
With your reasoning you could just strip all formatting and simply always show plain text, then it would at least be constantly wrong to the same level.
@k0shk0sh in preview mode there was not a table, but gibberish. And the table per-se in the display mode was oookaaaay, but it was tiiiiny, no chance to read the text in there. And the formatting in the display mode also has defficiencies, not only in the preview mode. That's why I checked in both.
@Vampire you want us to fix an issue correct?
We can test all the thing you put in the table to make sure they are working. The current way you have it makes it very hard to go though and eliminate case by case.
A table would be the best way to put it
_Sent from my Google Nexus 9 using FastHub Debug_
@yakov116 I can easily make it back to a table, but you cannot read it, expect maybe with a very good lense. If you prefer I can make it back to tabluar form, no problem, but in FastHub on the device, you have no chance at all to identify the formatting.
@yakov116 I added it additionally in tabular form, I hope this helps
@Vampire thanks I will test case by case. So I will be using my computer and am emulator so I will not have an issue thanks for your help
_Sent from my Google Nexus 9 using FastHub Debug_
@Vampire

_Sent from my Samsung SM-G950F using FastHub Debug_
@k0shk0sh would you please be so kind to elaborate a bit more about what you mean in normal human language, we are not on 9gag here and such images could easily be misinterpreted.
@Vampire I was referring to this
but in FastHub on the device, you have no chance at all to identify the formatting.
The pic really tells that I understand & have no clue how to make it better 馃槄
_Sent from my Samsung SM-G950F using FastHub Debug_
Great, I was short before interpreting it personally. Chandler can be _such_ an asshole sometimes. :-D
Anyway, I think this is not the right issue to discuss it, as it has a totally different topic.
We can talk about it in the other ticket I will report. :-)
Even if you close it with a Chandler, then at least others can see that it is a known limitation.
@yakov116 btw. if you are going to work on this one, shouldn't you reopen it? :-)
Oh! This is extra weird.
When I click on the link in my above comment it looks correct, but if I tap the back arrow at the top and tap on the file it renders wrong.
_Sent from my Google Nexus 6P using FastHub_
@joehillen hello there,
This is called navigation pattern, use bottom back key if you want to back where you left or up back key to navigate into stack. also I suggest you reading about Android navigation, home up & up.
_Sent from my Samsung SM-G950F using FastHub Debug_
The problem is not the navigation. I was describing the behavior in detail so that you could reproduce the problem.
The rendering is different (one right, and one wrong) depending on how you get to the file. Can you see the difference in the linebreaks?
My wild guess is that there is a problem with when the screen dimensions are calculated.
_Sent from my Google Nexus 6P using FastHub_
@joehillen could you please take screenshot of what you referring to? Readme has improved locally so I really don't know what u referring to.
_Sent from my Samsung SM-G950F using FastHub Debug_


If you can't see the incorrect version, be sure to try navigating away and back like I discribed above.
_Sent from my Google Nexus 6P using FastHub_
@joehillen I see the same behaviour you describe, but I don't think this is related to this issue. I'd say you should open a separate issue about it.
@yakov116 an update to the two formats that are rendered "wrongly" on GitHub itself. I reported this to GitHub, but actually the rendering is correct regarding the spec, it is just not like the user expects because there are some edge-cases that are not handled nicely by the spec, so I'd say FastHub should render them the same GitHub does, even if it is unexpected for the user. I edited the initial comment regarding this.
most of them has been fixed & the rest I don't think I'll ever fix them