diff --git a/.gitignore b/.gitignore index 82d01fb..0b770f5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,12 @@ __pycache__/ # Distribution / packaging .Python +.env +.sass-cache env/ bin/ build/ +bnk/ develop-eggs/ dist/ eggs/ @@ -24,6 +27,8 @@ parts/ sdist/ var/ venv/ +py3.*/ +*.bnk *.egg-info/ .installed.cfg *.egg @@ -62,3 +67,6 @@ docs/_build/ # Sublime Text *.sublime-project *.sublime-workspace + +# Visual Studio Code +*.code-workspace diff --git a/.readthedocs.yml b/.readthedocs.yaml similarity index 62% rename from .readthedocs.yml rename to .readthedocs.yaml index ebbfa2b..ebc71d8 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yaml @@ -1,20 +1,32 @@ -# .readthedocs.yml +# .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + # You can also specify other tool versions: + # nodejs: "20" + # rust: "1.70" + # golang: "1.20" + # Build documentation in the docs/ directory with Sphinx sphinx: configuration: source/conf.py # Optionally build your docs in additional formats such as PDF and ePub +# formats: all +# - pdf +# - epub formats: - htmlzip # Optionally set the version of Python and requirements required to build your docs python: - version: 3.7 install: - requirements: requirements.txt diff --git a/Makefile b/Makefile index b759c21..53e6557 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,8 @@ SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = -BUILDDIR = build SOURCEDIR = source +BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 diff --git a/requirements.txt b/requirements.txt index 072ca87..83d8c13 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,30 +1,75 @@ -# https://pypi.org/project/sphinx-immaterial/ -Jinja2==3.1.2 -Pygments==2.13.0 -alabaster==0.7.12 -appdirs==1.4.4 -babel==2.10.3 -certifi==2022.6.15 -charset-normalizer==2.1.1 -docutils==0.19 -idna==3.3 +# https://pypi.org/project/Sphinx/ +alabaster==1.0.0 +babel==2.17.0 +charset-normalizer==3.4.1 +certifi==2025.1.31 +docutils==0.21.2 +idna==3.10 imagesize==1.4.1 -importlib-metadata==4.12.0 -markupsafe==2.1.1 -packaging==21.3 -pydantic==1.10.1 -pyparsing==3.0.9 -pytz==2022.2.1 -requests==2.28.1 +Jinja2==3.1.5 +MarkupSafe==3.0.2 +packaging==24.2 +Pygments==2.19.1 +requests==2.32.3 +roman-numerals-py==3.1.0 snowballstemmer==2.2.0 -sphinx==5.1.1 -sphinx-immaterial==0.9.0 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 +Sphinx==8.2.1 +sphinxcontrib-applehelp==2.0.0 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -typing-extensions==4.3.0 -urllib3==1.26.12 -zipp==3.8.1 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +urllib3==2.3.0 + +# https://pypi.org/project/sphinx-immaterial/ +annotated-types==0.7.0 +appdirs==1.4.4 +pydantic==2.10.6 +pydantic-core==2.27.2 +pydantic-extra-types==2.10.2 +sphinx-immaterial==0.13.0 +typing-extensions==4.12.2 + +# sphinx-immaterial[keys] https://pypi.org/project/sphinx-immaterial/ +markdown==3.7 +pymdown-extensions==10.14.3 +pyyaml==6.0.2 + +# https://pypi.org/project/ipython/ +# asttokens==3.0.0 +# decorator==5.2.1 +# executing==2.2.0 +# ipython==8.32.0 +# jedi==0.19.2 +# matplotlib-inline==0.1.7 +# parso==0.8.4 +# pexpect==4.9.0 +# prompt_toolkit==3.0.50 +# ptyprocess==0.7.0 +# pure-eval==0.2.3 +# stack_data==0.6.3 +# traitlets==5.14.3 +# wcwidth==0.2.13 + +# https://pypi.org/project/sphinxcontrib-email/ +lxml==5.3.1 +sphinxcontrib-email==0.3.6 + +# https://pypi.org/project/yasfb/ +cssselect==1.2.0 +pyquery==2.0.1 +yasfb==0.8.0 + +# https://pypi.org/project/sphinx-disqus/ +# sphinx-disqus==1.3.0 +# sphinx-disqus==1.2.0 + +# https://github.com/bonartm/sphinxcontrib-quizdown +# sphinxcontrib-quizdown @ git+https://github.com/bonartm/sphinxcontrib-quizdown.git@d9f24a7a2305ad5b196e06597b1779c9414d1d85 + +# https://pypi.org/project/sphinx_contributors/ +sphinx_contributors==0.2.7 + +# https://pypi.org/project/sphinx-tabs/ +sphinx-tabs==3.4.7 diff --git a/source/_static/favicon.png b/source/_static/favicon.png deleted file mode 100644 index 93e4a02..0000000 Binary files a/source/_static/favicon.png and /dev/null differ diff --git a/source/_static/favicon/android-icon-144x144.png b/source/_static/favicon/android-icon-144x144.png new file mode 100644 index 0000000..62c2b7f Binary files /dev/null and b/source/_static/favicon/android-icon-144x144.png differ diff --git a/source/_static/favicon/android-icon-192x192.png b/source/_static/favicon/android-icon-192x192.png new file mode 100644 index 0000000..3a4454a Binary files /dev/null and b/source/_static/favicon/android-icon-192x192.png differ diff --git a/source/_static/favicon/android-icon-36x36.png b/source/_static/favicon/android-icon-36x36.png new file mode 100644 index 0000000..1334a63 Binary files /dev/null and b/source/_static/favicon/android-icon-36x36.png differ diff --git a/source/_static/favicon/android-icon-48x48.png b/source/_static/favicon/android-icon-48x48.png new file mode 100644 index 0000000..5c681d3 Binary files /dev/null and b/source/_static/favicon/android-icon-48x48.png differ diff --git a/source/_static/favicon/android-icon-72x72.png b/source/_static/favicon/android-icon-72x72.png new file mode 100644 index 0000000..d473a68 Binary files /dev/null and b/source/_static/favicon/android-icon-72x72.png differ diff --git a/source/_static/favicon/android-icon-96x96.png b/source/_static/favicon/android-icon-96x96.png new file mode 100644 index 0000000..b77d2a1 Binary files /dev/null and b/source/_static/favicon/android-icon-96x96.png differ diff --git a/source/_static/favicon/apple-icon-114x114.png b/source/_static/favicon/apple-icon-114x114.png new file mode 100644 index 0000000..2630fd2 Binary files /dev/null and b/source/_static/favicon/apple-icon-114x114.png differ diff --git a/source/_static/favicon/apple-icon-120x120.png b/source/_static/favicon/apple-icon-120x120.png new file mode 100644 index 0000000..87ac0ca Binary files /dev/null and b/source/_static/favicon/apple-icon-120x120.png differ diff --git a/source/_static/favicon/apple-icon-144x144.png b/source/_static/favicon/apple-icon-144x144.png new file mode 100644 index 0000000..62c2b7f Binary files /dev/null and b/source/_static/favicon/apple-icon-144x144.png differ diff --git a/source/_static/favicon/apple-icon-152x152.png b/source/_static/favicon/apple-icon-152x152.png new file mode 100644 index 0000000..50eeaee Binary files /dev/null and b/source/_static/favicon/apple-icon-152x152.png differ diff --git a/source/_static/favicon/apple-icon-180x180.png b/source/_static/favicon/apple-icon-180x180.png new file mode 100644 index 0000000..5cd55c4 Binary files /dev/null and b/source/_static/favicon/apple-icon-180x180.png differ diff --git a/source/_static/favicon/apple-icon-57x57.png b/source/_static/favicon/apple-icon-57x57.png new file mode 100644 index 0000000..ff68c85 Binary files /dev/null and b/source/_static/favicon/apple-icon-57x57.png differ diff --git a/source/_static/favicon/apple-icon-60x60.png b/source/_static/favicon/apple-icon-60x60.png new file mode 100644 index 0000000..e2bbdf4 Binary files /dev/null and b/source/_static/favicon/apple-icon-60x60.png differ diff --git a/source/_static/favicon/apple-icon-72x72.png b/source/_static/favicon/apple-icon-72x72.png new file mode 100644 index 0000000..d473a68 Binary files /dev/null and b/source/_static/favicon/apple-icon-72x72.png differ diff --git a/source/_static/favicon/apple-icon-76x76.png b/source/_static/favicon/apple-icon-76x76.png new file mode 100644 index 0000000..1f19e95 Binary files /dev/null and b/source/_static/favicon/apple-icon-76x76.png differ diff --git a/source/_static/favicon/apple-icon-precomposed.png b/source/_static/favicon/apple-icon-precomposed.png new file mode 100644 index 0000000..6c83279 Binary files /dev/null and b/source/_static/favicon/apple-icon-precomposed.png differ diff --git a/source/_static/favicon/apple-icon.png b/source/_static/favicon/apple-icon.png new file mode 100644 index 0000000..6c83279 Binary files /dev/null and b/source/_static/favicon/apple-icon.png differ diff --git a/source/_static/favicon/favicon-16x16.png b/source/_static/favicon/favicon-16x16.png new file mode 100644 index 0000000..d9b5534 Binary files /dev/null and b/source/_static/favicon/favicon-16x16.png differ diff --git a/source/_static/favicon/favicon-32x32.png b/source/_static/favicon/favicon-32x32.png new file mode 100644 index 0000000..1e513cc Binary files /dev/null and b/source/_static/favicon/favicon-32x32.png differ diff --git a/source/_static/favicon/favicon-96x96.png b/source/_static/favicon/favicon-96x96.png new file mode 100644 index 0000000..b77d2a1 Binary files /dev/null and b/source/_static/favicon/favicon-96x96.png differ diff --git a/source/_static/favicon/favicon.ico b/source/_static/favicon/favicon.ico new file mode 100644 index 0000000..4dea427 Binary files /dev/null and b/source/_static/favicon/favicon.ico differ diff --git a/source/_static/favicon/ms-icon-144x144.png b/source/_static/favicon/ms-icon-144x144.png new file mode 100644 index 0000000..62c2b7f Binary files /dev/null and b/source/_static/favicon/ms-icon-144x144.png differ diff --git a/source/_static/favicon/ms-icon-150x150.png b/source/_static/favicon/ms-icon-150x150.png new file mode 100644 index 0000000..9286310 Binary files /dev/null and b/source/_static/favicon/ms-icon-150x150.png differ diff --git a/source/_static/favicon/ms-icon-310x310.png b/source/_static/favicon/ms-icon-310x310.png new file mode 100644 index 0000000..d994440 Binary files /dev/null and b/source/_static/favicon/ms-icon-310x310.png differ diff --git a/source/_static/favicon/ms-icon-70x70.png b/source/_static/favicon/ms-icon-70x70.png new file mode 100644 index 0000000..48a670d Binary files /dev/null and b/source/_static/favicon/ms-icon-70x70.png differ diff --git a/source/_static/images/plone_source_code.jpg b/source/_static/images/plone_source_code.jpg new file mode 100644 index 0000000..9a14557 Binary files /dev/null and b/source/_static/images/plone_source_code.jpg differ diff --git a/source/_static/python_27.png b/source/_static/images/python_27.png similarity index 100% rename from source/_static/python_27.png rename to source/_static/images/python_27.png diff --git a/source/_static/python_37.png b/source/_static/images/python_37.png similarity index 100% rename from source/_static/python_37.png rename to source/_static/images/python_37.png diff --git a/source/_static/python_logo_web.png b/source/_static/images/python_logo_web.png similarity index 100% rename from source/_static/python_logo_web.png rename to source/_static/images/python_logo_web.png diff --git a/source/_static/stylesheets/landing_page.css b/source/_static/stylesheets/landing_page.css index 7905d58..b2aec43 100644 --- a/source/_static/stylesheets/landing_page.css +++ b/source/_static/stylesheets/landing_page.css @@ -67,7 +67,7 @@ a, a:active, a:visited, a:hover, a:visited:hover { } .card .bottom { - height: 100px; + height: 20px; width: 100%; } @@ -89,7 +89,7 @@ a, a:active, a:visited, a:hover, a:visited:hover { .card .bottom p { text-align: left; - height: 80px; + height: 70px; width: 100%; box-sizing: border-box; margin: 0; diff --git a/source/_templates/base.html b/source/_templates/base.html new file mode 100644 index 0000000..79d8e93 --- /dev/null +++ b/source/_templates/base.html @@ -0,0 +1,63 @@ +{% extends '!base.html' %} + + + {%- block site_meta %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% endblock %} diff --git a/source/_templates/browserconfig.xml b/source/_templates/browserconfig.xml new file mode 100644 index 0000000..66e7343 --- /dev/null +++ b/source/_templates/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff diff --git a/source/_templates/manifest.json b/source/_templates/manifest.json new file mode 100644 index 0000000..c2e8eb5 --- /dev/null +++ b/source/_templates/manifest.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://json.schemastore.org/web-manifest-combined.json", + "name": "Aprende Python 3 desde 0", + "short_name": "Aprende Python 3", + "start_url": "https://entrenamiento-python-basico.readthedocs.io/es/latest/", + "display": "standalone", + "theme_color": "#dfdfdf", + "background_color": "#dfdfdf", + "icons": [ + { + "src": "/_static/favicon/android-icon-36x36.png", + "sizes": "36x36", + "type": "image/png", + "density": "0.75" + }, + { + "src": "/_static/favicon/android-icon-48x48.png", + "sizes": "48x48", + "type": "image/png", + "density": "1.0" + }, + { + "src": "/_static/favicon/android-icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "density": "1.5" + }, + { + "src": "/_static/favicon/android-icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "density": "2.0" + }, + { + "src": "/_static/favicon/android-icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "density": "3.0" + }, + { + "src": "/_static/favicon/android-icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "density": "4.0" + } + ] +} diff --git a/source/_templates/partials/copyright.html b/source/_templates/partials/copyright.html index 104830b..e350fb5 100644 --- a/source/_templates/partials/copyright.html +++ b/source/_templates/partials/copyright.html @@ -12,49 +12,51 @@ -
+ {# note: commented-out template because we no longer use this + - + - + - + - + - + - + - + + #} {% endif %}
diff --git a/source/_templates/partials/copyright_extra.html b/source/_templates/partials/copyright_extra.html index ef31209..8a98f1c 100644 --- a/source/_templates/partials/copyright_extra.html +++ b/source/_templates/partials/copyright_extra.html @@ -1,3 +1,3 @@ diff --git a/source/_templates/partials/landing_page.html b/source/_templates/partials/landing_page.html index ed24a67..db85136 100644 --- a/source/_templates/partials/landing_page.html +++ b/source/_templates/partials/landing_page.html @@ -1,25 +1,69 @@ -
-

 Aprende Python desde el nivel más básico

+
+

 Aprende Python desde el nivel más básico

+
+ +
+
+ + Materiales del entrenamiento de programación en Python 3 - Nivel básico + +
+ +
-
- - + -
- - + + + + + + + diff --git a/source/_templates/robots.txt b/source/_templates/robots.txt new file mode 100644 index 0000000..63a1c5d --- /dev/null +++ b/source/_templates/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Disallow: /_/downloads/ + +# twitter.com bot +User-agent: Twitterbot +Allow: /_static/ diff --git a/source/conf.py b/source/conf.py index 986c075..6a7df78 100644 --- a/source/conf.py +++ b/source/conf.py @@ -9,14 +9,14 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -import os -import sys +# import os +# import sys # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) -sys.path.append(os.path.abspath("sphinxext")) +# sys.path.append(os.path.abspath("sphinxext")) # -- Project information ----------------------------------------------------- @@ -24,23 +24,23 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project_namecode = "entrenamiento.python_basico" -project_short_name = "Programación en Python" +project_short_name = "programación en Python" project = project_short_name[0].capitalize() + project_short_name[1:39] project_name = project_namecode.replace(".", "") project_details = "Aprende Python desde el nivel más básico" publisher = "Leonardo J. Caballero G." -years = "2014 - 2022" +years = "2014 - 2025" copyright = f"{years}, {publisher}" -author = "Leonardo J. Caballero G." +author = publisher # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = "3.7" +version = "3.11" # The full version, including alpha/beta/rc tags. -release = "3.7.3" +release = "3.11.11" # -- General configuration --------------------------------------------------- @@ -48,7 +48,7 @@ # If your documentation needs a minimal Sphinx version, state it here. # -needs_sphinx = "5.1.1" +needs_sphinx = "8.2.1" # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom @@ -109,23 +109,23 @@ # A string of reStructuredText that will be included at the end of every # source file that is read. -rst_epilog = """ -.. _`CodigoFacilito.com`: https://codigofacilito.com/ -.. |psf| replace:: Python Software Foundation -""" +# rst_epilog = """ +# .. _`CodigoFacilito.com`: https://www.codigofacilito.com/ +# .. |psf| replace:: Python Software Foundation +# """ # If true, figures, tables and code-blocks are automatically numbered if # they have a caption. -numfig = True +# numfig = True # A dictionary mapping 'figure', 'table', 'code-block' and 'section' to # strings that are used for format of figure numbers. As a special character, # %s will be replaced to figure number. -numfig_format = { - "figure": "Figura %s,", - "table": "Tabla %s,", - "code-block": "Listado de código de bloque %s,", -} +# numfig_format = { +# "figure": "Figura %s,", +# "table": "Tabla %s,", +# "code-block": "Listado de código de bloque %s,", +# } # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output @@ -140,23 +140,47 @@ # documentation. # html_theme_options = { + "analytics": { + "provider": "google", + "property": "G-W3KQBB73N0", + "feedback": { + "title": "¿Te ha resultado útil esta página?", + "ratings": [ + { + "icon": "material/emoticon-happy-outline", + "name": "Esta página fue útil", + "data": 1, + "note": "Gracias por sus comentarios!", + }, + { + "icon": "material/emoticon-sad-outline", + "name": "Esta página podría mejorarse", + "data": 0, + "note": "Gracias por sus comentarios. Ayúdenos a mejorar esta página " + 'abriendo una incidencia.', + }, + ], + }, + }, + # BEGIN: Features "features": [ "navigation.expand", # "navigation.tabs", # "navigation.tabs.sticky", - "toc.integrate", + "navigation.top", # "navigation.sections", # "navigation.instant", - # "header.autohide", - "navigation.top", + "toc.integrate", ], + # END: Features + # BEGIN: Palette toggle # "palette": [ # { # # Palette toggle for light mode # "media": "(prefers-color-scheme: light)", # "scheme": "default", - # #"primary": "light-green", - # #"accent": "light-blue", + # # "primary": "light-green", + # # "accent": "light-blue", # "toggle": { # "icon": "material/weather-sunny", # "name": "Cambiar al modo oscuro", @@ -166,14 +190,54 @@ # # Palette toggle for dark mode # "media": "(prefers-color-scheme: dark)", # "scheme": "slate", - # #"primary": "deep-orange", - # #"accent": "light", + # # "primary": "deep-orange", + # # "accent": "light", # "toggle": { # "icon": "material/weather-night", # "name": "Cambiar al modo claro", # } # }, # ], + # END: Palette toggle + # BEGIN: social icons + "social": [ + { + "icon": "fontawesome/brands/linkedin", + "link": "https://linkedin.com/in/leonardojcaballerog", + "name": "My Linkedin", + }, + { + "icon": "fontawesome/brands/twitter", + "link": "https://twitter.com/macagua", + "name": "My Twitter", + }, + { + "icon": "fontawesome/brands/github", + "link": "https://github.com/macagua", + "name": "My Github", + }, + { + "icon": "fontawesome/brands/gitlab", + "link": "https://gitlab.com/macagua", + "name": "My Gitlab", + }, + { + "icon": "fontawesome/brands/bitbucket", + "link": "https://bitbucket.org/macagua", + "name": "My Bitbucket", + }, + { + "icon": "fontawesome/brands/telegram", + "link": "https://t.me/leonardojcaballerog", + "name": "My Telegram", + }, + # { + # "icon": "fontawesome/brands/whatsapp", + # "link": "https://wa.me/00504445556677?text=Hola%20Ing.%20Leonardo%20🙂,%20vi%20tu%20pagina%20web%20de%20aprender%20a%20programar%20Python%20y%20quisiera%20conocer%20mas%20de%20tus%20servicios%20de%20asesoría%20para%20programar%20en%20el%20lenguaje", + # "name": "My WhatsApp", + # }, + ], + # END: social icons } # Add any paths that contain custom themes here, relative to this directory. @@ -188,12 +252,12 @@ # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "_static/python_logo_web.png" +html_logo = "_static/images/python_logo_web.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -html_favicon = "_static/favicon.png" +html_favicon = "_static/favicon/favicon-16x16.png" # A list of CSS files. The entry must be a filename string or a tuple containing # the filename string and the attributes dictionary. The filename must be relative @@ -213,7 +277,6 @@ # The attributes is used for attributes of