Permalink
Browse files

wip zoom

  • Loading branch information...
1 parent e7a8419 commit f51229d42f1fad969bf1884c6b746b204f7a8134 Alexis Sukrieh committed Mar 19, 2012
Showing with 31 additions and 15 deletions.
  1. +14 −6 lib/CloudMe.pm
  2. +3 −2 lib/CloudMe/Builder.pm
  3. +2 −6 views/layouts/main.tt
  4. +12 −1 views/new.tt
View
@@ -16,24 +16,32 @@ get '/new' => sub {
post '/new' => sub {
my $text = param('story');
+ my $nb_words = param('nb_words') || 50;
+ my @ignore_words = split(',', param('ignore_words') || '');
+
+ debug "ignore_words: ".join(', ', @ignore_words);
+
my $cb = CloudMe::Builder->new(text => $text);
+ $cb->add_stop_word($_) for @ignore_words;
my $cloud = HTML::TagCloud::Centred->new(
size_min_pc => 50,
size_max_pc => 300,
- scale_code => sub {
- my $self = shift;
- ($self->{size_max_pc} - $self->{size_min_pc}) /
- CORE::log(scalar($self->{words})) * 0.8 ;
- },
+# scale_code => sub {
+# my $self = shift;
+# ($self->{size_max_pc} - $self->{size_min_pc}) /
+# CORE::log(scalar($self->{words})) * 0.8 ;
+# },
html_esc_code => sub { $_[0] },
clr_max => '#FF0000',
clr_min => '#550000',
);
- $cloud->add($_) for keys %{ $cb->cloud(30) };
+
+ $cloud->add($_, "javascript:zoom_in_cloud(\"$_\");") for keys %{ $cb->cloud($nb_words) };
template 'new', {
cloud => $cloud->html_and_css,
+ ignore_words => join(',', @ignore_words),
text => $text,
};
};
View
@@ -12,7 +12,7 @@ my $_STOP_WORDS = [qw(
trop ici là aujourd
qu n dans se sa s mes sont y fait il tout toute toutes tous notre votre une veux un ai si
au plus parce mais son ils sur doit aux comme était nos faut soit même cette
- cela
+ cela peu puis cet quelque quelques suis vraiment pis
peut serait ceux m avons tant depuis été me quand alors avait faire ans
dont celui car sans mêmes mieux toutes années lui veulent aurait ma aucun
entre deux cinq mon dix afin très sera ainsi chaque non autre autres seront va
@@ -45,8 +45,9 @@ sub _build_stats {
my ($self) = @_;
my $stats = { };
$self->total_words(0);
+ my $text = $self->text;
- for my $w (split /[\/\[\]%\+\-\*\(\),:.;!\?\s’'\r\n]+/, $self->text ) {
+ for my $w (split /[\/\[\]\+\-\*\(\),:.;!\?\s"’'\r\n]+/, $text ) {
$w = lc $w;
next if length($w) < 3;
next if grep /^$w$/, @{ $self->stop_words };
View
@@ -2,6 +2,8 @@
<html dir="ltr" lang="en-US">
<head>
<meta charset="UTF-8" />
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
+ <script src="/js/bootstrap.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -22,7 +24,6 @@
</head>
<body>
-
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
@@ -51,10 +52,5 @@
[% content %]
</div> <!-- /container -->
- <!-- Le javascript
- ================================================== -->
- <!-- Placed at the end of the document so the pages load faster -->
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
- <script src="/js/bootstrap.min.js"></script>
</body>
</html>
View
@@ -4,7 +4,9 @@
Upload a text and you're done!
</p>
-<form action="/new" method="post">
+<form id="main" action="/new" method="post">
+
+ <input id="ignore_words" type="hidden" name="ignore_words" value="[% ignore_words %]" />
<div>
<textarea style="width: 100%" name="story" cols="120" rows="10">[% text %]</textarea>
@@ -16,5 +18,14 @@ Upload a text and you're done!
</form>
+<script type="text/javascript">
+
+function zoom_in_cloud(word) {
+ jQuery('#ignore_words').value = jQuery('#ignore_words').value + ',' + word;
+// jQuery('#main').submit();
+}
+</script>
+
+
[% cloud %]

0 comments on commit f51229d

Please sign in to comment.