Thanks for the links at the top. Previously, I had to search for those threads over and over again if I wanted to find them.
>>91 Ohshi-, time paradox!
If you want to have a look at what the code actually does to dig out flaws, here is the current version:
sub sanitize_html($%)
{
my ($html,%tags)=@_;
my (@stack,$clean);
my $entity_re=qr/&(?!\#[0-9]+;|\#x[0-9a-fA-F]+;|amp;)/;
while($html=~/(?:([^<]+)|<([^<>]*)>?)/g)
{
my ($text,$tag)=($1,$2);
if($text)
{
$text=~s/$entity_re/&/g;
$text=~s/>/>/g;
$clean.=$text;
}
else
{
if($tag=~m!^\s*(/?)\s*([a-z0-9_:\-\.]+)(?:\s+(.*?)|)\s*(/?)\s*$!si)
{
my ($closing,$name,$args,$implicit)=($1,lc($2),$3,$4);
if($tags{$name})
{
if($closing)
{
if(grep { $_ eq $name } @stack)
{
my $entry;
do {
$entry=pop @stack;
$clean.="</$entry>";
} until $entry eq $name;
}
}
else
{
my %args;
$args=~s/\s/ /sg;
while($args=~/([a-z0-9_:\-\.]+)(?:\s*=\s*(?:'([^']*?)'|"([^"]*?)"|['"]?([^'" ]*))|)/gi)
{
my ($arg,$value)=(lc($1),defined($2)?$2:defined($3)?$3:$4);
$value=$arg unless defined($value);
my $type=$tags{$name}{args}{$arg};
if($type)
{
my $passes=1;
if($type=~/url/i) { $passes=0 unless $value=~/(?:^$protocol_re:|^[^:]+$)/ }
if($type=~/number/i) { $passes=0 unless $value=~/^[0-9]+$/ }
if($passes)
{
$value=~s/$entity_re/&/g;
if($value=~/"/) { $value="'$value'" }
else { $value="\"$value\"" }
$args{$arg}=$value;
}
}
}
my $cleanargs=join " ",map { "$_=$args{$_}" } keys %args;
$implicit="/" if($tags{$name}{empty});
push @stack,$name unless $implicit;
$clean.="<$name";
$clean.=" $cleanargs" if $cleanargs;
$clean.=" $implicit" if $implicit;
$clean.=">";
}
}
}
}
}
my $entry;
while($entry=pop @stack) { $clean.="</$entry>" }
return $clean;
}>>360
Doesn't mean we can't have separate releases for special scripts. :)
You may want to consider releasing Kareha & Wakaba under some sort of license at this point, just to make sure that the scripts always stay free for people to use.
http://en.wikipedia.org/wiki/Free_software_license
http://en.wikipedia.org/wiki/Software_License_Types#Free_software_licenses
http://en.wikipedia.org/wiki/Copyleft
Nothing specific, just protecting against any possible future ones.
http://wakaba.c3.cx/sup/kareha.pl/1099697376/101-101
(First "Next 100" link) does not include >>1 in that thread
There's also some weird bug where the entire browser windowd content goes black, dunno what that is about...
One of the things I did when I modified and restructured the order of functions in post_stuff() was add specific error messages for each non-comment field. Would this be considered superfluous?
>Let people figure out things themselves, if they are so keen on changing their keywords.
If you really want to use your own custom trigger strings, you can easily search kareha.pl for instances where "sage" and "fusianasan" are used in that context and either replace them with those custom strings or append them as secondary strings. It's not something that warrants additional config.pl parameters.
>>137
I'd advocate going for a separate interface a-la Wakaba, but it might be a bit too much to do for this release.
Also, maybe Easter Eggs like the Eternal September timestamp and others (if they exist) should be documented in config.pl.
Lastly, a question: who here finds enough use in the auto-expanding comment box to justify the annoyances when you click in or out of it?
One of the things I did when I modified and restructured the order of functions in post_stuff() was add specific error messages for each non-comment field. Would this be considered superfluous?
> Why?
I am not the user who initiated this parition but I find them to be triggered far too often.
> On another note, why have I seen partition instead of petition multiple times?
An old imageboard meme. Don't ask!
What browser are you using? I think I've tracked down the problem, and it's most likely a browser bug. The ancient Firebird (not fox, even) version I tested at work had the same bug (character set issues in the escape() and unescape() functions). It looks like your browser also doesn't follow the spec for how they are supposed to work.
> You still end up with no way to link the fusianasan post with the name/trip one without IDs enabled (unless the ID method is known and no secret data is used).
You'd figure that people who know what fusianasan is will also know how to trigger IDs.
> You spelled it fusiansan once.
So I misspelled one word once.
Sue me!
> Also, how is Kahera unrivaled when there are still large sites that are not running it? Shiichan is still on world4ch, Thorn on parts of wakachan for example.
Neither world4ch nor Pichan are by any means "large". Also, yes, as Shii said, their webmasters are stubborn.
>>108
fusianasan is a voluntary function to show identity without having to memorize a tripcode. Works on all boards. Reveals your IP, of course...
Another feature I'd like is keyboard shortcuts like Wikipedia. Although you'd have to avoid stuff like Alt-D.
>There's no one English word that does the job of the pseudo-Japanese "sage".
How about "dontbump" or "nobump"? Using "down" is pretty misleading, since sage doesn't bump a thread up nor down; it just stays in its place until a thread below is bumped.
>>167 orz
In reference WAHa's post in http://wakaba.c3.cx/sup/kareha.pl/1127713568/l50
>It's been suggested to change the no-ID-on-email to no-ID-on-sage
That sounds good to me.
> Reintroduction of "Marked for deletion (old)"
I actually don't like that, and think wakaba should no longer use the futaba style of dropping threads by default. Why not use the least-popular option instead? If a thread is in demand, let it live.
/-100 shows the first post two times.
The "Entire thread" link in the top navigation bar of the thread page is still broken.
>There's no one English word that does the job of the pseudo-Japanese "sage".
How about "dontbump" or "nobump"? Using "down" is pretty misleading, since sage doesn't bump a thread up nor down; it just stays in its place until a thread below is bumped.
>>167 orz
In reference WAHa's post in http://wakaba.c3.cx/sup/kareha.pl/1127713568/l50
>It's been suggested to change the no-ID-on-email to no-ID-on-sage
That sounds good to me.
>>9
I mentioned the option because on highly active boards it's helpful to know which threads will be gone in the next few minutes.
> To more closely resemble the 2ch look, how about prefixing thread title headers in the main board page with a 【position:postcount】thingie?
I find the "1. Thread title (1000)" format much more readable in the post list. And for the main titles, I don't see any value is putting the position in there. That serves no discernable purpose.
> And as suggested before, the navigation links on the bottom of individual thread pages should include "Previous 100" (ie, all posts before the first post in the URL) and "Next 100" (ie, all posts after the last post in the URL).
They already do, but only if there are enough posts in the thread for this to make sense. Or, try a short range like 23-27 to see it in action.
> The "First 100" link should also be removed from the bottom of individual thread pages, and there should be a link to to thread-list included below the reply box of each previewed thread on the front page.
I've been wondering about the justifications for which navigation links should go where. 2ch has it pretty much worked out, I'm sure, but I don't quite see why there should be a "First 100" at the top but not at the bottom.
> Change "Del" links to widget buttons.
Would be very ugly. Those buttons are big.
> In order for the CSS selector not to take over the entire header, how about turning it into a drop-down menu?
I was meaning to do that from the start, but there was some problem with gettting it right. I forget what exactly.
> The same could be done with the Admin functions (appearing only after one correctly inputs the password), placing it on the right side of the board and thread title headers (this would also allow admins the convenience of deleting and permasaging threads from the front-page).
Squeeks would prefer to have a separate script for admining. I'm not sure which is the best approach here.
> and would something like this work (given that all boards share the same root directory)?
> >>>>sup/1129153864/1-100
> >>>1129153864/1-100
Maybe, but I don't see the value in adding code for this, given that you can just paste the URL in there.
> P.S. When you mentioned serving dynamic pages in >>46, were you referring to individual thread pages? As I mentioned before, it'd be nice to make the front page as dynamic and flexible as thread pages when it comes to viewing options (via PATH_INFO).
The front page gets lots of hits. This would drive up CPU usage something fierce.
> Oh, and please bring back MAX_LINES.
I still don't think it serves any useful purpose.