diff options
| author | Jon Phillips <jon@fabricatorz.com> | 2006-08-21 06:59:00 +0000 |
|---|---|---|
| committer | kidproto <kidproto@users.sourceforge.net> | 2006-08-21 06:59:00 +0000 |
| commit | f2b6a02ce91c61d0f1ea1012d3ef41fe0af426b9 (patch) | |
| tree | 2a8fdd580b11607cb5d5feefacebea97956ffd62 | |
| parent | Object groups can be blurred. Blur slider updates when selection changes. Com... (diff) | |
| download | inkscape-f2b6a02ce91c61d0f1ea1012d3ef41fe0af426b9.tar.gz inkscape-f2b6a02ce91c61d0f1ea1012d3ef41fe0af426b9.zip | |
Committed aho's lorem ipsum script and makefiles around
(bzr r1623)
| -rw-r--r-- | share/extensions/Makefile.am | 7 | ||||
| -rw-r--r-- | share/extensions/lorem_ipsum.inx | 15 | ||||
| -rw-r--r-- | share/extensions/lorem_ipsum.py | 237 |
3 files changed, 257 insertions, 2 deletions
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am index 13f6e0f2e..592afbd27 100644 --- a/share/extensions/Makefile.am +++ b/share/extensions/Makefile.am @@ -54,7 +54,8 @@ extensions = \ measure.py \ gimp_xcf.py \ eqtexsvg.py \ - markers_strokepaint.py + markers_strokepaint.py \ + lorem_ipsum.py otherstuff = \ aisvg.xslt @@ -106,7 +107,9 @@ modules = \ randompnt.inx \ randompos.inx \ eqtexsvg.inx \ - markers_strokepaint.inx + markers_strokepaint.inx \ + lorem_ipsum.inx + extension_SCRIPTS = \ $(extensions) diff --git a/share/extensions/lorem_ipsum.inx b/share/extensions/lorem_ipsum.inx new file mode 100644 index 000000000..7722b4549 --- /dev/null +++ b/share/extensions/lorem_ipsum.inx @@ -0,0 +1,15 @@ +<inkscape-extension>
+ <_name>Generate Fill Text</_name>
+ <id>com.kaioa.lorem_ipsum</id>
+ <dependency type="executable" location="extensions">lorem_ipsum.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name="num" type="int" min="1" max="1000" _gui-text="Number of Paragraphs">5</param>
+ <param name="sentencecount" type="int" min="2" max="100" _gui-text="Number of Sentences per Paragraph">16</param>
+ <param name="fluctuation" type="int" min="1" max="100" _gui-text="+/- Sentences (fluctuation)">4</param>
+ <effect>
+ <object-type>Fill Text</object-type>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">lorem_ipsum.py</command>
+ </script>
+</inkscape-extension>
\ No newline at end of file diff --git a/share/extensions/lorem_ipsum.py b/share/extensions/lorem_ipsum.py new file mode 100644 index 000000000..3f39caa92 --- /dev/null +++ b/share/extensions/lorem_ipsum.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python
+'''
+Copyright (C) 2006 Jos Hirth, kaioa.com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+'''
+Example filltext sentences generated over at http://lipsum.com/
+'''
+
+import inkex
+import random
+
+foo=[
+'Duis sem velit, ultrices et, fermentum auctor, rhoncus ut, ligula. ',
+'Phasellus at purus sed purus cursus iaculis. ',
+'Suspendisse fermentum. ',
+'Pellentesque et arcu. ',
+'Maecenas viverra. ',
+'In consectetuer, lorem eu lobortis egestas, velit odio imperdiet eros, sit amet sagittis nunc mi ac neque. ',
+'Sed non ipsum. ',
+'Nullam venenatis gravida orci. ',
+'Curabitur nunc ante, ullamcorper vel, auctor a, aliquam at, tortor. ',
+'Etiam sodales orci nec ligula. ',
+'Sed at turpis vitae velit euismod aliquet. ',
+'Fusce venenatis ligula in pede. ',
+'Pellentesque viverra dolor non nunc. ',
+'Donec interdum vestibulum libero. ',
+'Morbi volutpat. ',
+'Phasellus hendrerit. ',
+'Quisque dictum quam vel neque. ',
+'Quisque aliquam, nulla ac scelerisque convallis, nisi ligula sagittis risus, at nonummy arcu urna pulvinar nibh. ',
+'Nam pharetra. ',
+'Nam rhoncus, lectus vel hendrerit congue, nisl lorem feugiat ante, in fermentum erat nulla tristique arcu. ',
+'Mauris et dolor. ',
+'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec gravida, ante vel ornare lacinia, orci enim porta est, eget sollicitudin lectus lectus eget lacus. ',
+'Praesent a lacus vitae turpis consequat semper. ',
+'In commodo, dolor quis fermentum ullamcorper, urna massa volutpat massa, vitae mattis purus arcu nec nulla. ',
+'In hac habitasse platea dictumst. ',
+'Praesent scelerisque. ',
+'Nullam sapien mauris, venenatis at, fermentum at, tempus eu, urna. ',
+'Vestibulum non arcu a ante feugiat vestibulum. ',
+'Nam laoreet dui sed magna. ',
+'Proin diam augue, semper vitae, varius et, viverra id, felis. ',
+'Pellentesque sit amet dui vel justo gravida auctor. ',
+'Aenean scelerisque metus eget sem. ',
+'Maecenas rhoncus rhoncus ipsum. ',
+'Donec nonummy lacinia leo. ',
+'Aenean turpis ipsum, rhoncus vitae, posuere vitae, euismod sed, ligula. ',
+'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. ',
+'Mauris tempus diam. ',
+'Maecenas justo. ',
+'Sed a lorem ut est tincidunt consectetuer. ',
+'Ut eu metus id lectus vestibulum ultrices. ',
+'Suspendisse lectus. ',
+'Vivamus posuere, ante eu tempor dictum, felis nibh facilisis sem, eu auctor metus nulla non lorem. ',
+'Suspendisse potenti. ',
+'Integer fringilla. ',
+'Morbi urna. ',
+'Morbi pulvinar nulla sit amet nisl. ',
+'Mauris urna sem, suscipit vitae, dignissim id, ultrices sed, nunc. ',
+'Morbi a mauris. ',
+'Pellentesque suscipit accumsan massa. ',
+'Quisque arcu ante, cursus in, ornare quis, viverra ut, justo. ',
+'Quisque facilisis, urna sit amet pulvinar mollis, purus arcu adipiscing velit, non condimentum diam purus eu massa. ',
+'Suspendisse potenti. ',
+'Phasellus nisi metus, tempus sit amet, ultrices ac, porta nec, felis. ',
+'Aliquam metus. ',
+'Nam a nunc. ',
+'Vivamus feugiat. ',
+'Nunc metus. ',
+'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus eu orci. ',
+'Sed elementum, felis quis porttitor sollicitudin, augue nulla sodales sapien, sit amet posuere quam purus at lacus. ',
+'Curabitur tincidunt tellus nec purus. ',
+'Nam consectetuer mollis dolor. ',
+'Sed quis elit. ',
+'Aenean luctus vulputate turpis. ',
+'Proin lectus orci, venenatis pharetra, egestas id, tincidunt vel, eros. ',
+'Nulla facilisi. ',
+'Aliquam vel nibh. ',
+'Vivamus nisi elit, nonummy id, facilisis non, blandit ac, dolor. ',
+'Etiam cursus purus interdum libero. ',
+'Nam id neque. ',
+'Etiam pede nunc, vestibulum vel, rutrum et, tincidunt eu, enim. ',
+'Aenean id purus. ',
+'Aenean ultrices turpis. ',
+'Mauris et pede. ',
+'Suspendisse potenti. ',
+'Aliquam velit dui, commodo quis, porttitor eget, convallis et, nisi. ',
+'Maecenas convallis dui. ',
+'In leo ante, venenatis eu, volutpat ut, imperdiet auctor, enim. ',
+'Mauris ac massa vestibulum nisl facilisis viverra. ',
+'Phasellus magna sem, vulputate eget, ornare sed, dignissim sit amet, pede. ',
+'Aenean justo ipsum, luctus ut, volutpat laoreet, vehicula in, libero. ',
+'Praesent semper, neque vel condimentum hendrerit, lectus elit pretium ligula, nec consequat nisl velit at dui. ',
+'Proin dolor sapien, adipiscing id, sagittis eu, molestie viverra, mauris. ',
+'Aenean ligula. ',
+'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. ',
+'Etiam pharetra lacus sed velit imperdiet bibendum. ',
+'Nunc in turpis ac lacus eleifend sagittis. ',
+'Nam massa turpis, nonummy et, consectetuer id, placerat ac, ante. ',
+'In tempus urna. ',
+'Quisque vehicula porttitor odio. ',
+'Aliquam sed erat. ',
+'Vestibulum viverra varius enim. ',
+'Donec ut purus. ',
+'Pellentesque convallis dolor vel libero. ',
+'Integer tempus malesuada pede. ',
+'Integer porta. ',
+'Donec diam eros, tristique sit amet, pretium vel, pellentesque ut, neque. ',
+'Nulla blandit justo a metus. ',
+'Curabitur accumsan felis in erat. ',
+'Curabitur lorem risus, sagittis vitae, accumsan a, iaculis id, metus. ',
+'Nulla sagittis condimentum ligula. ',
+'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ',
+'Aliquam imperdiet lobortis metus. ',
+'Suspendisse molestie sem. ',
+'Ut venenatis. ',
+'Pellentesque condimentum felis a sem. ',
+'Fusce nonummy commodo dui. ',
+'Nullam libero nunc, tristique eget, laoreet eu, sagittis id, ante. ',
+'Etiam fermentum. ',
+'Phasellus auctor enim eget sem. ',
+'Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. ',
+'Sed fringilla. ',
+'Nam malesuada sapien eu nibh. ',
+'Pellentesque ac turpis. ',
+'Nulla sed lacus. ',
+'Mauris sed nulla quis nisi interdum tempor. ',
+'Quisque pretium rutrum ligula. ',
+'Mauris tempor ultrices justo. ',
+'In hac habitasse platea dictumst. ',
+'Donec sit amet enim. ',
+'Suspendisse venenatis. ',
+'Nam nisl quam, posuere non, volutpat sed, semper vitae, magna. ',
+'Donec ut urna. ',
+'Integer risus velit, facilisis eget, viverra et, venenatis id, leo. ',
+'Cras facilisis felis sit amet lorem. ',
+'Nam molestie nisl at metus. ',
+'Suspendisse viverra placerat tortor. ',
+'Phasellus lacinia iaculis mi. ',
+'Sed dolor. ',
+'Quisque malesuada nulla sed pede volutpat pulvinar. ',
+'Cras gravida. ',
+'Mauris tincidunt aliquam ante. ',
+'Fusce consectetuer tellus ut nisl. ',
+'Curabitur risus urna, placerat et, luctus pulvinar, auctor vel, orci. ',
+'Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. ',
+'Praesent aliquet, neque pretium congue mattis, ipsum augue dignissim ante, ac pretium nisl lectus at magna. ',
+'Vivamus quis mi. ',
+'Nam sed nisl nec elit suscipit ullamcorper. ',
+'Donec tempus quam quis neque. ',
+'Donec rutrum venenatis dui. ',
+'Praesent a eros. ',
+'Aliquam justo lectus, iaculis a, auctor sed, congue in, nisl. ',
+'Etiam non neque ac mi vestibulum placerat. ',
+'Donec at diam a tellus dignissim vestibulum. ',
+'Integer accumsan. ',
+'Cras ac enim vel dui vestibulum suscipit. ',
+'Pellentesque tempor. ',
+'Praesent lacus. '
+]
+
+class MyEffect(inkex.Effect):
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.OptionParser.add_option("-n", "--numberofparagraphs",
+ action="store", type="int",
+ dest="num", default=5,
+ help="Number of paragraphs to generate")
+ self.OptionParser.add_option("-c", "--sentencecount",
+ action="store", type="int",
+ dest="sentencecount", default=16,
+ help="Number of Sentences")
+ self.OptionParser.add_option("-f", "--fluctuation",
+ action="store", type="int",
+ dest="fluctuation", default=4,
+ help="+/-")
+
+ def makePara(self):
+ _min=max(1,self.options.sentencecount-self.options.fluctuation)
+ _max=max(2,self.options.sentencecount+2*self.options.fluctuation)
+ scount=random.randint(_min,_max)
+ text=''
+ for i in range(scount):
+ text+=foo[random.randint(0,len(foo)-1)]
+ return text
+
+ def addText(self, node):
+ for i in range(self.options.num):
+ para=self.document.createElement('flowPara')
+ text=self.document.createTextNode(self.makePara())
+ para.appendChild(text)
+ node.appendChild(para)
+ node.appendChild(self.document.createElement('flowPara'))
+
+ def effect(self):
+ found=0
+ for id, node in self.selected.iteritems():
+ if node.tagName == 'flowRoot':
+ found+=1
+ if found==1:
+ self.addText(node)
+ if found==0:
+ #inkex.debug('No "flowRoot" elements selected. Unable to add text.')
+ svg=self.document.getElementsByTagName('svg')[0]
+ g=self.document.createElement('g')
+ g.setAttribute('inkscape:label','fill text')
+ g.setAttribute('inkscape:groupmode','layer')
+ flowRoot=self.document.createElement('flowRoot')
+ flowRoot.setAttribute('xml:space','preserve')
+ flowRegion=self.document.createElement('flowRegion')
+ rect=self.document.createElement('rect')
+ rect.setAttribute('x','0')
+ rect.setAttribute('y','0')
+ rect.setAttribute('width',svg.getAttribute('width'))
+ rect.setAttribute('height',svg.getAttribute('height'))
+ svg.appendChild(g)
+ g.appendChild(flowRoot)
+ flowRoot.appendChild(flowRegion)
+ flowRegion.appendChild(rect)
+ self.addText(flowRoot)
+
+e = MyEffect()
+e.affect()
|
