Manim DSA
=========

**Manim DSA**, short for *Manim Data Structures & Algorithms*, is a `Manim <https://www.manim.community/>`_ plugin designed to animate common data structures and algorithms.

Installation
------------

To install Manim DSA, you can use ``pip``:

.. code-block:: bash

   pip install manim-dsa

If you don't have Manim installed, please refer to the `official Manim documentation <https://docs.manim.community/en/stable/installation.html>`_ for installation instructions.

Importing
---------

Simply use the following line of code to import the package:

.. code-block:: python

   from manim_dsa import *


Navigating the Documentation
----------------------------

Here are some short summaries for all of the sections in this documentation:

- The :doc:`Example Gallery </examples>` is a collection of examples (rendered videos
  and images together with the code they were generated from) that show how to animate famous algorithms using Manim DSA.
- The :doc:`Guides </guides>` section contains comprehensive guides that provide detailed explanations on how to use each data structure supported by Manim DSA.
- The :doc:`Reference Manual </reference>` contains an exhaustive list of documented modules, classes, and functions available in Manim DSA. Should you require specific information, the search functionality in the sidebar may assist you. Additionally, many entries include illustrative examples to enhance understanding.
- Changes between versions are documented in :doc:`Changelog </changelog>`.

Contributing
------------

Contributions are welcome! Whether it’s reporting a bug, suggesting new features, or submitting pull requests, any help is greatly appreciated.

How to Cite Manim DSA
---------------------

To demonstrate the value of Manim DSA, we ask that you cite Manim DSA in your work. Currently, the best way to cite Manim DSA is to go to the `repository page <https://github.com/F4bbi/manim-dsa>`_ and click the "cite this repository" button on the right sidebar. This will generate a citation in your preferred format, and will also integrate well with citation managers.

For guidance on how to properly cite Manim, please refer to the `Manim GitHub page <https://github.com/ManimCommunity/manim/blob/main/README.md#how-to-cite-manim>`_.

Acknowledgements
----------------

- `Manim Community <https://www.manim.community/>`_: For creating and maintaining the amazing Manim library.
- `drageelr <https://github.com/drageelr/manim-data-structures>`_: For the inspiration behind the array implementation.
- `Verdiana Pasqualini <https://verdianapasqualini.github.io/ManimGraphLibrary>`_: For the inspiration behind the graph implementation.

Index
-----

.. toctree::
   :maxdepth: 2

   examples
   guides
   reference
   changelog