Buffistas Building a Better Board
Do you have problems, concerns or recommendations about the technical side of the Phoenix? Air them here. Compliments also welcome.
To-do list
I agree with Liese up to a point. But that point is
Advise user that their code is ugly and to fix it please
which implies "prevent them from posting".
I'm a bit unhappy about presenting users with that kind of negative experience.
LIese's point was mine. You don't have to point out what the problem was, just that there was one. Dectecting the presence of an HTML error (as opposed to it's exact nature) is fairly simple.. And as to giving the user a bad experience - I dunno, having my stuff posted with an error is, to me, worse.
More to the point, people don't have to use html in a post. Not that they shouldn't - but if they do, I don't think they will have a problem with being unable to post until they do it right. I mean it is not like people are going to a full fledge set of html - with header, body, footer title, menus bars , tables, and three fonts all at once. Most HTML posts will have a little tiny bit of HTML. Knowing that there is a problem should be enough to enable people to fix it.
And I don't see you why you need to diagnose, let alone fix the problem. Identify that there is a problem. Don't let them post until it is fixed. This does not turn you into an interface facist. It is really quite a fair division of labor. And, I honestly believe fairly easy to do. You are looking for mismatched tags (uneven numbers of {b) and {pre} and so forth, plus table commands outside of a table. The only tough thing to catch is improperly formed hyperlink tags.
Actually, you can give them somewhat of a helpful message, if you really want. If you are catching mismatched tags you will know whcih tag(s) are mismatched (italics or whatever). You will know if table tags are outside of a table. (becase that is a sperate test.) And you will know if there is a misformed, properly closed hyperlink) because you will test for this as well.
From the user side, I would much rather get a message that says I messed up my coding and to try again, than have my messed up coding mess up a whole thread.
I only disagree with, let me see, yes, everything you said, Gar!
Dectecting the presence of an HTML error (as opposed to it's exact nature) is fairly simple.
I'm not sure that's true.
Don't let them post until it is fixed. This does not turn you into an interface facist.
I believe it does.
I would much rather get a message that says I messed up my coding and to try again, than have my messed up coding mess up a whole thread.
My suggestion was not that we allow the error to go through, but that we fix it automatically, just not necessarily in the way that the user will like.
For instance, someone wants to post one line in a huge font.
They put
<font size="7">
into the posting box.
Then they type, let's say
</fnot>
at the other end of their line.
Then they go ahead and post another couple of pars.
My proposed script wouldn't need to figure out where the error was or how to correctly fix it. It would just say "Message Posted. It had an unclosed FONT tag by the way, (link to HTML help) which we closed for you, but you'd better check out what it looks like!"
And the post will indeed be all in a huge font, and they'll feel suitably embarassed, but the whole of the rest of the page won't be. There'll be a little island of brokenness.
I only disagree with, let me see, yes, everything you said, Gar!
So long as you understand that I'm right, and you're wrong, that's fine John. {smile}
>Detecting the presence of an HTML error (as opposed to it's exact nature) is fairly simple.
I'm not sure that's true.
Well you've been taking part in the debate over which algorithm to use - of several you agree would work. The exception is one I've admitetted - malformed <a href > tags.
>Don't let them post until it is fixed. This does not turn you into an interface facist.
I believe it does.
tistaintistaintistain... I'd be curious to take a head count on that.
My suggestion was not that we allow the error to go through, but that we fix it automatically, just not necessarily in the way that the user will like.
So, the error is still going through - just in a way that does not break the board. Not posting also does not break the board - and gives the user a chance not to have "the error fixed in a way they won't neccesarily like". I'll bet fifty persian that most users would prefer not having the message posted to having it fixed in a way "they won't neccesarilty like". And not posting is easier for the developer too. I understand the general principle you are operating from, that letting users complete their tasks is first priority. I think this case is an exception, and an exception from the user point of view, not just that of the developer.
If I had a post with messed-up HTML, I'd rather that I get a chance to fix it before everyone else sees it. If it gets posted, then I edit, then several people will have read the messed-up post and moved on the the stuff below it in the thread before I get a chance to fix it so that it says what I want it to.
The two options, assuming the resources are okay, are:
1. To check for errors, patch the post, post it, and advise the user. The user still must fix it, or live with the (self-contained) ugliness and the potential embarassment.
2. To check for errors, refuse to post it, and advise the user. The user must fix it, and may become frustrated if they can't figure out the problem, but only has small personal shame and not vast globe-spanning shame.
Either way, the user still has to go back and edit if s/he wants her/his original intent to come through. Both ways, the board is protected.
I really like option 2 better. Not being able to post feels like it'd be bewildering and inarticulate-making to people who, say, don't completely understand everything that's going on with HTML; and plus it's a lot easier to say "I wrote this post, and now the letters are all huge, and I don't know how to fix it! It's here, can you tell me what to do to make it better?" than to say "I wrote this post and it won't let me post it and I'm not sure how to fix it and I'm not sure how to describe what's going wrong."
Either way, the user still has to go back and edit if s/he wants his original intent to come through. Both ways, the board is protected.
...and either way, we don't have to figure out what they intended, or the correct place to insert the required tag.
There's an issue there which I didn't make clear before, which is that the quick-and-dirty way to do the tag count is something like this (in Perl):
@tags =~ /<*>/g
(simplified), but what that means is we grab all the tags and put them in an array. Figuring out not only how many there are, but also exactly
where
they are, would be much more of a pain.
I really like option 2 better.
Er, do you? The rest of your post seems to favour option 1...
In the meantime, it might be wise to add a line to the HTML/Quick-Edit help page that says "Please be advised that misplaced
t a href
or
t table
tags can break the board, so double check your code if you use them!"