Here is a video I like:
.. youtube:: I2Q35uFCq8Q
Neat, huh?
Here is a video I like:
.. youtube:: I2Q35uFCq8Q
Neat, huh?
| from docutils import nodes | |
| from docutils.parsers.rst import Directive | |
| class youtube(nodes.General, nodes.Element): | |
| pass | |
| def html_visit_youtube(self, node): | |
| self.body.append(f'<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{node["video_id"]}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>') | |
| raise nodes.SkipNode() | |
| class YoutubeDirective(Directive): | |
| required_arguments = 1 | |
| def run(self): | |
| video_id, = self.arguments | |
| return[youtube('', video_id=video_id)] | |
| def setup(app): | |
| app.add_node(youtube, html=(html_visit_youtube, None)) | |
| app.add_directive("youtube", YoutubeDirective) | |
| return { | |
| "version": "0.1", | |
| "parallel_read_safe": True, | |
| "parallel_write_safe": True, | |
| } |