├── project ├── __init__.py ├── asgi.py ├── wsgi.py └── urls.py ├── .prettierignore ├── www ├── templatetags │ ├── __init__.py │ └── utils.py ├── templates │ └── www │ │ ├── examples │ │ ├── todo.html │ │ ├── search.html │ │ ├── select.html │ │ ├── click-counter.html │ │ ├── validation.html │ │ └── count-characters.html │ │ ├── screencasts.html │ │ ├── bases │ │ ├── examples.html │ │ └── screencasts.html │ │ ├── sponsors.html │ │ ├── screencasts │ │ └── installation.html │ │ └── articles.html ├── urls.py └── views.py ├── docs ├── _static │ ├── scripts │ │ ├── furo-extensions.js │ │ ├── furo.js.LICENSE.txt │ │ └── main.js │ ├── custom.css │ ├── file.png │ ├── minus.png │ ├── plus.png │ ├── check-solid.svg │ ├── graphviz.css │ ├── copy-button.svg │ ├── documentation_options.js │ ├── design-tabs.js │ ├── debug.css │ ├── styles │ │ └── unicorn.css │ ├── copybutton.css │ └── copybutton_funcs.js ├── _sources │ ├── components │ │ └── actions.md.txt │ ├── installation.rst.txt │ ├── api │ │ ├── startunicorn │ │ │ └── index.rst.txt │ │ └── django_unicorn │ │ │ ├── templatetags │ │ │ ├── index.rst.txt │ │ │ └── unicorn │ │ │ │ └── index.rst.txt │ │ │ ├── db │ │ │ └── index.rst.txt │ │ │ ├── urls │ │ │ └── index.rst.txt │ │ │ ├── views │ │ │ ├── action_parsers │ │ │ │ ├── index.rst.txt │ │ │ │ ├── sync_input │ │ │ │ │ └── index.rst.txt │ │ │ │ ├── call_method │ │ │ │ │ └── index.rst.txt │ │ │ │ └── utils │ │ │ │ │ └── index.rst.txt │ │ │ ├── utils │ │ │ │ └── index.rst.txt │ │ │ ├── objects │ │ │ │ └── index.rst.txt │ │ │ └── index.rst.txt │ │ │ ├── components │ │ │ ├── fields │ │ │ │ └── index.rst.txt │ │ │ ├── index.rst.txt │ │ │ ├── mixins │ │ │ │ └── index.rst.txt │ │ │ ├── updaters │ │ │ │ └── index.rst.txt │ │ │ └── unicorn_template_response │ │ │ │ └── index.rst.txt │ │ │ ├── decorators │ │ │ └── index.rst.txt │ │ │ ├── typing │ │ │ └── index.rst.txt │ │ │ ├── index.rst.txt │ │ │ ├── cacher │ │ │ └── index.rst.txt │ │ │ ├── settings │ │ │ └── index.rst.txt │ │ │ ├── call_method_parser │ │ │ └── index.rst.txt │ │ │ ├── utils │ │ │ └── index.rst.txt │ │ │ ├── errors │ │ │ └── index.rst.txt │ │ │ ├── typer │ │ │ └── index.rst.txt │ │ │ └── serializer │ │ │ └── index.rst.txt │ ├── index.rst.txt │ ├── queue-requests.md.txt │ ├── direct-view.md.txt │ ├── custom-morphers.md.txt │ ├── javascript.md.txt │ ├── dirty-states.md.txt │ ├── cli.md.txt │ ├── troubleshooting.md.txt │ ├── visibility.md.txt │ ├── getting-started.md.txt │ ├── partial-updates.md.txt │ ├── messages.md.txt │ ├── introduction.md.txt │ ├── installation.md.txt │ ├── settings.md.txt │ ├── redirecting.md.txt │ ├── architecture.md.txt │ ├── polling.md.txt │ └── loading-states.md.txt ├── objects.inv ├── unicorn-latest.pdf ├── _images │ └── social_previews │ │ ├── summary_cli_63c0dc4b.png │ │ ├── summary_faq_eb30496d.png │ │ ├── summary_actions_333108d1.png │ │ ├── summary_index_bc786ce5.png │ │ ├── summary_polling_884e9da5.png │ │ ├── summary_views_8b18f15a.png │ │ ├── summary_changelog_1a120bff.png │ │ ├── summary_changelog_42730650.png │ │ ├── summary_messages_7a53ae5a.png │ │ ├── summary_settings_65d7d295.png │ │ ├── summary_templates_254d134f.png │ │ ├── summary_architecture_6d4bd531.png │ │ ├── summary_components_62ff22c2.png │ │ ├── summary_direct-view_422cf1a2.png │ │ ├── summary_dirty-states_529d8250.png │ │ ├── summary_installation_af8c48af.png │ │ ├── summary_installation_dd93ef79.png │ │ ├── summary_javascript_8d589da4.png │ │ ├── summary_redirecting_d7a57503.png │ │ ├── summary_validation_a62ab460.png │ │ ├── summary_visibility_eae56b73.png │ │ ├── summary_django-models_250bf753.png │ │ ├── summary_loading-states_647850b3.png │ │ ├── summary_queue-requests_57f5c4f7.png │ │ ├── summary_child-components_2deacd60.png │ │ ├── summary_code-of-conduct_76aefa6b.png │ │ ├── summary_custom-morphers_80bbecc8.png │ │ ├── summary_getting-started_39f7164f.png │ │ ├── summary_partial-updates_cd522ecb.png │ │ ├── summary_troubleshooting_ccafcb1e.png │ │ ├── summary_api_startunicorn_index_1dbcdb7a.png │ │ ├── summary_api_django_unicorn_index_2e0b4934.png │ │ ├── summary_api_django_unicorn_db_index_505b4485.png │ │ ├── summary_api_django_unicorn_urls_index_fccefb84.png │ │ ├── summary_api_django_unicorn_cacher_index_e2409b8f.png │ │ ├── summary_api_django_unicorn_errors_index_3f9648c4.png │ │ ├── summary_api_django_unicorn_typer_index_3b3551a2.png │ │ ├── summary_api_django_unicorn_typing_index_47fd05be.png │ │ ├── summary_api_django_unicorn_utils_index_cf39ac98.png │ │ ├── summary_api_django_unicorn_views_index_4f8dbf06.png │ │ ├── summary_api_django_unicorn_settings_index_d0186d72.png │ │ ├── summary_api_django_unicorn_components_index_15a78d7b.png │ │ ├── summary_api_django_unicorn_decorators_index_a5530e41.png │ │ ├── summary_api_django_unicorn_serializer_index_e7875a35.png │ │ ├── summary_api_django_unicorn_templatetags_index_fbccbbc4.png │ │ ├── summary_api_django_unicorn_views_utils_index_5e575f66.png │ │ ├── summary_api_django_unicorn_views_objects_index_d3ef82f7.png │ │ ├── summary_api_django_unicorn_components_fields_index_596f1a6f.png │ │ ├── summary_api_django_unicorn_components_mixins_index_bf1db447.png │ │ ├── summary_api_django_unicorn_call_method_parser_index_3ef0ff13.png │ │ ├── summary_api_django_unicorn_components_updaters_index_6584a2f4.png │ │ ├── summary_api_django_unicorn_templatetags_unicorn_index_82418033.png │ │ ├── summary_api_django_unicorn_views_action_parsers_index_2e95ccb5.png │ │ ├── summary_api_django_unicorn_components_unicorn_view_index_1ddd7c6c.png │ │ ├── summary_api_django_unicorn_views_action_parsers_utils_index_e48bde12.png │ │ ├── summary_api_django_unicorn_views_action_parsers_call_method_index_3562d4bf.png │ │ ├── summary_api_django_unicorn_views_action_parsers_sync_input_index_8a60afd4.png │ │ └── summary_api_django_unicorn_components_unicorn_template_response_index_c88e97b0.png ├── _sphinx_design_static │ └── design-tabs.js └── genindex.html ├── .flake8 ├── captain-definition ├── static ├── img │ ├── favicon.svg │ ├── zap.svg │ ├── code.svg │ ├── video.svg │ ├── book.svg │ ├── layers.svg │ ├── download.svg │ ├── heart.svg │ ├── layout.svg │ ├── link.svg │ ├── monitor.svg │ ├── feather.svg │ ├── tool.svg │ ├── twitter.svg │ ├── watch.svg │ ├── github.svg │ ├── mastodon.svg │ ├── unicorn-mono.svg │ └── unicorn.svg ├── highlight.js │ └── 10.1.1 │ │ └── styles │ │ └── solarized-light.css └── css │ └── main.css ├── .isort.cfg ├── unicorn ├── components │ ├── count_characters.py │ ├── todo.py │ ├── clicks.py │ ├── select.py │ ├── todo_bulma.py │ ├── validation.py │ └── search.py └── templates │ └── unicorn │ ├── clicks.html │ ├── count-characters.html │ ├── select.html │ ├── search.html │ ├── todo.html │ ├── todo-bulma.html │ └── validation.html ├── .env.example ├── gunicorn.conf.py ├── DEVELOPING.md ├── README.md ├── manage.py ├── source ├── queue-requests.md ├── direct-view.md ├── custom-morphers.md ├── javascript.md ├── dirty-states.md ├── cli.md ├── troubleshooting.md ├── _static │ └── styles │ │ └── unicorn.css ├── visibility.md ├── getting-started.md ├── partial-updates.md ├── messages.md ├── installation.md ├── settings.md ├── redirecting.md ├── architecture.md ├── polling.md └── loading-states.md ├── .github └── workflows │ └── deploy.yml ├── LICENSE ├── pyproject.toml ├── .gitignore └── Dockerfile /project/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /www/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_static/scripts/furo-extensions.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_sources/components/actions.md.txt: -------------------------------------------------------------------------------- 1 | # Actions 2 | -------------------------------------------------------------------------------- /docs/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* This file intentionally left blank. */ 2 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 80 3 | select = C,E,F,W,B,B950 4 | ignore = E501 -------------------------------------------------------------------------------- /captain-definition: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 2, 3 | "dockerfilePath": "./Dockerfile" 4 | } 5 | -------------------------------------------------------------------------------- /docs/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/objects.inv -------------------------------------------------------------------------------- /docs/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_static/file.png -------------------------------------------------------------------------------- /docs/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_static/minus.png -------------------------------------------------------------------------------- /docs/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_static/plus.png -------------------------------------------------------------------------------- /docs/unicorn-latest.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/unicorn-latest.pdf -------------------------------------------------------------------------------- /docs/_sources/installation.rst.txt: -------------------------------------------------------------------------------- 1 | Installation 2 | ================== 3 | 4 | * :ref:`genindex` 5 | * :ref:`modindex` 6 | * :ref:`search` -------------------------------------------------------------------------------- /static/img/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | multi_line_output=3 3 | include_trailing_comma=True 4 | force_grid_wrap=0 5 | combine_as_imports=True 6 | line_length=88 7 | -------------------------------------------------------------------------------- /docs/_sources/api/startunicorn/index.rst.txt: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | :py:mod:`startunicorn` 4 | ====================== 5 | 6 | .. py:module:: startunicorn 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_cli_63c0dc4b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_cli_63c0dc4b.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_faq_eb30496d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_faq_eb30496d.png -------------------------------------------------------------------------------- /unicorn/components/count_characters.py: -------------------------------------------------------------------------------- 1 | from django_unicorn.components import UnicornView 2 | 3 | 4 | class CountCharactersView(UnicornView): 5 | name = "World" 6 | -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_actions_333108d1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_actions_333108d1.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_index_bc786ce5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_index_bc786ce5.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_polling_884e9da5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_polling_884e9da5.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_views_8b18f15a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_views_8b18f15a.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_changelog_1a120bff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_changelog_1a120bff.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_changelog_42730650.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_changelog_42730650.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_messages_7a53ae5a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_messages_7a53ae5a.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_settings_65d7d295.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_settings_65d7d295.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_templates_254d134f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_templates_254d134f.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_architecture_6d4bd531.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_architecture_6d4bd531.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_components_62ff22c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_components_62ff22c2.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_direct-view_422cf1a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_direct-view_422cf1a2.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_dirty-states_529d8250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_dirty-states_529d8250.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_installation_af8c48af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_installation_af8c48af.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_installation_dd93ef79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_installation_dd93ef79.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_javascript_8d589da4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_javascript_8d589da4.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_redirecting_d7a57503.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_redirecting_d7a57503.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_validation_a62ab460.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_validation_a62ab460.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_visibility_eae56b73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_visibility_eae56b73.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_django-models_250bf753.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_django-models_250bf753.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_loading-states_647850b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_loading-states_647850b3.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_queue-requests_57f5c4f7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_queue-requests_57f5c4f7.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_child-components_2deacd60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_child-components_2deacd60.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_code-of-conduct_76aefa6b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_code-of-conduct_76aefa6b.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_custom-morphers_80bbecc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_custom-morphers_80bbecc8.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_getting-started_39f7164f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_getting-started_39f7164f.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_partial-updates_cd522ecb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_partial-updates_cd522ecb.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_troubleshooting_ccafcb1e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_troubleshooting_ccafcb1e.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_startunicorn_index_1dbcdb7a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_startunicorn_index_1dbcdb7a.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_index_2e0b4934.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_index_2e0b4934.png -------------------------------------------------------------------------------- /project/asgi.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from django.core.asgi import get_asgi_application 4 | 5 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") 6 | 7 | application = get_asgi_application() 8 | -------------------------------------------------------------------------------- /project/wsgi.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from django.core.wsgi import get_wsgi_application 4 | 5 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") 6 | 7 | application = get_wsgi_application() 8 | -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_db_index_505b4485.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_db_index_505b4485.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_urls_index_fccefb84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_urls_index_fccefb84.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_cacher_index_e2409b8f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_cacher_index_e2409b8f.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_errors_index_3f9648c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_errors_index_3f9648c4.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_typer_index_3b3551a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_typer_index_3b3551a2.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_typing_index_47fd05be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_typing_index_47fd05be.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_utils_index_cf39ac98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_utils_index_cf39ac98.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_views_index_4f8dbf06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_views_index_4f8dbf06.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_settings_index_d0186d72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_settings_index_d0186d72.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_components_index_15a78d7b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_components_index_15a78d7b.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_decorators_index_a5530e41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_decorators_index_a5530e41.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_serializer_index_e7875a35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_serializer_index_e7875a35.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_templatetags_index_fbccbbc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_templatetags_index_fbccbbc4.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_views_utils_index_5e575f66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_views_utils_index_5e575f66.png -------------------------------------------------------------------------------- /docs/_images/social_previews/summary_api_django_unicorn_views_objects_index_d3ef82f7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamghill/django-unicorn.com/main/docs/_images/social_previews/summary_api_django_unicorn_views_objects_index_d3ef82f7.png -------------------------------------------------------------------------------- /project/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path, include 2 | 3 | from www import urls as www_urls 4 | 5 | 6 | urlpatterns = [ 7 | path("", include(www_urls)), 8 | path("unicorn/", include("django_unicorn.urls")), 9 | ] 10 | -------------------------------------------------------------------------------- /unicorn/templates/unicorn/clicks.html: -------------------------------------------------------------------------------- 1 |
3 | 4 |
5 |6 | Character count: {{ name|length }} 7 |
8 |6 | Matching states: 7 | 8 | {% if states %} 9 |
8 | {% if tasks %} 9 |
{% code_include 'unicorn/templates/unicorn/todo.html' %}
14 | {% code_include 'unicorn/components/todo.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/www/templates/www/examples/search.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/examples.html" %}
2 | {% load unicorn utils %}
3 |
4 | {% block subtitle %}Search{% endblock subtitle %}
5 |
6 | {% block example_title %}Search{% endblock example_title %}
7 |
8 | {% block example_content %}
9 | {% unicorn 'search' %}
10 | {% endblock example_content %}
11 |
12 | {% block example_source %}
13 | {% code_include 'unicorn/templates/unicorn/search.html' %}
14 | {% code_include 'unicorn/components/search.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/www/templates/www/examples/select.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/examples.html" %}
2 | {% load unicorn utils %}
3 |
4 | {% block subtitle %}Select{% endblock subtitle %}
5 |
6 | {% block example_title %}Select{% endblock example_title %}
7 |
8 | {% block example_content %}
9 | {% unicorn 'select' %}
10 | {% endblock example_content %}
11 |
12 | {% block example_source %}
13 | {% code_include 'unicorn/templates/unicorn/select.html' %}
14 | {% code_include 'unicorn/components/select.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/www/templates/www/examples/click-counter.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/examples.html" %}
2 | {% load unicorn utils %}
3 |
4 | {% block subtitle %}Click{% endblock subtitle %}
5 |
6 | {% block example_title %}Click counter{% endblock example_title %}
7 |
8 | {% block example_content %}
9 | {% unicorn 'clicks' %}
10 | {% endblock example_content %}
11 |
12 | {% block example_source %}
13 | {% code_include 'unicorn/templates/unicorn/clicks.html' %}
14 | {% code_include 'unicorn/components/clicks.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/www/templates/www/examples/validation.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/examples.html" %}
2 | {% load unicorn utils %}
3 |
4 | {% block subtitle %}Validation{% endblock subtitle %}
5 |
6 | {% block example_title %}Validation{% endblock example_title %}
7 |
8 | {% block example_content %}
9 | {% unicorn 'validation' %}
10 | {% endblock example_content %}
11 |
12 | {% block example_source %}
13 | {% code_include 'unicorn/templates/unicorn/validation.html' %}
14 | {% code_include 'unicorn/components/validation.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # django-unicorn.com
2 |
3 | This is the documentation site for [`Unicorn`](https://www.django-unicorn.com/). It includes the Sphinx-generated docs, code examples, screenshares, and a landing page.
4 |
5 | ## Why?
6 |
7 | [readthedocs](https://readthedocs.org/) is an awesome resource and I love that they provide a free way to host documentation for open-source projects. However, to show off the power of `Unicorn` it seems best for the documentation site to have real-world examples of how it works. Plus, serving the Sphinx docs directly (via [django-docs](https://django-docs.readthedocs.io/)) improves the SEO traffic (since the docs are served from a sub-folder instead of a third-level domain).
8 |
--------------------------------------------------------------------------------
/www/templates/www/examples/count-characters.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/examples.html" %}
2 | {% load unicorn utils %}
3 |
4 | {% block subtitle %}Count characters{% endblock subtitle %}
5 |
6 | {% block example_title %}Count characters{% endblock example_title %}
7 |
8 | {% block example_content %}
9 | {% unicorn 'count-characters' %}
10 | {% endblock example_content %}
11 |
12 | {% block example_source %}
13 | {% code_include 'unicorn/templates/unicorn/count-characters.html' %}
14 | {% code_include 'unicorn/components/count_characters.py' %}
15 | {% endblock example_source %}
16 |
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """Django's command-line utility for administrative tasks."""
3 | import os
4 | import sys
5 |
6 |
7 | def main():
8 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
9 | try:
10 | from django.core.management import execute_from_command_line
11 | except ImportError as exc:
12 | raise ImportError(
13 | "Couldn't import Django. Are you sure it's installed and "
14 | "available on your PYTHONPATH environment variable? Did you "
15 | "forget to activate a virtual environment?"
16 | ) from exc
17 | execute_from_command_line(sys.argv)
18 |
19 |
20 | if __name__ == "__main__":
21 | main()
22 |
--------------------------------------------------------------------------------
/www/templates/www/screencasts.html:
--------------------------------------------------------------------------------
1 | {% extends "www/bases/base.html" %}
2 | {% load compress static unicorn utils %}
3 |
4 | {% block title %}django-unicorn{% endblock title %}
5 |
6 | {% block styles %}
7 |
8 | {% compress css %}
9 |
10 |
11 | {% endcompress %}
12 |
13 | {% endblock styles %}
14 |
15 | {% block content %}
16 |
17 | 21 | Screencasts coming soon! 22 |
23 |37 |
40 | 41 |42 | 43 |
44 | 45 |51 | {% if tasks %} 52 |
text: {{ text }}
38 |
39 | number: {{ number }}now: {{ now }}now|date:"s": {{ now|date:"s" }}