diff options
author | 2018-03-14 10:06:52 +0000 | |
---|---|---|
committer | 2018-03-14 10:06:52 +0000 | |
commit | 663aff16b3c1c93fe40d596a60869131e3783ba4 (patch) | |
tree | cd5d370593f4bfa5adc75487728c7aa4a3482787 | |
parent | Datadog TCP logging (diff) |
Add payment info for resources, and two more resources
* Code Combat
* Corey Schafer's Python tutorials playlist
-rw-r--r-- | static/resources.json | 42 | ||||
-rw-r--r-- | templates/main/info/resources.html | 41 |
2 files changed, 74 insertions, 9 deletions
diff --git a/static/resources.json b/static/resources.json index 1e6bc503..b73cfb33 100644 --- a/static/resources.json +++ b/static/resources.json @@ -4,15 +4,33 @@ "resources": { "Automate the Boring Stuff with Python": { "description": "One of the best books out there for Python beginners. You can buy a copy, but there's also a free online version.", - "url": "https://automatetheboringstuff.com/" + "url": "https://automatetheboringstuff.com/", + "payment": "optional", + "payment_description": "A free version is available online, with the option to buy a physical copy" + }, + "Code Combat": { + "description": "Learn Python while gaming - an open-source project with thousands of contributors, which teaches you Python through a deep, top-down RPG.", + "url": "https://codecombat.com/", + "payment": "optional", + "payment_description": "A wealth of free content is available, but you can also pay for more" }, "Getting Started for Non-Programmers": { "description": "The list of resources for non-programmers from Python's official beginners' guide", - "url": "https://wiki.python.org/moin/BeginnersGuide/NonProgrammers" + "url": "https://wiki.python.org/moin/BeginnersGuide/NonProgrammers", + "payment": "free", + "payment_description": null }, "Getting Started for Programmers": { "description": "The list of resources for programmers from Python's official beginners' guide", - "url": "https://wiki.python.org/moin/BeginnersGuide/Programmers" + "url": "https://wiki.python.org/moin/BeginnersGuide/Programmers", + "payment": "free", + "payment_description": null + }, + "Python Tutorials by Corey Schafer on YouTube": { + "description": "An in-depth look at the Python programming language, from one of YouTube's most popular Python tutors.", + "url": "https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU", + "payment": "free", + "payment_description": null } } }, @@ -21,24 +39,32 @@ "resources": { "Visual Studio Code (Free)": { "description": "A fully-featured editor based on Electron, extendable with plugins.", - "url": "https://code.visualstudio.com/" + "url": "https://code.visualstudio.com/", + "payment": "free", + "payment_description": null }, "Sublime Text (Paid, with shareware-style \"trial\")": { "description": "A powerful Python-backed editor with great community support and a wealth of extensions.", - "url": "https://www.sublimetext.com/" + "url": "https://www.sublimetext.com/", + "payment": "optional", + "payment_description": "Nagware; will ask you to buy the full version after every X saves" } } }, "IDEs": { "description": "Fully-integrated development environments for serious Python work", "resources": { - "PyCharm (Community and Professional editions available)": { + "PyCharm": { "description": "The very best Python IDE, with a wealth of advanced features and convenience functions.", - "url": "https://www.jetbrains.com/pycharm/" + "url": "https://www.jetbrains.com/pycharm/", + "payment": "optional", + "payment_description": "There's a free Community Edition and a paid-for Professional Edition with more features available" }, "Spyder (Free)": { "description": "The Scientific PYthon Development EnviRonment. Simpler and lighter than PyCharm, but still packs a punch.", - "url": "https://pythonhosted.org/spyder/" + "url": "https://pythonhosted.org/spyder/", + "payment": "free", + "payment_description": null } } } diff --git a/templates/main/info/resources.html b/templates/main/info/resources.html index 576d68ec..6e8a616d 100644 --- a/templates/main/info/resources.html +++ b/templates/main/info/resources.html @@ -21,6 +21,28 @@ if there's a great resource that you love and you don't see it on this page, feel free to submit a pull request! </p> + <p> + Some resources aren't free - the below key will help you figure out whether you need to pay for + a resource or not. You can also hover them for more information on the payment (or tap them on + mobile) where available. + </p> + <p class="uk-text-center"> + <span class="fa-layers fa-fw"> + <i class="fas fa-circle" style="color: green"></i> + <i class="fa-inverse fas fa-dollar-sign" data-fa-transform="shrink-6"></i> + </span> + Free + <span class="fa-layers fa-fw"> + <i class="fas fa-circle" style="color: darkgoldenrod"></i> + <i class="fa-inverse fas fa-dollar-sign" data-fa-transform="shrink-6"></i> + </span> + Payment Optional + <span class="fa-layers fa-fw"> + <i class="fas fa-circle" style="color: darkred"></i> + <i class="fa-inverse fas fa-dollar-sign" data-fa-transform="shrink-6"></i> + </span> + Paid + </p> {% if categories is none %} <div class="uk-alert-danger" uk-alert> @@ -44,7 +66,24 @@ </h2> {% for item, data in category_data.resources.items() %} <p> - <strong>{{ item }}</strong> <a href="{{ data.url }}"><i class="fas fa-link"></i></a><br /> + {% if data["payment_description"] %} + <span class="fa-layers fa-fw" uk-tooltip="{{ data["payment_description"] }}"> + {% else %} + <span class="fa-layers fa-fw"> + {% endif %} + + {% if data["payment"] == "optional" %} + <i class="fas fa-circle" style="color: darkgoldenrod"></i> + {% elif data["payment"] == "paid" %} + <i class="fas fa-circle" style="color: darkred"></i> + {% else %} + <i class="fas fa-circle" style="color: green"></i> + {% endif %} + <i class="fa-inverse fas fa-dollar-sign" data-fa-transform="shrink-6"></i> + </span> + <strong>{{ item }}</strong> <a href="{{ data.url }}"><i class="fas fa-link"></i></a> + + <br /> <span class="uk-text-meta">{{ data.description }}</span> </p> {% endfor %} |