Switching docs highlighting to highlight.js .. Docs build super fast again!
authorspf13 <steve.francia@gmail.com>
Thu, 15 May 2014 13:58:55 +0000 (09:58 -0400)
committerspf13 <steve.francia@gmail.com>
Thu, 15 May 2014 13:58:55 +0000 (09:58 -0400)
23 files changed:
docs/archetypes/default.md
docs/content/content/example.md
docs/content/content/front-matter.md
docs/content/content/ordering.md
docs/content/content/types.md
docs/content/extras/aliases.md
docs/content/extras/highlighting.md
docs/content/extras/shortcodes.md
docs/content/extras/toc.md
docs/content/layout/chrome.md
docs/content/layout/homepage.md
docs/content/layout/indexes.md
docs/content/layout/rss.md
docs/content/layout/sitemap.md
docs/content/layout/views.md
docs/content/overview/configuration.md
docs/content/overview/usage.md
docs/content/tutorials/github_pages_blog.md
docs/content/tutorials/mathjax.md
docs/content/tutorials/migrate-from-jekyll.md
docs/layouts/chrome/includes.html
docs/static/static/css/monokai_sublime.css [new file with mode: 0644]
docs/static/static/js/highlight.pack.js [new file with mode: 0644]

index d83d984457e51c72bc943c02828a43f1436b6b15..6d6497c4d3a287685d682aab188fe2f296df4674 100644 (file)
@@ -1,6 +1,4 @@
 +++
-date = "2013-07-01"
-title = "Title of the Content"
 weight = 5
 [menu]
   [menu.main]
index 03487f4c5f8c1ad94187245eb8ab78b883490554..2fc070151a8497888d85f4b3b1a0a47aabd64fa2 100644 (file)
@@ -14,35 +14,33 @@ Somethings are better shown than explained. The following is a very basic exampl
 
 **mysite/project/nitro.md  <- http://mysite.com/project/nitro.html**
 
-{{% highlight yaml %}}
----
-Title:       "Nitro : A quick and simple profiler for Go"
-Description: "Nitro is a simple profiler for you go lang applications"
-Tags:        [ "Development", "Go", "profiling" ]
-date:        "2013-06-19"
-Topics:      [ "Development", "Go" ]
-Slug:        "nitro"
-project_url: "http://github.com/spf13/nitro"
----
+    ---
+    Title:       "Nitro : A quick and simple profiler for Go"
+    Description: "Nitro is a simple profiler for you go lang applications"
+    Tags:        [ "Development", "Go", "profiling" ]
+    date:        "2013-06-19"
+    Topics:      [ "Development", "Go" ]
+    Slug:        "nitro"
+    project_url: "http://github.com/spf13/nitro"
+    ---
 
-# Nitro
+    # Nitro
 
-Quick and easy performance analyzer library for Go.
+    Quick and easy performance analyzer library for Go.
 
-## Overview
+    ## Overview
 
-Nitro is a quick and easy performance analyzer library for Go.
-It is useful for comparing A/B against different drafts of functions
-or different functions.
+    Nitro is a quick and easy performance analyzer library for Go.
+    It is useful for comparing A/B against different drafts of functions
+    or different functions.
 
-## Implementing Nitro
+    ## Implementing Nitro
 
-Using Nitro is simple. First use go get to install the latest version
-of the library.
+    Using Nitro is simple. First use go get to install the latest version
+    of the library.
 
-    $ go get github.com/spf13/nitro
+        $ go get github.com/spf13/nitro
 
-Next include nitro in your application.
+    Next include nitro in your application.
 
-{{% /highlight %}}
 
index fd600f72046afdccfb0871c236152fb8232af492..e67dafd98c422c6e9c2c4e5c8964961159ea7b1f 100644 (file)
@@ -19,53 +19,47 @@ Supported formats: <br>
 
 ### YAML Example
 
-{{% highlight yaml %}}
----
-title: "spf13-vim 3.0 release and new website"
-description: "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
-tags: [ ".vimrc", "plugins", "spf13-vim", "vim" ]
-date: "2012-04-06"
-categories:
-  - "Development"
-  - "VIM"
-slug: "spf13-vim-3-0-release-and-new-website"
----
-Content of the file goes Here
-{{% /highlight %}}
+    ---
+    title: "spf13-vim 3.0 release and new website"
+    description: "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
+    tags: [ ".vimrc", "plugins", "spf13-vim", "vim" ]
+    date: "2012-04-06"
+    categories:
+      - "Development"
+      - "VIM"
+    slug: "spf13-vim-3-0-release-and-new-website"
+    ---
+    Content of the file goes Here
 
 ### TOML Example
 
-{{% highlight yaml %}}
-+++
-title = "spf13-vim 3.0 release and new website"
-description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
-tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
-date = "2012-04-06"
-categories = [
-  "Development",
-  "VIM"
-]
-slug = "spf13-vim-3-0-release-and-new-website"
-+++
-Content of the file goes Here
-{{% /highlight %}}
+    +++
+    title = "spf13-vim 3.0 release and new website"
+    description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
+    tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
+    date = "2012-04-06"
+    categories = [
+      "Development",
+      "VIM"
+    ]
+    slug = "spf13-vim-3-0-release-and-new-website"
+    +++
+    Content of the file goes Here
 
 ### JSON Example
 
-{{% highlight json %}}
-{
-    "title": "spf13-vim 3.0 release and new website",
-    "description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
-    "tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ],
-    "date": "2012-04-06",
-    "categories": [
-        "Development",
-        "VIM"
-    ],
-    "slug": "spf13-vim-3-0-release-and-new-website",
-}
-Content of the file goes Here
-{{% /highlight %}}
+    {
+        "title": "spf13-vim 3.0 release and new website",
+        "description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
+        "tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ],
+        "date": "2012-04-06",
+        "categories": [
+            "Development",
+            "VIM"
+        ],
+        "slug": "spf13-vim-3-0-release-and-new-website",
+    }
+    Content of the file goes Here
 
 ## Variables
 
index 93a66441d93ce6ec4745f35c31c3415928c69365..926a539fd0fb16422aae6a1a1880021d69e522d0 100644 (file)
@@ -10,13 +10,15 @@ weight: 60
 
 In Hugo you have a good degree of control of how your content can be ordered.
 
-By default, content is ordered by weight, then by date with the most recent date first, but alternative sorting (by title and linktitle) is also available.
+By default, content is ordered by weight, then by date with the most recent
+date first, but alternative sorting (by title and linktitle) is also available.
 
 _Both the date and weight fields are optional._
 
-Unweighted pages appear at the end of the list.
-If no weights are provided (or if weights are the same) date will be used to sort. If neither are provided
-content will be ordered based on how it's read off the disk and no order is guaranteed.
+Unweighted pages appear at the end of the list. If no weights are provided (or
+if weights are the same) date will be used to sort. If neither are provided
+content will be ordered based on how it's read off the disk and no order is
+guaranteed.
 
 ## Assigning Weight to content
 
@@ -29,81 +31,67 @@ content will be ordered based on how it's read off the disk and no order is guar
 
 ## Order by Weight -> Date (default)
 
-{{% highlight html %}}
-{{ range .Data.Pages }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Order by Weight -> Date
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByWeight }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByWeight }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Order by Date
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByDate }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByDate }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Order by Length
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByLength }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByLength }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Reverse Order
 Can be applied to any of the above. Using Date for an example.
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByDate.Reverse }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByDate.Reverse }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Order by Title
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByTitle }}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByTitle }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 ## Order by LinkTitle
 
