title: Adding a custom themable variable in theme_preprocess_page
body: <p>I have read the docs over and over trying to wrap my head around this seemingly simple task. Basically, I have a template with a 'skip navigation' div hard-coded in html.tpl.php that I <em>do not want</em> on front-page.</p>
  
  <p>My idea was to set a $vars['skiplink'] variable in theme_preprocess_page. Since this variable contains a few lines of html markup, I was aiming for something as seen in garland theme:</p>
  
  <pre><code>function garland_preprocess_page(&amp;$vars) {
    // Move secondary tabs into a separate variable.
    $vars['tabs2'] = array(
     '#theme' =&gt; 'menu_local_tasks',
     '#secondary' =&gt; $vars['tabs']['#secondary'],
    );
  
   &lt;snip&gt;
  </code></pre>
  
  <p>I would like to have the html in a themable function or even a template, but I cannot even get this snippet to work: </p>
  
  <pre><code>/**
   * Override or insert variables into the page template.
   */
  function morin_preprocess_page(&amp;$vars) {
    // add skiplink markup
    $vars['skiplink'] = 'hello world';
   }
  </code></pre>
  
  <p>This generates a notice:</p>
  
  <p><em>Notice : Undefined variable: skiplink in include() (ligne 14 in /var/dev/morin/www/sites/all/themes/morin/templates/html.tpl.php).</em></p>
  
  <p>Can anyone slap me with a clue? I would really like to understand how to do this with both methods, ( template &amp; function ). I'm also wondering if this should be done in a module?</p>
  
  <p>I realise there are probably 10 ways to skin this cat, so any insights on pros/cons of methods used are welcome.</p>
  
  <p>Ok I figured out I was using the wrong preprocess function, setting $vars['skiplink'] in preprocess_html is the way to go for top-level variables.I still have yet to figure out in a clear way how to associate this variable to a template file.</p>