|
| 1 | +IDOM |
| 2 | +==== |
| 3 | + |
| 4 | +.. toctree:: |
| 5 | + :hidden: |
| 6 | + :caption: User Guide |
| 7 | + |
| 8 | + getting-started/index |
| 9 | + creating-interfaces/index |
| 10 | + adding-interactivity/index |
| 11 | + managing-state/index |
| 12 | + escape-hatches/index |
| 13 | + |
| 14 | +.. toctree:: |
| 15 | + :hidden: |
| 16 | + :caption: Other Resources |
| 17 | + |
| 18 | + understanding-idom/index |
| 19 | + contributing/index |
| 20 | + reference-material/index |
| 21 | + |
| 22 | +.. toctree:: |
| 23 | + :hidden: |
| 24 | + :caption: External Links |
| 25 | + |
| 26 | + Source Code <https://github.com/idom-team/idom> |
| 27 | + Community <https://github.com/idom-team/idom/discussions> |
| 28 | + Issues <https://github.com/idom-team/idom/issues> |
| 29 | + |
| 30 | + |
| 31 | +IDOM is a Python web framework for building **interactive websites without needing a |
| 32 | +single line of Javascript**. It does this by breaking down complex applications into |
| 33 | +nestable and reusable chunks of code called :ref:`"components" <Your First Component>` |
| 34 | +that allow you to focus on what your application does rather than how it does it. |
| 35 | + |
| 36 | +IDOM is also ecosystem independent. It can be added to existing applications built on a |
| 37 | +variety of sync and async web servers, as well as integrated with other frameworks like |
| 38 | +Django, Jupyter, and Plotly Dash. Not only does this mean you're free to choose what |
| 39 | +technology stack to run on, but on top of that, you can run the exact same components |
| 40 | +wherever you need them. For example, you can take a component originally developed in a |
| 41 | +Jupyter Notebook and embed it in your production application without changing anything |
| 42 | +about the component itself. |
| 43 | + |
| 44 | + |
| 45 | +At a Glance |
| 46 | +----------- |
| 47 | + |
| 48 | +To get you acquainted with IDOM, take a look at the tiny |
| 49 | +`"hello world" <https://en.wikipedia.org/wiki/%22Hello,_World!%22_program>`__ |
| 50 | +application below: |
| 51 | + |
| 52 | +.. example:: hello_world |
| 53 | + :activate-result: |
| 54 | + |
| 55 | +.. note:: |
| 56 | + |
| 57 | + Try clicking the **▶️ Result** tab to see what this displays! |
| 58 | + |
| 59 | +So what exactly does this code do? First, it imports a few tools from ``idom`` that will |
| 60 | +get used to describe and execute an application. Then, we create an ``App`` function |
| 61 | +which will define the content the application displays. Specifically, it displays a kind |
| 62 | +of HTML element called an ``h1`` `section heading |
| 63 | +<https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements>`__. |
| 64 | +Importantly though, a ``@component`` decorator has been applied to the ``App`` function |
| 65 | +to turn it into a :ref:`component <Your First Component>`. Finally, we :ref:`run |
| 66 | +<Running IDOM>` an application server by passing the ``App`` component to the ``run()`` |
| 67 | +function. |
| 68 | + |
| 69 | + |
| 70 | +Learning IDOM |
| 71 | +------------- |
| 72 | + |
| 73 | +This documentation is broken up into chapters that introduce you to concepts step by |
| 74 | +step with detailed explanations and lots of examples. You should feel free to dive into |
| 75 | +any section that seems interesting. While each chapter assumes knowledge from those |
| 76 | +that came before, when you encounter a concept you're unfamiliar with you should look |
| 77 | +for links that will help direct you to the place where it was originally taught. |
| 78 | + |
| 79 | + |
| 80 | +Chapter 0 - :ref:`Getting Started` |
| 81 | +----------------------------------- |
| 82 | + |
| 83 | +If you want to follow along with examples in the sections that follow, you'll want to |
| 84 | +start here so you can :ref:`install IDOM <installation>`. This section also contains |
| 85 | +more detailed information about how to :ref:`run IDOM <Running IDOM>` in different |
| 86 | +contexts. For example, if you want to embed IDOM into an existing application, or run |
| 87 | +IDOM within a Jupyter Notebook, this is where you can learn how to do those things. |
| 88 | + |
| 89 | +.. grid:: 2 |
| 90 | + |
| 91 | + .. grid-item:: |
| 92 | + |
| 93 | + .. image:: /_static/install-and-run-idom.gif |
| 94 | + |
| 95 | + .. grid-item:: |
| 96 | + |
| 97 | + .. image:: /_static/idom-in-jupyterlab.gif |
| 98 | + |
| 99 | + |
| 100 | +Chapter 1 - :ref:`Creating Interfaces` |
| 101 | +-------------------------------------- |
| 102 | + |
| 103 | +... |
| 104 | + |
| 105 | + |
| 106 | +Chapter 2 - :ref:`Adding Interactivity` |
| 107 | +--------------------------------------- |
| 108 | + |
| 109 | +... |
| 110 | + |
| 111 | + |
| 112 | +Chapter 3 - :ref:`Managing State` |
| 113 | +--------------------------------- |
| 114 | + |
| 115 | +... |
| 116 | + |
| 117 | + |
| 118 | +Chapter 4 - :ref:`Escape Hatches` |
| 119 | +--------------------------------- |
| 120 | + |
| 121 | +... |
0 commit comments