From b0e882e61d6cb9b715f20a924475ce64f7b8a96c Mon Sep 17 00:00:00 2001 From: Eric Reinecke Date: Fri, 26 Nov 2021 16:15:35 -0800 Subject: [PATCH 1/2] Added mdocs.yml and changed documentation root rst to md --- docs/index.md | 21 +++++++++++ docs/index.rst | 100 ------------------------------------------------- mkdocs.yml | 32 ++++++++++++++++ 3 files changed, 53 insertions(+), 100 deletions(-) create mode 100644 docs/index.md delete mode 100644 docs/index.rst create mode 100644 mkdocs.yml diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..2a6df3209d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,21 @@ +Welcome to OpenTimelineIO's documentation! +================================================== + +Overview +-------- + +OpenTimelineIO (OTIO) is an API and interchange format for editorial cut information. You can think +of it as a modern Edit Decision List (EDL) that also includes an API for reading, writing, and +manipulating editorial data. It also includes a plugin system for translating to/from existing +editorial formats as well as a plugin system for linking to proprietary media storage schemas. + +OTIO supports clips, timing, tracks, transitions, markers, metadata, etc. but not embedded video or +audio. Video and audio media are referenced externally. We encourage 3rd party vendors, animation +studios and visual effects studios to work together as a community to provide adaptors for each +video editing tool and pipeline. + +Links +--------- +[OpenTimelineIO Home Page](http://opentimeline.io/) + +[OpenTimelineIO Discussion Group](https://lists.aswf.io/g/otio-discussion) diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index efaaf3a98d..0000000000 --- a/docs/index.rst +++ /dev/null @@ -1,100 +0,0 @@ -Welcome to OpenTimelineIO's documentation! -================================================== - -Overview --------- - -OpenTimelineIO (OTIO) is an API and interchange format for editorial cut information. You can think -of it as a modern Edit Decision List (EDL) that also includes an API for reading, writing, and -manipulating editorial data. It also includes a plugin system for translating to/from existing -editorial formats as well as a plugin system for linking to proprietary media storage schemas. - -OTIO supports clips, timing, tracks, transitions, markers, metadata, etc. but not embedded video or -audio. Video and audio media are referenced externally. We encourage 3rd party vendors, animation -studios and visual effects studios to work together as a community to provide adaptors for each -video editing tool and pipeline. - -Links ---------- -`OpenTimelineIO Home Page `_ - -`OpenTimelineIO Discussion Group `_ - -Quick Start ------------- -.. toctree:: - :maxdepth: 2 - - tutorials/quickstart - tutorials/otio-env-variables - -Tutorials ------------- -.. toctree:: - :maxdepth: 2 - - tutorials/adapters - tutorials/architecture - tutorials/contributing - tutorials/feature-matrix - tutorials/otio-timeline-structure - tutorials/time-ranges - tutorials/otio-filebundles - tutorials/write-an-adapter - tutorials/write-a-media-linker - tutorials/write-a-hookscript - tutorials/write-a-schemadef - tutorials/versioning-schemas - -Use Cases ------------- -.. toctree:: - :maxdepth: 2 - - use-cases/animation-shot-frame-ranges - use-cases/conform-new-renders-into-cut - use-cases/shots-added-removed-from-cut - -API Reference -------------- - -.. toctree:: - :maxdepth: 2 - - api/modules/opentimelineio - -C++ Implementation Reference ----------------------------- - -.. toctree:: - :maxdepth: 2 - - cxx/bridges.md - cxx/cxx.md - cxx/older.md - -Schema Reference ----------------- - -.. toctree:: - :maxdepth: 2 - - tutorials/otio-file-format-specification - tutorials/otio-serialized-schema - tutorials/otio-serialized-schema-only-fields - -Autogenerated Plugin Reference ------------------------------- - -.. toctree:: - :maxdepth: 2 - - tutorials/otio-plugins.md - - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000000..b8700059b5 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,32 @@ +site_name: OpenTimelineIO +site_url: http://opentimeline.io +repo_url: http://github.com/PixarAnimationStudios/OpenTimelineIO +edit_uri: edit/main/docs +repo_name: Edit on GitHub + +markdown_extensions: + - toc: + permalink: true + - attr_list + - admonition + - codehilite + - pymdownx.details + - pymdownx.highlight + - pymdownx.inlinehilite + - pymdownx.superfences + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + +theme: + name: material + features: + - navigation.instant + - navigation.sections + - navigation.tracking + - navigation.tabs + - content.tabs.link From 170a1b19adf17a74ea676313d514b0036f01db1b Mon Sep 17 00:00:00 2001 From: Eric Reinecke Date: Fri, 26 Nov 2021 16:16:17 -0800 Subject: [PATCH 2/2] Some contrived examples of fun things to do with material for mkdocs --- docs/tutorials/architecture.md | 84 ++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 19 deletions(-) diff --git a/docs/tutorials/architecture.md b/docs/tutorials/architecture.md index 4970648230..d4f228d6eb 100644 --- a/docs/tutorials/architecture.md +++ b/docs/tutorials/architecture.md @@ -5,8 +5,26 @@ Overview OpenTimelineIO is an open source library for the interchange of editorial information. This document describes the structure of the python library. -To import the library into python: -`import opentimelineio as otio` +You can import the library using the following: + +=== " :fontawesome-brands-python: python" + + ``` python + import opentimelineio as otio + ``` + +=== " C++" + + ``` c++ + #include + + // This allows using otio:: instead of the long fully qualified namespace + namespace otio = opentimelineio::OPENTIMELINEIO_VERSION; + ``` + + !!! warning + The `opentimelineio.h` header doesn't actually exist, you'll use + the specific headers you need in your code. Canonical Structure -------------------- @@ -39,30 +57,58 @@ The `otio.schema.Clip` objects can reference media through a `otio.schema.Extern Schema composition objects (`otio.schema.Stack` and `otio.schema.Track`) implement the python mutable sequence API. A simple script that prints out each shot might look like: +=== "python" -```python -import opentimelineio as otio + ```python + import opentimelineio as otio -# read the timeline into memory -tl = otio.adapters.read_from_file("my_file.otio") + # read the timeline into memory + tl = otio.adapters.read_from_file("my_file.otio") -for each_seq in tl.tracks: - for each_item in each_seq: - if isinstance(each_item, otio.schema.Clip): - print each_item.media_reference -``` + for each_seq in tl.tracks: + for each_item in each_seq: + if isinstance(each_item, otio.schema.Clip): + print each_item.media_reference + ``` -Or, in the case of a nested composition, like this: +=== "C++" -```python -import opentimelineio as otio + ``` c++ + #include + #include + #include -# read the timeline into memory -tl = otio.adapters.read_from_file("my_file.otio") + #include -for clip in tl.each_clip(): - print clip.media_reference -``` + namespace otio = opentimelineio::OPENTIMELINEIO_VERSION; + + otio::ErrorStatus error_status; + otio::SerializableObject::Retainer timeline( + dynamic_cast(otio::Timeline::from_json_file("my_file.otio", &error_status))); + if (!timeline || otio::is_error(error_status)) + { + + std::cout << "error reading timeline"; + exit(1); + } + otio::ErrorStatus error_status; + const auto clips = timeline->clip_if(&error_status); + if (otio::is_error(error_status)) + { + std::cout << "error iterating clips"; + exit(1); + } + + for (const otio::SerializableObject::Retainer& clip : clips) + { + // This doesn't work, just an example + cout << clip->media_reference(); + } + + ``` + +!!! note + Custom schema can also be implemented, for more information look [here](about:blank). ## Time on otio.schema.Clip