title: Running python with html
body: <p>I'm having a hard time doing this.
  Every time when i run the view photo button all it shows is the python script and not the apps itself.</p>
  
  <p>I'm trying to run the Python script below:</p>
  
  <pre><code>from os.path import join, dirname, exists
  from pymt import *
  current_dir = dirname(__file__)
  fontname_title=join(current_dir,'fonts','7.ttf')
  fontname_author_desc=join(current_dir,'fonts','author_desc.ttf')
  
  css='''
  .desktop-background,
  .desktop-coverflow {
  draw-background: 1;
  bg-color: #000000;
  }
  .desktop-author,
  .desktop-description {
  color: #999999;
  }
  .desktop-title {
  font-size: 60;
  }
  '''
  
  
  css_add_sheet(css)
  
  class Desktop(MTBoxLayout):
  layout_def = '''
  &lt;MTBoxLayout orientation='"vertical"' cls='"desktop-background"'&gt;
      &lt;MTCoverFlow size_hint='(1, .7)' cls='"desktop-coverflow"'
          thumbnail_size='(256, 256)' cover_distance='150' id='"coverflow"'/&gt;
      &lt;MTAnchorLayout size_hint='(1, .3)'&gt;
          &lt;MTBoxLayout cls='"form"' padding='20' orientation='"vertical"'&gt;
              &lt;MTLabel id='"title"' label='"Unknown Title"' autosize='True'
                  cls='"desktop-title"' anchor_x='"center"'/&gt;
              &lt;MTLabel id='"author"' label='"Unknown Author"' autosize='True'
                  cls='"desktop-author"' anchor_x='"center"'/&gt;
              &lt;MTLabel id='"description"' label='"Unknown Description"' autosize='True'
                  cls='"desktop-description"' anchor_x='"center"'/&gt;
          &lt;/MTBoxLayout&gt;
      &lt;/MTAnchorLayout&gt;
  &lt;/MTBoxLayout&gt;
  '''
  
  def __init__(self, **kwargs):
      super(Desktop, self).__init__(**kwargs)
      self.xml = xml = XMLWidget(xml=Desktop.layout_def)
      self.xml.autoconnect(self)
      self.add_widget(self.xml.root)
      self.coverflow = xml.getById('coverflow')
      self.title = xml.getById('title')
      self.author = xml.getById('author')
      self.description = xml.getById('description')
      self.title.font_name=fontname_title
      self.author.font_name=fontname_author_desc
      self.description.font_name=fontname_author_desc
      self.populate()
  
  
  
  def populate(self):
      # search plugins
      self.plugins = plugins = MTPlugins(plugin_paths=[
          join(current_dir, 'app')])
      plugins.search_plugins()
  
      # populate the coverflow with plugin list
      first_entry = None
      for key in plugins.list():
          plugin = plugins.get_plugin(key)
          infos = plugins.get_infos(plugin)
  
          icon = None
          for icon_filename in ('icon-large.png', 'icon-large.jpg',
                                infos['icon'], 'icon.png'):
              icon = join(infos['path'], icon_filename)
              if exists(icon):
                  break
              icon = None
  
          # no icon ?
          if icon is None:
              print 'No icon found for', infos['title']
              continue
  
          # create an image button for every plugin
          button = MTImageButton(filename=icon)
          if first_entry is None:
              first_entry = button
          button.infos = infos
          button.plugin = plugin
          self.coverflow.add_widget(button)
  
      # display first entry
      if first_entry:
          self.show_plugin(first_entry)
  
  def on_coverflow_change(self, widget):
      '''Called when the coverflow widget is changed
      '''
      self.show_plugin(widget)
  
  def on_coverflow_select(self, widget):
      '''Called when the coverflow widget have a selection
      '''
      plugin = widget.plugin
      win = self.parent
      self.plugins.activate(plugin, self.parent)
      btn_close = MTImageButton(filename=join(current_dir,'icons','home.png'))
      btn_close.connect('on_release', curry(
              self.on_plugin_close, self.parent, plugin))
      self.parent.add_widget(btn_close)
      self.parent.remove_widget(self)
  
  def on_plugin_close(self, win, plugin, *largs):
      '''Called when the close button is hitted
      '''
      self.plugins.deactivate(plugin, win)
      win.children.clear()
      win.add_widget(self)
  
  def show_plugin(self, widget):
      '''Show information about a plugin in the container
      '''
      self.title.label = widget.infos['title']
      self.author.label = widget.infos['author']
      self.description.label = widget.infos['description']
  
  if __name__ == '__main__':
  runTouchApp(Desktop())`
  </code></pre>
  
  <p>With the button below</p>
  
  <pre><code>&lt;html&gt;
          &lt;div class="art-blockcontent"&gt;
      &lt;p style="text-align: center;"&gt;&lt;img width="176" height="132" alt="" src="images/boat.jpg"&gt;&lt;/p&gt;
  &lt;p style="text-align: center;"&gt;&amp;nbsp;
  &lt;a href="Python\pictures\malacca.py" class="art-button"&gt;View Photo&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;
  &lt;/html&gt;
  </code></pre>