-{{% highlight html %}}
-{{ range .Data.Pages.ByLinkTitle }}
-<li>
-<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{ end }}
-{{% /highlight %}}
+    {{ range .Data.Pages.ByLinkTitle }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
 
 
 ## Ordering Content Within Indexes
index 72291d43ac6a5f78e0d1fe360fae8a04eda49685..0448e02674a7352456ce0d5365e9399ba13b2dbf 100644 (file)
@@ -13,7 +13,6 @@ of meta data and template. A good example of when multiple types are
 needed is to look at Tumblr. A piece of content could be a photo, quote
 or post, each with different meta data and rendered differently.
 
-
 ## Defining a content type
 
 Creating a new content type is easy in Hugo. You simply provide the
@@ -49,6 +48,3 @@ this then each new piece of content you place into a section will automatically
 inherit the type.
 
 Alternatively you can set the type in the meta data under the key "type".
-
-
-
index f96740018b569605a7e16f338db7d7c2a5c17bef..c2d6eb01cb149105d5f709d29c520bcf267437b2 100644 (file)
@@ -18,13 +18,12 @@ Luckily, this can be handled easily with aliases in Hugo.
 
 ## Example
 **content/posts/my-awesome-blog-post.md**
-{{% highlight yaml %}}
----
-aliases:
-    - /posts/my-original-url/
-    - /2010/even-earlier-url.html
----
-{{% /highlight %}}
+
+    ---
+    aliases:
+        - /posts/my-original-url/
+        - /2010/even-earlier-url.html
+    ---
 
 Now when you go to any of the aliases locations they
 will redirect to the page.
index 0f82202bcb3fffa26a11d3b242c3fa0fb1e37d09..6183ee429d630599172d29416f2e9ed496118542 100644 (file)
@@ -24,8 +24,7 @@ silently simply pass the content along unhighlighted.
 
 ### Disclaimers
 
- * **Warning** pygments is relatively slow and our integration isn't
-as optimized as it could be. Expect much longer build times when using server side highlighting.
+ * **Warning** pygments is relatively slow. Expect much longer build times when using server side highlighting.
  * Languages available depends on your pygments installation.
  * Styles are inline in order to be supported in syndicated content when references
 to style sheets are not carried over.
@@ -40,8 +39,9 @@ Highlight takes exactly one required parameter of language and requires a
 closing shortcode.
 
 ### Example
-{{% highlight html %}}
-    {{&#37; highlight html %}}
+The example has an extra space between the “{{” and “%” characters to prevent rendering here.
+
+    {{ % highlight html %}}
     <section id="main">
       <div>
        <h1 id="title">{{ .Title }}</h1>
@@ -50,22 +50,19 @@ closing shortcode.
         {{ end }}
       </div>
     </section>
-    {{&#37; /highlight %}}
-{{% /highlight %}}
+    {{ % /highlight %}}
 
 
 ### Example Output
 
-{{% highlight html %}}
-<span style="color: #f92672">&lt;section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;main&quot;</span><span style="color: #f92672">&gt;</span>
-  <span style="color: #f92672">&lt;div&gt;</span>
-   <span style="color: #f92672">&lt;h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;title&quot;</span><span style="color: #f92672">&gt;</span>{{ .Title }}<span style="color: #f92672">&lt;/h1&gt;</span>
-    {{ range .Data.Pages }}
-        {{ .Render &quot;summary&quot;}}
-    {{ end }}
-  <span style="color: #f92672">&lt;/div&gt;</span>
-<span style="color: #f92672">&lt;/section&gt;</span>
-{{% /highlight %}}
+    <span style="color: #f92672">&lt;section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;main&quot;</span><span style="color: #f92672">&gt;</span>
+      <span style="color: #f92672">&lt;div&gt;</span>
+       <span style="color: #f92672">&lt;h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;title&quot;</span><span style="color: #f92672">&gt;</span>{{ .Title }}<span style="color: #f92672">&lt;/h1&gt;</span>
+        {{ range .Data.Pages }}
+            {{ .Render &quot;summary&quot;}}
+        {{ end }}
+      <span style="color: #f92672">&lt;/div&gt;</span>
+    <span style="color: #f92672">&lt;/section&gt;</span>
 
 ## Client-side
 
@@ -74,10 +71,10 @@ Alternatively, code highlighting can be done in client-side JavaScript.
 Client-side syntax highlighting is very simple to add. You'll need to pick
 a library and a corresponding theme. Some popular libraries are:
 
+- [Highlight.js]
 - [Rainbow]
 - [Syntax Highlighter]
 - [Google Prettify]
-- [Highlight.js]
 
 This example uses the popular [Highlight.js] library, hosted by [Yandex], a
 popular Russian search engine.
@@ -86,17 +83,15 @@ In your `./layouts/chrome/` folder, depending on your specific theme, there
 will be a snippet that will be included in every generated HTML page, such
 as `header.html` or `header.includes.html`. Simply add:
 
-{{% highlight html %}}
-  <link rel="stylesheet" href="https://yandex.st/highlightjs/8.0/styles/default.min.css">
-  <script src="https://yandex.st/highlightjs/8.0/highlight.min.js"></script>
-{{% /highlight %}}
+    <link rel="stylesheet" href="https://yandex.st/highlightjs/8.0/styles/default.min.css">
+    <script src="https://yandex.st/highlightjs/8.0/highlight.min.js"></script>
 
 You can of course use your own copy of these files, typically in `./static/`.
 
+[Highlight.js]: http://highlightjs.org/
 [Rainbow]: http://craig.is/making/rainbows
 [Syntax Highlighter]: http://alexgorbatchev.com/SyntaxHighlighter/
 [Google Prettify]: https://code.google.com/p/google-code-prettify/
 [Yandex]: http://yandex.ru/
-[Highlight.js]: http://highlightjs.org/
 
 Please see individual libraries documentation for how to implement the JavaScript based libraries.
index fa26f4d0a3766180c90036b776143830dcb5956c..a72b4b5352cf20577d671948dc6ecbcd9e588d6f 100644 (file)
@@ -37,7 +37,8 @@ Some shortcodes use or require closing shortcodes. Like HTML, the opening and cl
 shortcodes match (name only), the closing being prepended with a slash.
 
 Example of a paired shortcode:
-{{&#37; highlight go %}} A bunch of code here {{&#37; /highlight %}} 
+
+    {{ % highlight go %}} A bunch of code here {{ % /highlight %}} 
 
 
 ## Hugo Shortcodes
@@ -54,8 +55,9 @@ Highlight takes exactly one required parameter of language and requires a
 closing shortcode.
 
 #### Example
-{{% highlight html %}}
-    {{&#37; highlight html %}}
+The example has an extra space between the “{{” and “%” characters to prevent rendering here.
+
+    {{ % highlight html %}}
     <section id="main">
       <div>
        <h1 id="title">{{ .Title }}</h1>
@@ -64,13 +66,11 @@ closing shortcode.
         {{ end }}
       </div>
     </section>
-    {{&#37; /highlight %}}
-{{% /highlight %}}
+    {{ % /highlight %}}
 
 
 #### Example Output
 
-{{% highlight html %}}
     <span style="color: #f92672">&lt;section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;main&quot;</span><span style="color: #f92672">&gt;</span>
       <span style="color: #f92672">&lt;div&gt;</span>
        <span style="color: #f92672">&lt;h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;title&quot;</span><span style="color: #f92672">&gt;</span>{{ .Title }}<span style="color: #f92672">&lt;/h1&gt;</span>
@@ -79,7 +79,6 @@ closing shortcode.
         {{ end }}
       <span style="color: #f92672">&lt;/div&gt;</span>
     <span style="color: #f92672">&lt;/section&gt;</span>
-{{% /highlight %}}
 
 ### figure
 Figure is simply an extension of the image capabilities present with Markdown.
@@ -98,16 +97,18 @@ figure can use the following parameters
  * alt
 
 #### Example
+*Example has an extra space so Hugo doesn't actually render it*.
 
-{{% highlight html %}}
-    {{&#37; figure src="/media/spf13.jpg" title="Steve Francia" %}}
-{{% /highlight %}}
+    {{ % figure src="/media/spf13.jpg" title="Steve Francia" %}}
 
 #### Example output
 
-{{% highlight html %}}
-
-{{% /highlight %}}
+    <figure>
+        <img src="/media/spf13.jpg"  />
+        <figcaption>
+            <h4>Steve Francia</h4>
+        </figcaption>
+    </figure>
 
 ## Creating your own shortcodes
 
@@ -173,6 +174,7 @@ This would be rendered as
     {{ % img src="/media/spf13.jpg" title="Steve Francia" %}}
 
 Would load the template /layouts/shortcodes/img.html
+
     <!-- image -->
     <figure {{ with .Get "class" }}class="{{.}}"{{ end }}>
         {{ with .Get "link"}}<a href="{{.}}">{{ end }}
@@ -206,11 +208,9 @@ Would be rendered as:
 
 *Example has an extra space so Hugo doesn't actually render it*.
 
-    {{% highlight html %}}
     <html>
         <body> This HTML </body>
     </html>
-    {{% /highlight %}}
 
 The template for this utilizes the following code (already include in hugo)
     {{ .Get 0 | highlight .Inner  }}
index 3b0b1a84defebe76eff74d14d4c187702f395c01..bac221c6811fa067b332b08bfd6f2847a0dde64c 100644 (file)
@@ -9,12 +9,12 @@ menu:
 
 Hugo will automatically parse the markdown for your content and create
 a Table of Contents you can use to guide readers to the sections within
-your content. 
+your content.
 
 ## Usage
 
 Simply create content like you normally would with the appropriate
-headers. 
+headers.
 
 Hugo will take this markdown and create a table of contents stored in the
 [content variable](/layout/variables) .TableOfContents
index 3b903c860d4f2be2b6c712b47b3421c1297c36df..9c586d0a2c10ee9e2bbf39052b504253eee60cac 100644 (file)
@@ -32,56 +32,51 @@ used for both nodes and pages we can use the same chrome for both.
 ## example header.html
 This header template is used for [spf13.com](http://spf13.com).
 
-{{% highlight html %}}
-<!DOCTYPE html>
-<html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
-<head>
-    <meta charset="utf-8">
+    <!DOCTYPE html>
+    <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
+    <head>
+        <meta charset="utf-8">
 
-    {{ template "chrome/meta.html" . }}
+        {{ template "chrome/meta.html" . }}
 
-    <base href="{{ .Site.BaseUrl }}">
-    <title> {{ .Title }} : spf13.com </title>
-    <link rel="canonical" href="{{ .Permalink }}">
-    {{ if .RSSlink }}<link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Title }}" />{{ end }}
-
-    {{ template "chrome/head_includes.html" . }}
-</head>
-<body lang="en">
-{{% /highlight %}}
+        <base href="{{ .Site.BaseUrl }}">
+        <title> {{ .Title }} : spf13.com </title>
+        <link rel="canonical" href="{{ .Permalink }}">
+        {{ if .RSSlink }}<link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Title }}" />{{ end }}
 
+        {{ template "chrome/head_includes.html" . }}
+    </head>
+    <body lang="en">
 
 ## example footer.html
 This header template is used for [spf13.com](http://spf13.com).
 
-{{% highlight html %}}
-<footer>
-  <div>
-    <p>
-    &copy; 2013 Steve Francia.
-    <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons Attribution">Some rights reserved</a>; 
-    please attribute properly and link back. Hosted by <a href="http://servergrove.com">ServerGrove</a>.
-    </p>
-  </div>
-</footer>
-<script type="text/javascript">
-
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-XYSYXYSY-X']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script');
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
-        'http://www') + '.google-analytics.com/ga.js';
-    ga.setAttribute('async', 'true');
-    document.documentElement.firstChild.appendChild(ga);
-  })();
-
-</script>
-</body>
-</html>
-{{% /highlight %}}
+    <footer>
+      <div>
+        <p>
+        &copy; 2013 Steve Francia.
+        <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons Attribution">Some rights reserved</a>; 
+        please attribute properly and link back. Hosted by <a href="http://servergrove.com">ServerGrove</a>.
+        </p>
+      </div>
+    </footer>
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-XYSYXYSY-X']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script');
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
+            'http://www') + '.google-analytics.com/ga.js';
+        ga.setAttribute('async', 'true');
+        document.documentElement.firstChild.appendChild(ga);
+      })();
+
+    </script>
+    </body>
+    </html>
 
 **For examples of referencing these templates, see [content
 templates](/layout/content/) and [homepage templates](/layout/homepage/)**
index 313814da0cb514f86840784d9e04d76d8ce09515..175aef29347fbf26fc47a9b51043ae235e2b540a 100644 (file)
@@ -28,32 +28,30 @@ This content template is used for [spf13.com](http://spf13.com).
 
 It makes use of [chrome templates](/layout/chrome) and uses a [List](/indexes/lists/)
 
-{{% highlight html %}}
-<!DOCTYPE html>
-<html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
-<head>
-    <meta charset="utf-8">
-
-    {{ template "chrome/meta.html" . }}
-
-    <base href="{{ .Site.BaseUrl }}">
-    <title>{{ .Site.Title }}</title>
-    <link rel="canonical" href="{{ .Permalink }}">
-    <link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}" />
-
-    {{ template "chrome/head_includes.html" . }}
-</head>
-<body lang="en">
-
-{{ template "chrome/subheader.html" . }}
-
-<section id="main">
-  <div>
-    {{ range first 10 .Data.Pages }}
-        {{ .Render "summary"}}
-    {{ end }}
-  </div>
-</section>
-
-{{ template "chrome/footer.html" }}
-{{% /highlight %}}
+    <!DOCTYPE html>
+    <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
+    <head>
+        <meta charset="utf-8">
+
+        {{ template "chrome/meta.html" . }}
+
+        <base href="{{ .Site.BaseUrl }}">
+        <title>{{ .Site.Title }}</title>
+        <link rel="canonical" href="{{ .Permalink }}">
+        <link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}" />
+
+        {{ template "chrome/head_includes.html" . }}
+    </head>
+    <body lang="en">
+
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+        {{ range first 10 .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
index 6dfe87c36f971f02497ef84c99828e0543064929..36f2330f62a72a079cf09fa0a5ba91319bb7cbf2 100644 (file)
@@ -45,23 +45,21 @@ It makes use of [chrome templates](/layout/chrome). All examples use a
 [view](/layout/views/) called either "li" or "summary" which this example site
 defined.
 
-{{% highlight html %}}
-{{ template "chrome/header.html" . }}
-{{ template "chrome/subheader.html" . }}
-
-<section id="main">
-  <div>
-   <h1 id="title">{{ .Title }}</h1>
-        <ul id="list">
-            {{ range .Data.Pages }}
-                {{ .Render "li"}}
-            {{ end }}
-        </ul>
-  </div>
-</section>
-
-{{ template "chrome/footer.html" }}
-{{% /highlight %}}
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+            <ul id="list">
+                {{ range .Data.Pages }}
+                    {{ .Render "li"}}
+                {{ end }}
+            </ul>
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
 
 ## Example index template (tag.html)
 This content template is used for [spf13.com](http://spf13.com).
@@ -69,21 +67,19 @@ It makes use of [chrome templates](/layout/chrome). All examples use a
 [view](/layout/views/) called either "li" or "summary" which this example site
 defined.
 
-{{% highlight html %}}
-{{ template "chrome/header.html" . }}
-{{ template "chrome/subheader.html" . }}
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
 
-<section id="main">
-  <div>
-   <h1 id="title">{{ .Title }}</h1>
-    {{ range .Data.Pages }}
-        {{ .Render "summary"}}
-    {{ end }}
-  </div>
-</section>
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
 
-{{ template "chrome/footer.html" }}
-{{% /highlight %}}
+    {{ template "chrome/footer.html" }}
 
 ## Example listing of indexes template (indexes.html)
 This content template is used for [spf13.com](http://spf13.com).
@@ -100,31 +96,29 @@ the latter uses .Data.OrderedIndex. .Data.Index is alphabetical by key name, whi
 .Data.Orderedindex is ordered by the quantity of content assigned to that particular
 index key.  In practice you would only use one of these approaches.
 
-{{% highlight html %}}
-{{ template "chrome/header.html" . }}
-{{ template "chrome/subheader.html" . }}
-
-<section id="main">
-  <div>
-   <h1 id="title">{{ .Title }}</h1>
-
-   <ul>
-   {{ $data := .Data }}
-    {{ range $key, $value := .Data.Index }}
-    <li><a href="{{ $data.Plural }}/{{ $key | urlize }}"> {{ $key }} </a> {{ len $value }} </li>
-    {{ end }}
-   </ul>
-  </div>
-
-   <ul>
-    {{ range $data.OrderedIndex }}
-    <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
-    {{ end }}
-   </ul>
-</section>
-
-{{ template "chrome/footer.html" }}
-{{% /highlight %}}
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+
+       <ul>
+       {{ $data := .Data }}
+        {{ range $key, $value := .Data.Index }}
+        <li><a href="{{ $data.Plural }}/{{ $key | urlize }}"> {{ $key }} </a> {{ len $value }} </li>
+        {{ end }}
+       </ul>
+      </div>
+
+       <ul>
+        {{ range $data.OrderedIndex }}
+        <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
+        {{ end }}
+       </ul>
+    </section>
+
+    {{ template "chrome/footer.html" }}
 
 
 
index 876da3d0b0de72af895c700cf25ad59a57f03f17..fa15a60d48a4345472386f7c298322804b32b1cf 100644 (file)
@@ -24,28 +24,26 @@ all site content accessible from .Data.Pages
 This rss template is used for [spf13.com](http://spf13.com). It adheres to the
 ATOM 2.0 Spec.
 
-{{% highlight xml %}}
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
-  <channel>
-      <title>{{ .Title }} on {{ .Site.Title }} </title>
-    <link>{{ .Permalink }}</link>
-    <language>en-us</language>
-    <author>Steve Francia</author>
-    <rights>Copyright (c) 2008 - 2013, Steve Francia; all rights reserved.</rights>
-    <updated>{{ .Date }}</updated>
-    {{ range .Data.Pages }}
-    <item>
-      <title>{{ .Title }}</title>
-      <link>{{ .Permalink }}</link>
-      <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>
-      <author>Steve Francia</author>
-      <guid>{{ .Permalink }}</guid>
-      <description>{{ .Content | html }}</description>
-    </item>
-    {{ end }}
-  </channel>
-</rss>
-{{% /highlight %}}
+    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+      <channel>
+          <title>{{ .Title }} on {{ .Site.Title }} </title>
+        <link>{{ .Permalink }}</link>
+        <language>en-us</language>
+        <author>Steve Francia</author>
+        <rights>Copyright (c) 2008 - 2013, Steve Francia; all rights reserved.</rights>
+        <updated>{{ .Date }}</updated>
+        {{ range .Data.Pages }}
+        <item>
+          <title>{{ .Title }}</title>
+          <link>{{ .Permalink }}</link>
+          <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>
+          <author>Steve Francia</author>
+          <guid>{{ .Permalink }}</guid>
+          <description>{{ .Content | html }}</description>
+        </item>
+        {{ end }}
+      </channel>
+    </rss>
 
 *Important: Hugo will automatically add the following header line to this file
 on render...please don't include this in the template as it's not valid HTML.*
index b2cf151a3cbc90c9da78651a66490d72cc179632..756ea22aa9366281d3f0cc9e31b28ac8d2a9be28 100644 (file)
@@ -28,18 +28,16 @@ site pages through `.Data.Pages`.
 This template respects the version 0.9 of the [Sitemap
 Protocol](http://www.sitemaps.org/protocol.html).
 
-{{% highlight xml %}}
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-  {{ range .Data.Pages }}
-  <url>
-    <loc>{{ .Permalink }}</loc>
-    <lastmod>{{ safeHtml ( .Date.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ with .Sitemap.ChangeFreq }}
-    <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
-    <priority>{{ .Sitemap.Priority }}</priority>{{ end }}
-  </url>
-  {{ end }}
-</urlset>
-{{% /highlight %}}
+    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+      {{ range .Data.Pages }}
+      <url>
+        <loc>{{ .Permalink }}</loc>
+        <lastmod>{{ safeHtml ( .Date.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ with .Sitemap.ChangeFreq }}
+        <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
+        <priority>{{ .Sitemap.Priority }}</priority>{{ end }}
+      </url>
+      {{ end }}
+    </urlset>
 
 *Important: Hugo will automatically add the following header line to this file
 on render...please don't include this in the template as it's not valid HTML.*
index 43391c782de9c76fb3c345e2184d4db5e2968a1c..22b4e9568d67df0ae6498cbecfd5bb520191f322 100644 (file)
@@ -45,44 +45,38 @@ variables](/layout/variables) for a complete list.
 ## Example li.html
 This content template is used for [spf13.com](http://spf13.com).
 
-{{% highlight html %}}
-<li>
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-</li>
-{{% /highlight %}}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
 
 ## Example summary.html
 This content template is used for [spf13.com](http://spf13.com).
 
-{{% highlight html %}}
-<article class="post">
-<header>
-<h2><a href='{{ .Permalink }}'> {{ .Title }}</a> </h2>
-<div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} Words </div>
-</header>
+    <article class="post">
+    <header>
+    <h2><a href='{{ .Permalink }}'> {{ .Title }}</a> </h2>
+    <div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} Words </div>
+    </header>
 
-{{ .Summary }}
-<footer>
-<a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
-</footer>
-</article>
-{{% /highlight %}}
+    {{ .Summary }}
+    <footer>
+    <a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
+    </footer>
+    </article>
 
 
 ## Example render of view
 Using the summary view inside of another ([index](/layout/index)) template.
 
-{{% highlight html %}}
-<section id="main">
-<div>
-<h1 id="title">{{ .Title }}</h1>
-{{ range .Data.Pages }}
-{{ .Render "summary"}}
-{{ end }}
-</div>
-</section>
-{{% /highlight %}}
+    <section id="main">
+    <div>
+    <h1 id="title">{{ .Title }}</h1>
+    {{ range .Data.Pages }}
+    {{ .Render "summary"}}
+    {{ end }}
+    </div>
+    </section>
 
 In the above example you will notice that we have called .Render and passed in
 which view to render the content with. Render is a special function available on
index 46c5190a3b20c11e7b81d90d6f5207b384d3f63c..27eb2098b4758414c8f7e49f7de589db67f4f503 100644 (file)
@@ -23,36 +23,33 @@ then look for a `config.json` file, followed by a `config.toml` file.
 ## Examples
 
 The following is an example of a yaml config file with the default values:
-{{% highlight yaml %}}
----
-contentdir: "content"
-layoutdir: "layouts"
-publishdir: "public"
-builddrafts: false
-indexes:
-   category: "categories"
-   tag: "tags"
-baseurl: "http://yoursite.example.com/"
-canonifyurls: true
-...
-{{% /highlight %}}
+
+    ---
+    contentdir: "content"
+    layoutdir: "layouts"
+    publishdir: "public"
+    builddrafts: false
+    indexes:
+       category: "categories"
+       tag: "tags"
+    baseurl: "http://yoursite.example.com/"
+    canonifyurls: true
+    ...
 
 The following is an example of a json config file with the default values:
 
-{{% highlight json %}}
-{
-    "contentdir": "content",
-    "layoutdir": "layouts",
-    "publishdir": "public",
-    "builddrafts": false,
-    "indexes": {
-       "category": "categories",
-       "tag": "tags"
-    },
-    "baseurl": "http://yoursite.example.com/",
-    "canonifyurls": true
-}
-{{% /highlight %}}
+    {
+        "contentdir": "content",
+        "layoutdir": "layouts",
+        "publishdir": "public",
+        "builddrafts": false,
+        "indexes": {
+           "category": "categories",
+           "tag": "tags"
+        },
+        "baseurl": "http://yoursite.example.com/",
+        "canonifyurls": true
+    }
 
 The following is an example of a toml config file with the default values:
 
@@ -68,19 +65,17 @@ The following is an example of a toml config file with the default values:
 
 Here is a yaml configuration file which sets a few more options
 
-{{% highlight yaml %}}
----
-baseurl: "http://yoursite.example.com/"
-title: "Yoyodyne Widget Blogging"
-permalinks:
-  post: /:year/:month/:title/
-params:
-  Subtitle: "Spinning the cogs in the widgets"
-  AuthorName: "John Doe"
-  GitHubUser: "spf13"
-  ListOfFoo:
-    - "foo1"
-    - "foo2"
-  SidebarRecentLimit: 5
-...
-{{% /highlight %}}
+    ---
+    baseurl: "http://yoursite.example.com/"
+    title: "Yoyodyne Widget Blogging"
+    permalinks:
+      post: /:year/:month/:title/
+    params:
+      Subtitle: "Spinning the cogs in the widgets"
+      AuthorName: "John Doe"
+      GitHubUser: "spf13"
+      ListOfFoo:
+        - "foo1"
+        - "foo2"
+      SidebarRecentLimit: 5
+    ...
index 1933f94080e0b71ba5f209044a1e2c225f93f128..4405f68d16a4fe8a0c6b8e1f1c21765ca506928f 100644 (file)
@@ -63,7 +63,7 @@ your browser to view the changes.**
     $ hugo -s ~/mysite --watch
        28 pages created
        0 tags index created
-       in 38 ms
+       in 18 ms
        Watching for changes in /Users/spf13/Code/hugo/docs/content
        Press ctrl+c to stop
 
@@ -75,5 +75,5 @@ Hugo can even run a server and create your site at the same time!
        Press ctrl+c to stop
        28 pages created
        0 tags created
-       in 28 ms
+       in 18 ms
 
index b9d77919cad57a81434d5b84e03d078001cad2a2..f2615408ef4a12a740f1f10fd39c3b8543ecdd64 100644 (file)
@@ -24,17 +24,15 @@ As our goal is to host a website using GitHub pages, it is natural for us to hos
 
 The very first step in creating a new Hugo site is to [write the config file](/overview/configuration). This config file is important for at least two reasons: (1) this is where site-wide settings (like the websites `baseurl`) go and (2) the config file dictates to some extent how Hugo will generate the website. For the example website I created a file `config.yaml` with the following contents
 
-{{% highlight yaml %}}
----
-contentdir: "content"
-layoutdir: "layouts"
-publishdir: "public"
-indexes:
-  category: "categories"
-baseurl: "http://spencerlyon2.github.io/hugo_gh_blog"
-title: "Hugo Blog Template for GitHub Pages"
-...
-{{% /highlight %}}
+    ---
+    contentdir: "content"
+    layoutdir: "layouts"
+    publishdir: "public"
+    indexes:
+      category: "categories"
+    baseurl: "http://spencerlyon2.github.io/hugo_gh_blog"
+    title: "Hugo Blog Template for GitHub Pages"
+    ...
 
 ### Define Structure of Website
 
@@ -82,17 +80,15 @@ Each of the files in the example repository is well commented with a description
 
 The final step in creating the blog is to add some actual blog posts. To do this simply create one markdown file (with extension .md) for each new blog post. At the top of each file you should include a metadata section that tells Hugo some things about the post (see [docs](/content/front-matter)). For example, consider the yaml metadata section from the top of the file `/content/posts/newest.md` from the example repository
 
-{{% highlight yaml %}}
----
-title: "Just another sample post"
-date: "2014-03-29"
-description: "This should be a more useful description"
-categories: 
-    - "hugo"
-    - "fun"
-    - "test"
----
-{{% /highlight %}}
+    ---
+    title: "Just another sample post"
+    date: "2014-03-29"
+    description: "This should be a more useful description"
+    categories: 
+        - "hugo"
+        - "fun"
+        - "test"
+    ---
 
 The keys set in this section are the mandatory `title` and `date` as well as the optional `description` and `categories`. Each of these items is used throughout the templates found in the `/layouts` directory and gives Hugo information about the post from other pages in the website.
 
@@ -104,47 +100,45 @@ GitHub pages will serve up a website for any repository that has a branch called
 
 To get this properly set up we will execute a series of commands at the terminal. I will include all of them in one place here for easy copy and paste, and will explain what each line does via comments. Note that this is to be run from the `<root>` directory (wherever the `content` and `layout` folders of your Hugo project live). Also note that you will need to change the commands that have the example repository GitHub address so that they point to your repo.
 
-{{% highlight bash %}}
-# Create a new orphand branch (no commit history) named gh-pages
-git checkout --orphan gh-pages
+    # Create a new orphand branch (no commit history) named gh-pages
+    git checkout --orphan gh-pages
 
-# Unstage all files
-git rm --cached $(git ls-files)
+    # Unstage all files
+    git rm --cached $(git ls-files)
 
-# Grab one file from the master branch so we can make a commit
-git checkout master README.md
+    # Grab one file from the master branch so we can make a commit
+    git checkout master README.md
 
-# Add and commit that file
-git add .
-git commit -m "INIT: initial commit on gh-pages branch"
+    # Add and commit that file
+    git add .
+    git commit -m "INIT: initial commit on gh-pages branch"
 
-# Push to remote gh-pages branch 
-git push origin gh-pages
+    # Push to remote gh-pages branch 
+    git push origin gh-pages
 
-# Return to master branch
-git checkout master
+    # Return to master branch
+    git checkout master
 
-# Remove the public folder to make room for the gh-pages subtree
-rm -rf public
+    # Remove the public folder to make room for the gh-pages subtree
+    rm -rf public
 
-# Add the gh-pages branch of the repository. It will look like a folder named public
-git subtree add --prefix public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages --squash
+    # Add the gh-pages branch of the repository. It will look like a folder named public
+    git subtree add --prefix public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages --squash
 
-# Pull down the file we just committed. This helps avoid merge conflicts
-git subtree pull --prefix=public
+    # Pull down the file we just committed. This helps avoid merge conflicts
+    git subtree pull --prefix=public
 
-# Run hugo. Generated site will be placed in public directory
-hugo
+    # Run hugo. Generated site will be placed in public directory
+    hugo
 
-# Add everything
-git add -A
+    # Add everything
+    git add -A
 
-# Commit and push to master
-git commit -m "Updating site" && git push origin master
+    # Commit and push to master
+    git commit -m "Updating site" && git push origin master
 
-# Push the public subtree to the gh-pages branch
-git subtree push --prefix=public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages
-{{% /highlight %}}
+    # Push the public subtree to the gh-pages branch
+    git subtree push --prefix=public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages
 
 After executing these commands and waiting for the GitHub servers to update, the website we just created was live at [http://spencerlyon2.github.io/hugo_gh_blog](http://spencerlyon2.github.io/hugo_gh_blog). 
 
@@ -161,28 +155,26 @@ Now, as you add new posts to your blog, you will follow steps that look somethin
 
 The first two items in the previous list are simply a way to conveniently preview your content as you write. This is a dynamic and fairly streamlined process. All the remaining items, however, are the same every time you want to add new content to the website. To make this repetitive process easier, I have adapted a script from the source repository for the [Chimer Arta & Maker Space](https://github.com/chimera/chimeraarts.org) website that is highlighted in the [Hugo Showcase](/showcase). The script lives in a file called `deploy.sh` and has the following contents
 
-{{% highlight bash %}}
-#!/bin/bash
+    #!/bin/bash
 
-echo -e "\033[0;32mDeploying updates to Github...\033[0m"
+    echo -e "\033[0;32mDeploying updates to Github...\033[0m"
 
-# Build the project.
-hugo
+    # Build the project.
+    hugo
 
-# Add changes to git.
-git add -A
+    # Add changes to git.
+    git add -A
 
-# Commit changes.
-msg="rebuilding site `date`"
-if [ $# -eq 1 ]
-  then msg="$1"
-fi
-git commit -m "$msg"
+    # Commit changes.
+    msg="rebuilding site `date`"
+    if [ $# -eq 1 ]
+      then msg="$1"
+    fi
+    git commit -m "$msg"
 
-# Push source and build repos.
-git push origin master
-git subtree push --prefix=public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages
-{{% /highlight %}}
+    # Push source and build repos.
+    git push origin master
+    git subtree push --prefix=public git@github.com:spencerlyon2/hugo_gh_blog.git gh-pages
 
 Now I can replace the last four items from our workflow list with a single command `bash deploy.sh`. This script accepts as an optional argument the commit message that git should use when committing your changes. If you wish to include a custom commit message, do so by putting it quotes after calling bash on the script: `bash deploy.sh "<my commit msg>"`. If you choose not to specify the commit message, one will be generated for you using the current time.
 
index dc68a4901930e0bd0fca91ce8b0ca3bc407a2656..8c8b740347b2cfb4b0f3cbbe67fb147a90c11d0e 100644 (file)
@@ -18,11 +18,9 @@ This is not an introduction into actually using MathJax to render typeset mathem
 
 The first step is to enable MathJax on pages that you would like to have typeset math. There are multiple ways to do this (adventerous readers can consult the [Loading and Configuring](http://docs.mathjax.org/en/latest/configuration.html) section of the MathJax documentation for additional methods of including MathJax), but the easiest way is to use the secure MathJax CDN by including the following html snippet in the source of a page:
 
-{{% highlight html %}}
-<script type="text/javascript"
-  src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-{{% /highlight %}}
+    <script type="text/javascript"
+      src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+    </script>
 
 One way to ensure that this code is included in all pages is to put it in one of the templates that live in the `layouts/chrome/` directory. For example, I have included this in the bottom of my template `footer.html` because I know that the footer will be included in every page of my website. 
 
@@ -40,48 +38,43 @@ There are multiple ways to remedy this problem. One solution is to simply escape
 
 Another option is to tell markdown to treat the MathJax code as verbatim code and not process it. One way to do this is to wrap the math expression inside a `<div>` `</div>` block. Markdown would ignore these sections and they would get passed directly on to MathJax and processed correctly. This works great for display style mathematics, but for inline math expressions the line break induced by the `<div>` is not acceptable. The syntax for instructing markdown to treat inline text as verbatim is by wrapping it in backticks (`` ` ``). You might have noticed, however, that the text included in between backticks is rendered differently than standard text (on this site these are items highlighted in red). To get around this problem we could create a new css entry that would apply standard styling to all inline verbatim text that includes MathJax code. Below I will show the html and css source that would accomplish this (note this solution adapted from [this blog post](http://doswa.com/2011/07/20/mathjax-in-markdown.html) -- all credit goes to the original author).
 
-{{% highlight html %}}
-<script type="text/x-mathjax-config">
-MathJax.Hub.Config({
-  tex2jax: {
-    inlineMath: [['$','$'], ['\\(','\\)']],
-    displayMath: [['$$','$$'], ['\[','\]']],
-    processEscapes: true,
-    processEnvironments: true,
-    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
-    TeX: { equationNumbers: { autoNumber: "AMS" },
-         extensions: ["AMSmath.js", "AMSsymbols.js"] }
-  }
-});
-</script>
-
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Queue(function() {
-    // Fix <code> tags after MathJax finishes running. This is a
-    // hack to overcome a shortcoming of Markdown. Discussion at
-    // https://github.com/mojombo/jekyll/issues/199
-    var all = MathJax.Hub.getAllJax(), i;
-    for(i = 0; i < all.length; i += 1) {
-        all[i].SourceElement().parentNode.className += ' has-jax';
-    }
-});
-</script>
-{{% /highlight %}}
+    <script type="text/x-mathjax-config">
+    MathJax.Hub.Config({
+      tex2jax: {
+        inlineMath: [['$','$'], ['\\(','\\)']],
+        displayMath: [['$$','$$'], ['\[','\]']],
+        processEscapes: true,
+        processEnvironments: true,
+        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
+        TeX: { equationNumbers: { autoNumber: "AMS" },
+             extensions: ["AMSmath.js", "AMSsymbols.js"] }
+      }
+    });
+    </script>
+
+    <script type="text/x-mathjax-config">
+      MathJax.Hub.Queue(function() {
+        // Fix <code> tags after MathJax finishes running. This is a
+        // hack to overcome a shortcoming of Markdown. Discussion at
+        // https://github.com/mojombo/jekyll/issues/199
+        var all = MathJax.Hub.getAllJax(), i;
+        for(i = 0; i < all.length; i += 1) {
+            all[i].SourceElement().parentNode.className += ' has-jax';
+        }
+    });
+    </script>
 
 As before, this content should be included in the html source of each page that will be using MathJax. The next code snippet contains the CSS that is used to have verbatim MathJax blocks render with the same font style as the body of the page.
 
 
-{{% highlight css %}}
-code.has-jax {font: inherit;
-              font-size: 100%;
-              background: inherit;
-              border: inherit;
-              color: #515151;}
-{{% /highlight %}}
+    code.has-jax {font: inherit;
+                  font-size: 100%;
+                  background: inherit;
+                  border: inherit;
+                  color: #515151;}
 
 In the css snippet notice the line `color: #515151;`. `#515151` is the value assigned to the `color` attribute of the `body` class in my css. In order for the equations to fit in with the body of a web page, this value should be the same as the color of the body.
 
-
 ### Usage
 
 With this setup, everything is inplace for a natural usage of MathJax on pages generated using Hugo. In order to include inline mathematics, just put LaTeX code in between `` `$ TeX Code $` `` or `` `\( TeX Code \)` ``. To include display style mathematics, just put LaTeX code in between `<div>$$TeX Code$$</div>`. All the math will be properly typeset and displayed within your Hugo generated web page!
index 7160597f8963e098b6ad9d55c808e355d18eafa7..f296fdbe0becd4694171997c9d3bded78dd9e108 100644 (file)
@@ -31,20 +31,18 @@ Hugo can read your configuration as json, yaml or toml. Hugo supports parameters
 The default is for Jekyll to publish to `_site` and for Hugo to publish to `public`. If, like me, you have [`_site` mapped to a git submodule on the `gh-pages` branch](http://blog.blindgaenger.net/generate_github_pages_in_a_submodule.html), you'll want to do one of two alternatives:
 
 1. Change your submodule to point to map `gh-pages` to public instead of `_site` (recommended).
-{{% highlight sh %}}
-git submodule deinit _site
-git rm _site
-git submodule add -b gh-pages git@github.com:your-username/your-repo.git public
-{{% /highlight %}}
+
+    git submodule deinit _site
+    git rm _site
+    git submodule add -b gh-pages git@github.com:your-username/your-repo.git public
 
 1. Or, change the Hugo configuration to use `_site` instead of `public`.
-{{% highlight json %}}
-{
-    ..
-    "publishdir": "_site",
-    ..
-}
-{{% /highlight %}}
+
+    {
+        ..
+        "publishdir": "_site",
+        ..
+    }
 
 ## Convert Jekyll templates to Hugo templates
 That's the bulk of the work right here. The documentation is your friend. You should refer to [Jekyll's template documentation](http://jekyllrb.com/docs/templates/) if you need to refresh your memory on how you built your blog and [Hugo's template](/layout/templates/) to learn Hugo's way. 
@@ -58,94 +56,90 @@ Jekyll has [plugins](http://jekyllrb.com/docs/plugins/), Hugo has [shortcodes](/
 As an example, I was using a custom [`image_tag`](https://github.com/alexandre-normand/alexandre-normand/blob/74bb12036a71334fdb7dba84e073382fc06908ec/_plugins/image_tag.rb) plugin to generate figures with caption when running Jekyll. As I read about shortcodes, I found Hugo had a nice built-in shortcode that does exactly the same thing.
 
 Jekyll's plugin:
-{{% highlight ruby %}}
-module Jekyll
-  class ImageTag < Liquid::Tag
-    @url = nil
-    @caption = nil
-    @class = nil
-    @link = nil
-    // Patterns
-    IMAGE_URL_WITH_CLASS_AND_CAPTION = 
-    IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK = /(\w+)(\s+)((https?:\/\/|\/)(\S+))(\s+)"(.*?)"(\s+)->((https?:\/\/|\/)(\S+))(\s*)/i
-    IMAGE_URL_WITH_CAPTION = /((https?:\/\/|\/)(\S+))(\s+)"(.*?)"/i
-    IMAGE_URL_WITH_CLASS = /(\w+)(\s+)((https?:\/\/|\/)(\S+))/i
-    IMAGE_URL = /((https?:\/\/|\/)(\S+))/i    
-    def initialize(tag_name, markup, tokens)
-      super
-      if markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK
-        @class   = $1
-        @url     = $3
-        @caption = $7
-        @link = $9
-      elsif markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION
-        @class   = $1
-        @url     = $3
-        @caption = $7
-      elsif markup =~ IMAGE_URL_WITH_CAPTION
-        @url     = $1
-        @caption = $5
-      elsif markup =~ IMAGE_URL_WITH_CLASS
-        @class = $1
-        @url   = $3
-      elsif markup =~ IMAGE_URL
-        @url = $1      
-      end
-    end
-    def render(context)
-      if @class
-        source = "<figure class='#{@class}'>"
-      else
-        source = "<figure>"
-      end
-      if @link 
-        source += "<a href=\"#{@link}\">"
-      end
-      source += "<img src=\"#{@url}\">"
-      if @link 
-        source += "</a>"
+
+    module Jekyll
+      class ImageTag < Liquid::Tag
+        @url = nil
+        @caption = nil
+        @class = nil
+        @link = nil
+        // Patterns
+        IMAGE_URL_WITH_CLASS_AND_CAPTION = 
+        IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK = /(\w+)(\s+)((https?:\/\/|\/)(\S+))(\s+)"(.*?)"(\s+)->((https?:\/\/|\/)(\S+))(\s*)/i
+        IMAGE_URL_WITH_CAPTION = /((https?:\/\/|\/)(\S+))(\s+)"(.*?)"/i
+        IMAGE_URL_WITH_CLASS = /(\w+)(\s+)((https?:\/\/|\/)(\S+))/i
+        IMAGE_URL = /((https?:\/\/|\/)(\S+))/i    
+        def initialize(tag_name, markup, tokens)
+          super
+          if markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK
+            @class   = $1
+            @url     = $3
+            @caption = $7
+            @link = $9
+          elsif markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION
+            @class   = $1
+            @url     = $3
+            @caption = $7
+          elsif markup =~ IMAGE_URL_WITH_CAPTION
+            @url     = $1
+            @caption = $5
+          elsif markup =~ IMAGE_URL_WITH_CLASS
+            @class = $1
+            @url   = $3
+          elsif markup =~ IMAGE_URL
+            @url = $1      
+          end
+        end
+        def render(context)
+          if @class
+            source = "<figure class='#{@class}'>"
+          else
+            source = "<figure>"
+          end
+          if @link 
+            source += "<a href=\"#{@link}\">"
+          end
+          source += "<img src=\"#{@url}\">"
+          if @link 
+            source += "</a>"
+          end
+          source += "<figcaption>#{@caption}</figcaption>" if @caption
+          source += "</figure>"
+          source
+        end
       end
-      source += "<figcaption>#{@caption}</figcaption>" if @caption
-      source += "</figure>"
-      source
     end
-  end
-end
-Liquid::Template.register_tag('image', Jekyll::ImageTag)
-{{% /highlight %}}
+    Liquid::Template.register_tag('image', Jekyll::ImageTag)
 
 is written as this Hugo shortcode:
-{{% highlight html %}}
-<!-- image -->
-<figure {{ with .Get "class" }}class="{{.}}"{{ end }}>
-    {{ with .Get "link"}}<a href="{{.}}">{{ end }}
-        <img src="{{ .Get "src" }}" {{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt"}}{{.}}{{else}}{{ .Get "caption" }}{{ end }}"{{ end }} />
-    {{ if .Get "link"}}</a>{{ end }}
-    {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}}
-    <figcaption>{{ if isset .Params "title" }}
-        {{ .Get "title" }}{{ end }}
-        {{ if or (.Get "caption") (.Get "attr")}}<p>
-        {{ .Get "caption" }}
-        {{ with .Get "attrlink"}}<a href="{{.}}"> {{ end }}
-            {{ .Get "attr" }}
-        {{ if .Get "attrlink"}}</a> {{ end }}
-        </p> {{ end }}
-    </figcaption>
-    {{ end }}
-</figure>
-<!-- image -->
-{{% /highlight %}}
+
+    <!-- image -->
+    <figure {{ with .Get "class" }}class="{{.}}"{{ end }}>
+        {{ with .Get "link"}}<a href="{{.}}">{{ end }}
+            <img src="{{ .Get "src" }}" {{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt"}}{{.}}{{else}}{{ .Get "caption" }}{{ end }}"{{ end }} />
+        {{ if .Get "link"}}</a>{{ end }}
+        {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}}
+        <figcaption>{{ if isset .Params "title" }}
+            {{ .Get "title" }}{{ end }}
+            {{ if or (.Get "caption") (.Get "attr")}}<p>
+            {{ .Get "caption" }}
+            {{ with .Get "attrlink"}}<a href="{{.}}"> {{ end }}
+                {{ .Get "attr" }}
+            {{ if .Get "attrlink"}}</a> {{ end }}
+            </p> {{ end }}
+        </figcaption>
+        {{ end }}
+    </figure>
+    <!-- image -->
 
 ### Usage
 I simply changed:
-{{% highlight html %}}
+
   {% image full http://farm5.staticflickr.com/4136/4829260124_57712e570a_o_d.jpg "One of my favorite touristy-type photos. I secretly waited for the good light while we were "having fun" and took this. Only regret: a stupid pole in the top-left corner of the frame I had to clumsily get rid of at post-processing." ->http://www.flickr.com/photos/alexnormand/4829260124/in/set-72157624547713078/ %}
-{{% /highlight %}}
 
 to this (this example uses a slightly extended version named `fig`, different than the built-in `figure`):
-{{% highlight html %}}
+
   {{% fig class="full" src="http://farm5.staticflickr.com/4136/4829260124_57712e570a_o_d.jpg" title="One of my favorite touristy-type photos. I secretly waited for the good light while we were having fun and took this. Only regret: a stupid pole in the top-left corner of the frame I had to clumsily get rid of at post-processing." link="http://www.flickr.com/photos/alexnormand/4829260124/in/set-72157624547713078/" %}}
-{{% /highlight %}}
 
 As a bonus, the shortcode named parameters are, arguably, more readable. 
 
index 0bfb4f415100b80a2f2916a940ef02fd47859bb0..51ed6cb972ad44ae03625e0a0bab140339caf4f5 100644 (file)
@@ -2,3 +2,6 @@
     <link href="/static/css/styles.css" rel="stylesheet"/>
     <link href="/static/css/hugofont.css" rel="stylesheet"/>
     <link href='http://fonts.googleapis.com/css?family=Arbutus+Slab&family=Cabin:600&family=Source+Code+Pro' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/static/css/monokai_sublime.css">
+    <script src="/static/js/highlight.pack.js"></script>
+    <script>hljs.initHighlightingOnLoad();</script>
diff --git a/docs/static/static/css/monokai_sublime.css b/docs/static/static/css/monokai_sublime.css
new file mode 100644 (file)
index 0000000..7b0eb2e
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+
+Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
+
+*/
+
+.hljs {
+  display: block;
+  padding: 0.5em;
+  background: #23241f;
+}
+
+.hljs,
+.hljs-tag,
+.css .hljs-rules,
+.css .hljs-value,
+.css .hljs-function
+.hljs-preprocessor,
+.hljs-pragma {
+  color: #f8f8f2;
+}
+
+.hljs-strongemphasis,
+.hljs-strong,
+.hljs-emphasis {
+  color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-blockquote,
+.hljs-horizontal_rule,
+.hljs-number,
+.hljs-regexp,
+.alias .hljs-keyword,
+.hljs-literal,
+.hljs-hexcolor {
+  color: #ae81ff;
+}
+
+.hljs-tag .hljs-value,
+.hljs-code,
+.hljs-title,
+.css .hljs-class,
+.hljs-class .hljs-title:last-child {
+  color: #a6e22e;
+}
+
+.hljs-link_url {
+  font-size: 80%;
+}
+
+.hljs-strong,
+.hljs-strongemphasis {
+  font-weight: bold;
+}
+
+.hljs-emphasis,
+.hljs-strongemphasis,
+.hljs-class .hljs-title:last-child {
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-function,
+.hljs-change,
+.hljs-winutils,
+.hljs-flow,
+.lisp .hljs-title,
+.clojure .hljs-built_in,
+.nginx .hljs-title,
+.tex .hljs-special,
+.hljs-header,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-symbol .hljs-string,
+.hljs-tag .hljs-title,
+.hljs-value,
+.alias .hljs-keyword:first-child,
+.css .hljs-tag,
+.css .unit,
+.css .hljs-important {
+  color: #F92672;
+}
+
+.hljs-function .hljs-keyword,
+.hljs-class .hljs-keyword:first-child,
+.hljs-constant,
+.css .hljs-attribute {
+  color: #66d9ef;
+}
+
+.hljs-variable,
+.hljs-params,
+.hljs-class .hljs-title {
+  color: #f8f8f2;
+}
+
+.hljs-string,
+.css .hljs-id,
+.hljs-subst,
+.haskell .hljs-type,
+.ruby .hljs-class .hljs-parent,
+.hljs-built_in,
+.sql .hljs-aggregate,
+.django .hljs-template_tag,
+.django .hljs-variable,
+.smalltalk .hljs-class,
+.django .hljs-filter .hljs-argument,
+.smalltalk .hljs-localvars,
+.smalltalk .hljs-array,
+.hljs-attr_selector,
+.hljs-pseudo,
+.hljs-addition,
+.hljs-stream,
+.hljs-envvar,
+.apache .hljs-tag,
+.apache .hljs-cbracket,
+.tex .hljs-command,
+.hljs-prompt,
+.hljs-link_label,
+.hljs-link_url {
+  color: #e6db74;
+}
+
+.hljs-comment,
+.hljs-javadoc,
+.java .hljs-annotation,
+.python .hljs-decorator,
+.hljs-template_comment,
+.hljs-pi,
+.hljs-doctype,
+.hljs-deletion,
+.hljs-shebang,
+.apache .hljs-sqbracket,
+.tex .hljs-formula {
+  color: #75715e;
+}
+
+.coffeescript .javascript,
+.javascript .xml,
+.tex .hljs-formula,
+.xml .javascript,
+.xml .vbscript,
+.xml .css,
+.xml .hljs-cdata,
+.xml .php,
+.php .xml {
+  opacity: 0.5;
+}
diff --git a/docs/static/static/js/highlight.pack.js b/docs/static/static/js/highlight.pack.js
new file mode 100644 (file)
index 0000000..6b1f49c
--- /dev/null
@@ -0,0 +1 @@
+var hljs=new function(){function k(v){return v.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset<y[0].offset)?w:y}return y[0].event=="start"?w:y}function A(H){function G(I){return" "+I.nodeName+'="'+k(I.value)+'"'}F+="<"+t(H)+Array.prototype.map.call(H.attributes,G).join("")+">"}function E(G){F+="</"+t(G)+">"}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T<V.c.length;T++){if(i(V.c[T].bR,U)){return V.c[T]}}}function z(U,T){if(i(U.eR,T)){return U}if(U.eW){return z(U.parent,T)}}function A(T,U){return !J&&i(U.iR,T)}function E(V,T){var U=M.cI?T[0].toLowerCase():T[0];return V.k.hasOwnProperty(U)&&V.k[U]}function w(Z,X,W,V){var T=V?"":b.classPrefix,U='<span class="'+T,Y=W?"":"</span>";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+="</span>"}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"<unnamed>")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+="</span>"}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"<br>")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("haml",function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(!=#|=#|-#|/).*$",r:0},{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+"},{cN:"value",b:"[#\\.]\\w+"},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,c:[{cN:"symbol",b:":\\w+"},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]},]}]},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/</,r:0,c:[d,{cN:"attribute",b:c,r:0},{b:"=",r:0,c:[{cN:"value",v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s\/>]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("handlebars",function(b){var a="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{cI:true,sL:"xml",subLanguageMode:"continuous",c:[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z- .]+",k:a},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z- .]+",k:a},{cN:"variable",b:"[a-zA-Z-.]+",k:a}]}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("django",function(a){var b={cN:"filter",b:/\|[A-Za-z]+\:?/,k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:/"/,e:/"/},{cN:"argument",b:/'/,e:/'/}]};return{cI:true,sL:"xml",subLanguageMode:"continuous",c:[{cN:"template_comment",b:/\{%\s*comment\s*%}/,e:/\{%\s*endcomment\s*%}/},{cN:"template_comment",b:/\{#/,e:/#}/},{cN:"template_tag",b:/\{%/,e:/%}/,k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[b]},{cN:"variable",b:/\{\{/,e:/}}/,c:[b]}]}});hljs.registerLanguage("scss",function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}});hljs.registerLanguage("asciidoc",function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"smartquote",b:"``.+?''",r:10},{cN:"smartquote",b:"`.+?'",r:10},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}});hljs.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'"},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}});
\ No newline at end of file