diff options
| author | 2013-11-20 16:58:50 -0300 | |
|---|---|---|
| committer | 2013-11-20 16:58:50 -0300 | |
| commit | ca94afc07df55cb7fc6fe3b4f3011877b7881195 (patch) | |
| tree | d81e1f275aa77545f33740723f307a83dde2e0b4 /nikola/plugins/compile/rest/soundcloud.py | |
| parent | f794eee787e9cde54e6b8f53e45d69c9ddc9936a (diff) | |
Imported Upstream version 6.2.1upstream/6.2.1
Diffstat (limited to 'nikola/plugins/compile/rest/soundcloud.py')
| -rw-r--r-- | nikola/plugins/compile/rest/soundcloud.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/nikola/plugins/compile/rest/soundcloud.py b/nikola/plugins/compile/rest/soundcloud.py new file mode 100644 index 0000000..6fb3e99 --- /dev/null +++ b/nikola/plugins/compile/rest/soundcloud.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + + +from docutils import nodes +from docutils.parsers.rst import Directive, directives + + +from nikola.plugin_categories import RestExtension + + +class Plugin(RestExtension): + + name = "rest_soundcloud" + + def set_site(self, site): + self.site = site + directives.register_directive('soundcloud', SoundCloud) + return super(Plugin, self).set_site(site) + + +CODE = ("""<iframe width="{width}" height="{height}" +scrolling="no" frameborder="no" +src="https://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/""" + """{sid}"> +</iframe>""") + + +class SoundCloud(Directive): + """ Restructured text extension for inserting SoundCloud embedded music + + Usage: + .. soundcloud:: <sound id> + :height: 400 + :width: 600 + + """ + has_content = True + required_arguments = 1 + option_spec = { + 'width': directives.positive_int, + 'height': directives.positive_int, + } + + def run(self): + """ Required by the Directive interface. Create docutils nodes """ + self.check_content() + options = { + 'sid': self.arguments[0], + 'width': 600, + 'height': 160, + } + options.update(self.options) + return [nodes.raw('', CODE.format(**options), format='html')] + + def check_content(self): + """ Emit a deprecation warning if there is content """ + if self.content: + raise self.warning("This directive does not accept content. The " + "'key=value' format for options is deprecated, " + "use ':key: value' instead") |
