├── 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 | JavaScript -------------------------------------------------------------------------------- /titles/generate/demo-title-lightblue.svg: -------------------------------------------------------------------------------- 1 | 2 | JavaScript -------------------------------------------------------------------------------- /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 | PHODAL这是一个标题CREATE & SHARE -------------------------------------------------------------------------------- /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 | designdesignphodalphodal -------------------------------------------------------------------------------- /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 | designdesignphodalphodal -------------------------------------------------------------------------------- /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 | phodalbookphodal -------------------------------------------------------------------------------- /logo/big.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 16 | 22 | 23 | -------------------------------------------------------------------------------- /logo/small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | logo 2 5 | Created with Sketch. 6 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Brand 2 | 3 | > Design for Fun 4 | 5 | Usage 6 | --- 7 | 8 | [![Phodal's Idea](http://brand.phodal.com/shields/idea-small.svg)](http://ideas.phodal.com/) 9 | 10 | Markdown: 11 | 12 | [![Phodal's Idea](http://brand.phodal.com/shields/idea-small.svg)](http://ideas.phodal.com/) 13 | 14 | [![Phodal's Article](http://brand.phodal.com/shields/article-small.svg)](https://www.phodal.com/) 15 | 16 | Markdown: 17 | 18 | [![Phodal's Article](http://brand.phodal.com/shields/article-small.svg)](https://www.phodal.com/) 19 | 20 | [![Phodal's Article](http://brand.phodal.com/shields/works-small.svg)](https://www.phodal.com/) 21 | 22 | Markdown: 23 | 24 | [![Phodal's Article](http://brand.phodal.com/shields/works-small.svg)](https://www.phodal.com/) 25 | 26 | [![Phodal's Design](http://brand.phodal.com/shields/design-small.svg)](https://www.phodal.com/) 27 | 28 | Markdown: 29 | 30 | [![Phodal's Design](http://brand.phodal.com/shields/design-small.svg)](https://www.phodal.com/) 31 | 32 | 33 | [![Phodal's Book](http://brand.phodal.com/shields/book-small.svg)](https://www.phodal.com/) 34 | 35 | Markdown: 36 | 37 | [![Phodal's Book](http://brand.phodal.com/shields/book-small.svg)](https://www.phodal.com/) 38 | 39 | Titles 40 | --- 41 | 42 | ![Phodal's Title](http://brand.phodal.com/titles/generate/titles/yellow.svg) 43 | 44 | ![Phodal's Title](http://brand.phodal.com/titles/generate/titles/pumpkin.svg) 45 | 46 | Cover 47 | --- 48 | 49 | ![Phodal's Title](http://brand.phodal.com/titles/generate/cover/yellow.svg) 50 | 51 | ![Phodal's Title](http://brand.phodal.com/titles/generate/cover/blue.svg) 52 | 53 | Logo 54 | --- 55 | 56 | ![Phodal's Logo](http://brand.phodal.com/logo/small.svg) 57 | 58 | ![Phodal's Logo](http://brand.phodal.com/logo/small.svg) 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 | [![Phodal's Idea](http://brand.phodal.com/shields/idea-small.svg)](http://ideas.phodal.com/) [![待我代码编成,娶你为妻可好](http://brand.phodal.com/slogan/slogan.svg)](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 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, fe-ugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mivitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metusLorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.articlearticlephodalphodal -------------------------------------------------------------------------------- /shields/article.svg: -------------------------------------------------------------------------------- 1 | 2 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, fe-ugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mivitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metusLorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.phodalarticlearticlephodal -------------------------------------------------------------------------------- /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 | 000001100100011100101010011010001000111010001011110110000100101110110110001001000110011111110010110000000000100100110001100011100001011001011011100011100010001000110111001101111110110001100100101001000001010000010111100011110100011010111100101110101001110010101000001111001000011101101000101001010110000101010100001110001010011011011001010010100100010101001111011111111010001000000100110110010101101111001110010001000011110101111111100011000010100100001001000110100001011010111000000110011111110000010101101101011011000111000011101000000001010010000100001000010100101110011000111110000101110010011111000000111000010001111111011111000011000010000000000101010101110110101001010000001001011111011100101110111001010100101011100101001011100100101100100110001101100100000110111100111010110110111011111000110100100011011010001110011111101010010011111100111111101110111000100000011101010001101101001111111111111001000001111010010111011101101100001000001110001001011110101111000001011111110011100011111110101111100100011011001001001101101001110011010000100000010101100101011110100100111011011001111000010001010000000101000011101010101000101110011010010110011000100101010011111010000011010010110110010001100010110100110100000001011000001100010000111010001101111010011001011111111101110000111001010111100101111011110010110010111011011011110001111000101001010101001111011000000101011000100010110000000110001001111100111101011011011001101110100001001110011100101100011001101011100101001100111010100101110100100010111010010011110111011101000010111100010100011110100001010110101111100101001111100111010010111111111010110100111110010001110101010010110010110110110110111011010100010100101100011011110111000011101101111101011101100110101101010110001111000100001101010100100000001101111010111010000001000110110111010011111101010011110101111101100100101001100011111000000110011110000101001100000111000010100010110010101000110011101001101000100101111101110011001000001101100011010010011010010010011100phodalworksworksphodal -------------------------------------------------------------------------------- /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 | 011010100100110110110001010010110011001101000111010110000011101000000010111110101110000011001110011101000110100000001101111001110100110101010110010001111000010110101100010110111001111110100011011010111011101100000101011110111110000100111110101110000010111110010001010110111111111101110001010110101011011000001011010011101101100000001010100000111010101101110000111001100001111101000001001111001001110011101011111010001110110000100011011001111111110111100011010000011001100011100110110011000000011111000010001110011111101011010100001010000100100101011111111001000001010011101100110111110100010000110000011100101111010100111100100110100011101100101110100010000001010001011011101100101010000111011110000011010011000011000101011110100011010100110001111110011011000101010010000111111100111101101101110000001000110101100100010001010010011010000111110100111111001000011010001010110011100100000011110101100110111110110110000001100000001101111011010101101000100101110010011110001011001010001100100000100100011111111001110111010001111010001100101100011101111001101001111101011001011001110010101111110100010110111011110100110001100111101110111001111111000011111100001001101010110010111111000100011111001100010100110000011111100010011111010101010001000110100110100001010011001001100011100000011011011001110010100000010001000000111100110001111010100101000001001110000010101001011010100110001011001101010110011000001110010000000101010111001000110101010101100010000101100001110110111011000111101100101110000000001101100011110100001111000010010110010011101110010101101000100110111111111100110110100110011111000110011111101010110101110001100111100011001001110001110001100110000011100011011001111000110011110010101100001000000111110010100101111000001010010100101001101011110001001001011001100011101110010001011100111001001001111101110101111101100100110110111000011100000000101011001100100001101101101101101001000000100010000111001011100111011100011110000010101100001011101001100000111100010011100101110001111010010101000100100001101000111011100000101100011010011010001111000111001111101101001011100100001111010110101110111100100111111010100100011010100001010010111000111100110110110001011100100101010011111011010001101010000000101011010001011001110111001001011000011011111010011100001000110011011101100001100010001000010001111001010101111101110000111100100101011011010000110101010010101010000100100110110111011100111101111001001011110110001100011010010100000001110000111101011010000001011111010010101000100001101110111101001011000010001011000000011000011100100101101011101101100101010001110001110101101010110100010001000010101001110100100111100110001010001011100100100010110100100100001001110001101100101010000111010111011101101100111011110000001110011011111010011010010100111000001010100010000000001111000101001110010001000100001101110100100000001000100000011111101010010011100001000110101101110011010010100101011011001111000000001110010100111101110100010011011101001111100111101011010000phodalworksworksphodal -------------------------------------------------------------------------------- /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 | phodalideaideaphodal -------------------------------------------------------------------------------- /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 | phodalideaideaphodal -------------------------------------------------------------------------------- /titles/generate/basic.svg: -------------------------------------------------------------------------------- 1 | 2 | 标题 --------------------------------------------------------------------------------