{{ node.title }}
37 | {% if node.subtitle %} 38 |{{ node.subtitle }}
39 | {% endif %} 40 |41 |
├── src ├── index.md ├── about.md └── posts │ ├── asecondpost.md │ └── recursing0.md ├── inc └── head.html ├── README.md ├── themes ├── ihwd │ ├── readme.md │ ├── resources │ │ └── assets │ │ │ ├── ihwd.css │ │ │ └── et-book.css │ └── templates │ │ └── node.ibis ├── graphite │ ├── resources │ │ └── assets │ │ │ ├── fonts │ │ │ ├── CrimsonText-Bold.ttf │ │ │ ├── CrimsonText-Bold.woff2 │ │ │ ├── CrimsonText-Italic.ttf │ │ │ ├── CrimsonText-Regular.ttf │ │ │ ├── CrimsonText-BoldItalic.ttf │ │ │ ├── CrimsonText-Italic.woff2 │ │ │ ├── CrimsonText-Regular.woff2 │ │ │ ├── CrimsonText-SemiBold.ttf │ │ │ ├── CrimsonText-SemiBold.woff2 │ │ │ ├── CrimsonText-BoldItalic.woff2 │ │ │ ├── CrimsonText-SemiBoldItalic.ttf │ │ │ ├── CrimsonText-SemiBoldItalic.woff2 │ │ │ └── OFL.txt │ │ │ ├── fonts.css │ │ │ ├── pygments.css │ │ │ └── graphite.css │ ├── license.txt │ ├── readme.md │ └── templates │ │ └── node.ibis └── debug │ ├── readme.md │ ├── license.txt │ ├── resources │ ├── debug.css │ └── pygments.css │ └── templates │ └── node.ibis ├── pyproject.toml ├── config.py ├── docs ├── posts.html ├── about.html ├── assets │ ├── ihwd.css │ └── et-book.css ├── index.html └── posts │ ├── asecondpost.html │ └── recursing0.html ├── LICENSE ├── ext └── list_posts.py ├── notes.md ├── .gitignore └── uv.lock /src/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: pietroppeter's blog 3 | list_posts: true 4 | --- 5 | -------------------------------------------------------------------------------- /inc/head.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # blog 2 | 3 | A personal blog 4 | 5 | built with [ark] 6 | 7 | [ark]: https://www.dmulholl.com/docs/ark/master/ 8 | -------------------------------------------------------------------------------- /themes/ihwd/readme.md: -------------------------------------------------------------------------------- 1 | - basic web design from the 90s 2 | - ihwd stands for i-heart-web-design 3 | - inspired by https://jgthms.com/web-design-in-4-minutes/ 4 | -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Bold.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Bold.woff2 -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Italic.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Regular.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-BoldItalic.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Italic.woff2 -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-Regular.woff2 -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-SemiBold.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-SemiBold.woff2 -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-BoldItalic.woff2 -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/CrimsonText-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/blog/HEAD/themes/graphite/resources/assets/fonts/CrimsonText-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "blog" 3 | version = "0.1.0" 4 | description = "A personal blog" 5 | readme = "README.md" 6 | requires-python = ">=3.12" 7 | dependencies = [ 8 | "ark>=7.3.0", 9 | ] 10 | -------------------------------------------------------------------------------- /src/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About pietroppeter's blog 3 | --- 4 | This is a personal blog. Whose personal blog? [pietroppeter](https://github.com/pietroppeter/)'s. 5 | 6 | Here is the [source](https://github.com/pietroppeter/blog) of this blog. 7 | -------------------------------------------------------------------------------- /themes/debug/readme.md: -------------------------------------------------------------------------------- 1 | # Ark Debug Theme 2 | 3 | [1]: https://github.com/dmulholl/ark 4 | 5 | This [Ark][1] theme is designed as a debugging tool, useful when building themes or plugins. 6 | It displays all the page data available for use in template files. 7 | -------------------------------------------------------------------------------- /themes/debug/license.txt: -------------------------------------------------------------------------------- 1 | Permission to use, copy, modify, and/or distribute this software for any purpose 2 | with or without fee is hereby granted. 3 | 4 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 5 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 6 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 7 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 8 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 9 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 10 | THIS SOFTWARE. 11 | -------------------------------------------------------------------------------- /themes/graphite/license.txt: -------------------------------------------------------------------------------- 1 | Permission to use, copy, modify, and/or distribute this software for any purpose 2 | with or without fee is hereby granted. 3 | 4 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 5 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 6 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 7 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 8 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 9 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 10 | THIS SOFTWARE. 11 | -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- 1 | # ------------------------- # 2 | # Site Configuration File # 3 | # ------------------------- # 4 | 5 | # Variables set here will be available in template files under a `site` attribute, 6 | # e.g. {{ site.title }}. 7 | 8 | # Choose the theme to use when building your site. This variable should specify 9 | # the name of a theme directory in your site's 'lib' folder. 10 | theme = "ihwd" # I ❤️ web design 11 | 12 | # Site title. 13 | title = "pietroppeter's personal blog" 14 | 15 | # Site tagline. 16 | tagline = "recursing" 17 | 18 | lib_dir = "themes" 19 | out_dir = "docs" 20 | res_dir = "resources" 21 | 22 | # adds in head the et_font 23 | use_et_font = False 24 | -------------------------------------------------------------------------------- /docs/posts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |This is a personal blog. Whose personal blog? pietroppeter's.
23 |Here is the source of this blog.
24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Pietro Peterlongo 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 | -------------------------------------------------------------------------------- /docs/assets/ihwd.css: -------------------------------------------------------------------------------- 1 | /* ihwd theme 2 | 3 | ihwd stands for I Heart Web Design 4 | Inspired by Jeremy Thomas "Web design in 4 minutes" 5 | */ 6 | 7 | /* center text and limit width */ 8 | body { 9 | margin: 0 auto; 10 | max-width: 50em; 11 | } 12 | 13 | /* font family: improve appeal and readability of text */ 14 | body { 15 | font-family: Georgia, Times, serif; 16 | } 17 | 18 | /* spacing: within and around */ 19 | body { 20 | line-height: 1.5em; 21 | padding: 2em 1em; 22 | } 23 | /* in the original top margin and padding of 2em 24 | is added to h2. not doing it here */ 25 | 26 | /* color and contrast */ 27 | body { 28 | color: #555; 29 | } 30 | 31 | h2, em, strong { 32 | color: #333; 33 | } 34 | 35 | /* Primary color - from Elm */ 36 | a { 37 | color: rgb(12, 145, 216); 38 | } 39 | 40 | /* not doing colors for code snippets or secondary colors */ 41 | 42 | /* minimal navbar */ 43 | nav ul { 44 | display: flex; 45 | justify-content: center; 46 | list-style: none; 47 | padding: 0; 48 | margin: 0; 49 | } 50 | 51 | nav li { 52 | margin: 0 10px; 53 | } 54 | 55 | nav li:not(:last-child)::after { 56 | content: "•"; 57 | margin-left: 10px; 58 | } 59 | 60 | img { 61 | width: 100%; 62 | } -------------------------------------------------------------------------------- /themes/ihwd/resources/assets/ihwd.css: -------------------------------------------------------------------------------- 1 | /* ihwd theme 2 | 3 | ihwd stands for I Heart Web Design 4 | Inspired by Jeremy Thomas "Web design in 4 minutes" 5 | */ 6 | 7 | /* center text and limit width */ 8 | body { 9 | margin: 0 auto; 10 | max-width: 50em; 11 | } 12 | 13 | /* font family: improve appeal and readability of text */ 14 | body { 15 | font-family: Georgia, Times, serif; 16 | } 17 | 18 | /* spacing: within and around */ 19 | body { 20 | line-height: 1.5em; 21 | padding: 2em 1em; 22 | } 23 | /* in the original top margin and padding of 2em 24 | is added to h2. not doing it here */ 25 | 26 | /* color and contrast */ 27 | body { 28 | color: #555; 29 | } 30 | 31 | h2, em, strong { 32 | color: #333; 33 | } 34 | 35 | /* Primary color - from Elm */ 36 | a { 37 | color: rgb(12, 145, 216); 38 | } 39 | 40 | /* not doing colors for code snippets or secondary colors */ 41 | 42 | /* minimal navbar */ 43 | nav ul { 44 | display: flex; 45 | justify-content: center; 46 | list-style: none; 47 | padding: 0; 48 | margin: 0; 49 | } 50 | 51 | nav li { 52 | margin: 0 10px; 53 | } 54 | 55 | nav li:not(:last-child)::after { 56 | content: "•"; 57 | margin-left: 10px; 58 | } 59 | 60 | img { 61 | width: 100%; 62 | } -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Today at Open Source Saturday #54 23 | I implemented (badly) the minimal functionality required to be able to publish a second blogpost, 24 | to list all posts and to support a very minimal navigation (and an essential about page).
25 |If you want a description in English on what is Open Source Saturday format read about it in Loris's blogpost. He was sitting next to me today.
26 |Before today there was a single post here, with no nav and nothing else.
27 |![]()
{{ site.tagline.strip() }}
20 | {% endif %} 21 | {% if site.version %} 22 |{{ site.version.strip() }}
23 | {% endif %} 24 | 33 |{{ node.subtitle }}
39 | {% endif %} 40 |{{ node.meta|pprint|pygmentize('python') }}
43 | {{ node.text.strip()|escape }}
48 | {{ node.html|escape }}
53 | {{ context.data.stack|index(2)|pprint|pygmentize('python') }}
58 | Yesterday was my last day as “Happily Unemployed” (felicemente disoccupato).
23 |Roughly 4 months ago I resigned. I was close to reaching 9 years of growth and joys and sorrows (of life, one would say) at the same company. It has been a very nice percorso (a better word is camino from Spanish, 'path' comes in third). I have met a number of beautiful people there. It was time for a change.
24 |Shortly before resigning I watched an interview of Salvatore Sanfilippo where he states the following four rules that have helped him conduct himself throughout the years (my wording):
25 |These rules look like a nice tool for thought to keep in mind.
32 |This last month of October, actually this last 4 weeks of being happily unemployed, have been a special period. I focused on resting, taking care of myself and my family and prepare for the next steps. I have met even more people through some wonderful tech communities. I was surprised by how many things you have to do when you do not actually have anything you really have to do. Of course I planned for more than I could chew, took a hit and realized I should just enjoy this period. I did. This last week was nothing short of amazing.
33 |Today I start recursing.
34 |I will say more about that, but the most practical matter at the moment is that I will need to change my schedule. I will have to be working with other people mostly in the late afternoon and in the evening. This is the first challenge.
35 |Have a good day y’all! 😊
36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # copied from https://github.com/github/gitignore/blob/main/Python.gitignore 2 | # Byte-compiled / optimized / DLL files 3 | __pycache__/ 4 | *.py[cod] 5 | *$py.class 6 | 7 | # C extensions 8 | *.so 9 | 10 | # Distribution / packaging 11 | .Python 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | 19 | #lib/ # <- ark uses this 20 | # ignore ark default themes: 21 | lib/debug/ 22 | lib/graphite/ 23 | # ark build folder 24 | out/ 25 | 26 | lib64/ 27 | parts/ 28 | sdist/ 29 | var/ 30 | wheels/ 31 | share/python-wheels/ 32 | *.egg-info/ 33 | .installed.cfg 34 | *.egg 35 | MANIFEST 36 | 37 | # PyInstaller 38 | # Usually these files are written by a python script from a template 39 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 40 | *.manifest 41 | *.spec 42 | 43 | # Installer logs 44 | pip-log.txt 45 | pip-delete-this-directory.txt 46 | 47 | # Unit test / coverage reports 48 | htmlcov/ 49 | .tox/ 50 | .nox/ 51 | .coverage 52 | .coverage.* 53 | .cache 54 | nosetests.xml 55 | coverage.xml 56 | *.cover 57 | *.py,cover 58 | .hypothesis/ 59 | .pytest_cache/ 60 | cover/ 61 | 62 | # Translations 63 | *.mo 64 | *.pot 65 | 66 | # Django stuff: 67 | *.log 68 | local_settings.py 69 | db.sqlite3 70 | db.sqlite3-journal 71 | 72 | # Flask stuff: 73 | instance/ 74 | .webassets-cache 75 | 76 | # Scrapy stuff: 77 | .scrapy 78 | 79 | # Sphinx documentation 80 | docs/_build/ 81 | 82 | # PyBuilder 83 | .pybuilder/ 84 | target/ 85 | 86 | # Jupyter Notebook 87 | .ipynb_checkpoints 88 | 89 | # IPython 90 | profile_default/ 91 | ipython_config.py 92 | 93 | # pyenv 94 | # For a library or package, you might want to ignore these files since the code is 95 | # intended to run in multiple environments; otherwise, check them in: 96 | # .python-version 97 | 98 | # pipenv 99 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 100 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 101 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 102 | # install all needed dependencies. 103 | #Pipfile.lock 104 | 105 | # poetry 106 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 107 | # This is especially recommended for binary packages to ensure reproducibility, and is more 108 | # commonly ignored for libraries. 109 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 110 | #poetry.lock 111 | 112 | # pdm 113 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 114 | #pdm.lock 115 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 116 | # in version control. 117 | # https://pdm.fming.dev/#use-with-ide 118 | .pdm.toml 119 | 120 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 121 | __pypackages__/ 122 | 123 | # Celery stuff 124 | celerybeat-schedule 125 | celerybeat.pid 126 | 127 | # SageMath parsed files 128 | *.sage.py 129 | 130 | # Environments 131 | .env 132 | .venv 133 | env/ 134 | venv/ 135 | ENV/ 136 | env.bak/ 137 | venv.bak/ 138 | 139 | # Spyder project settings 140 | .spyderproject 141 | .spyproject 142 | 143 | # Rope project settings 144 | .ropeproject 145 | 146 | # mkdocs documentation 147 | /site 148 | 149 | # mypy 150 | .mypy_cache/ 151 | .dmypy.json 152 | dmypy.json 153 | 154 | # Pyre type checker 155 | .pyre/ 156 | 157 | # pytype static type analyzer 158 | .pytype/ 159 | 160 | # Cython debug symbols 161 | cython_debug/ 162 | 163 | # PyCharm 164 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 165 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 166 | # and can be added to the global gitignore or merged into this file. For a more nuclear 167 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 168 | #.idea/ -------------------------------------------------------------------------------- /themes/graphite/resources/assets/fonts/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Sebastian Kosch (sebastian@aldusleaf.org), 2 | with Reserved Font Name "Crimson" and "Crimson Text". 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /themes/debug/resources/pygments.css: -------------------------------------------------------------------------------- 1 | /* 2 | Syntax highlighting styles for Pygmentized code samples. 3 | */ 4 | 5 | pre .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ 6 | pre .c { color: #8f5902; font-style: italic } /* Comment */ 7 | pre .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ 8 | pre .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ 9 | pre .cp { color: #8f5902 } /* Comment.Preproc */ 10 | pre .cs { color: #8f5902; font-style: italic } /* Comment.Special */ 11 | pre .g { color: #222222 } /* Generic */ 12 | pre .gd { color: #a40000 } /* Generic.Deleted */ 13 | pre .ge { color: #222222; font-style: italic } /* Generic.Emph */ 14 | pre .gr { color: #ef2929 } /* Generic.Error */ 15 | pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 16 | pre .gi { color: #00A000 } /* Generic.Inserted */ 17 | pre .go { color: #222222; font-style: italic } /* Generic.Output */ 18 | pre .gp { color: #8f5902 } /* Generic.Prompt */ 19 | pre .gs { color: #222222; font-weight: bold } /* Generic.Strong */ 20 | pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 21 | pre .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ 22 | pre .il { color: #000088 } /* Literal.Number.Integer.Long */ 23 | pre .k { color: #204a87; font-weight: bold } /* Keyword */ 24 | pre .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ 25 | pre .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ 26 | pre .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ 27 | pre .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ 28 | pre .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ 29 | pre .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ 30 | pre .l { color: #222222 } /* Literal */ 31 | pre .ld { color: #222222 } /* Literal.Date */ 32 | pre .m { color: #000088 } /* Literal.Number */ 33 | pre .mf { color: #000088 } /* Literal.Number.Float */ 34 | pre .mh { color: #000088 } /* Literal.Number.Hex */ 35 | pre .mi { color: #000088 } /* Literal.Number.Integer */ 36 | pre .mo { color: #000088 } /* Literal.Number.Oct */ 37 | pre .n { color: #222222 } /* Name */ 38 | pre .na { color: #8f5902 } /* Name.Attribute */ 39 | pre .nb { color: #204a87 } /* Name.Builtin */ 40 | pre .nc { color: #222222 } /* Name.Class */ 41 | pre .no { color: #222222 } /* Name.Constant */ 42 | pre .nd { color: #000088 } /* Name.Decorator */ 43 | pre .ni { color: #ce5c00 } /* Name.Entity */ 44 | pre .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ 45 | pre .nf { color: #222222 } /* Name.Function */ 46 | pre .nl { color: #f57900 } /* Name.Label */ 47 | pre .nn { color: #222222 } /* Name.Namespace */ 48 | pre .nt { color: #204a87; font-weight: bold } /* Name.Tag */ 49 | pre .nv { color: #222222 } /* Name.Variable */ 50 | pre .nx { color: #222222 } /* Name.Other */ 51 | pre .o { color: #000088 } /* Operator */ 52 | pre .ow { color: #204a87; font-weight: bold } /* Operator.Word */ 53 | pre .p { color: #222222 } /* Punctuation */ 54 | pre .py { color: #222222 } /* Name.Property */ 55 | pre .s { color: #880000 } /* Literal.String */ 56 | pre .s1 { color: #880000 } /* Literal.String.Single */ 57 | pre .s2 { color: #880000 } /* Literal.String.Double */ 58 | pre .sb { color: #880000 } /* Literal.String.Backtick */ 59 | pre .sc { color: #880000 } /* Literal.String.Char */ 60 | pre .sd { color: #880000; font-style: italic } /* Literal.String.Doc */ 61 | pre .se { color: #880000 } /* Literal.String.Escape */ 62 | pre .sh { color: #880000 } /* Literal.String.Heredoc */ 63 | pre .si { color: #880000 } /* Literal.String.Interpol */ 64 | pre .sr { color: #880000 } /* Literal.String.Regex */ 65 | pre .ss { color: #880000 } /* Literal.String.Symbol */ 66 | pre .sx { color: #880000 } /* Literal.String.Other */ 67 | pre .vc { color: #222222 } /* Name.Variable.Class */ 68 | pre .vg { color: #222222 } /* Name.Variable.Global */ 69 | pre .vi { color: #222222 } /* Name.Variable.Instance */ 70 | pre .x { color: #222222 } /* Other */ 71 | 72 | pre .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ 73 | pre .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ 74 | -------------------------------------------------------------------------------- /themes/graphite/resources/assets/pygments.css: -------------------------------------------------------------------------------- 1 | /** 2 | * ------------------------------------------------------------------------- 3 | * Pygments Theme 4 | * ------------------------------------------------------------------------- 5 | */ 6 | 7 | pre .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ 8 | pre .c { color: #8f5902 } /* Comment */ 9 | pre .c1 { color: #8f5902 } /* Comment.Single */ 10 | pre .cm { color: #8f5902 } /* Comment.Multiline */ 11 | pre .cp { color: #540e8a; font-weight: bold } /* Comment.Preproc */ 12 | pre .cs { color: #8f5902 } /* Comment.Special */ 13 | pre .g { color: #222222 } /* Generic */ 14 | pre .gd { color: #a40000 } /* Generic.Deleted */ 15 | pre .ge { color: #222222 } /* Generic.Emph */ 16 | pre .gr { color: #ef2929 } /* Generic.Error */ 17 | pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 18 | pre .gi { color: #00A000 } /* Generic.Inserted */ 19 | pre .go { color: #222222 } /* Generic.Output */ 20 | pre .gp { color: #8f5902 } /* Generic.Prompt */ 21 | pre .gs { color: #222222; font-weight: bold } /* Generic.Strong */ 22 | pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 23 | pre .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ 24 | pre .il { color: #000088 } /* Literal.Number.Integer.Long */ 25 | pre .k { color: #204a87; font-weight: bold } /* Keyword */ 26 | pre .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ 27 | pre .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ 28 | pre .kn { color: #540e8a; font-weight: bold } /* Keyword.Namespace */ 29 | pre .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ 30 | pre .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ 31 | pre .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ 32 | pre .l { color: #222222 } /* Literal */ 33 | pre .ld { color: #222222 } /* Literal.Date */ 34 | pre .m { color: #000088 } /* Literal.Number */ 35 | pre .mf { color: #000088 } /* Literal.Number.Float */ 36 | pre .mh { color: #000088 } /* Literal.Number.Hex */ 37 | pre .mi { color: #000088 } /* Literal.Number.Integer */ 38 | pre .mo { color: #000088 } /* Literal.Number.Oct */ 39 | pre .mb { color: #000088 } /* Literal.Number.Bin */ 40 | pre .n { color: #222222 } /* Name */ 41 | pre .na { color: #8f5902 } /* Name.Attribute */ 42 | pre .nb { color: #204a87 } /* Name.Builtin */ 43 | pre .nc { color: #222222 } /* Name.Class */ 44 | pre .no { color: #222222 } /* Name.Constant */ 45 | pre .nd { color: #000088 } /* Name.Decorator */ 46 | pre .ni { color: #ce5c00 } /* Name.Entity */ 47 | pre .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ 48 | pre .nf { color: #222222 } /* Name.Function */ 49 | pre .nl { color: #880000 } /* Name.Label */ 50 | pre .nn { color: #222222 } /* Name.Namespace */ 51 | pre .nt { color: #204a87; font-weight: bold } /* Name.Tag */ 52 | pre .nv { color: #222222 } /* Name.Variable */ 53 | pre .nx { color: #222222 } /* Name.Other */ 54 | pre .o { color: #000088 } /* Operator */ 55 | pre .ow { color: #204a87; font-weight: bold } /* Operator.Word */ 56 | pre .p { color: #222222 } /* Punctuation */ 57 | pre .py { color: #222222 } /* Name.Property */ 58 | pre .s { color: #880000 } /* Literal.String */ 59 | pre .s1 { color: #880000 } /* Literal.String.Single */ 60 | pre .s2 { color: #880000 } /* Literal.String.Double */ 61 | pre .sb { color: #880000 } /* Literal.String.Backtick */ 62 | pre .sc { color: #880000 } /* Literal.String.Char */ 63 | pre .sd { color: #880000 } /* Literal.String.Doc */ 64 | pre .se { color: #880000 } /* Literal.String.Escape */ 65 | pre .sh { color: #880000 } /* Literal.String.Heredoc */ 66 | pre .si { color: #880000 } /* Literal.String.Interpol */ 67 | pre .sr { color: #880000 } /* Literal.String.Regex */ 68 | pre .ss { color: #880000 } /* Literal.String.Symbol */ 69 | pre .sx { color: #880000 } /* Literal.String.Other */ 70 | pre .vc { color: #222222 } /* Name.Variable.Class */ 71 | pre .vg { color: #222222 } /* Name.Variable.Global */ 72 | pre .vi { color: #222222 } /* Name.Variable.Instance */ 73 | pre .x { color: #222222 } /* Other */ 74 | 75 | pre .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ 76 | pre .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ 77 | -------------------------------------------------------------------------------- /themes/graphite/resources/assets/graphite.css: -------------------------------------------------------------------------------- 1 | /** 2 | * ------------------------------------------------------------------------- 3 | * Micro Reset 4 | * ------------------------------------------------------------------------- 5 | */ 6 | 7 | *, *:before, *:after { 8 | box-sizing: inherit; 9 | } 10 | 11 | html { 12 | box-sizing: border-box; 13 | font-size: 100%; 14 | -webkit-text-size-adjust: none; 15 | text-size-adjust: none; 16 | } 17 | 18 | body { 19 | margin: 0; 20 | padding: 0; 21 | } 22 | 23 | form, fieldset, legend { 24 | margin: 0; 25 | padding: 0; 26 | } 27 | 28 | button, input, select, textarea, label { 29 | margin: 0; 30 | padding: 0; 31 | font-family: inherit; 32 | font-size: inherit; 33 | } 34 | 35 | img { 36 | border: 0; 37 | max-width: 100%; 38 | } 39 | 40 | /** 41 | * ------------------------------------------------------------------------- 42 | * Typography 43 | * ------------------------------------------------------------------------- 44 | */ 45 | 46 | body { 47 | font-size: 17px; 48 | color: black; 49 | font-family: 'Crimson Text', Georgia, serif; 50 | line-height: 1.75; 51 | } 52 | 53 | h1 { 54 | padding: 0; 55 | margin: 80px 0 30px; 56 | line-height: 1.25; 57 | text-align: center; 58 | font-size: 32px; 59 | font-weight: normal; 60 | } 61 | 62 | h2 { 63 | padding: 0; 64 | margin: 80px 0 30px; 65 | line-height: 1.25; 66 | text-align: center; 67 | font-size: 22px; 68 | font-weight: bold; 69 | } 70 | 71 | h2.underline { 72 | padding: 0; 73 | margin: 80px 0 35px; 74 | line-height: 1.25; 75 | text-align: left; 76 | font-size: 22px; 77 | font-weight: bold; 78 | padding-bottom: 5px; 79 | border-bottom: 1px solid #ccc; 80 | } 81 | 82 | h3, h4, h5, h6 { 83 | padding: 0; 84 | margin: 80px 0 30px; 85 | line-height: 1.25; 86 | text-align: left; 87 | font-size: 19px; 88 | font-weight: bold; 89 | } 90 | 91 | p { 92 | margin: 25px 0; 93 | padding: 0; 94 | overflow-wrap: break-word; 95 | } 96 | 97 | blockquote { 98 | margin: 40px 0px; 99 | padding: 0 20px; 100 | border-left: 3px solid #ddd; 101 | font-style: italic; 102 | } 103 | 104 | .blockquote-caption { 105 | margin: -10px 20px 40px; 106 | text-align: right; 107 | } 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | cursor: help; 112 | } 113 | 114 | sup, sub { 115 | font-size: 75%; 116 | line-height: 0; 117 | position: relative; 118 | vertical-align: baseline; 119 | } 120 | 121 | sup { 122 | bottom: 1.5ex; 123 | padding: 0 0.5ex; 124 | } 125 | 126 | sub { 127 | top: .5ex; 128 | } 129 | 130 | /** 131 | * Code 132 | */ 133 | 134 | pre, code { 135 | font-size: 13px; 136 | font-family: Consolas, monospace; 137 | } 138 | 139 | code { 140 | margin: 0 2px; 141 | padding: 1px 5px; 142 | white-space: nowrap; 143 | border: 1px solid #e8e8e8; 144 | border-radius: 3px; 145 | background-color: #f8f8f8; 146 | } 147 | 148 | pre { 149 | margin: 40px 0; 150 | padding: 16px 20px; 151 | border-top: 1px dotted #bbb; 152 | border-bottom: 1px dotted #bbb; 153 | background-color: #f8f8f8; 154 | overflow: auto; 155 | line-height: 1.4; 156 | } 157 | 158 | /* Markdown renderers tend to wrap code blocks in ... blocks. */
159 | pre code {
160 | margin: 0;
161 | padding: 0;
162 | white-space: pre;
163 | border: none;
164 | border-radius: 0;
165 | background-color: #f8f8f8;
166 | }
167 |
168 | h1 code {
169 | font-size: 26px;
170 | }
171 |
172 | dt pre {
173 | margin: 0 2px;
174 | padding: 1px 5px;
175 | border: 1px solid #e8e8e8;
176 | border-radius: 3px;
177 | background-color: #f8f8f8;
178 | }
179 |
180 | /**
181 | * Lists
182 | */
183 |
184 | ul, ol {
185 | margin: 35px 0;
186 | padding: 0 0 0 20px;
187 | }
188 |
189 | ul ul, ol ol, ul ol, ol ul {
190 | margin: 10px 10px;
191 | }
192 |
193 | li {
194 | margin: 4px 0;
195 | padding: 0;
196 | }
197 |
198 | dl {
199 | margin: 40px 0;
200 | padding: 0;
201 | }
202 |
203 | dt {
204 | margin: 45px 0 25px;
205 | padding: 0;
206 | font-weight: bold;
207 | }
208 |
209 | dd {
210 | margin: 25px 0px;
211 | padding: 0 25px;
212 | border-left: 1px solid #ddd;
213 | }
214 |
215 | /**
216 | * Links
217 | */
218 |
219 | a {
220 | color: black;
221 | text-decoration: none;
222 | padding-bottom: 2px;
223 | border-bottom: 1px solid;
224 | }
225 |
226 | sup a {
227 | border-bottom: none;
228 | }
229 |
230 | dt a {
231 | padding-bottom: 0;
232 | }
233 |
234 |
235 | /**
236 | * Miscellanea
237 | */
238 |
239 | hr {
240 | display: block;
241 | height: 1px;
242 | border: 0;
243 | border-top: 1px solid;
244 | margin: 60px auto;
245 | padding: 0;
246 | max-width: 300px;
247 | }
248 |
249 | img {
250 | margin: 40px auto;
251 | display: block;
252 | }
253 |
254 | /**
255 | * -------------------------------------------------------------------------
256 | * Layout
257 | * -------------------------------------------------------------------------
258 | */
259 |
260 | body {
261 | width: 960px;
262 | margin: 0 auto;
263 | padding: 40px 0;
264 | }
265 |
266 | .masthead {
267 | width: 360px;
268 | padding: 20px 50px;
269 | float: left;
270 | }
271 |
272 | .main {
273 | width: 600px;
274 | padding: 32px 50px 40px 50px;
275 | margin-left: 360px;
276 | border-left: 3px solid black;
277 | min-height: calc(100vh - 80px);
278 | }
279 |
280 | /**
281 | * -------------------------------------------------------------------------
282 | * Masthead
283 | * -------------------------------------------------------------------------
284 | */
285 |
286 | .masthead h1 {
287 | margin-top: 0;
288 | margin-bottom: 34px;
289 | padding: 0;
290 | text-align: right;
291 | font-size: 46px;
292 | line-height: 58px;
293 | }
294 |
295 | .masthead h1 a {
296 | border-bottom: none;
297 | }
298 |
299 | .masthead .tagline {
300 | font-style: italic;
301 | text-align: right;
302 | }
303 |
304 | .masthead .version {
305 | font-style: italic;
306 | text-align: right;
307 | }
308 |
309 | .masthead .menu {
310 | margin-right: 20px;
311 | direction: rtl;
312 | }
313 |
314 | .masthead .menu a {
315 | direction: ltr;
316 | }
317 |
318 | .masthead .menu ul ul {
319 | list-style: none;
320 | margin-left: 10px;
321 | margin-right: 10px;
322 | }
323 |
324 | .masthead .menu li li::before {
325 | content: "•\00a\000a0\00a0"
326 | }
327 |
328 | #menu-check {
329 | display: none;
330 | }
331 |
332 | #menu-label {
333 | display: none;
334 | }
335 |
336 | /**
337 | * -------------------------------------------------------------------------
338 | * Main
339 | * -------------------------------------------------------------------------
340 | */
341 |
342 | .main .title h1 {
343 | margin-top: 0;
344 | margin-bottom: 40px;
345 | }
346 |
347 | .main .title .subtitle {
348 | font-style: italic;
349 | text-align: center;
350 | width: 90%;
351 | margin-left: auto;
352 | margin-right: auto;
353 | }
354 |
355 | .main .title hr {
356 | margin: 50px auto 60px;
357 | }
358 |
359 | .main > :last-child {
360 | margin-bottom: 0;
361 | }
362 |
363 | /**
364 | * Info Boxes
365 | */
366 |
367 | .infobox, .alertbox {
368 | margin: 40px 20px;
369 | border: 1px solid;
370 | padding: 0 25px;
371 | border-radius: 3px;
372 | border-color: #bbb;
373 | background-color: #f8f8f8;
374 | }
375 |
376 | .infobox.blue, .alertbox.info {
377 | border-color: #bac6d3;
378 | background-color: #e2eef9;
379 | }
380 |
381 | .infobox.yellow, .alertbox.warning {
382 | border-color: #dfd8c2;
383 | background-color: #fff9ea;
384 | }
385 |
386 | .infobox.red, .alertbox.error {
387 | border-color: #d2b2b2;
388 | background-color: #fcdede;
389 | }
390 |
391 | .infobox.green, .alertbox.success {
392 | border-color: #B2C2AB;
393 | background-color: #DEF2D6;
394 | }
395 |
396 | /**
397 | * Footnotes
398 | */
399 |
400 | .footnote a::before {
401 | content: "[";
402 | }
403 |
404 | .footnote a::after {
405 | content: "]";
406 | }
407 |
408 | .footnote a {
409 | border: none;
410 | }
411 |
412 | .footnotes dt {
413 | display: table-cell;
414 | width: 30px;
415 | text-align: right;
416 | font-weight: normal;
417 | }
418 |
419 | .footnotes dt a {
420 | padding: 0;
421 | border: none;
422 | }
423 |
424 | .footnotes dt a::before {
425 | content: "[";
426 | }
427 |
428 | .footnotes dt a::after {
429 | content: "]";
430 | }
431 |
432 | .footnotes dd {
433 | display: table-cell;
434 | padding-left: 20px;
435 | padding-right: 0px;
436 | border: none
437 | }
438 |
439 | .footnotes dd :first-child {
440 | margin-top: 0;
441 | }
442 |
443 | .footnotes div:last-child dd :last-child {
444 | margin-bottom: 0;
445 | }
446 |
447 | .footnotes pre {
448 | margin: 30px 0;
449 | }
450 |
451 | /**
452 | * Tables
453 | */
454 |
455 | table {
456 | font-size: 16px;
457 | border-collapse: collapse;
458 | border-spacing: 0;
459 | margin: 50px 0px;
460 | width: 100%;
461 | }
462 |
463 | thead, tfoot {
464 | background-color: #f8f8f8;
465 | }
466 |
467 | th, td {
468 | border: 1px solid #ccc;
469 | padding: 14px 20px;
470 | text-align: left;
471 | }
472 |
473 | /**
474 | * Utility Styles
475 | */
476 |
477 | .small {
478 | font-size: 16px;
479 | }
480 |
481 | .left {
482 | text-align: left;
483 | }
484 |
485 | .right {
486 | text-align: right;
487 | }
488 |
489 | .center {
490 | text-align: center;
491 | }
492 |
493 | .justify {
494 | text-align: justify;
495 | }
496 |
497 | .bold {
498 | font-weight: bold;
499 | }
500 |
501 | .italic {
502 | font-style: italic;
503 | }
504 |
505 | .indent {
506 | padding-left: 30px;
507 | padding-right: 30px;
508 | }
509 |
510 | .unselectable {
511 | -webkit-user-select: none;
512 | -moz-user-select: none;
513 | -ms-user-select: none;
514 | user-select: none;
515 | }
516 |
517 | /**
518 | * Custom Classes
519 | */
520 |
521 | body.extra-deflist-vspace dt {
522 | margin-top: 80px;
523 | }
524 |
525 | /**
526 | * -------------------------------------------------------------------------
527 | * Media Queries
528 | * -------------------------------------------------------------------------
529 | */
530 |
531 | /* Tablet screens and smaller. */
532 |
533 | @media screen and (max-width: 960px) {
534 | body {
535 | width: auto;
536 | max-width: 680px;
537 | padding-top: 60px;
538 | }
539 |
540 | .masthead {
541 | width: auto;
542 | float: none;
543 | padding: 60px 20px 60px 20px;
544 | text-align: center;
545 | margin-left: 40px;
546 | margin-right: 40px;
547 | border-top: 3px solid black;
548 | border-bottom: 3px solid black;
549 | }
550 |
551 | .main {
552 | width: auto;
553 | padding: 40px 40px;
554 | margin-left: 0;
555 | border-left: none;
556 | min-height: auto;
557 | }
558 |
559 | .masthead h1 {
560 | text-align: center;
561 | }
562 |
563 | .masthead .tagline {
564 | text-align: center;
565 | max-width: 450px;
566 | margin-left: auto;
567 | margin-right: auto;
568 | display: none;
569 | }
570 |
571 | .homepage .masthead .tagline {
572 | display: block;
573 | }
574 |
575 | .masthead .version {
576 | text-align: center;
577 | }
578 |
579 | .masthead .menu {
580 | direction: ltr;
581 | max-width: 300px;
582 | margin-left: auto;
583 | margin-right: auto;
584 | }
585 |
586 | .masthead .menu ul {
587 | text-align: left;
588 | margin: 0;
589 | padding: 0;
590 | }
591 |
592 | .masthead .menu ul ul {
593 | margin: 0;
594 | }
595 |
596 | .masthead .menu li {
597 | border-bottom: 1px solid;
598 | list-style: none;
599 | margin: 0;
600 | padding: 0;
601 | }
602 |
603 | .masthead .menu li:first-child {
604 | border-top: 1px solid;
605 | }
606 |
607 | .masthead .menu li li:last-child {
608 | border-bottom: none;
609 | }
610 |
611 | .masthead .menu a {
612 | display: block;
613 | padding: 15px 20px;
614 | border-bottom: none;
615 | }
616 |
617 | .masthead .menu li li a {
618 | padding-left: 30px;
619 | }
620 |
621 | .masthead .menu li li::before {
622 | content: none;
623 | }
624 |
625 | .masthead .menu li li a::before {
626 | content: "•\00a0\00a0\00a0";
627 | }
628 |
629 | #menu-label {
630 | display: inline-block;
631 | padding: 0 20px;
632 | height: 50px;
633 | border: 1px solid #ddd;
634 | cursor: pointer;
635 | line-height: 50px;
636 | color: #333;
637 | font-size: 20px;
638 | margin-top: 10px;
639 | }
640 |
641 | #menu-label:hover, #menu-label:focus {
642 | border: 1px solid #888;
643 | }
644 |
645 | #menu-label .icon {
646 | padding-right: 8px;
647 | width: 30px;
648 | }
649 |
650 | #menu-check ~ label .close-icon {
651 | display: none;
652 | }
653 |
654 | #menu-check ~ label .open-icon {
655 | display: inline-block;
656 | }
657 |
658 | #menu-check:checked ~ label .close-icon {
659 | display: inline-block;
660 | }
661 |
662 | #menu-check:checked ~ label .open-icon {
663 | display: none;
664 | }
665 |
666 | #menu-check ~ ul {
667 | display: none;
668 | }
669 |
670 | #menu-check:checked ~ ul {
671 | display: block;
672 | margin-top: 50px;
673 | margin-bottom: 0;
674 | }
675 | }
676 |
677 | /* Landscape phone screens and smaller. */
678 |
679 | @media screen and (max-width: 720px) {
680 | }
681 |
682 | /* Portrait phone screens. */
683 |
684 | @media screen and (max-width: 480px) {
685 | body {
686 | font-size: 16px;
687 | padding-top: 40px;
688 | }
689 |
690 | h1 {
691 | font-size: 28px;
692 | }
693 |
694 | h2 {
695 | font-size: 18px;
696 | }
697 |
698 | h3, h4, h5, h6 {
699 | font-size: 16px;
700 | }
701 |
702 | h1 code {
703 | font-size: 24px;
704 | }
705 |
706 | pre, code {
707 | font-size: 12px;
708 | }
709 |
710 | .small {
711 | font-size: 15px;
712 | }
713 |
714 | .main .title .subtitle {
715 | width: auto;
716 | }
717 | }
718 |
--------------------------------------------------------------------------------
/uv.lock:
--------------------------------------------------------------------------------
1 | version = 1
2 | requires-python = ">=3.12"
3 |
4 | [[package]]
5 | name = "argslib"
6 | version = "2.1.0"
7 | source = { registry = "https://pypi.org/simple" }
8 | sdist = { url = "https://files.pythonhosted.org/packages/03/7b/399c9d1d9f2d49e3e76da2507e190888d5a8814a0c3f7a596c64ca5440a8/argslib-2.1.0.tar.gz", hash = "sha256:a22d725aceda4e78123c91c6af448e8d60da435e9af2562211f8b13e4f656f9a", size = 3943 }
9 | wheels = [
10 | { url = "https://files.pythonhosted.org/packages/3c/5c/3171d0a280030e78987ee8a30220771c2ccf0381d1035fd542a534c6ca04/argslib-2.1.0-py3-none-any.whl", hash = "sha256:3c1bdab36d06e71d5bb8319ee2854c81df54f7a614f12c12a5e470fbcf1cdbe0", size = 3972 },
11 | ]
12 |
13 | [[package]]
14 | name = "ark"
15 | version = "7.3.0"
16 | source = { registry = "https://pypi.org/simple" }
17 | dependencies = [
18 | { name = "argslib" },
19 | { name = "colorama" },
20 | { name = "ibis" },
21 | { name = "jinja2" },
22 | { name = "markdown" },
23 | { name = "pygments" },
24 | { name = "pyyaml" },
25 | { name = "shortcodes" },
26 | { name = "syntext" },
27 | ]
28 | sdist = { url = "https://files.pythonhosted.org/packages/1f/d6/9625233cab75036cb45152bbd5022aba67e5813289cafb902fbe8a0016a5/ark-7.3.0.tar.gz", hash = "sha256:96df77597687ebef9960cc0b9bbf29df4527381aa59754a36a1761506474d8c8", size = 449677 }
29 | wheels = [
30 | { url = "https://files.pythonhosted.org/packages/6b/20/11b5a9a6357609c29056e330be3850ecb06aab7f55966b8b3ead83b26848/ark-7.3.0-py3-none-any.whl", hash = "sha256:51c7423947cbfc642eb26a80da98ca793e761e3c5dc17ea6fc0cb25a69eff4f9", size = 461155 },
31 | ]
32 |
33 | [[package]]
34 | name = "blog"
35 | version = "0.1.0"
36 | source = { editable = "." }
37 | dependencies = [
38 | { name = "ark" },
39 | ]
40 |
41 | [package.metadata]
42 | requires-dist = [{ name = "ark", specifier = ">=7.3.0" }]
43 |
44 | [[package]]
45 | name = "colorama"
46 | version = "0.4.6"
47 | source = { registry = "https://pypi.org/simple" }
48 | sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
49 | wheels = [
50 | { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
51 | ]
52 |
53 | [[package]]
54 | name = "ibis"
55 | version = "3.3.0"
56 | source = { registry = "https://pypi.org/simple" }
57 | sdist = { url = "https://files.pythonhosted.org/packages/29/51/2706c69d679c9101a0e7333f4e5d3b3a7bc5eb0b52ed13685eaf88bd10d7/ibis-3.3.0.tar.gz", hash = "sha256:bb6d74a46c101aaeee0a98ee4da2bac78d6d5abd96a9a2954fb25c1ce6762ec2", size = 14477 }
58 | wheels = [
59 | { url = "https://files.pythonhosted.org/packages/aa/92/81563612f829f24389b6aa7895a4841a77c57bf304bd9e4dc866039a7f23/ibis-3.3.0-py3-none-any.whl", hash = "sha256:9e93aa77c28dc797b03805c794964be341eab859552a016ae8a5deafb5160d75", size = 16028 },
60 | ]
61 |
62 | [[package]]
63 | name = "jinja2"
64 | version = "3.1.4"
65 | source = { registry = "https://pypi.org/simple" }
66 | dependencies = [
67 | { name = "markupsafe" },
68 | ]
69 | sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 }
70 | wheels = [
71 | { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 },
72 | ]
73 |
74 | [[package]]
75 | name = "markdown"
76 | version = "3.7"
77 | source = { registry = "https://pypi.org/simple" }
78 | sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086 }
79 | wheels = [
80 | { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 },
81 | ]
82 |
83 | [[package]]
84 | name = "markupsafe"
85 | version = "2.1.5"
86 | source = { registry = "https://pypi.org/simple" }
87 | sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", size = 19384 }
88 | wheels = [
89 | { url = "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", size = 18215 },
90 | { url = "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", size = 14069 },
91 | { url = "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", size = 29452 },
92 | { url = "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", size = 28462 },
93 | { url = "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", size = 27869 },
94 | { url = "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", size = 33906 },
95 | { url = "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", size = 32296 },
96 | { url = "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", size = 33038 },
97 | { url = "https://files.pythonhosted.org/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", size = 16572 },
98 | { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127 },
99 | ]
100 |
101 | [[package]]
102 | name = "pygments"
103 | version = "2.18.0"
104 | source = { registry = "https://pypi.org/simple" }
105 | sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 }
106 | wheels = [
107 | { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
108 | ]
109 |
110 | [[package]]
111 | name = "pyyaml"
112 | version = "6.0.2"
113 | source = { registry = "https://pypi.org/simple" }
114 | sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
115 | wheels = [
116 | { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
117 | { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
118 | { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
119 | { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
120 | { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
121 | { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
122 | { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
123 | { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
124 | { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
125 | { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
126 | { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
127 | { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
128 | { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
129 | { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
130 | { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
131 | { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
132 | { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
133 | { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
134 | ]
135 |
136 | [[package]]
137 | name = "shortcodes"
138 | version = "5.4.0"
139 | source = { registry = "https://pypi.org/simple" }
140 | sdist = { url = "https://files.pythonhosted.org/packages/00/91/8331b970558348d9d346df4cdb0ab058e159cd0b1ba5245464df02a5502b/shortcodes-5.4.0.tar.gz", hash = "sha256:f3fe78edc71db62c0155c0cde593172dcd5b18bdb1b0c980ae79283a44bf5d29", size = 4148 }
141 | wheels = [
142 | { url = "https://files.pythonhosted.org/packages/7c/34/9e8722e1d74ad62b48c32334e7669b9baa78b664a8702ef467cb283800b3/shortcodes-5.4.0-py3-none-any.whl", hash = "sha256:775903803f179fcf6a04530e4f8dba108cc9507956656c05527a84df2b545d1a", size = 4112 },
143 | ]
144 |
145 | [[package]]
146 | name = "syntext"
147 | version = "3.1.2"
148 | source = { registry = "https://pypi.org/simple" }
149 | dependencies = [
150 | { name = "pygments" },
151 | ]
152 | sdist = { url = "https://files.pythonhosted.org/packages/6a/21/f10cf93609a7fa8faffb9a15458d17fd8618c57d83a8942997e8ed22c0a1/syntext-3.1.2.tar.gz", hash = "sha256:1b2e64ba321c9d68a9789576d737928643701e2be7f58704de7bc4058cd9d6a2", size = 14743 }
153 | wheels = [
154 | { url = "https://files.pythonhosted.org/packages/ab/a6/7649971ae84144214f4cc9413e28fbe3ea505acb5e349ce5b9282464cc4a/syntext-3.1.2-py3-none-any.whl", hash = "sha256:fe4d825f3bbabab0678f3b81183b49d1c474a10867b829e020c4213706945d6b", size = 17133 },
155 | ]
156 |
--------------------------------------------------------------------------------