├── .idea
├── .gitignore
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
├── github-contributions.iml
└── vcs.xml
├── requirements.txt
├── Git_files
├── logo.png
├── shared.a5ed77c5.css
└── scripts.70495d9e.css
├── example
├── do_it.png
├── genom.png
├── heart.png
├── i_l_p.png
├── pacman.png
├── do_it_res.png
├── genom_res.png
├── heart_res.png
├── i_l_p_res.png
├── I_love_you.png
├── do_it_mini.png
├── genom_mini.png
├── heart_mini.png
├── i_l_p_mini.png
├── pacman_mini.png
├── pacman_res.png
├── send_nudes.png
├── I_love_you_res.png
├── bugs_hex_sux.png
├── sex_drugs_alco.png
├── I_love_you2_mini.jpg
├── I_love_you_mini.png
├── bugs_hex_sux_res.png
├── send_nudes2_mini.png
├── send_nudes_mini.png
└── bugs_hex_sux_mini.png
├── .github
└── ISSUE_TEMPLATE
│ ├── custom.md
│ ├── feature_request.md
│ └── bug_report.md
├── LICENSE
├── CONTRIBUTING.md
├── README.chinese.md
├── README.hindi.md
├── README.md
├── README.ru.md
├── CODE_OF_CONDUCT.md
├── github_paint.py
└── Git.html
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/requirements.txt
--------------------------------------------------------------------------------
/Git_files/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/Git_files/logo.png
--------------------------------------------------------------------------------
/example/do_it.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/do_it.png
--------------------------------------------------------------------------------
/example/genom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/genom.png
--------------------------------------------------------------------------------
/example/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/heart.png
--------------------------------------------------------------------------------
/example/i_l_p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/i_l_p.png
--------------------------------------------------------------------------------
/example/pacman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/pacman.png
--------------------------------------------------------------------------------
/example/do_it_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/do_it_res.png
--------------------------------------------------------------------------------
/example/genom_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/genom_res.png
--------------------------------------------------------------------------------
/example/heart_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/heart_res.png
--------------------------------------------------------------------------------
/example/i_l_p_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/i_l_p_res.png
--------------------------------------------------------------------------------
/example/I_love_you.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/I_love_you.png
--------------------------------------------------------------------------------
/example/do_it_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/do_it_mini.png
--------------------------------------------------------------------------------
/example/genom_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/genom_mini.png
--------------------------------------------------------------------------------
/example/heart_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/heart_mini.png
--------------------------------------------------------------------------------
/example/i_l_p_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/i_l_p_mini.png
--------------------------------------------------------------------------------
/example/pacman_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/pacman_mini.png
--------------------------------------------------------------------------------
/example/pacman_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/pacman_res.png
--------------------------------------------------------------------------------
/example/send_nudes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/send_nudes.png
--------------------------------------------------------------------------------
/example/I_love_you_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/I_love_you_res.png
--------------------------------------------------------------------------------
/example/bugs_hex_sux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/bugs_hex_sux.png
--------------------------------------------------------------------------------
/example/sex_drugs_alco.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/sex_drugs_alco.png
--------------------------------------------------------------------------------
/example/I_love_you2_mini.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/I_love_you2_mini.jpg
--------------------------------------------------------------------------------
/example/I_love_you_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/I_love_you_mini.png
--------------------------------------------------------------------------------
/example/bugs_hex_sux_res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/bugs_hex_sux_res.png
--------------------------------------------------------------------------------
/example/send_nudes2_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/send_nudes2_mini.png
--------------------------------------------------------------------------------
/example/send_nudes_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/send_nudes_mini.png
--------------------------------------------------------------------------------
/example/bugs_hex_sux_mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BEPb/github-contributions/HEAD/example/bugs_hex_sux_mini.png
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/custom.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Custom issue template
3 | about: Describe this issue template's purpose here.
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/github-contributions.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 BEPb
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # How to contribute
2 |
3 | I'm really glad you're reading this, because we need volunteer developers to help this project come to fruition.
4 |
5 | If you haven't already, come find us in IRC ([#opengovernment](irc://chat.freenode.net/opengovernment) on freenode). We want you working on things you're excited about.
6 |
7 | Here are some important resources:
8 |
9 | * [OpenGovernment for Developers](http://opengovernment.org/pages/developer) tells you where we are,
10 | * [Our roadmap](http://opengovernment.org/pages/wish-list) is the 10k foot view of where we're going, and
11 | * [Pivotal Tracker](http://pivotaltracker.com/projects/64842) is our day-to-day project management space.
12 | * Mailing list: Join our [developer list](http://groups.google.com/group/opengovernment/)
13 | * Bugs? [Lighthouse](https://participatorypolitics.lighthouseapp.com/projects/47665-opengovernment/overview) is where to report them
14 | * IRC: chat.freenode.net channel [#opengovernment](irc://chat.freenode.net/opengovernment). We're usually there during business hours.
15 |
16 | ## Testing
17 |
18 | We have a handful of Cucumber features, but most of our testbed consists of RSpec examples. Please write RSpec examples for new code you create.
19 |
20 | ## Submitting changes
21 |
22 | Please send a [GitHub Pull Request to opengovernment](https://github.com/opengovernment/opengovernment/pull/new/master) with a clear list of what you've done (read more about [pull requests](http://help.github.com/pull-requests/)). When you send a pull request, we will love you forever if you include RSpec examples. We can always use more test coverage. Please follow our coding conventions (below) and make sure all of your commits are atomic (one feature per commit).
23 |
24 | Always write a clear log message for your commits. One-line messages are fine for small changes, but bigger changes should look like this:
25 |
26 | $ git commit -m "A brief summary of the commit
27 | >
28 | > A paragraph describing what changed and its impact."
29 |
30 | ## Coding conventions
31 |
32 | Start reading our code and you'll get the hang of it. We optimize for readability:
33 |
34 | * We indent using two spaces (soft tabs)
35 | * We use HAML for all views
36 | * We avoid logic in views, putting HTML generators into helpers
37 | * We ALWAYS put spaces after list items and method parameters (`[1, 2, 3]`, not `[1,2,3]`), around operators (`x += 1`, not `x+=1`), and around hash arrows.
38 | * This is open source software. Consider the people who will read your code, and make it look nice for them. It's sort of like driving a car: Perhaps you love doing donuts when you're alone, but with passengers the goal is to make the ride as smooth as possible.
39 | * So that we can consistently serve images from the CDN, always use image_path or image_tag when referring to images. Never prepend "/images/" when using image_path or image_tag.
40 | * Also for the CDN, always use cwd-relative paths rather than root-relative paths in image URLs in any CSS. So instead of url('/images/blah.gif'), use url('../images/blah.gif').
41 |
42 | Thanks,
43 | Carl Tashian, Participatory Politics Foundation
44 |
--------------------------------------------------------------------------------
/README.chinese.md:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 |
12 |
13 | अन्य भाषाओं में पढ़ें: [English](README.md), [Russian](README.ru.md), [中國人](README.chinese.md)
14 |
15 |
16 | # गिटहब योगदान
17 | यदि आप अपने गिटहब गतिविधि इतिहास को सुशोभित करना चाहते हैं, तो पायथन लिपि की क्षमताएं ``github_paint.py``
18 | निर्दिष्ट अवधि के लिए योगदान को बदलने में आपकी सहायता करेगा।
19 |
20 | ## GitHub पर गतिविधि को फिर से करना, प्रोफ़ाइल में आरेखण करना
21 | एक स्रोत के रूप में, आपको पहले से 52 गुणा 7 पिक्सेल की एक छवि तैयार करनी होगी: यह
22 | स्वचालित रूप से आपकी ओर से आपके अलग भंडार में कमिट में परिवर्तित हो जाता है।
23 |
24 |
25 | यह प्रोग्राम स्वयं README.md फ़ाइल के साथ एक खाली रिपॉजिटरी को इनिशियलाइज़ करता है और इसके साथ फ़ाइल अपडेट जनरेट करना शुरू करता है
26 | योगदान जोड़ना: YYYY-MM-DD HH:MM आपकी प्रत्येक प्रतिबद्धता के लिए।
27 |
28 | बनाने के लिए --date स्विच का उपयोग करता है
29 | अतीत में करता है।
30 |
31 | ### कैसे इस्तेमाल करे
32 | 1. एक नया खाली GitHub रिपॉजिटरी बनाएं। README.md फ़ाइल शामिल न करें और रिपॉजिटरी को इनिशियलाइज़ न करें।
33 | 2. इस रिपॉजिटरी को क्लोन करें या github_paint.py फ़ाइल और अपनी कमिट ड्रॉइंग को कॉपी करें।
34 | 3. रिपॉजिटरी में, html पेज Git.html खोलें और अपनी ड्राइंग बनाएं
35 | 4. अपना चित्र सहेजें
36 | 5. इसे 52x7 . में बदलें
37 | 6. github_paint.py की पंक्तियों को अपने आरेखण के फ़ाइल नाम और वर्ष के अंतिम दिन के साथ बदलें जिसमें आप
38 | अपना चित्र पोस्ट करें
39 | 7. github_paint.py प्रोग्राम को कुंजी (आपके भंडार का पता) के साथ चलाएं जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
40 |
41 | ```commandline
42 | python github_paint.py --repository = https: //github.com/user/repo.git
43 | ```
44 | (HTTPS विधि: खाता प्रमाणीकरण)
45 | प्रक्रिया में इतना समय (3-5 मिनट) नहीं लगता है।
46 | 7. परिणाम का आनंद लें
47 |
48 | > नोट:
49 | यदि आपने एक बार इस स्क्रिप्ट का उपयोग रिपॉजिटरी में किया है, तो आप इसे उसी रिपॉजिटरी के साथ दोहरा नहीं पाएंगे।
50 | आपको एक और भंडार बनाना होगा अन्यथा आपको स्क्रिप्ट लॉग में त्रुटियां मिलेंगी।
51 | एक ऐसे भंडार का उपयोग करने पर जोर दें जिसे प्रारंभ नहीं किया गया है।
52 |
53 |
54 |
55 | ### कार्य उदाहरण:
56 | 1. प्रारंभिक ड्राइंग `जीनोम`:
57 |
58 | 
59 |
60 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
61 | 
62 |
63 | परिणाम:
64 | 
65 |
66 | 2. प्रारंभिक ड्राइंग `Я люблю Python`:
67 |
68 | 
69 |
70 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
71 | 
72 |
73 | परिणाम:
74 | 
75 |
76 | 2. प्रारंभिक ड्राइंग `Я люблю Python`:
77 |
78 | 
79 |
80 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
81 | 
82 |
83 | परिणाम:
84 | 
85 |
86 | 3. प्रारंभिक ड्राइंग `I love you`:
87 |
88 | 
89 |
90 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
91 | 
92 |
93 | परिणाम:
94 |
95 | 
96 |
97 | 4. प्रारंभिक ड्राइंग `bugs, hex, sux`:
98 |
99 | 
100 |
101 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
102 | 
103 |
104 | परिणाम:
105 |
106 | 
107 |
108 |
109 | 5. प्रारंभिक ड्राइंग `do it`:
110 |
111 | 
112 |
113 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
114 | 
115 |
116 | परिणाम:
117 | 
118 |
119 | 6. प्रारंभिक ड्राइंग `pacman`:
120 |
121 | 
122 |
123 | वही ड्राइंग लेकिन 52x7 रिज़ॉल्यूशन में:
124 | 
125 |
126 | परिणाम:
127 | 
128 |
129 | 7. प्रारंभिक ड्राइंग `send nudes`:
130 |
131 | 
132 |
133 | 8. प्रारंभिक ड्राइंग `sex_drugs_alco`:
134 |
135 | 
136 |
137 |
138 | काम के सभी उदाहरण फ़ोल्डर में रखे गए हैं `example`
139 | पी.एस. GUI एप्लिकेशन या html पेज बनाने की दीर्घकालिक योजनाएँ जहाँ से आप सभी ऑपरेशन कर सकते हैं
140 | रिपॉजिटरी में अपलोड करने से पहले ड्राइंग, लेकिन इसके लिए अभी तक समय नहीं है ..... इसलिए सभी उत्साही इस परियोजना को विकसित करते हैं
141 | मैं आपको भाग लेने, अपनी शाखा बनाने के लिए आमंत्रित करता हूं।
142 |
143 | पी.एस.एस. यदि आपको प्रोजेक्ट पसंद आया है, तो स्टार लगाना न भूलें, और यदि आप रुचि रखते हैं, तो एक अनुयायी के रूप में साइन अप करें।
144 |
145 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 |
10 |
11 |
12 |
13 |
14 | 
15 |
16 |
17 | Read this in other languages: [Russian](README.ru.md), [हिन्दी](README.hindi.md), [中國人](README.chinese.md)
18 |
19 | # GitHub Contributions
20 | If you want to beautify your GitHub activity history, then the capabilities of the Python script ``github_paint.py``
21 | will help you replace contributions for the specified period.
22 |
23 | ## Redoing the activity on GitHub, drawing in the profile
24 | As a source, you must prepare an image of 52 by 7 pixels in advance: it will
25 | automatically converted into commits on your behalf to your separate repository.
26 |
27 |
28 | This program itself initializes an empty repository with the README.md file and starts generating file updates with
29 | adding contributions: YYYY-MM-DD HH:MM for each commit of your commit.
30 |
31 | Uses the --date switch to create
32 | commits in the past.
33 |
34 | ### How to use
35 | 1. Create a new empty GitHub repository. Do not include a README.md file and do not initialize the repository.
36 | 2. Clone this repository or copy the github_paint.py file and your commits drawing.
37 | 3. In the repository, open the html page Git.html and draw your drawing
38 | 4. Save your drawing
39 | 5. Convert it to 52x7
40 | 6. Change the lines in github_paint.py with the file name of your drawing and the last day of the year in which you will
41 | post your drawing
42 | 7. Run the github_paint.py program with the key (the address of your repository) as shown in the example below:
43 |
44 | ```commandline
45 | python github_paint.py --repository = https: //github.com/user/repo.git
46 | ```
47 | (HTTPS Method: Account Authentication)
48 | The process takes not so much time (3-5 minutes).
49 | 7. Enjoy the result
50 |
51 | > Note:
52 | If you once used this script in the repository, then you will not be able to repeat it with the same repository.
53 | You will have to create another repository or else you will get errors in the script logs.
54 | Emphasis on using a repository that has not been initialized.
55 |
56 |
57 | ### Work examples:
58 | 1. Initial drawing `ГЕНОМ`:
59 |
60 | 
61 |
62 | The same drawing but in 52x7 resolution:
63 | 
64 |
65 | Result:
66 | 
67 |
68 | 2. Initial drawing `Я люблю Python`:
69 |
70 | 
71 |
72 | The same drawing but in 52x7 mode:
73 | 
74 |
75 | Result:
76 | 
77 |
78 | 2. Initial drawing `Я люблю Python`:
79 |
80 | 
81 |
82 | The same drawing but in 52x7 mode:
83 | 
84 |
85 | Result:
86 | 
87 |
88 | 3. Initial drawing `I love you`:
89 |
90 | 
91 |
92 | The same drawing but in 52x7 mode:
93 | 
94 |
95 | Result:
96 |
97 | 
98 |
99 | 4. Initial drawing `bugs, hex, sux`:
100 |
101 | 
102 |
103 | The same drawing but in 52x7 mode:
104 | 
105 |
106 | Result:
107 |
108 | 
109 |
110 |
111 | 5. Initial drawing `do it`:
112 |
113 | 
114 |
115 | The same drawing but in 52x7 mode:
116 | 
117 |
118 | Result:
119 | 
120 |
121 | 6. Initial drawing `pacman`:
122 |
123 | 
124 |
125 | The same drawing but in 52x7 mode:
126 | 
127 |
128 | Result:
129 | 
130 |
131 | 7. Initial drawing `send nudes`:
132 |
133 | 
134 |
135 | 8. Initial drawing `sex_drugs_alco`:
136 |
137 | 
138 |
139 | All examples of work are placed in the folder `example`
140 | ps long-term plans to create a GUI application or html page where you can perform all operations from
141 | drawing before uploading to the repository, but there is no time for this yet ..... so all enthusiasts develop this
142 | project
143 | I invite you to participate, create your own branch.
144 |
145 | p.s.s. If you liked the project, do not forget to put a star, and if you are interested, then sign up as a follower.
146 |
--------------------------------------------------------------------------------
/README.ru.md:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 |
10 |
11 |
12 |
13 | Читать на других языках: [English](README.md), [हिन्दी](README.hindi.md), [中國人](README.chinese.md)
14 |
15 | # GitHub Contributions
16 | Если Вы желаете украсить историю своей активности на GitHub, то возможности Python скрипта ``github_paint.py``
17 | помогут Вам заменить contributions за указанный период.
18 |
19 | ## Переделываем активность на GitHub, рисуем в профиле
20 | В качестве источника Вы должны заблаговременно подготовить изображение размером 52 на 7 пикселй: оно будет
21 | автоматически переобразовано в коммиты от Вашего имени в Ваш отдельный репозиторий.
22 |
23 |
24 | Данная программа сама инициализирует пустой репозиторий файлом README.md и начинает генерировать обновления файла с
25 | добавлением вкладов: ГГГГ-ММ-ДД ЧЧ: ММ для каждой фиксации вашего коммита.
26 |
27 | Использует переключатель --date для создания
28 | коммитов в прошлом.
29 |
30 | ### Порядок использования
31 | 1. Создайте новый пустой репозиторий на GitHub. Не добавляйте файл README.md и не инициализируйте репозиторий.
32 | 2. Клонируйте этот репозиторий или скопируйте файл github_paint.py и Ваш рисунок коммитов.
33 | 3. В репозитории откройте html-страницу Git.html и нарисуйте свой рисунок
34 | 4. Сохраните свой рисунок
35 | 5. Преобразуйте его к размеру 52х7
36 | 6. Измените в github_paint.py строки с названием файла вашего рисунка и поледнего дня года в котором вы будете
37 | размещать Ваш рисунок
38 | 7. Запустите программу github_paint.py с ключом (адресом Вашего репозитория) как указана на примере ниже:
39 |
40 | ```commandline
41 | python github_paint.py --repository = https: //github.com/user/repo.git
42 | ```
43 | (Метод HTTPS: аутентификация учетной записи)
44 | Процесс занимает не так уж и много времени (3-5 минут).
45 | 7. Наслаждайтесь результатом
46 |
47 | > Примечание:
48 | Если вы однажды использовали в репозитории этот скрипт, то повторить с этим же репозиторием - не получится.
49 | Вам придется создать другой репозиторий, иначе вы получите ошибки в журналах скрипта.
50 | Акцент на использовании репозитория, который не был инициализирован.
51 |
52 |
53 |
54 | ### Примеры работ:
55 | 1. Исходный рисунок `ГЕНОМ`:
56 |
57 | 
58 |
59 | Тот же рисунок но в разрешении 52х7:
60 | 
61 |
62 | Результат:
63 | 
64 |
65 | 2. Исходный рисунок `Я люблю Python`:
66 |
67 | 
68 |
69 | Тот же рисунок но в режиме 52х7:
70 | 
71 |
72 | Результат:
73 | 
74 |
75 | 2. Исходный рисунок `Я люблю Python`:
76 |
77 | 
78 |
79 | Тот же рисунок но в режиме 52х7:
80 | 
81 |
82 | Результат:
83 | 
84 |
85 | 3. Исходный рисунок `I love you`:
86 |
87 | 
88 |
89 | Тот же рисунок но в режиме 52х7:
90 | 
91 |
92 | Результат:
93 |
94 | 
95 |
96 | 4. Исходный рисунок `bugs, hex, sux`:
97 |
98 | 
99 |
100 | Тот же рисунок но в режиме 52х7:
101 | 
102 |
103 | Результат:
104 |
105 | 
106 |
107 |
108 | 5. Исходный рисунок `do it`:
109 |
110 | 
111 |
112 | Тот же рисунок но в режиме 52х7:
113 | 
114 |
115 | Результат:
116 | 
117 |
118 | 6. Исходный рисунок `pacman`:
119 |
120 | 
121 |
122 | Тот же рисунок но в режиме 52х7:
123 | 
124 |
125 | Результат:
126 | 
127 |
128 | 7. Исходный рисунок `send nudes`:
129 |
130 | 
131 |
132 | 8. Исходный рисунок `sex_drugs_alco`:
133 |
134 | 
135 |
136 |
137 | Все примеры работ размещены в папке `example`
138 | п.с. в дальнеидущих планах создать GUI приложение или html страницу на которой можно выполнить все операции от
139 | рисования до заливки в репозиторий, но пока на это нет времени..... так что всех энтузиастов развить этот проект
140 | приглашаю по учавствовать, создать свою ветку.
141 |
142 | п.с.с. Если проект понравился не забывайте поставить звезду, а если интерестны - то и записаться в followers.
143 |
144 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | .
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder](https://github.com/mozilla/diversity).
123 |
124 | [homepage]: https://www.contributor-covenant.org
125 |
126 | For answers to common questions about this code of conduct, see the FAQ at
127 | https://www.contributor-covenant.org/faq. Translations are available at
128 | https://www.contributor-covenant.org/translations.
129 |
--------------------------------------------------------------------------------
/github_paint.py:
--------------------------------------------------------------------------------
1 | """
2 | Python 3.9 Программа для изменения количества комментариев github
3 | Название файла 'github_paint.py'
4 |
5 | Version: 0.1
6 | Author: Andrej Marinchenko
7 | Date: 2021-11-06
8 | """
9 |
10 | import argparse # модуль для работы с аргументами python
11 | import os # для взаимодействия с командной строкой операционной системы
12 | from datetime import datetime, date # для обработки дат
13 | from datetime import timedelta # для вычислений разницы времени
14 | from random import randint # генерация произвольных чисел (дат)
15 | from subprocess import Popen # для запуска командной строки
16 | from PIL import Image # подключаем модуль для работы с изображениями
17 |
18 | def process_image(path, directory): # функция работы с рисунком 52x7
19 | img = Image.open(path) # открываем рисунок
20 | px = img.load() # создаем таблицу данных рисунка
21 | size = img.size # получаем размер рисунка
22 | os.chdir(directory) # переходим в эту папку
23 | if (52, 7) != size: # Если рисунок не 52x7
24 | raise Exception("Рисунок должен быть 52x7, Ваш рисунок имеет размер: " + size)
25 |
26 | for x in range(size[0]): # перемещаемся по рядам от 1 до 7
27 | print("Ведется работа над рядом №: ", x) # печатаем № ряда
28 | for y in range(size[1]): # перемещаемся по столбцам от 1 до 52
29 | val = 255 - int(rgb2gray(px[x, y])) # преобразуем цвет в оттенок серого
30 | val /= 16 # оттенок серого преобразуем в значения от 1 до 4
31 | write_px(x, y, val) # обращаемся к функции записи коммита
32 |
33 | def write_px(x, y, intensity, prefix=""): # записываем коммиты на git (координаты, интенсивность)
34 | days_ago = numdays + offset - (x*rows+y) # дней назад = количество дней на странице + учитываем какой сегодня день
35 | # недели - смещение по оси х умноженное на число строк + у
36 | d = start_date - timedelta(days = days_ago) # от сегодняшнего дня отнимаем количество дельта дней
37 | print("val=", intensity, "x", x, "y", y, "date:", d) # выводим полученные данные
38 | intensity = int(intensity)
39 | for i in range(0, intensity): # в зависимости от параметра интенсивности в этот день (определяется количество
40 | # коммитов)
41 | commit(days_ago)
42 |
43 | def commit(days_ago): # функция коментария (указываем на сколько дней назад делаем сдвиг, сообщение)
44 | date = start_date - timedelta(days=days_ago) # высчитываем день начала рисунка (первого комментария)
45 | with open(os.path.join(os.getcwd(), 'README.md'), 'a') as file: # открывает файл 'README.md'
46 | file.write(message(date) + '\n\n') # дописывае дату, пропускает две строки
47 | run(['git', 'add', '.']) # запускает в командной строке команды проверить файлы на изменение
48 | run(['git', 'commit', '-m', '"%s"' % message(date),
49 | '--date', date.strftime('"%Y-%m-%d %H:%M:%S"')]) # запускает в командной строке отправить комит по дате
50 | # при этом коммит подписывается датой внесения измениний
51 |
52 |
53 | # преобразовываем цветной рисунок в серый
54 | def rgb2gray(rgb):
55 | r, g, b = rgb[0:3] # выделяем три переменные r,g,b, параметр alpha не учитываем
56 | gray = 0.2989 * r + 0.5870 * g + 0.1140 * b # преобразуем в оттенок серого
57 | return gray # функция возвращает результат, оттенок серого
58 |
59 | # функция записи одного коммита (сообщения) по дате
60 | def contribute(date):
61 | with open(os.path.join(os.getcwd(), 'README.md'), 'a') as file: # открывает файл 'README.md'
62 | file.write(message(date) + '\n\n') # дописывае дату, пропускает две строки
63 | run(['git', 'add', '.']) # запускает в командной строке команды проверить файлы на изменение
64 | run(['git', 'commit', '-m', '"%s"' % message(date),
65 | '--date', date.strftime('"%Y-%m-%d %H:%M:%S"')]) # запускает в командной строке отправить комит по дате
66 | # при этом коммит подписывается датой внесения измениний
67 |
68 | # функция запуска команд в командной строке (полученных аргументов фукнции)
69 | def run(commands):
70 | Popen(commands).wait() # ожидает выполнения команд (полученных аргументов фукнции)
71 |
72 | # функция преобразует дату в установленный формат
73 | def message(date):
74 | return date.strftime('Contribution: %Y-%m-%d %H:%M')
75 |
76 | # функция формирует произвольное число в диапазоне (количество коммитов в этот день)
77 | def contributions_per_day(args):
78 | max_c = args.max_commits
79 | if max_c > 20:
80 | max_c = 20
81 | if max_c < 1:
82 | max_c = 1
83 | return randint(1, max_c) # возвращает произвольное число
84 |
85 | # функция абработки аргументов
86 | def arguments():
87 | parser = argparse.ArgumentParser() # считываем все аргументы
88 | parser.add_argument('-nw', '--no_weekends', # аргумент работы без выходных
89 | required=False, action='store_true', default=False,
90 | help="""do not commit on weekends""")
91 | parser.add_argument('-mc', '--max_commits', type=int, default=10, # аргумент, максимального числа коммитов в день
92 | required=False, help="""Defines the maximum amount of
93 | commits a day the script can make. Accepts a number
94 | from 1 to 20. If N is specified the script commits
95 | from 1 to N times a day. The exact number of commits
96 | is defined randomly for each day. The default value
97 | is 10.""")
98 | parser.add_argument('-fr', '--frequency', type=int, default=80, # аргумент сколько процентов в год закомичено
99 | required=False, help="""Percentage of days when the
100 | script performs commits. If N is specified, the script
101 | will commit N%% of days in a year. The default value
102 | is 80.""")
103 | parser.add_argument('-r', '--repository', type=str, required=False, # аргумент репозитория
104 | help="""A link on an empty non-initialized remote git
105 | repository. If specified, the script pushes the changes
106 | to the repository. The link is accepted in SSH or HTTPS
107 | format. For example: git@github.com:user/repo.git or
108 | https://github.com/user/repo.git""")
109 | return parser.parse_args() # возращает результат функции
110 |
111 | # главная функция
112 | def main():
113 | args = arguments() # обработка аргументов при запуске программы
114 | curr_date = datetime.now() # определяем сегодняшнюю дату
115 | directory = 'repository-' + curr_date.strftime('%Y-%m-%d-%H-%M-%S') # название папки
116 | print('directory', directory)
117 | repository = args.repository # этой переменной присваиваем названия репозитория на github
118 | if repository is not None: # если репозиторий существует
119 | start = repository.rfind('/') + 1 # определяем начало от слеша
120 | end = repository.rfind('.') # определяем конец до точки
121 | directory = repository[start:end] # меняем название папки
122 | print('directory', directory)
123 | os.mkdir(directory) # создаем папку с соотв. названием
124 | os.chdir(directory) # переходим в эту папку
125 | run(['git', 'init']) # запускаем инициализацию этой папки
126 |
127 | # start_date = curr_date.replace(hour=20, minute=0) - timedelta(366) # определяем первый день (год назад)
128 | print('start_date', start_date)
129 |
130 | # рандомное заполнение
131 | # for day in (start_date + timedelta(n) for n in range(364)): # переходим от 1-го дня до последнего
132 | # if (not no_weekends or day.weekday() < 5) \
133 | # and randint(0, 100) < frequency:
134 | # for commit_time in (day + timedelta(minutes=m)
135 | # for m in range(contributions_per_day(args))): # в зависимости от количества коммитов
136 | # # в этот день повторяет функцию отправки одного коммита
137 | # contribute(commit_time) # запуск отправки одного коммита
138 |
139 | # заполнение по картинке
140 | os.chdir('..') # вернемся на 2 уровня вверх
141 | process_image('example/send_nudes_mini.png', directory) # коммит делается из рисунка
142 |
143 |
144 | if repository is not None: # если репозиторий существует
145 | run(['git', 'remote', 'add', 'origin', repository]) # запускаем команды в командной строке
146 | run(['git', 'push', '-u', 'origin', 'master']) # запускаем команды в командной строке
147 |
148 | print('\nRepository generation ' +
149 | '\x1b[6;30;42mcompleted successfully\x1b[0m!')
150 |
151 | start_date = date(2011, 12, 26)
152 | now = date.today()
153 | days_ago = now - start_date
154 | offset = (date.today().weekday() + 1) % 7 # сегодняшней даты, на матрице 7 на 52 (от этого зависит какой день
155 | rows = 7 # строки
156 | cols = 52 # столбцы
157 | size = (cols, rows) # общий размер 7 на 52
158 | numdays = rows * cols # количество дней на одной странице 7 x 52 = 354
159 |
160 |
161 | if __name__ == "__main__":
162 | main()
163 |
164 | # python github_paint.py --repository=https://github.com/BEPb/test2018.git
--------------------------------------------------------------------------------
/Git_files/scripts.70495d9e.css:
--------------------------------------------------------------------------------
1 | .commit-grid{--cell-radius:2;--cell-size:11;--cell-gap:5;--bg:var(--grey);display:-ms-inline-grid;display:inline-grid;-ms-grid-columns:(auto)[53];grid-template-columns:repeat(53,auto);-ms-grid-rows:(auto)[7];grid-template-rows:repeat(7,auto);grid-gap:calc(var(--cell-gap)*1px);grid-auto-flow:dense}.commit-grid:active{cursor:var(--cursor,pointer)}.commit-grid__cell{height:calc(var(--cell-size)*1px);width:calc(var(--cell-size)*1px);background:var(--bg);border-radius:calc(var(--cell-radius)*1px);grid-column:var(--column)}.commit-grid__cell[data-level="1"]{--bg:var(--green-one)}.commit-grid__cell[data-level="2"]{--bg:var(--green-two)}.commit-grid__cell[data-level="3"]{--bg:var(--green-three)}.commit-grid__cell[data-level="4"]{--bg:var(--green-four)}:root{--drawer-width:260}body{-webkit-transform:translate(calc(var(--left, 0)*var(--drawer-width)*1px)) translate(calc(var(--right, 0)*var(--drawer-width)*-1px));transform:translate(calc(var(--left, 0)*var(--drawer-width)*1px)) translate(calc(var(--right, 0)*var(--drawer-width)*-1px));-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.sliding-drawer__toggle{position:absolute;top:var(--padding)}.sliding-drawer__title{color:var(--color);margin:0 0 calc(var(--padding)*1) 0}.sliding-drawer{position:fixed;top:0;width:calc(var(--drawer-width)*1px);height:100vh;background:var(--grey);-webkit-box-shadow:4px 0 20px -10px #1a1a1a inset;box-shadow:inset 4px 0 20px -10px #1a1a1a}.sliding-drawer__content{overflow:auto;height:100%;width:100%;padding:var(--padding)}.sliding-drawer h3{color:var(--color);margin:0 0 calc(var(--padding)*0.75) 0}.sliding-drawer--right{left:100%}.sliding-drawer__toggle--right{right:calc(100% + var(--padding))}.sliding-drawer--left{right:100%}.sliding-drawer__toggle--left{left:calc(100% + var(--padding))}.sliding-drawer__form{margin:0}.sliding-drawer__form input{width:100%}.sliding-drawer__form:invalid [type=submit],.sliding-drawer__form [type=submit][disabled]{-webkit-box-shadow:none;box-shadow:none;background:#ced2da;color:var(--grey);cursor:not-allowed}.sliding-drawer__form:invalid [type=submit]:active,.sliding-drawer__form [type=submit][disabled]:active{-webkit-transform:translate(0);transform:translate(0)}.sliding-drawer__form-field{margin-bottom:var(--padding)}.sliding-drawer__form-field label{display:block;margin-bottom:calc(var(--padding)*0.25);color:var(--color)}.sliding-drawer__form-field input{border:0}.actions-container{margin-top:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex}.actions-container>*+*,.configuration-container>*+*,.io-container>*+*{margin-left:var(--padding)}.configuration-container{-webkit-clip-path:inset(0 calc((100 - var(--scale)*100)*1%) 0 0);clip-path:inset(0 calc((100 - var(--scale)*100)*1%) 0 0);-webkit-transition:-webkit-clip-path .25s;transition:-webkit-clip-path .25s;transition:clip-path .25s;transition:clip-path .25s,-webkit-clip-path .25s;padding-left:var(--padding);margin-left:0}.configuration-container,.io-container{display:-webkit-box;display:-ms-flexbox;display:flex}.io-container{border-left:2px solid var(--grey);border-right:2px solid var(--grey);padding:0 var(--padding)}*{-webkit-box-sizing:border-box;box-sizing:border-box}.vvg{height:45vmin;display:none;overflow:visible!important}.vvg__code-block{fill:var(--block-color,var(--owl-1))}.vvg__bulb-bulb{fill:var(--bulb)}.vvg__bulb-dashes{stroke:var(--sparks);stroke-width:4px}.vvg__bulb-filament{stroke:var(--filament)}.vvg__bulb-screw{fill:var(--screw)}.vvg__cheeks{fill:var(--cheeks)}.vvg__cap-body{fill:var(--cap)}.vvg__cap-strap{fill:var(--strap)}.vvg__cap-notch{fill:var(--stroke)}.vvg-stroke{stroke:var(--stroke);stroke-width:2px}.vvg__eyes{fill:var(--eyes);stroke:var(--eyes)}.vvg-hair{fill:var(--beard)}.vvg-hair--light{fill:var(--beard-light)}.vvg__shirt{fill:var(--shirt)}.vvg__shirt--shade{fill:var(--shirt-shade)}.vvg-skin{fill:var(--skin)}.vvg-skin--shade{fill:var(--skin-shade)}.vvg__laptop-badge{fill:var(--laptop-badge)}.vvg__laptop-shell{fill:var(--laptop)}.vvg__laptop-shell--main{fill:var(--laptop-main)}.vvg__laptop-shell--shade{fill:var(--laptop-shade)}.progress-screen{--right:100;height:100vh;width:100vw;position:fixed;top:0;left:0;z-index:2;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-clip-path:inset(0 calc(var(--right, 100)*1%) 0 calc(var(--left, 0)*1%));clip-path:inset(0 calc(var(--right, 100)*1%) 0 calc(var(--left, 0)*1%))}.toast{--blue:#bfe9fd;--blue-border:#5cc8fa;--blue-stroke:#067fb7;--green:#c8f3cf;--green-border:#4ad962;--green-stroke:#219c35;--red:#f7d1cf;--red-border:#e0554d;--red-stroke:#a9251e;--button-size:44px;border-radius:calc(var(--cell-radius)*1px);border:calc(var(--cell-radius)*1px) solid var(--border);padding:var(--padding);padding-right:var(--button-size);position:relative;background:var(--bg);color:var(--stroke)}.toast--SUCCESS{--bg:var(--green);--border:var(--green-border);--stroke:var(--green-stroke)}.toast--INFO{--bg:var(--blue);--border:var(--blue-border);--stroke:var(--blue-stroke)}.toast--ERROR{--bg:var(--red);--border:var(--red-border);--stroke:var(--red-stroke)}.toast button{height:var(--button-size);width:var(--button-size);position:absolute;top:50%;right:0;padding:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:0;background:0}.toast svg{stroke:var(--stroke);fill:var(--stroke)}.toasts{position:fixed;bottom:var(--padding);right:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;z-index:3}.toasts>*+*{margin-top:var(--padding)}.intro{background:var(--grey);-webkit-box-shadow:0 10px 10px -10px rgba(26,26,26,.5),0 0 50px -25px rgba(26,26,26,.5);box-shadow:0 10px 10px -10px rgba(26,26,26,.5),0 0 50px -25px rgba(26,26,26,.5);max-width:600px;padding:var(--padding);border-radius:6px;position:relative}.intro>*+*,.intro li{margin-top:var(--padding)}.intro__image{margin:0 auto;display:block}.intro__backdrop{position:fixed;top:0;left:0;background:rgba(26,26,26,.25);width:100vw;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--padding);z-index:5;overflow:auto}@media (max-height:600px){.intro__backdrop{-webkit-box-align:start;-ms-flex-align:start;align-items:start}}.intro__close{position:absolute;top:var(--padding);right:var(--padding);height:44px;width:44px}*{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:none;touch-action:none;font-family:monospace}:root{--green-one:#9be9a8;--green-two:#40c463;--green-three:#30a14e;--green-four:#216e39;--cell-radius:2;--grey:#ebedf0;--color:#666;--shirt:var(--green-one);--shirt-shade:var(--green-two);--skin:#f6eeee;--skin-shade:#d6c2c2;--stroke:#333;--laptop:#c7c7c7;--laptop-main:#4d4d4c;--laptop-shade:rgba(58,58,59,0.5);--laptop-badge:#fff;--beard:#bf8040;--beard:#ae6113;--beard-light:#d9b38c;--beard-light:#ea943e;--eyes:var(--stroke);--strap:#bf4040;--strap:var(--green-four);--cheeks:#df9f9f;--cap:#404040;--sparks:rgba(255,255,153,0.85);--bulb:rgba(255,255,153,0.85);--filament:#000;--screw:#ccc;--bg:#6e7c91;--owl-1:#feec90;--owl-2:#c6e472;--owl-3:#f88a68;--owl-4:#80cbc5;--owl-5:#c793ec;--padding:16px}body{font-family:monospace;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#262626;background-color:#fff;min-height:360px;overflow:hidden}body,ul{margin:0}ul{padding:0 0 0 var(--padding)}ul>li+li{margin-top:var(--padding)}.submit-button{width:100%;height:44px;border-radius:6px;background:var(--green-two);color:#fff;font-weight:700;font-size:1.25rem;border:none;-webkit-transition:background .2s,-webkit-box-shadow .2s,-webkit-transform .2s;transition:background .2s,-webkit-box-shadow .2s,-webkit-transform .2s;transition:background .2s,box-shadow .2s,transform .2s;transition:background .2s,box-shadow .2s,transform .2s,-webkit-box-shadow .2s,-webkit-transform .2s;-webkit-box-shadow:4px 4px 0 -2px rgba(0,0,0,.25);box-shadow:4px 4px 0 -2px rgba(0,0,0,.25)}.submit-button:hover{background:var(--green-three)}.submit-button:active{background:var(--green-four);-webkit-box-shadow:0 0 0 0 #000;box-shadow:0 0 0 0 #000;-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}#app{min-height:100vh;width:100vw;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media (min-width:768px){#app{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}button{cursor:pointer}.canvas{padding:var(--padding)}.icon-button{height:44px;width:44px;border-radius:50%;-webkit-transition:background .2s;transition:background .2s;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:0;background:0}.icon-button:hover{background:var(--grey)}.icon-button:active path{fill:var(--green-two)}.icon-button path{fill:var(--green-four);-webkit-transition:fill .2s;transition:fill .2s}.icon-button svg{height:24px;width:24px}.icon-button[disabled]{cursor:not-allowed;background:transparent}.icon-button[disabled] path{fill:var(--grey)}.audio-toggle{position:absolute;top:calc(44px + var(--padding)*2);left:var(--padding)}#audio{height:0;width:0;-webkit-transform:scale(0);transform:scale(0)}input,select{height:44px;margin:0;padding:0 var(--padding)}button,input,select{outline:transparent}input,select{border:2px solid var(--grey);border-radius:6px;color:var(--color)}input::-webkit-input-placeholder{color:#ccc}input::-moz-placeholder{color:#ccc}input:-ms-input-placeholder{color:#ccc}input::-ms-input-placeholder{color:#ccc}input::placeholder{color:#ccc}.select-wrapper{border:2px solid var(--grey);border-radius:6px;overflow:hidden;position:relative}.select-wrapper:after{content:"";height:8px;width:12px;background:var(--color);position:absolute;right:9px;top:50%;-webkit-transform:translateY(-30%);transform:translateY(-30%);-webkit-clip-path:polygon(0 0,100% 0,50% 100%);clip-path:polygon(0 0,100% 0,50% 100%)}.select-wrapper select{color:var(--color);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0 30px 0 var(--padding);height:40px}footer{padding:var(--padding)}a{color:var(--green-two)}a:active{color:var(--green-four)}.instructions-content>*+*{margin-top:var(--padding)}
--------------------------------------------------------------------------------
/Git.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Рисуем Git коммитами
15 |
16 |
17 |
18 |
19 |
20 |
27 |
28 |
Settings
29 |
30 |
48 |
49 |
50 |
51 |
58 |
59 |
Instructions
60 |
61 |
62 |
63 |
Enter your Github username, repository, and branch in the "Settings" panel (Top left). Make sure the repository is empty. The branch should be set to what you use locally. For example, `main`.
64 |
65 |
Draw your image! Left mouse to draw, right mouse to erase. Drawing over a cell again will make it darker. A cell can be one of four shades of green.
66 |
67 |
Generate your shell script! Hit the download icon. This will download a zip file containing a shell script to run.
68 |
69 |
Run the shell script.
70 |
71 |
Once complete, check the repository to make sure the commits have been pushed.
72 |
73 |
After a few minutes the image will appear on your profile!
74 |