OSDN Git Service
(root)
/
fswiki
/
fswiki.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BugTrack-wiki/252 : 連続したリスト種別変更に対応
[fswiki/fswiki.git]
/
lib
/
Wiki
/
HTMLParser.pm
diff --git
a/lib/Wiki/HTMLParser.pm
b/lib/Wiki/HTMLParser.pm
index
c940446
..
999f589
100644
(file)
--- a/
lib/Wiki/HTMLParser.pm
+++ b/
lib/Wiki/HTMLParser.pm
@@
-26,6
+26,7
@@
sub new {
$self->{quote} = "";
$self->{table} = 0;
$self->{level} = 0;
$self->{quote} = "";
$self->{table} = 0;
$self->{level} = 0;
+ $self->{list} = 0;
$self->{para} = 0;
$self->{p_cnt} = 0;
$self->{main} = $mainflg;
$self->{para} = 0;
$self->{p_cnt} = 0;
$self->{main} = $mainflg;
@@
-45,6
+46,11
@@
sub l_list {
$self->{para} = 0;
}
$self->{para} = 0;
}
+ if($self->{list} == 1 && $level <= $self->{level}){
+ $self->end_list;
+ }
+ $self->{list} = 0;
+
$self->end_verbatim;
$self->end_table;
$self->end_quote;
$self->end_verbatim;
$self->end_table;
$self->end_quote;
@@
-88,6
+94,11
@@
sub l_numlist {
$self->{para} = 0;
}
$self->{para} = 0;
}
+ if($self->{list} == 0 && $level <= $self->{level}){
+ $self->end_list;
+ }
+ $self->{list} = 1;
+
$self->end_verbatim;
$self->end_table;
$self->end_quote;
$self->end_verbatim;
$self->end_table;
$self->end_quote;
@@
-126,6
+137,7
@@
sub end_list {
while($self->{level} != 0){
if($self->{'list_close_'.($self->{level})} == 1){
$self->{html} .= "</li>\n";
while($self->{level} != 0){
if($self->{'list_close_'.($self->{level})} == 1){
$self->{html} .= "</li>\n";
+ $self->{'list_close_'.$self->{level}} = 0;
}
$self->{html} .= pop(@{$self->{close_list}});
$self->{level}--;
}
$self->{html} .= pop(@{$self->{close_list}});
$self->{level}--;