Skip to content

Instantly share code, notes, and snippets.

@jph00
Created October 18, 2020 01:10
Show Gist options
  • Save jph00/ca690d55521ff2e7ce1a1940e533680b to your computer and use it in GitHub Desktop.
Save jph00/ca690d55521ff2e7ce1a1940e533680b to your computer and use it in GitHub Desktop.
Claire's Number Line
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from IPython.display import *\nfrom fastcore.all import *\n\nimport dominate\nfrom dominate.tags import *\nfrom dominate.util import text\n\n@patch\ndef _repr_html_(self:html_tag): return str(self)",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "title = \"Claire's Number Line\"",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "palette = \"\"\"\n--phlox: hsla(284, 84%, 59%, 1);\n--mauvelous: hsla(347, 87%, 78%, 1);\n--jasmine: hsla(46, 100%, 79%, 1);\n--middle-blue-green: hsla(166, 70%, 84%, 1);\n--medium-spring-green: hsla(154, 88%, 66%, 1);\n--dark-sea-green: hsla(43, 27%, 65%, 1);\n--yellow-green-crayola: hsla(79, 65%, 66%, 1);\n--sky-blue-crayola: hsla(190, 91%, 60%, 1);\n--turquoise: hsla(168, 82%, 71%, 1);\n--dark-sea-green-2: hsla(121, 76%, 71%, 1);\n\"\"\".strip()\n\npalette = re.sub(\"^--.*: \", \"\", palette, flags=re.MULTILINE)\npalette = re.sub(\";\",\"\",palette)\ncolors = L(palette.splitlines()).enumerate()",
"execution_count": 116,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def background(a): return f\"background-color:{a}\"\ndef gradient(a,b): return f\"background-image: linear-gradient(to left, {a}, {b})\"",
"execution_count": 118,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "th_ = thead(tr([th(text(' &nbsp; &nbsp; ones<br/>tens', escape=False),\n style=\"text-align:left\")]+\n [th(i, style=background(a)) for i,a in colors]))\ntb_ = tbody()\nfor i,a in colors:\n tb_ += tr([th(i, style=background(a))]+ \n [td(i*10+j, style=gradient(b, a)) for j,b in colors])\ntbl = table(th_, tb_)",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "body(h1(title),tbl)",
"execution_count": 122,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 122,
"data": {
"text/plain": "<dominate.tags.body at 7fa9f64a0a30: 0 attributes, 2 children>",
"text/html": "<body>\n <h1>Claire's Number Line</h1>\n <table>\n <thead>\n <tr>\n <th style=\"text-align:left\"> &nbsp; &nbsp; ones<br/>tens</th>\n <th style=\"background-color:hsla(284, 84%, 59%, 1)\">0</th>\n <th style=\"background-color:hsla(347, 87%, 78%, 1)\">1</th>\n <th style=\"background-color:hsla(46, 100%, 79%, 1)\">2</th>\n <th style=\"background-color:hsla(166, 70%, 84%, 1)\">3</th>\n <th style=\"background-color:hsla(154, 88%, 66%, 1)\">4</th>\n <th style=\"background-color:hsla(43, 27%, 65%, 1)\">5</th>\n <th style=\"background-color:hsla(79, 65%, 66%, 1)\">6</th>\n <th style=\"background-color:hsla(190, 91%, 60%, 1)\">7</th>\n <th style=\"background-color:hsla(168, 82%, 71%, 1)\">8</th>\n <th style=\"background-color:hsla(121, 76%, 71%, 1)\">9</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th style=\"background-color:hsla(284, 84%, 59%, 1)\">0</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(284, 84%, 59%, 1))\">0</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(284, 84%, 59%, 1))\">1</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(284, 84%, 59%, 1))\">2</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(284, 84%, 59%, 1))\">3</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(284, 84%, 59%, 1))\">4</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(284, 84%, 59%, 1))\">5</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(284, 84%, 59%, 1))\">6</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(284, 84%, 59%, 1))\">7</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(284, 84%, 59%, 1))\">8</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(284, 84%, 59%, 1))\">9</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(347, 87%, 78%, 1)\">1</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(347, 87%, 78%, 1))\">10</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(347, 87%, 78%, 1))\">11</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(347, 87%, 78%, 1))\">12</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(347, 87%, 78%, 1))\">13</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(347, 87%, 78%, 1))\">14</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(347, 87%, 78%, 1))\">15</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(347, 87%, 78%, 1))\">16</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(347, 87%, 78%, 1))\">17</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(347, 87%, 78%, 1))\">18</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(347, 87%, 78%, 1))\">19</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(46, 100%, 79%, 1)\">2</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(46, 100%, 79%, 1))\">20</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(46, 100%, 79%, 1))\">21</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(46, 100%, 79%, 1))\">22</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(46, 100%, 79%, 1))\">23</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(46, 100%, 79%, 1))\">24</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(46, 100%, 79%, 1))\">25</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(46, 100%, 79%, 1))\">26</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(46, 100%, 79%, 1))\">27</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(46, 100%, 79%, 1))\">28</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(46, 100%, 79%, 1))\">29</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(166, 70%, 84%, 1)\">3</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(166, 70%, 84%, 1))\">30</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(166, 70%, 84%, 1))\">31</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(166, 70%, 84%, 1))\">32</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(166, 70%, 84%, 1))\">33</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(166, 70%, 84%, 1))\">34</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(166, 70%, 84%, 1))\">35</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(166, 70%, 84%, 1))\">36</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(166, 70%, 84%, 1))\">37</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(166, 70%, 84%, 1))\">38</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(166, 70%, 84%, 1))\">39</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(154, 88%, 66%, 1)\">4</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(154, 88%, 66%, 1))\">40</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(154, 88%, 66%, 1))\">41</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(154, 88%, 66%, 1))\">42</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(154, 88%, 66%, 1))\">43</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(154, 88%, 66%, 1))\">44</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(154, 88%, 66%, 1))\">45</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(154, 88%, 66%, 1))\">46</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(154, 88%, 66%, 1))\">47</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(154, 88%, 66%, 1))\">48</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(154, 88%, 66%, 1))\">49</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(43, 27%, 65%, 1)\">5</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(43, 27%, 65%, 1))\">50</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(43, 27%, 65%, 1))\">51</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(43, 27%, 65%, 1))\">52</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(43, 27%, 65%, 1))\">53</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(43, 27%, 65%, 1))\">54</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(43, 27%, 65%, 1))\">55</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(43, 27%, 65%, 1))\">56</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(43, 27%, 65%, 1))\">57</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(43, 27%, 65%, 1))\">58</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(43, 27%, 65%, 1))\">59</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(79, 65%, 66%, 1)\">6</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(79, 65%, 66%, 1))\">60</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(79, 65%, 66%, 1))\">61</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(79, 65%, 66%, 1))\">62</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(79, 65%, 66%, 1))\">63</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(79, 65%, 66%, 1))\">64</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(79, 65%, 66%, 1))\">65</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(79, 65%, 66%, 1))\">66</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(79, 65%, 66%, 1))\">67</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(79, 65%, 66%, 1))\">68</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(79, 65%, 66%, 1))\">69</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(190, 91%, 60%, 1)\">7</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(190, 91%, 60%, 1))\">70</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(190, 91%, 60%, 1))\">71</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(190, 91%, 60%, 1))\">72</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(190, 91%, 60%, 1))\">73</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(190, 91%, 60%, 1))\">74</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(190, 91%, 60%, 1))\">75</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(190, 91%, 60%, 1))\">76</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(190, 91%, 60%, 1))\">77</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(190, 91%, 60%, 1))\">78</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(190, 91%, 60%, 1))\">79</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(168, 82%, 71%, 1)\">8</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(168, 82%, 71%, 1))\">80</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(168, 82%, 71%, 1))\">81</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(168, 82%, 71%, 1))\">82</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(168, 82%, 71%, 1))\">83</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(168, 82%, 71%, 1))\">84</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(168, 82%, 71%, 1))\">85</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(168, 82%, 71%, 1))\">86</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(168, 82%, 71%, 1))\">87</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(168, 82%, 71%, 1))\">88</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(168, 82%, 71%, 1))\">89</td>\n </tr>\n <tr>\n <th style=\"background-color:hsla(121, 76%, 71%, 1)\">9</th>\n <td style=\"background-image: linear-gradient(to left, hsla(284, 84%, 59%, 1), hsla(121, 76%, 71%, 1))\">90</td>\n <td style=\"background-image: linear-gradient(to left, hsla(347, 87%, 78%, 1), hsla(121, 76%, 71%, 1))\">91</td>\n <td style=\"background-image: linear-gradient(to left, hsla(46, 100%, 79%, 1), hsla(121, 76%, 71%, 1))\">92</td>\n <td style=\"background-image: linear-gradient(to left, hsla(166, 70%, 84%, 1), hsla(121, 76%, 71%, 1))\">93</td>\n <td style=\"background-image: linear-gradient(to left, hsla(154, 88%, 66%, 1), hsla(121, 76%, 71%, 1))\">94</td>\n <td style=\"background-image: linear-gradient(to left, hsla(43, 27%, 65%, 1), hsla(121, 76%, 71%, 1))\">95</td>\n <td style=\"background-image: linear-gradient(to left, hsla(79, 65%, 66%, 1), hsla(121, 76%, 71%, 1))\">96</td>\n <td style=\"background-image: linear-gradient(to left, hsla(190, 91%, 60%, 1), hsla(121, 76%, 71%, 1))\">97</td>\n <td style=\"background-image: linear-gradient(to left, hsla(168, 82%, 71%, 1), hsla(121, 76%, 71%, 1))\">98</td>\n <td style=\"background-image: linear-gradient(to left, hsla(121, 76%, 71%, 1), hsla(121, 76%, 71%, 1))\">99</td>\n </tr>\n </tbody>\n </table>\n</body>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "Claire's Number Line",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment