2011-01-19 4 views
2

Je tire un flux RSS d'un blog Tumblr. Contrairement à WordPress, qui donne une version condensée de la publication dans la balise <description>, Tumblr vide l'ensemble de la publication dans le flux sans aucune version raccourcie. Je voudrais que mon application Kynetx ne produise que les 400 premiers caractères si le message est plus long que cela.KRL: tronquer une chaîne

je pourrais émettre un peu de JavaScript pour le faire, quelque chose comme ceci:

if (post.length > 400) { 
    post = post.substring(0, 400); 
} 

Est-il possible de faire quelque chose comme ça dans KRL directement?

Répondre

1

Oui! Vous pouvez utiliser la fonction extract qui retournera un tableau de correspondances à partir d'un Regex.

Extract function documentation

truncated = originalString.extract(re/^.{100}/gi); 

Example Appruleset a60x549 { 
    meta { 
    name "string-truncate-test" 
    description << 
     string-truncate-test 
    >> 
    author "Mike Grace" 
    logging on 
    } 

    rule testingerlyish { 
    select when pageview ".*" 
    pre { 
     originalString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam id purus quis urna aliquam volutpat. Nullam ut velit enim. Cras eu libero felis, vitae adipiscing dolor. Mauris metus nisi, facilisis vitae hendrerit a, posuere in nisi. Integer convallis, odio eu ultrices luctus, arcu ligula ultrices neque, sit amet aliquet lorem diam eget ipsum. Morbi ullamcorper feugiat urna sagittis volutpat. Nullam tincidunt gravida sem, vel suscipit quam cursus egestas. Etiam quis felis leo, id blandit metus. Vestibulum lacinia tortor sit amet mi consectetur non malesuada arcu hendrerit. In placerat mauris nec quam dictum eleifend. Suspendisse consectetur rutrum mauris id vestibulum. Vivamus dignissim imperdiet lorem sit amet eleifend.  Etiam nulla est, feugiat non accumsan egestas, luctus in nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras orci libero, aliquet id ultricies id, tempor eu eros. Suspendisse ultricies enim quis dui malesuada condimentum. Sed in est velit, ac volutpat velit. Nunc aliquet commodo pellentesque. Curabitur egestas, nibh sed dapibus imperdiet, urna nisi ultricies justo, nec dictum nulla est vitae lectus. Morsapien purus tincidunt nulla, sit amet sodales nisi mi sit amet purus. In facilisis ligula vitae sapien aliquet condimentum. Integer lacus dolor, tincidunt dapibus consequat id, luctus et erat. Praesent vel nunc enim. Donec dignissim dui tincidunt lacus molestie in laoreet ligula placerat. Nullam elit magna, luctus sit amet vestibulum ut, dignissim eget elit. Pellentesque nunc massa, auctor sit amet venenatis sed, hendrerit eu nibh. Vestibulum in nisi purus, eget dictum velit. Phasellus pulvinar odio sed nulla egestas lacinia. Donec porttitor lobortis porta. Nullam imperdiet dapibus pulvinar. Sed ut quam tellus. Sed ornare vulputate facilisis. Suspendisse potenti. Nullam aliquet nulla id enim suscipit iaculis pellentesque lectus vulputate. Cras ullamcorper nunc nec eros porta quis fermentum lectus mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas ac imperdiet nisi. Morbi nec elit in eros varius luctus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque aliquet, elit et mattis dignissim, metus tortor fringilla mauris, fermentum bibendum metus mi et lorem. Ut at magna quam, ac condimentum ipsum. Aenean aliquam elementum nisl vitae tempus. Fusce molestie, metus nec egestas facilisis, velit turpis bibendum quam, nec blandit arcu leo non ligula. Morbi nisl neque, gravida in pulvinar ut, sollicitudin eu nunc. Phasellus eget sagittis nunc. Praesent nibh libero, lacinia placerat fermentum a, fringilla sit amet mi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed odio dolor, dignissim a dictum ut, fringilla sit amet purus. Duis et justo et felis tempus pulvinar id eget odio. Suspendisse ac turpis sit amet orci laoreet cursus. Aliquam at odio quis massa pulvinar sollicitudin. Cras nec laoreet metus.  Mauris consectetur mauris sit amet nulla rutrum quis tristique erat placerat. Phasellus id felis enim, et molestie dolor. Maecenas dignissim faucibus augue vitae pulvinar. Pellentesque auctor massa eu massa sagittis rutrum. In varius dignissim odio, eu ."; 
     truncated = originalString.extract(re/^.{100}/gi); 
    } 
    { 
     notify("Truncated",truncated[0]) with sticky = true; 
    } 
    } 
} 

Exemple d'application sur l'exécution example.com en utilisant bookmarklet: alt text

+0

C'est juste ce que je cherchais! Pour prolonger cela, y a-t-il un moyen facile de ne faire que casser les espaces, pas au milieu des mots? –