├── cover
├── __init__.py
├── generate_text_cloud.py
├── generate_masked.py
├── color.ini
├── generate_cover_masked.py
├── article.txt
└── lang.txt
├── .gitignore
├── logo
├── background.png
├── mobile-background.png
├── big.svg
└── small.svg
├── requirements.txt
├── backgrounds
└── map_with_bg.png
├── titles
├── generate
│ ├── demo-title-yellow.svg
│ ├── demo-title-lightblue.svg
│ ├── general.svg
│ └── basic.svg
├── index.html
├── basic.py
├── color.ini
└── title.py
├── slogan
├── slogan.svg
└── slogan.py
├── shields
├── design-small.svg
├── design.svg
├── book-small.svg
├── article-small.svg
├── article.svg
├── works-small.svg
├── works.svg
├── idea.svg
└── idea-small.svg
├── README.md
├── LICENSE
├── generate.py
└── generate_small.py
/cover/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | cover/*.png
2 | */*.pyc
3 | titles/generate/titles
4 | titles/generate/cover
--------------------------------------------------------------------------------
/logo/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phodal/brand/master/logo/background.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | svgwrite
2 | wordcloud==1.2.1
3 | matplotlib==1.5.1
4 | pillow==3.2.0
--------------------------------------------------------------------------------
/logo/mobile-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phodal/brand/master/logo/mobile-background.png
--------------------------------------------------------------------------------
/backgrounds/map_with_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phodal/brand/master/backgrounds/map_with_bg.png
--------------------------------------------------------------------------------
/titles/generate/demo-title-yellow.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/titles/generate/demo-title-lightblue.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/titles/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Title
6 |
7 |
8 |
21 | 文章
22 |
23 |
--------------------------------------------------------------------------------
/titles/basic.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | import svgwrite
3 |
4 |
5 | def generate_works():
6 | dwg = svgwrite.Drawing('generate/basic.svg', size=(u'1200', u'600'))
7 |
8 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
9 |
10 | for x in range(1, 150):
11 | shapes.add(dwg.line((250, 60 + x), (380, 0 + x), stroke='#59B840', stroke_width=1))
12 |
13 | for x in range(1, 150):
14 | shapes.add(dwg.line((380, 0 + x), (420, 60 + x), stroke='#1A7906', stroke_width=1))
15 |
16 | # color bg: #1A7906
17 |
18 | shapes.add(dwg.rect((420, 60), (950, 250), fill='#59B840'))
19 |
20 | shapes.add(dwg.text('标题', insert=(450, 240), fill='#fff', font_size=160,
21 | font_family='Helvetica'))
22 | shapes.add(dwg.line((440, 280), (1180, 280), stroke='#fff', stroke_width=4))
23 |
24 | dwg.save()
25 |
26 |
27 | if __name__ == '__main__':
28 | generate_works()
29 |
--------------------------------------------------------------------------------
/cover/generate_text_cloud.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | """
3 | Minimal Example
4 | ===============
5 | Generating a square wordcloud from the US constitution using default arguments.
6 | """
7 |
8 | from os import path
9 | from wordcloud import WordCloud
10 |
11 | d = path.dirname(__file__)
12 |
13 | # Read the whole text.
14 | text = open(path.join(d, 'article.txt')).read()
15 |
16 | # Generate a word cloud image
17 | wordcloud = WordCloud().generate(text)
18 |
19 | # Display the generated image:
20 | # the matplotlib way:
21 | import matplotlib.pyplot as plt
22 | plt.imshow(wordcloud)
23 | plt.axis("off")
24 |
25 | # take relative word frequencies into account, lower max_font_size
26 | wordcloud = WordCloud(max_font_size=40, relative_scaling=.5).generate(text)
27 | plt.figure()
28 | plt.imshow(wordcloud)
29 | plt.axis("off")
30 | plt.show()
31 |
32 | # The pil way (if you don't have matplotlib)
33 | #image = wordcloud.to_image()
34 | #image.show()
--------------------------------------------------------------------------------
/titles/generate/general.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/slogan/slogan.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/cover/generate_masked.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | """
3 | Masked wordcloud
4 | ================
5 | Using a mask you can generate wordclouds in arbitrary shapes.
6 | """
7 |
8 | from os import path
9 |
10 | import numpy as np
11 | from PIL import Image
12 | from wordcloud import WordCloud
13 |
14 | d = path.dirname(__file__)
15 |
16 | # Read the whole text.
17 | text = open(path.join(d, 'article.txt')).read()
18 |
19 | # read the mask image
20 | # taken from
21 | # http://www.stencilry.org/stencils/movies/alice%20in%20wonderland/255fk.jpg
22 | origin_image = Image.open(path.join(d, "map.png"))
23 | alice_mask = np.array(origin_image)
24 |
25 | wc = WordCloud(background_color=None, max_words=2000, mask=alice_mask,
26 | width=1423, height=601, mode="RGBA")
27 | # generate word cloud
28 | wc.generate(text)
29 |
30 | text_cloud_image = wc.to_image()
31 |
32 | text_cloud_image.save('out.png')
33 | image_with_bg = Image.open(path.join(d, "map_with_bg.png"))
34 |
35 | image_with_bg.paste(text_cloud_image, (0, 0), text_cloud_image)
36 | image_with_bg.show()
37 | image_with_bg.save("bg.png", "PNG")
38 |
39 |
--------------------------------------------------------------------------------
/cover/color.ini:
--------------------------------------------------------------------------------
1 | [Color]
2 | turqoise: #1abc9c,#ecf0f1
3 | greenSea: #16a085,#ecf0f1
4 | emerald: #2ecc71,#ecf0f1
5 | nephritis: #27ae60,#ecf0f1
6 | green: #4caf50,#ecf0f1
7 | lightGreen: #8bc34a,#ecf0f1
8 | lime: #cddc39,#ecf0f1
9 | river: #3498db,#ecf0f1
10 | belize: #2980b9,#ecf0f1
11 | asphalt: #34495e,#ecf0f1
12 | midnightBlue: #2c3e50,#ecf0f1
13 | blue: #2196f3,#ecf0f1
14 | lightBlue: #03a9f4,#ecf0f1
15 | cyan: #00bcd4,#ecf0f1
16 | teal: #009688,#ecf0f1
17 | alizarin: #e74c3c,#ecf0f1
18 | pomegranate: #c0392b,#ecf0f1
19 | red: #f44336,#ecf0f1
20 | carrot: #e67e22,#ecf0f1
21 | pumpkin: #d35400,#ecf0f1
22 | dullOrange: #f39c12,#ecf0f1
23 | orange: #ff9800,#ecf0f1
24 | bloodOrange: #ff5722,#ecf0f1
25 | amber: #ffc107,#ecf0f1
26 | sunflower: #f1c40f,#ecf0f1
27 | yellow: #ffeb3b,#34495e
28 | amethyst: #9b59b6,#ecf0f1
29 | plum: #8e44ad,#ecf0f1
30 | purple: #9c27b0,#ecf0f1
31 | deepPurple: #673ab7,#ecf0f1
32 | pink: #e91e63,#ecf0f1
33 | indigo: #3f51b5,#ecf0f1
34 | brown: #795548,#ecf0f1
35 | grey: #9e9e9e,#ecf0f1
36 | gunMetal: #607d8b,#ecf0f1
37 | asbestos: #7f8c8d,#ecf0f1
38 | concrete: #95a5a6,#ecf0f1
39 | silver: #bdc3c7,#ecf0f1
40 | clouds: #ecf0f1,#34495e
41 | paper: #efefef,#34495e
--------------------------------------------------------------------------------
/titles/color.ini:
--------------------------------------------------------------------------------
1 | [Color]
2 | turqoise: #1abc9c,#ecf0f1
3 | greenSea: #16a085,#ecf0f1
4 | emerald: #2ecc71,#ecf0f1
5 | nephritis: #27ae60,#ecf0f1
6 | green: #4caf50,#ecf0f1
7 | lightGreen: #8bc34a,#ecf0f1
8 | lime: #cddc39,#ecf0f1
9 | river: #3498db,#ecf0f1
10 | belize: #2980b9,#ecf0f1
11 | asphalt: #34495e,#ecf0f1
12 | midnightBlue: #2c3e50,#ecf0f1
13 | blue: #2196f3,#ecf0f1
14 | lightBlue: #03a9f4,#ecf0f1
15 | cyan: #00bcd4,#ecf0f1
16 | teal: #009688,#ecf0f1
17 | alizarin: #e74c3c,#ecf0f1
18 | pomegranate: #c0392b,#ecf0f1
19 | red: #f44336,#ecf0f1
20 | carrot: #e67e22,#ecf0f1
21 | pumpkin: #d35400,#ecf0f1
22 | dullOrange: #f39c12,#ecf0f1
23 | orange: #ff9800,#ecf0f1
24 | bloodOrange: #ff5722,#ecf0f1
25 | amber: #ffc107,#ecf0f1
26 | sunflower: #f1c40f,#ecf0f1
27 | yellow: #ffeb3b,#34495e
28 | amethyst: #9b59b6,#ecf0f1
29 | plum: #8e44ad,#ecf0f1
30 | purple: #9c27b0,#ecf0f1
31 | deepPurple: #673ab7,#ecf0f1
32 | pink: #e91e63,#ecf0f1
33 | indigo: #3f51b5,#ecf0f1
34 | brown: #795548,#ecf0f1
35 | grey: #9e9e9e,#ecf0f1
36 | gunMetal: #607d8b,#ecf0f1
37 | asbestos: #7f8c8d,#ecf0f1
38 | concrete: #95a5a6,#ecf0f1
39 | silver: #bdc3c7,#ecf0f1
40 | clouds: #ecf0f1,#34495e
41 | paper: #efefef,#34495e
--------------------------------------------------------------------------------
/shields/design-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/slogan/slogan.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | import svgwrite
3 | from svgwrite.container import Hyperlink
4 |
5 |
6 | def generate_slogan():
7 | width = 600
8 | height = 50
9 |
10 | dwg = svgwrite.Drawing('slogan.svg', profile='full', size=(u'540', u'50'))
11 |
12 | mask = dwg.mask((0, 0), (540, height), id='a')
13 | mask.add(dwg.rect((0, 0), (540, height), fill='#eee', rx=5))
14 |
15 | dwg.add(mask)
16 |
17 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
18 | g.add(dwg.rect((0, 0), (width / 3, height), fill='#03a9f4'))
19 | g.add(dwg.rect((width / 3, 0), (width / 3, height), fill='#e91e63'))
20 | g.add(dwg.rect((width * 2 / 3, 0), (width * 2 / 3, height), fill='#ecf0f1'))
21 |
22 | slogan_link = Hyperlink('http://www.xuntayizhan.com/person/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/', target='_blank')
23 | slogan_link.add(dwg.text('待我代码编成', insert=(10, 35), fill='#fff', font_size=30, font_family='STFangSong'))
24 | slogan_link.add(dwg.text('娶你为妻可好', insert=(210, 35), fill='#fff', font_size=30, font_family='STFangSong'))
25 | dwg.add(slogan_link)
26 |
27 | link = Hyperlink('http://www.hug8217.com/', target='_blank')
28 | link.add(dwg.text('@花仲马', insert=(410, 35), fill='#34495e', font_size=30, font_family='STFangSong'))
29 |
30 | dwg.add(link)
31 |
32 | dwg.save()
33 |
34 |
35 | if __name__ == '__main__':
36 | generate_slogan()
37 |
--------------------------------------------------------------------------------
/shields/design.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/cover/generate_cover_masked.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | from os import path
3 |
4 | import numpy as np
5 | from PIL import Image
6 | from wordcloud import WordCloud
7 | import ConfigParser
8 |
9 | ConfigColor = ConfigParser.ConfigParser()
10 | ConfigColor.read("./color.ini")
11 |
12 | d = path.dirname(__file__)
13 |
14 | text = open(path.join(d, 'lang.txt')).read()
15 |
16 | origin_image = Image.open(path.join(d, "map.png"))
17 | img = origin_image.convert("RGBA")
18 | datas = img.getdata()
19 |
20 | newData = []
21 | bg_color = datas[0]
22 | for item in datas:
23 | if item[0] == bg_color[0] and item[1] == bg_color[1] and item[2] == bg_color[2]:
24 | newData.append((255, 255, 255, 0))
25 | else:
26 | newData.append(item)
27 |
28 | img.putdata(newData)
29 |
30 | alice_mask = np.array(img)
31 |
32 | wc = WordCloud(background_color=None, max_words=2000, mask=alice_mask, max_font_size=6,
33 | width=1423, height=601, mode="RGBA")
34 | # generate word cloud
35 | wc.generate(text)
36 |
37 | def hex_to_rgb(value):
38 | value = value.lstrip('#')
39 | lv = len(value)
40 | return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
41 |
42 | def rgb_to_hex(rgb):
43 | return '#%02x%02x%02x' % rgb
44 |
45 | def get_font_color(bg):
46 | color = bg[0], bg[1], bg[2]
47 | bg_hex = rgb_to_hex(color)
48 | for color_name, color in ConfigColor.items('Color'):
49 | color_bg = color.split(',')[0]
50 | if color_bg == bg_hex:
51 | return color.split(',')[1]
52 |
53 | font_color = hex_to_rgb(get_font_color(bg_color))
54 |
55 | text_cloud_image = wc.to_image()
56 |
57 | text_cloud_image.show()
58 | text_cloud_image.save('out.png')
59 |
--------------------------------------------------------------------------------
/shields/book-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/logo/big.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
23 |
--------------------------------------------------------------------------------
/logo/small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Brand
2 |
3 | > Design for Fun
4 |
5 | Usage
6 | ---
7 |
8 | [](http://ideas.phodal.com/)
9 |
10 | Markdown:
11 |
12 | [](http://ideas.phodal.com/)
13 |
14 | [](https://www.phodal.com/)
15 |
16 | Markdown:
17 |
18 | [](https://www.phodal.com/)
19 |
20 | [](https://www.phodal.com/)
21 |
22 | Markdown:
23 |
24 | [](https://www.phodal.com/)
25 |
26 | [](https://www.phodal.com/)
27 |
28 | Markdown:
29 |
30 | [](https://www.phodal.com/)
31 |
32 |
33 | [](https://www.phodal.com/)
34 |
35 | Markdown:
36 |
37 | [](https://www.phodal.com/)
38 |
39 | Titles
40 | ---
41 |
42 | 
43 |
44 | 
45 |
46 | Cover
47 | ---
48 |
49 | 
50 |
51 | 
52 |
53 | Logo
54 | ---
55 |
56 | 
57 |
58 | 
59 |
60 | Setup
61 | ---
62 |
63 | Install Deps:
64 |
65 | pip install -r requirements.txt
66 |
67 | Run:
68 |
69 | python generate.py
70 |
71 | For Text Cloud:
72 |
73 | touch ~/.matplotlib/matplotlibrc
74 | echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
75 |
76 | License
77 | ---
78 |
79 | MIT
80 |
81 | [](http://ideas.phodal.com/) [](http://www.xuntayizhan.com/person/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/)
82 |
--------------------------------------------------------------------------------
/shields/article-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/shields/article.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/titles/title.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | import ConfigParser
3 | import svgwrite
4 |
5 | ConfigColor = ConfigParser.ConfigParser()
6 | ConfigColor.read("./color.ini")
7 |
8 | bg_colors = []
9 | font_colors = []
10 |
11 |
12 | def generate_title_by_colors(color_name, bg_color, font_color):
13 | dwg = svgwrite.Drawing('generate/cover/' + color_name + '.svg', size=(u'950', u'500'))
14 |
15 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
16 |
17 | shapes.add(dwg.rect((0, 0), (950, 500), fill='#' + bg_color))
18 | shapes.add(dwg.text('JavaScript', insert=(475, 190), fill='#' + font_color, font_size=120,
19 | style="text-anchor: middle; dominant-baseline: hanging;",
20 | font_family='Helvetica'))
21 |
22 | dwg.save()
23 |
24 |
25 | def generate_cover_titles():
26 | for color_name, color in ConfigColor.items('Color'):
27 | bg_color = color.replace('#', '').split(',')[0]
28 | font_color = color.replace('#', '').split(',')[1]
29 |
30 | generate_title_by_colors(color_name, bg_color, font_color)
31 |
32 |
33 | def generate_article_title(color_name, bg_color, font_color):
34 | bg_color = '#' + bg_color
35 | font_color = '#' + font_color
36 |
37 | dwg = svgwrite.Drawing('generate/titles/' + color_name + '.svg', size=(u'950', u'300'))
38 |
39 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
40 |
41 | shapes.add(dwg.rect((0, 0), (950, 300), fill=bg_color))
42 | shapes.add(dwg.text('PHODAL', insert=(475, 50), fill=font_color, font_size=22,
43 | style="text-anchor: middle; dominant-baseline: hanging;",
44 | font_family='Helvetica'))
45 | shapes.add(dwg.rect((220, 54), (200, 10), fill=font_color))
46 | shapes.add(dwg.rect((530, 54), (200, 10), fill=font_color))
47 |
48 | shapes.add(dwg.text('这是一个标题', insert=(475, 100), fill=font_color, font_size=120,
49 | style="text-anchor: middle; dominant-baseline: hanging;",
50 | font_family='Helvetica'))
51 |
52 | shapes.add(dwg.text('CREATE & SHARE', insert=(475, 220), fill=font_color, font_size=22,
53 | style="text-anchor: middle; dominant-baseline: hanging;",
54 | font_family='Helvetica'))
55 |
56 | shapes.add(dwg.rect((50, 225), (320, 5), fill=font_color))
57 | shapes.add(dwg.rect((580, 225), (320, 5), fill=font_color))
58 |
59 | dwg.save()
60 |
61 |
62 | def generate_article_titles():
63 | for color_name, color in ConfigColor.items('Color'):
64 | bg_color = color.replace('#', '').split(',')[0]
65 | font_color = color.replace('#', '').split(',')[1]
66 |
67 | generate_article_title(color_name, bg_color, font_color)
68 |
69 |
70 | if __name__ == '__main__':
71 | generate_cover_titles()
72 | generate_article_titles()
73 |
--------------------------------------------------------------------------------
/shields/works-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/cover/article.txt:
--------------------------------------------------------------------------------
1 | CoAP Cordova DependenceInversionPrinciple GCC Hardware Object Object-oriented RESTful SEO Technology Blog UA ab active ada adapter adc admob agile ajax amazon amazone amp amp-img analog analytics analyze android android studio angular angularjs anonymous anywhere anywherecss anywherehtml anywherejavascript apache apdex aplay app appleswift application apply apprentice architecture arduino arduino pwm arduino timer1 arecord arguments armel article articles artists atom autocomplete avr aws aws iot b2g ba backbone bamboo bare bareminimum bash bashit bashprofile basic bbs bdd beageek become begeek block block2 blog blogpost blogposts bluetooth book booklists books boom boot bootmgr bootstrap bower brew bridge buddy builder cabal cache call callback cartodb centos centosbashrcbashprofile ceonts chai chaining charity checkout chinese chrome chromedriver ci cjk cleanup cli climate closure cms coap-cli code codec codes coding colortheme com command commit commucation compile complete completion computerculture config configure content copy cortana cortana thinking cortane chinese coverage cpp crawlers creating cs csdn csharp css csv cucumber curl cygwin cython d3 d3csv d3js daemon dashboard dashborad dashing db db120 dd ddd debian definingux deploy design design patterns desktop dev development dfrobot diff digital dip disqus django django jwt djangocms djangocms-installer djangodebug dk2 dmc dns doc docx dom domain dot douban dp draw dream dsl ducky duoshuo duration ec2 echoes echoesworks editing editor education egg elasticsearch electron elstaicsearch emacs emacs24 emacsd emergent emergent-design emulator encapsulation energia env equality error everyprogrammer execute exifread extensions extra extract facebok factory falcon feature feedback fighting filter fingers firefox firefox-os fish flann flat flex footer forfun framework freescale full stack full-platform full-stack fun future g1 ga game game engine gcc48 gdb geek geek-life geeknotes geeks geeks life geo geolocation gestures get gevent gis git gitbook github gmap gnu gnulinux go goaccess goal gof google google amp google app indexing gpio gradl gradle graphics graphviz greenlet growl growth growth-one-month grub grub2 grunt gson gui gunicorn h5dump h5ls hack hackday hacker handiwork haskell haystack hcsr04 hdf5 header helloworld hhvm highchart higher order history hmd homebrew homepage html html5 http http2 https hybrid hz idea ideas iic iis impact important improve india inequality information infrared innovation install intellij intellij idea intent internet interrupt intership io iojs ionic ios iot iot system iot-coap ir irb it it book iteration iterm2 jarsigner jartool jasmine jasper java javascript javascript lint javascriptdb javascriptlint javascriptreplace jetty jquery js jsdom jsl jslint json json-ld jstoxml jwt kingsoft lamp language laravel laravelphar latex launchpad leap leapjs leapmotion learn learning letter lettuce libcoap libgdx lineprofiler linux lisp lm35 lnmp local javascript localstorage log log4j logo loop lose ls luffa lumia mac mac os macos map maplast markdown material matplotlib mcu melonjs memcached memoryprofiler metaprogramming method mezzanine micro services microdata microdta microkernel microservices migrate mint mirrors mkswap mobile mocha mock model modernizr mongodb mono moqi morethink mosquitto motion mount mountbind mqtt mqttmosquitto msp430 msyql mustache mvc mysql mysqlnotes myth native neighbor nerd netstat newrelic nfc ngCordova nginx nginx17 ngmessages ngxin ngxpagespeed node node-coap nodejs nokia5110 nokogiri notes notifier npm numberical numpy nvm o2o objects objgraph observer oculus oculus-hmd oculuse office oo open opensource openssl opensuse openwrt oriented os osiot overnight override p3 pagedown pageination pagespeed paint pair pandoc parse parser pattern patterns pc pcd8544 pcduino pdf peewee percent perl permissions person phantomjs phodal phoenix photograph php pil pip pipe plan play play framework pluse pocketsphinx polygon post postgres powerline pre-commit preview private problem programmer programmer-how-to-write-a-good-article promise proteus protocol proxy publishing purcell pwm pybluez pycharm pyenv pyflann pyqt pyqt5 python python26 python27 pythonbrew pythonredis qr qt qtgui quickstart ractive radius rails rake rakefile raspberrypi raspberrypi2 rbenv react readme reap recap redis refactor refactory refactorying regex relic replace repractise requests requirejs requirejsbackbone response rest restart restify resume rethink rethought review rework rhino robot rollover route router rpi rspec rss ruby rubyonrails rvm safari salary sass scala scikit search searh section selenium seneca sensors serial server share sherlock showdown sick sidebar sidemenu siderbar simple sinon siri sitelinks sitemap skillock skilltree slidingmenu smalldata smell soa software engine solairs solr sort soundcard sourcehansanscn spark spdy sphinxbase spring sqlite sqlite3 ssl star start starters status stream stress stringjs stub studio subl sublime summary swap swapfile swift syntaxhightlight systemd tag taobo task tastypie tdd team tech technical technology temperature template terminal terminal notifier test think thinking this thoughtworks thread threejs time timeout timer1 toggle tomcat6 tone tools traceroute travis trello trim tsinghua ttl tts tubes tw twill twu type ubuntu ui umd uml underscore unicorn university unix update upgrade uri usability usb usb stick usbsoundcard use useage user agent user experice user experience userdata userguide utf8 utf8mb4 ux ux designer uxdesigner varnish verison version versions vim vimrc virtual virtualenv vps vr waterline wdl web web devel webkit webmaster website website refactor websiterefactory websocket wechat weekend weibo wget why winavr windows windows phone wipe wkhtmltopdf wolf wolfram wolframalpha women wordpress wordpressapi work works world wp wp cache wp supercache wp8 wp81 wpapi wps write writeblog writedrivenlearing writer xml xmlhttp xunta xuntayizhan yast yeoman yo yosemite yum zepto zhihu zipailgn zshrc zxing zypper
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
117 |
--------------------------------------------------------------------------------
/shields/works.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/cover/lang.txt:
--------------------------------------------------------------------------------
1 | A# .NET
2 | A#
3 | A-0 System
4 | A+
5 | A++
6 | ABAP
7 | ABC
8 | ABC ALGOL
9 | ABLE
10 | ABSET
11 | ABSYS
12 | ACC
13 | Accent
14 | Ace DASL
15 | ACL2
16 | ACT-III
17 | Action!
18 | ActionScript
19 | Ada
20 | Adenine
21 | Agda
22 | Agilent VEE
23 | Agora
24 | AIMMS
25 | Alef
26 | ALF
27 | ALGOL 58
28 | ALGOL 60
29 | ALGOL 68
30 | ALGOL W
31 | Alice
32 | Alma-0
33 | AmbientTalk
34 | Amiga E
35 | AMOS
36 | AMPL
37 | Apex
38 | APL
39 | App Inventor for Android's visual block language
40 | AppleScript
41 | Arc
42 | ARexx
43 | Argus
44 | AspectJ
45 | Assembly language
46 | ATS
47 | Ateji PX
48 | AutoHotkey
49 | Autocoder
50 | AutoIt
51 | AutoLISP / Visual LISP
52 | Averest
53 | AWK
54 | Axum
55 | B
56 | B
57 | Babbage
58 | Bash
59 | BASIC
60 | bc
61 | BCPL
62 | BeanShell
63 | Batch
64 | Bertrand
65 | BETA
66 | Bigwig
67 | Bistro
68 | BitC
69 | BLISS
70 | BlooP
71 | Blue
72 | Boo
73 | Boomerang
74 | Bourne shell
75 | BREW
76 | BPEL
77 | C
78 | C
79 | C--
80 | C++ – ISO/IEC 14882
81 | C# – ISO/IEC 23270
82 | C/AL
83 | Caché ObjectScript
84 | C Shell
85 | Caml
86 | Cayenne
87 | CDuce
88 | Cecil
89 | Cel
90 | Cesil
91 | Ceylon
92 | CFEngine
93 | CFML
94 | Cg
95 | Ch
96 | Chapel
97 | CHAIN
98 | Charity
99 | Charm
100 | Chef
101 | CHILL
102 | CHIP-8
103 | chomski
104 | ChucK
105 | CICS
106 | Cilk
107 | Citrine
108 | CL
109 | Claire
110 | Clarion
111 | Clean
112 | Clipper
113 | CLIST
114 | Clojure
115 | CLU
116 | CMS-2
117 | COBOL – ISO/IEC 1989
118 | Cobra
119 | CODE
120 | CoffeeScript
121 | Cola
122 | ColdC
123 | ColdFusion
124 | COMAL
125 | Combined Programming Language
126 | COMIT
127 | Common Intermediate Language
128 | Common Lisp
129 | COMPASS
130 | Component Pascal
131 | Constraint Handling Rules
132 | Converge
133 | Cool
134 | Coq
135 | Coral 66
136 | Corn
137 | CorVision
138 | COWSEL
139 | CPL
140 | csh
141 | CSP
142 | Cryptol
143 | Csound
144 | CUDA
145 | Curl
146 | Curry
147 | Cyclone
148 | Cython
149 | D
150 | D
151 | DASL
152 | DASL
153 | Dart
154 | DataFlex
155 | Datalog
156 | DATATRIEVE
157 | dBase
158 | dc
159 | DCL
160 | Deesel
161 | Delphi
162 | DinkC
163 | DIBOL
164 | Dog
165 | Draco
166 | DRAKON
167 | Dylan
168 | DYNAMO
169 | E
170 | E
171 | E#
172 | Ease
173 | Easy PL/I
174 | Easy Programming Language
175 | EASYTRIEVE PLUS
176 | ECMAScript
177 | Edinburgh IMP
178 | EGL
179 | Eiffel
180 | ELAN
181 | Elixir
182 | Elm
183 | Emacs Lisp
184 | Emerald
185 | Epigram
186 | EPL
187 | Erlang
188 | es
189 | Escher
190 | ESPOL
191 | Esterel
192 | Etoys
193 | Euclid
194 | Euler
195 | Euphoria
196 | EusLisp Robot Programming Language
197 | CMS EXEC
198 | EXEC 2
199 | Executable UML
200 | F
201 | F
202 | F#
203 | Factor
204 | Falcon
205 | Fantom
206 | FAUST
207 | FFP
208 | Fjölnir
209 | FL
210 | Flavors
211 | Flex
212 | FlooP
213 | FLOW-MATIC
214 | FOCAL
215 | FOCUS
216 | FOIL
217 | FORMAC
218 | @Formula
219 | Forth
220 | Fortran – ISO/IEC 1539
221 | Fortress
222 | FoxBase
223 | FoxPro
224 | FP
225 | FPr
226 | Franz Lisp
227 | Frege
228 | F-Script
229 | G
230 | G
231 | Game Maker Language
232 | GameMonkey Script
233 | GAMS
234 | GAP
235 | G-code
236 | Genie
237 | GDL
238 | GJ
239 | GEORGE
240 | GLSL
241 | GNU E
242 | GM
243 | Go
244 | Go!
245 | GOAL
246 | Gödel
247 | Godiva
248 | Golo
249 | GOM
250 | Google Apps Script
251 | Gosu
252 | GOTRAN
253 | GPSS
254 | GraphTalk
255 | GRASS
256 | Groovy
257 | H
258 | Hack
259 | HAL/S
260 | Hamilton C shell
261 | Harbour
262 | Hartmann pipelines
263 | Haskell
264 | Haxe
265 | High Level Assembly
266 | HLSL
267 | Hop
268 | Hopscotch
269 | Hope
270 | Hugo
271 | Hume
272 | HyperTalk
273 | I
274 | IBM Basic assembly language
275 | IBM HAScript
276 | IBM Informix-4GL
277 | IBM RPG
278 | ICI
279 | Icon
280 | Id
281 | IDL
282 | Idris
283 | IMP
284 | Inform
285 | Io
286 | Ioke
287 | IPL
288 | IPTSCRAE
289 | ISLISP
290 | ISPF
291 | ISWIM
292 | J
293 | J
294 | J#
295 | J++
296 | JADE
297 | Jako
298 | JAL
299 | Janus
300 | JASS
301 | Java
302 | JavaScript
303 | JCL
304 | JEAN
305 | Join Java
306 | JOSS
307 | Joule
308 | JOVIAL
309 | Joy
310 | JScript
311 | JScript .NET
312 | JavaFX Script
313 | Julia
314 | Jython
315 | K
316 | K
317 | Kaleidoscope
318 | Karel
319 | Karel++
320 | KEE
321 | Kixtart
322 | Klerer-May System
323 | KIF
324 | Kojo
325 | Kotlin
326 | KRC
327 | KRL
328 | KRL
329 | KRYPTON
330 | ksh
331 | L
332 | L
333 | L# .NET
334 | LabVIEW
335 | Ladder
336 | Lagoona
337 | LANSA
338 | Lasso
339 | LaTeX
340 | Lava
341 | LC-3
342 | Leda
343 | Legoscript
344 | LIL
345 | LilyPond
346 | Limbo
347 | Limnor
348 | LINC
349 | Lingo
350 | LIS
351 | LISA
352 | Lisaac
353 | Lisp – ISO/IEC 13816
354 | Lite-C
355 | Lithe
356 | Little b
357 | Logo
358 | Logtalk
359 | LotusScript
360 | LPC
361 | LSE
362 | LSL
363 | LiveCode
364 | LiveScript
365 | Lua
366 | Lucid
367 | Lustre
368 | LYaPAS
369 | Lynx
370 | M
371 | M2001
372 | M4
373 | M#
374 | Machine code
375 | MAD
376 | MAD/I
377 | Magik
378 | Magma
379 | make
380 | Maple
381 | MAPPER now part of BIS
382 | MARK-IV now VISION:BUILDER
383 | Mary
384 | MASM Microsoft Assembly x86
385 | MATH-MATIC
386 | Mathematica
387 | MATLAB
388 | Maxima
389 | Max
390 | MaxScript internal language 3D Studio Max
391 | Maya
392 | MDL
393 | Mercury
394 | Mesa
395 | Metacard
396 | Metafont
397 | Microcode
398 | MicroScript
399 | MIIS
400 | MillScript
401 | MIMIC
402 | Mirah
403 | Miranda
404 | MIVA Script
405 | ML
406 | Moby
407 | Model 204
408 | Modelica
409 | Modula
410 | Modula-2
411 | Modula-3
412 | Mohol
413 | MOO
414 | Mortran
415 | Mouse
416 | MPD
417 | MSIL – deprecated name for CIL
418 | MSL
419 | MUMPS
420 | Mystic Programming Language
421 | N
422 | NASM
423 | Napier88
424 | Neko
425 | Nemerle
426 | nesC
427 | NESL
428 | Net.Data
429 | NetLogo
430 | NetRexx
431 | NewLISP
432 | NEWP
433 | Newspeak
434 | NewtonScript
435 | NGL
436 | Nial
437 | Nice
438 | Nickle
439 | Nim
440 | NPL
441 | Not eXactly C
442 | Not Quite C
443 | NSIS
444 | Nu
445 | NWScript
446 | NXT-G
447 | O
448 | o:XML
449 | Oak
450 | Oberon
451 | OBJ2
452 | Object Lisp
453 | ObjectLOGO
454 | Object REXX
455 | Object Pascal
456 | Objective-C
457 | Objective-J
458 | Obliq
459 | OCaml
460 | occam
461 | occam-π
462 | Octave
463 | OmniMark
464 | Onyx
465 | Opa
466 | Opal
467 | OpenCL
468 | OpenEdge ABL
469 | OPL
470 | OPS5
471 | OptimJ
472 | Orc
473 | ORCA/Modula-2
474 | Oriel
475 | Orwell
476 | Oxygene
477 | Oz
478 | P
479 | P′′
480 | P#
481 | ParaSail
482 | PARI/GP
483 | Pascal – ISO 7185
484 | PCASTL
485 | PCF
486 | PEARL
487 | PeopleCode
488 | Perl
489 | PDL
490 | Perl6
491 | Pharo
492 | PHP
493 | Phrogram
494 | Pico
495 | Picolisp
496 | Pict
497 | Pike
498 | PIKT
499 | PILOT
500 | Pipelines
501 | Pizza
502 | PL-11
503 | PL/0
504 | PL/B
505 | PL/C
506 | PL/I – ISO 6160
507 | PL/M
508 | PL/P
509 | PL/SQL
510 | PL360
511 | PLANC
512 | Plankalkül
513 | Planner
514 | PLEX
515 | PLEXIL
516 | Plus
517 | POP-11
518 | PostScript
519 | PortablE
520 | Powerhouse
521 | PowerBuilder – 4GL GUI applcation generator from Sybase
522 | PowerShell
523 | PPL
524 | Processing
525 | Processing.js
526 | Prograph
527 | PROIV
528 | Prolog
529 | PROMAL
530 | Promela
531 | PROSE modeling language
532 | PROTEL
533 | ProvideX
534 | Pro*C
535 | Pure
536 | Python
537 | Q
538 | Q
539 | Q
540 | Qalb
541 | QtScript
542 | QuakeC
543 | QPL
544 | R
545 | R
546 | R++
547 | Racket
548 | RAPID
549 | Rapira
550 | Ratfiv
551 | Ratfor
552 | rc
553 | REBOL
554 | Red
555 | Redcode
556 | REFAL
557 | Reia
558 | Revolution
559 | rex
560 | REXX
561 | Rlab
562 | ROOP
563 | RPG
564 | RPL
565 | RSL
566 | RTL/2
567 | Ruby
568 | RuneScript
569 | Rust
570 | S
571 | S
572 | S2
573 | S3
574 | S-Lang
575 | S-PLUS
576 | SA-C
577 | SabreTalk
578 | SAIL
579 | SALSA
580 | SAM76
581 | SAS
582 | SASL
583 | Sather
584 | Sawzall
585 | SBL
586 | Scala
587 | Scheme
588 | Scilab
589 | Scratch
590 | Script.NET
591 | Sed
592 | Seed7
593 | Self
594 | SenseTalk
595 | SequenceL
596 | SETL
597 | SIMPOL
598 | SIGNAL
599 | SiMPLE
600 | SIMSCRIPT
601 | Simula
602 | Simulink
603 | SISAL
604 | SLIP
605 | SMALL
606 | Smalltalk
607 | Small Basic
608 | SML
609 | Snap!
610 | SNOBOL
611 | Snowball
612 | SOL
613 | Span
614 | SPARK
615 | Speedcode
616 | SPIN
617 | SP/k
618 | SPS
619 | SQR
620 | Squeak
621 | Squirrel
622 | SR
623 | S/SL
624 | Stackless Python
625 | Starlogo
626 | Strand
627 | Stata
628 | Stateflow
629 | Subtext
630 | SuperCollider
631 | SuperTalk
632 | Swift
633 | Swift
634 | SYMPL
635 | SyncCharts
636 | SystemVerilog
637 | T
638 | T
639 | TACL
640 | TACPOL
641 | TADS
642 | TAL
643 | Tcl
644 | Tea
645 | TECO
646 | TELCOMP
647 | TeX
648 | TEX
649 | TIE
650 | Timber
651 | TMG, compiler-compiler
652 | Tom
653 | TOM
654 | TouchDevelop
655 | Topspeed
656 | TPU
657 | Trac
658 | TTM
659 | T-SQL
660 | TTCN
661 | Turing
662 | TUTOR
663 | TXL
664 | TypeScript
665 | Turbo C++
666 | U
667 | Ubercode
668 | UCSD Pascal
669 | Umple
670 | Unicon
671 | Uniface
672 | UNITY
673 | Unix shell
674 | UnrealScript
675 | V
676 | Vala
677 | VBA
678 | VBScript
679 | Visual Basic
680 | Visual Basic .NET
681 | Visual DataFlex
682 | Visual DialogScript
683 | Visual Fortran
684 | Visual FoxPro
685 | Visual J++
686 | Visual J#
687 | Visual Objects
688 | Visual Prolog
689 | VSXu
690 | vvvv
691 | W
692 | WATFIV, WATFOR
693 | WebDNA
694 | WebQL
695 | Whiley
696 | Windows PowerShell
697 | Winbatch
698 | Wolfram Language
699 | Wyvern
700 | X
701 | X++
702 | X#
703 | X10
704 | XBL
705 | XC
706 | xHarbour
707 | XL
708 | Xojo
709 | XOTcl
710 | XPL
711 | XPL0
712 | XQuery
713 | XSB
714 | XSLT – see XPath
715 | Xtend
716 | Y
717 | Yorick
718 | YQL
719 | Z
720 | Z notation
721 | Zeno
722 | ZOPL
723 | ZPL
--------------------------------------------------------------------------------
/shields/idea.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/generate.py:
--------------------------------------------------------------------------------
1 | import random
2 |
3 | import svgwrite
4 | from svgwrite.container import Hyperlink
5 |
6 | phodal_width = 528
7 | secondary_text_x = 588
8 | basic_text_y = 119
9 |
10 |
11 | def generate_idea():
12 | y_text_split = phodal_width + 1
13 | height = 150
14 | rect_length = 10
15 | width = 868
16 | max_rect_length = 40
17 |
18 | dwg = svgwrite.Drawing('shields/idea.svg', profile='full', size=(u'868', u'150'))
19 |
20 | a_mask = dwg.mask((0, 0), (width, height), id='a')
21 | a_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=15))
22 | dwg.add(a_mask)
23 |
24 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
25 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
26 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#2196F3'))
27 |
28 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
29 |
30 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
31 | shapes.add(dwg.text('phodal', insert=(84, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=120,
32 | font_family='Helvetica'))
33 |
34 | slogan_link.add(
35 | dwg.text('phodal', insert=(83, basic_text_y), fill='#FFFFFF', font_size=120, font_family='Helvetica'))
36 | dwg.add(slogan_link)
37 |
38 | def draw_for_bg_plus():
39 | for x in range(y_text_split + rect_length, width, rect_length):
40 | shapes.add(dwg.line((x, 0), (x, height), stroke='#EEEEEE', stroke_opacity=0.3))
41 |
42 | for y in range(rect_length, height, rect_length):
43 | shapes.add(dwg.line((y_text_split, y), (width, y), stroke='#EEEEEE', stroke_opacity=0.3))
44 |
45 | for x in range(y_text_split + max_rect_length, width, max_rect_length):
46 | for y in range(0, height, max_rect_length):
47 | shapes.add(dwg.line((x, y - 4), (x, y + 4), stroke='#EEEEEE', stroke_width='2', stroke_opacity=0.4))
48 |
49 | for y in range(0, height, max_rect_length):
50 | for x in range(y_text_split + max_rect_length, width, max_rect_length):
51 | shapes.add(dwg.line((x - 4, y), (x + 4, y), stroke='#EEEEEE', stroke_width='2', stroke_opacity=0.4))
52 |
53 | draw_for_bg_plus()
54 |
55 | shapes.add(
56 | dwg.text('idea', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=120,
57 | font_family='Helvetica'))
58 | shapes.add(dwg.text('idea', insert=(secondary_text_x, basic_text_y), fill='#FFFFFF', font_size=120,
59 | font_family='Helvetica'))
60 | dwg.save()
61 |
62 |
63 | def generate_article():
64 | dwg = svgwrite.Drawing('shields/article.svg', size=(u'970', u'150'))
65 |
66 | width = 970
67 | height = 150
68 | a_mask = dwg.mask((0, 0), (width, height), id='a')
69 | a_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=15))
70 | dwg.add(a_mask)
71 |
72 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
73 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
74 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#ffeb3b'))
75 |
76 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
77 |
78 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
79 | shapes.add(dwg.text('phodal', insert=(84, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=120,
80 | font_family='Helvetica'))
81 | slogan_link.add(
82 | dwg.text('phodal', insert=(83, basic_text_y), fill='#FFFFFF', font_size=120, font_family='Helvetica'))
83 | dwg.add(slogan_link)
84 |
85 | g.add(dwg.text(insert=(phodal_width, 16), fill='#34495e', opacity=0.2, font_size=12,
86 | text='Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, fe-'))
87 | g.add(dwg.text(insert=(phodal_width, 32), fill='#34495e', opacity=0.2, font_size=12,
88 | text='ugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi'))
89 | g.add(dwg.text(insert=(phodal_width, 48), fill='#34495e', opacity=0.2, font_size=12,
90 | text='vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, '))
91 | g.add(dwg.text(insert=(phodal_width, 64), fill='#34495e', opacity=0.2, font_size=12,
92 | text='condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum '))
93 | g.add(dwg.text(insert=(phodal_width, 80), fill='#34495e', opacity=0.2, font_size=12,
94 | text='rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus,'))
95 | g.add(dwg.text(insert=(phodal_width, 96), fill='#34495e', opacity=0.2, font_size=12,
96 | text=' neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,'))
97 | g.add(dwg.text(insert=(phodal_width, 112), fill='#34495e', opacity=0.2, font_size=12,
98 | text=' tincidunt quis, accumsan porttitor, facilisis luctus, metus'))
99 | g.add(dwg.text(insert=(phodal_width, 128), fill='#34495e', opacity=0.2, font_size=12,
100 | text='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget '))
101 | g.add(dwg.text(insert=(phodal_width, 144), fill='#34495e', opacity=0.2, font_size=12,
102 | text='ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus '))
103 | g.add(dwg.text(insert=(phodal_width, 160), fill='#34495e', opacity=0.2, font_size=12,
104 | text='turpis elit sit amet quam. Vivamus pretium ornare est.'))
105 |
106 | shapes.add(dwg.text('article', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#000', fill_opacity=0.3,
107 | font_size=120, font_family='Helvetica'))
108 | shapes.add(dwg.text('article', insert=(secondary_text_x, basic_text_y), fill='#34495e', font_size=120,
109 | font_family='Helvetica'))
110 |
111 | dwg.save()
112 |
113 |
114 | def get_some_random10(num):
115 | results = ''
116 | for x in range(1, num):
117 | results += str(random.getrandbits(1))
118 | return results
119 |
120 |
121 | def generate_works():
122 | dwg = svgwrite.Drawing('shields/works.svg', size=(u'950', u'150'))
123 |
124 | width = 950
125 | height = 150
126 |
127 | a_mask = dwg.mask((0, 0), (width, height), id='a')
128 | a_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=15))
129 | dwg.add(a_mask)
130 |
131 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
132 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#2c3e50'))
133 |
134 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
135 |
136 | g.add(dwg.rect((phodal_width, 0), (426, 150), fill='#2c3e50'))
137 |
138 | for x in range(0, 300, 10):
139 | text = get_some_random10(100)
140 | g.add(
141 | dwg.text(text, insert=(phodal_width + 1, x), fill='#27ae60', font_size=12,
142 | font_family='Inconsolata for Powerline',
143 | opacity=0.3, transform="rotate(15 1000, 0)"))
144 |
145 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
146 |
147 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
148 | shapes.add(dwg.text('phodal', insert=(84, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=120,
149 | font_family='Helvetica'))
150 | slogan_link.add(
151 | dwg.text('phodal', insert=(83, basic_text_y), fill='#FFFFFF', font_size=120, font_family='Helvetica'))
152 | dwg.add(slogan_link)
153 |
154 | shapes.add(dwg.text('works', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#FFFFFF', font_size=120,
155 | font_family='Helvetica'))
156 | shapes.add(dwg.text('works', insert=(secondary_text_x, basic_text_y), fill='#FFFFFF', font_size=120,
157 | font_family='Helvetica'))
158 |
159 | dwg.save()
160 |
161 |
162 | def generate_design():
163 | dwg = svgwrite.Drawing('shields/design.svg', size=(u'1014', u'150'))
164 |
165 | # for D Rect
166 | red_point = 798
167 | design_width = 486
168 | width = 1014
169 | height = 150
170 |
171 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
172 |
173 | a_mask = dwg.mask((0, 0), (width, height), id='a')
174 | a_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=15))
175 |
176 | dwg.add(a_mask)
177 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
178 |
179 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
180 |
181 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
182 |
183 | shapes.add(dwg.rect((phodal_width, 25.6), (design_width, 30), fill='#2196f3'))
184 |
185 | shapes.add(dwg.rect((phodal_width, 90), (design_width, 60), fill='#2196f3'))
186 |
187 | shapes.add(dwg.text('design', insert=(secondary_text_x + 6, 120), fill='#000', stroke_width=4, font_size=120,
188 | font_family='Helvetica'))
189 | shapes.add(dwg.rect((phodal_width, 0), (design_width, 90), fill='#03a9f4'))
190 | # shapes.add(dwg.rect((phodal_width, 88), (486, 3), fill='#e91e63'))
191 | shapes.add(dwg.rect((phodal_width, 90), (design_width, 0.2), fill='#000'))
192 | shapes.add(dwg.text('design', insert=(secondary_text_x + 4, basic_text_y), fill='#FFFFFF', font_size=120,
193 | font_family='Helvetica'))
194 |
195 | def draw_red_point():
196 | shapes.add(dwg.ellipse((red_point, 40), (9, 9), fill='#000'))
197 | shapes.add(dwg.ellipse((red_point + 1, 39), (9, 9), fill='#f44336'))
198 |
199 | def draw_d_arround():
200 | shapes.add(dwg.line((secondary_text_x, 90), (secondary_text_x, 130), stroke='#EEEEEE', stroke_width='1',
201 | stroke_opacity=1, stroke_dasharray="2,2"))
202 | shapes.add(
203 | dwg.line((secondary_text_x + 70, 90), (secondary_text_x + 70, 130), stroke='#EEEEEE', stroke_width='1',
204 | stroke_opacity=1, stroke_dasharray="2,2"))
205 | # shapes.add(dwg.line((700, 25), (770, 25), stroke='#EEEEEE', stroke_width='1', stroke_opacity=1, stroke_dasharray="2,2"))
206 | shapes.add(dwg.line((secondary_text_x, 130), (secondary_text_x + 70, 130), stroke='#EEEEEE', stroke_width='1',
207 | stroke_opacity=1, stroke_dasharray="2,2"))
208 |
209 | draw_red_point()
210 | draw_d_arround()
211 |
212 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
213 | shapes.add(dwg.text('phodal', insert=(84, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=120,
214 | font_family='Helvetica'))
215 | slogan_link.add(
216 | dwg.text('phodal', insert=(83, basic_text_y), fill='#FFFFFF', font_size=120, font_family='Helvetica'))
217 | dwg.add(slogan_link)
218 |
219 | dwg.save()
220 |
221 |
222 | generate_idea()
223 | generate_article()
224 | generate_works()
225 | generate_design()
226 |
--------------------------------------------------------------------------------
/generate_small.py:
--------------------------------------------------------------------------------
1 | import random
2 |
3 | import svgwrite
4 | from svgwrite.container import Hyperlink
5 |
6 | phodal_width = 176
7 | secondary_text_x = 200
8 | basic_text_y = 35
9 |
10 |
11 | def generate_idea():
12 | y_text_split = phodal_width + 1
13 | height = 50
14 | rect_length = 2
15 | width = 290
16 | max_rect_length = 10
17 |
18 | dwg = svgwrite.Drawing('shields/idea-small.svg', profile='full', size=(u'290', u'50'))
19 |
20 | rect_with_radius_mask = dwg.mask((0, 0), (width, height), id='a')
21 | rect_with_radius_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=3))
22 | dwg.add(rect_with_radius_mask)
23 |
24 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
25 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
26 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#2196F3'))
27 |
28 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
29 |
30 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
31 | shapes.add(dwg.text('phodal', insert=(28, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
32 | font_family='Helvetica'))
33 | slogan_link.add(dwg.text('phodal', insert=(27, basic_text_y), fill='#FFFFFF', font_size=40, font_family='Helvetica'))
34 | dwg.add(slogan_link)
35 |
36 | def draw_for_bg_plus():
37 | for x in range(y_text_split + rect_length, width, rect_length):
38 | shapes.add(dwg.line((x, 0), (x, height), stroke='#EEEEEE', stroke_width='0.5', stroke_opacity=0.1))
39 |
40 | for y in range(rect_length, height, rect_length):
41 | shapes.add(
42 | dwg.line((y_text_split, y), (width, y), stroke='#EEEEEE', stroke_width='0.5', stroke_opacity=0.1))
43 |
44 | for x in range(y_text_split + max_rect_length, width, max_rect_length):
45 | for y in range(0, height, max_rect_length):
46 | shapes.add(dwg.line((x, y - 2), (x, y + 2), stroke='#EEEEEE', stroke_width='0.8', stroke_opacity=0.15))
47 |
48 | for y in range(0, height, max_rect_length):
49 | for x in range(y_text_split + max_rect_length, width, max_rect_length):
50 | shapes.add(dwg.line((x - 2, y), (x + 2, y), stroke='#EEEEEE', stroke_width='0.8', stroke_opacity=0.15))
51 |
52 | draw_for_bg_plus()
53 |
54 | shapes.add(
55 | dwg.text('idea', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#000', font_size=40, fill_opacity=0.3,
56 | font_family='Helvetica'))
57 | shapes.add(dwg.text('idea', insert=(secondary_text_x, basic_text_y), fill='#FFFFFF', font_size=40,
58 | font_family='Helvetica'))
59 | dwg.save()
60 |
61 |
62 | def generate_article():
63 | dwg = svgwrite.Drawing('shields/article-small.svg', size=(u'323', u'50'))
64 |
65 | height = 50
66 | width = 323
67 |
68 | rect_with_radius_mask = dwg.mask((0, 0), (width, height), id='a')
69 | rect_with_radius_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=3))
70 | dwg.add(rect_with_radius_mask)
71 |
72 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
73 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
74 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#ffeb3b'))
75 |
76 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
77 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
78 | shapes.add(dwg.text('phodal', insert=(28, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
79 | font_family='Helvetica'))
80 | slogan_link.add(
81 | dwg.text('phodal', insert=(27, basic_text_y), fill='#FFFFFF', font_size=40, font_family='Helvetica'))
82 | dwg.add(slogan_link)
83 |
84 | def create_text():
85 | g.add(dwg.text(insert=(phodal_width, 6), fill='#34495e', opacity=0.2, font_size=4,
86 | text='Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, fe-'))
87 | g.add(dwg.text(insert=(phodal_width, 12), fill='#34495e', opacity=0.2, font_size=4,
88 | text='ugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi'))
89 | g.add(dwg.text(insert=(phodal_width, 18), fill='#34495e', opacity=0.2, font_size=4,
90 | text='vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, '))
91 | g.add(dwg.text(insert=(phodal_width, 24), fill='#34495e', opacity=0.2, font_size=4,
92 | text='condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum '))
93 | g.add(dwg.text(insert=(phodal_width, 30), fill='#34495e', opacity=0.2, font_size=4,
94 | text='rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus,'))
95 | g.add(dwg.text(insert=(phodal_width, 36), fill='#34495e', opacity=0.2, font_size=4,
96 | text=' neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,'))
97 | g.add(dwg.text(insert=(phodal_width, 42), fill='#34495e', opacity=0.2, font_size=4,
98 | text=' tincidunt quis, accumsan porttitor, facilisis luctus, metus'))
99 | g.add(dwg.text(insert=(phodal_width, 48), fill='#34495e', opacity=0.2, font_size=4,
100 | text='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget '))
101 | g.add(dwg.text(insert=(phodal_width, 54), fill='#34495e', opacity=0.2, font_size=4,
102 | text='ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus '))
103 | g.add(dwg.text(insert=(phodal_width, 60), fill='#34495e', opacity=0.2, font_size=4,
104 | text='turpis elit sit amet quam. Vivamus pretium ornare est.'))
105 |
106 | create_text()
107 |
108 | g.add(dwg.text('article', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#000', fill_opacity=0.3,
109 | font_size=40, font_family='Helvetica'))
110 | g.add(dwg.text('article', insert=(secondary_text_x, basic_text_y), fill='#34495e', font_size=40,
111 | font_family='Helvetica'))
112 |
113 | dwg.save()
114 |
115 |
116 | def get_some_random10(num):
117 | results = ''
118 | for x in range(1, num):
119 | results += str(random.getrandbits(1))
120 | return results
121 |
122 |
123 | def generate_works():
124 | width = 316
125 | height = 50
126 |
127 | dwg = svgwrite.Drawing('shields/works-small.svg', size=(u'316', u'50'))
128 |
129 | rect_with_radius_mask = dwg.mask((0, 0), (width, height), id='a')
130 | rect_with_radius_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=3))
131 | dwg.add(rect_with_radius_mask)
132 |
133 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
134 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#2c3e50'))
135 |
136 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
137 |
138 | for x in range(0, 100, 5):
139 | text = get_some_random10(100)
140 | g.add(
141 | dwg.text(text, insert=(phodal_width + 1, x), fill='#27ae60', font_size=4,
142 | font_family='Inconsolata for Powerline',
143 | opacity=0.3, transform="rotate(15 300, 0)"))
144 |
145 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
146 |
147 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
148 | shapes.add(dwg.text('phodal', insert=(28, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
149 | font_family='Helvetica'))
150 | slogan_link.add(
151 | dwg.text('phodal', insert=(27, basic_text_y), fill='#FFFFFF', font_size=40, font_family='Helvetica'))
152 | dwg.add(slogan_link)
153 |
154 | shapes.add(
155 | dwg.text('works', insert=(secondary_text_x + 1, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
156 | font_family='Helvetica'))
157 | shapes.add(dwg.text('works', insert=(secondary_text_x, basic_text_y), fill='#FFFFFF', font_size=40,
158 | font_family='Helvetica'))
159 |
160 | dwg.save()
161 |
162 |
163 | def generate_design():
164 | # for D Rect
165 | red_point = 272
166 | design_width = 162
167 | width = 338
168 | height = 50
169 |
170 | dwg = svgwrite.Drawing('shields/design-small.svg', size=(u'338', u'50'))
171 | rect_with_radius_mask = dwg.mask((0, 0), (width, height), id='a')
172 | rect_with_radius_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=3))
173 |
174 | dwg.add(rect_with_radius_mask)
175 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
176 |
177 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
178 |
179 | g.add(dwg.rect((0, 0), (phodal_width, 50), fill='#5E6772'))
180 |
181 | shapes.add(dwg.rect((phodal_width, 25.6), (design_width, 30), fill='#2196f3'))
182 |
183 | shapes.add(dwg.text('design', insert=(secondary_text_x + 5, 36), fill='#000', stroke_width=4, font_size=40,
184 | font_family='Helvetica'))
185 | shapes.add(dwg.rect((phodal_width, 0), (design_width, 26), fill='#03a9f4'))
186 | shapes.add(dwg.rect((phodal_width, 25.6), (design_width, 0.6), fill='#000'))
187 | shapes.add(dwg.text('design', insert=(secondary_text_x + 4, basic_text_y), fill='#FFFFFF', font_size=40,
188 | font_family='Helvetica'))
189 |
190 | def draw_red_point():
191 | shapes.add(dwg.ellipse((red_point, 8), (3, 3), fill='#000'))
192 | shapes.add(dwg.ellipse((red_point + 1, 8), (3, 3), fill='#f44336'))
193 |
194 | draw_red_point()
195 |
196 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
197 | shapes.add(dwg.text('phodal', insert=(28, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
198 | font_family='Helvetica'))
199 | slogan_link.add(
200 | dwg.text('phodal', insert=(27, basic_text_y), fill='#FFFFFF', font_size=40, font_family='Helvetica'))
201 | dwg.add(slogan_link)
202 |
203 | dwg.save()
204 |
205 | def generate_book():
206 | dwg = svgwrite.Drawing('shields/book-small.svg', size=(u'323', u'50'))
207 | height = 50
208 | width = 308
209 |
210 | rect_with_radius_mask = dwg.mask((0, 0), (width, height), id='a')
211 | rect_with_radius_mask.add(dwg.rect((0, 0), (width, height), fill='#eee', rx=3))
212 | dwg.add(rect_with_radius_mask)
213 |
214 | g = dwg.add(dwg.g(id='g', fill='none', mask='url(#a)'))
215 | g.add(dwg.rect((0, 0), (phodal_width, height), fill='#5E6772'))
216 | g.add(dwg.rect((phodal_width, 0), (width - phodal_width, height), fill='#2ECC71'))
217 |
218 | shapes = dwg.add(dwg.g(id='shapes', fill='none'))
219 | slogan_link = Hyperlink('https://www.phodal.com/', target='_blank')
220 | shapes.add(dwg.text('phodal', insert=(28, basic_text_y + 1), fill='#000', fill_opacity=0.3, font_size=40,
221 | font_family='Helvetica'))
222 | slogan_link.add(
223 | dwg.text('phodal', insert=(27, basic_text_y), fill='#FFFFFF', font_size=40, font_family='Helvetica'))
224 | dwg.add(slogan_link)
225 |
226 | def draw_for_bg_plus():
227 | for y in range(0, 50, 5):
228 | shapes.add(dwg.line((180, y), (304, y), stroke='#EEEEEE', stroke_width='0.2', stroke_opacity=0.5))
229 |
230 | draw_for_bg_plus()
231 |
232 | shapes.add(dwg.text('book', insert=(secondary_text_x, basic_text_y), fill='#FFFFFF', font_size=40,
233 | font_family='Helvetica'))
234 |
235 | dwg.save()
236 |
237 |
238 | generate_idea()
239 | generate_article()
240 | # generate_works()
241 | generate_design()
242 | generate_book()
243 |
--------------------------------------------------------------------------------
/shields/idea-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/titles/generate/basic.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------