"Fossies" - the Fresh Open Source Software Archive

Member "highlight-3.57-x64/extras/AsciiDoc/README.html" (12 May 2020, 58843 Bytes) of package /windows/www/highlight-3.57-x64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "README.html": 3.53_vs_3.54.

    1 <!DOCTYPE html>
    2 <html lang="en">
    3 <head>
    4 <meta charset="UTF-8">
    5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7 <meta name="generator" content="Asciidoctor 2.0.6">
    8 <meta name="author" content="Tristano Ajmone">
    9 <title>Highlight Support for Asciidoctor</title>
   10 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
   11 <style>
   12 /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
   13 /* Uncomment @import statement when using as custom stylesheet */
   14 /*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
   15 article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
   16 audio,canvas,video{display:inline-block}
   17 audio:not([controls]){display:none;height:0}
   18 script{display:none!important}
   19 html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
   20 a{background:none}
   21 a:focus{outline:thin dotted}
   22 a:active,a:hover{outline:0}
   23 h1{font-size:2em;margin:.67em 0}
   24 abbr[title]{border-bottom:1px dotted}
   25 b,strong{font-weight:bold}
   26 dfn{font-style:italic}
   27 hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
   28 mark{background:#ff0;color:#000}
   29 code,kbd,pre,samp{font-family:monospace;font-size:1em}
   30 pre{white-space:pre-wrap}
   31 q{quotes:"\201C" "\201D" "\2018" "\2019"}
   32 small{font-size:80%}
   33 sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
   34 sup{top:-.5em}
   35 sub{bottom:-.25em}
   36 img{border:0}
   37 svg:not(:root){overflow:hidden}
   38 figure{margin:0}
   39 fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
   40 legend{border:0;padding:0}
   41 button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
   42 button,input{line-height:normal}
   43 button,select{text-transform:none}
   44 button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
   45 button[disabled],html input[disabled]{cursor:default}
   46 input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
   47 button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
   48 textarea{overflow:auto;vertical-align:top}
   49 table{border-collapse:collapse;border-spacing:0}
   50 *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
   51 html,body{font-size:100%}
   52 body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
   53 a:hover{cursor:pointer}
   54 img,object,embed{max-width:100%;height:auto}
   55 object,embed{height:100%}
   56 img{-ms-interpolation-mode:bicubic}
   57 .left{float:left!important}
   58 .right{float:right!important}
   59 .text-left{text-align:left!important}
   60 .text-right{text-align:right!important}
   61 .text-center{text-align:center!important}
   62 .text-justify{text-align:justify!important}
   63 .hide{display:none}
   64 img,object,svg{display:inline-block;vertical-align:middle}
   65 textarea{height:auto;min-height:50px}
   66 select{width:100%}
   67 .center{margin-left:auto;margin-right:auto}
   68 .stretch{width:100%}
   69 .subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
   70 div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
   71 a{color:#2156a5;text-decoration:underline;line-height:inherit}
   72 a:hover,a:focus{color:#1d4b8f}
   73 a img{border:0}
   74 p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
   75 p aside{font-size:.875em;line-height:1.35;font-style:italic}
   76 h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
   77 h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
   78 h1{font-size:2.125em}
   79 h2{font-size:1.6875em}
   80 h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
   81 h4,h5{font-size:1.125em}
   82 h6{font-size:1em}
   83 hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
   84 em,i{font-style:italic;line-height:inherit}
   85 strong,b{font-weight:bold;line-height:inherit}
   86 small{font-size:60%;line-height:inherit}
   87 code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
   88 ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
   89 ul,ol{margin-left:1.5em}
   90 ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
   91 ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
   92 ul.square{list-style-type:square}
   93 ul.circle{list-style-type:circle}
   94 ul.disc{list-style-type:disc}
   95 ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
   96 dl dt{margin-bottom:.3125em;font-weight:bold}
   97 dl dd{margin-bottom:1.25em}
   98 abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
   99 abbr{text-transform:none}
  100 blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
  101 blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
  102 blockquote cite::before{content:"\2014 \0020"}
  103 blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
  104 blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
  105 @media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
  106 h1{font-size:2.75em}
  107 h2{font-size:2.3125em}
  108 h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
  109 h4{font-size:1.4375em}}
  110 table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
  111 table thead,table tfoot{background:#f7f8f7}
  112 table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
  113 table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
  114 table tr.even,table tr.alt{background:#f8f8f7}
  115 table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
  116 h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
  117 h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
  118 .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
  119 .clearfix::after,.float-group::after{clear:both}
  120 :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
  121 :not(pre)>code.nobreak{word-wrap:normal}
  122 :not(pre)>code.nowrap{white-space:nowrap}
  123 pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
  124 pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
  125 pre>code{display:block}
  126 pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
  127 em em{font-style:normal}
  128 strong strong{font-weight:400}
  129 .keyseq{color:rgba(51,51,51,.8)}
  130 kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
  131 .keyseq kbd:first-child{margin-left:0}
  132 .keyseq kbd:last-child{margin-right:0}
  133 .menuseq,.menuref{color:#000}
  134 .menuseq b:not(.caret),.menuref{font-weight:inherit}
  135 .menuseq{word-spacing:-.02em}
  136 .menuseq b.caret{font-size:1.25em;line-height:.8}
  137 .menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
  138 b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
  139 b.button::before{content:"[";padding:0 3px 0 2px}
  140 b.button::after{content:"]";padding:0 2px 0 3px}
  141 p a>code:hover{color:rgba(0,0,0,.9)}
  142 #header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
  143 #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
  144 #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
  145 #content{margin-top:1.25em}
  146 #content::before{content:none}
  147 #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
  148 #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
  149 #header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
  150 #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
  151 #header .details span:first-child{margin-left:-.125em}
  152 #header .details span.email a{color:rgba(0,0,0,.85)}
  153 #header .details br{display:none}
  154 #header .details br+span::before{content:"\00a0\2013\00a0"}
  155 #header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
  156 #header .details br+span#revremark::before{content:"\00a0|\00a0"}
  157 #header #revnumber{text-transform:capitalize}
  158 #header #revnumber::after{content:"\00a0"}
  159 #content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
  160 #toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
  161 #toc>ul{margin-left:.125em}
  162 #toc ul.sectlevel0>li>a{font-style:italic}
  163 #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
  164 #toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
  165 #toc li{line-height:1.3334;margin-top:.3334em}
  166 #toc a{text-decoration:none}
  167 #toc a:active{text-decoration:underline}
  168 #toctitle{color:#7a2518;font-size:1.2em}
  169 @media screen and (min-width:768px){#toctitle{font-size:1.375em}
  170 body.toc2{padding-left:15em;padding-right:0}
  171 #toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
  172 #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
  173 #toc.toc2>ul{font-size:.9em;margin-bottom:0}
  174 #toc.toc2 ul ul{margin-left:0;padding-left:1em}
  175 #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
  176 body.toc2.toc-right{padding-left:0;padding-right:15em}
  177 body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
  178 @media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
  179 #toc.toc2{width:20em}
  180 #toc.toc2 #toctitle{font-size:1.375em}
  181 #toc.toc2>ul{font-size:.95em}
  182 #toc.toc2 ul ul{padding-left:1.25em}
  183 body.toc2.toc-right{padding-left:0;padding-right:20em}}
  184 #content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
  185 #content #toc>:first-child{margin-top:0}
  186 #content #toc>:last-child{margin-bottom:0}
  187 #footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
  188 #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
  189 #content{margin-bottom:.625em}
  190 .sect1{padding-bottom:.625em}
  191 @media screen and (min-width:768px){#content{margin-bottom:1.25em}
  192 .sect1{padding-bottom:1.25em}}
  193 .sect1:last-child{padding-bottom:0}
  194 .sect1+.sect1{border-top:1px solid #e7e7e9}
  195 #content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
  196 #content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
  197 #content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
  198 #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
  199 #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
  200 details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
  201 details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
  202 .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
  203 table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
  204 .paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
  205 table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
  206 .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
  207 .admonitionblock>table td.icon{text-align:center;width:80px}
  208 .admonitionblock>table td.icon img{max-width:none}
  209 .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
  210 .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
  211 .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
  212 .exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
  213 .exampleblock>.content>:first-child{margin-top:0}
  214 .exampleblock>.content>:last-child{margin-bottom:0}
  215 .sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
  216 .sidebarblock>:first-child{margin-top:0}
  217 .sidebarblock>:last-child{margin-bottom:0}
  218 .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
  219 .exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
  220 .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
  221 @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
  222 @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
  223 .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
  224 .listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
  225 .listingblock>.content{position:relative}
  226 .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
  227 .listingblock:hover code[data-lang]::before{display:block}
  228 .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
  229 .listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
  230 .listingblock pre.highlightjs{padding:0}
  231 .listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
  232 .listingblock pre.prettyprint{border-width:0}
  233 .prettyprint{background:#f7f7f8}
  234 pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
  235 pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
  236 pre.prettyprint li code[data-lang]::before{opacity:1}
  237 pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
  238 table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
  239 table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
  240 table.linenotable td.code{padding-left:.75em}
  241 table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
  242 pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
  243 pre.pygments .lineno::before{content:"";margin-right:-.125em}
  244 .quoteblock{margin:0 1em 1.25em 1.5em;display:table}
  245 .quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
  246 .quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
  247 .quoteblock blockquote{margin:0;padding:0;border:0}
  248 .quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
  249 .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
  250 .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
  251 .verseblock{margin:0 1em 1.25em}
  252 .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
  253 .verseblock pre strong{font-weight:400}
  254 .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
  255 .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
  256 .quoteblock .attribution br,.verseblock .attribution br{display:none}
  257 .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
  258 .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
  259 .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
  260 .quoteblock.abstract{margin:0 1em 1.25em;display:block}
  261 .quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
  262 .quoteblock.excerpt,.quoteblock .quoteblock{margin:0 0 1.25em;padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
  263 .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
  264 .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
  265 table.tableblock{max-width:100%;border-collapse:separate}
  266 p.tableblock:last-child{margin-bottom:0}
  267 td.tableblock>.content{margin-bottom:-1.25em}
  268 table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
  269 table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
  270 table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
  271 table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
  272 table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
  273 table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
  274 table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
  275 table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
  276 table.frame-all{border-width:1px}
  277 table.frame-sides{border-width:0 1px}
  278 table.frame-topbot,table.frame-ends{border-width:1px 0}
  279 table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
  280 th.halign-left,td.halign-left{text-align:left}
  281 th.halign-right,td.halign-right{text-align:right}
  282 th.halign-center,td.halign-center{text-align:center}
  283 th.valign-top,td.valign-top{vertical-align:top}
  284 th.valign-bottom,td.valign-bottom{vertical-align:bottom}
  285 th.valign-middle,td.valign-middle{vertical-align:middle}
  286 table thead th,table tfoot th{font-weight:bold}
  287 tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
  288 tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
  289 p.tableblock>code:only-child{background:none;padding:0}
  290 p.tableblock{font-size:1em}
  291 ol{margin-left:1.75em}
  292 ul li ol{margin-left:1.5em}
  293 dl dd{margin-left:1.125em}
  294 dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
  295 ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
  296 ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
  297 ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
  298 ul.unstyled,ol.unstyled{margin-left:0}
  299 ul.checklist{margin-left:.625em}
  300 ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
  301 ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
  302 ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
  303 ul.inline>li{margin-left:1.25em}
  304 .unstyled dl dt{font-weight:400;font-style:normal}
  305 ol.arabic{list-style-type:decimal}
  306 ol.decimal{list-style-type:decimal-leading-zero}
  307 ol.loweralpha{list-style-type:lower-alpha}
  308 ol.upperalpha{list-style-type:upper-alpha}
  309 ol.lowerroman{list-style-type:lower-roman}
  310 ol.upperroman{list-style-type:upper-roman}
  311 ol.lowergreek{list-style-type:lower-greek}
  312 .hdlist>table,.colist>table{border:0;background:none}
  313 .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
  314 td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
  315 td.hdlist1{font-weight:bold;padding-bottom:1.25em}
  316 .literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
  317 .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
  318 .colist td:not([class]):first-child img{max-width:none}
  319 .colist td:not([class]):last-child{padding:.25em 0}
  320 .thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
  321 .imageblock.left{margin:.25em .625em 1.25em 0}
  322 .imageblock.right{margin:.25em 0 1.25em .625em}
  323 .imageblock>.title{margin-bottom:0}
  324 .imageblock.thumb,.imageblock.th{border-width:6px}
  325 .imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
  326 .image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
  327 .image.left{margin-right:.625em}
  328 .image.right{margin-left:.625em}
  329 a.image{text-decoration:none;display:inline-block}
  330 a.image object{pointer-events:none}
  331 sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
  332 sup.footnote a,sup.footnoteref a{text-decoration:none}
  333 sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
  334 #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
  335 #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
  336 #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
  337 #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
  338 #footnotes .footnote:last-of-type{margin-bottom:0}
  339 #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
  340 .gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
  341 .gist .file-data>table td.line-data{width:99%}
  342 div.unbreakable{page-break-inside:avoid}
  343 .big{font-size:larger}
  344 .small{font-size:smaller}
  345 .underline{text-decoration:underline}
  346 .overline{text-decoration:overline}
  347 .line-through{text-decoration:line-through}
  348 .aqua{color:#00bfbf}
  349 .aqua-background{background:#00fafa}
  350 .black{color:#000}
  351 .black-background{background:#000}
  352 .blue{color:#0000bf}
  353 .blue-background{background:#0000fa}
  354 .fuchsia{color:#bf00bf}
  355 .fuchsia-background{background:#fa00fa}
  356 .gray{color:#606060}
  357 .gray-background{background:#7d7d7d}
  358 .green{color:#006000}
  359 .green-background{background:#007d00}
  360 .lime{color:#00bf00}
  361 .lime-background{background:#00fa00}
  362 .maroon{color:#600000}
  363 .maroon-background{background:#7d0000}
  364 .navy{color:#000060}
  365 .navy-background{background:#00007d}
  366 .olive{color:#606000}
  367 .olive-background{background:#7d7d00}
  368 .purple{color:#600060}
  369 .purple-background{background:#7d007d}
  370 .red{color:#bf0000}
  371 .red-background{background:#fa0000}
  372 .silver{color:#909090}
  373 .silver-background{background:#bcbcbc}
  374 .teal{color:#006060}
  375 .teal-background{background:#007d7d}
  376 .white{color:#bfbfbf}
  377 .white-background{background:#fafafa}
  378 .yellow{color:#bfbf00}
  379 .yellow-background{background:#fafa00}
  380 span.icon>.fa{cursor:default}
  381 a span.icon>.fa{cursor:inherit}
  382 .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
  383 .admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
  384 .admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
  385 .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
  386 .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
  387 .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
  388 .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
  389 .conum[data-value] *{color:#fff!important}
  390 .conum[data-value]+b{display:none}
  391 .conum[data-value]::after{content:attr(data-value)}
  392 pre .conum[data-value]{position:relative;top:-.125em}
  393 b.conum *{color:inherit!important}
  394 .conum:not([data-value]):empty{display:none}
  395 dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
  396 h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
  397 p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
  398 p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
  399 p{margin-bottom:1.25rem}
  400 .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
  401 .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
  402 .print-only{display:none!important}
  403 @page{margin:1.25cm .75cm}
  404 @media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
  405 html{font-size:80%}
  406 a{color:inherit!important;text-decoration:underline!important}
  407 a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
  408 a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
  409 abbr[title]::after{content:" (" attr(title) ")"}
  410 pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
  411 thead{display:table-header-group}
  412 svg{max-width:100%}
  413 p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
  414 h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
  415 #toc,.sidebarblock,.exampleblock>.content{background:none!important}
  416 #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
  417 body.book #header{text-align:center}
  418 body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
  419 body.book #header .details{border:0!important;display:block;padding:0!important}
  420 body.book #header .details span:first-child{margin-left:0!important}
  421 body.book #header .details br{display:block}
  422 body.book #header .details br+span::before{content:none!important}
  423 body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
  424 body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
  425 .listingblock code[data-lang]::before{display:block}
  426 #footer{padding:0 .9375em}
  427 .hide-on-print{display:none!important}
  428 .print-only{display:block!important}
  429 .hide-for-print{display:none!important}
  430 .show-for-print{display:inherit!important}}
  431 @media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
  432 .sect1{padding:0!important}
  433 .sect1+.sect1{border:0}
  434 #footer{background:none}
  435 #footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
  436 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
  437 </style>
  438 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  439 <link rel="stylesheet" href="highlight_mod.css">
  440 </head>
  441 <body class="article toc2 toc-left">
  442 <div id="header">
  443 <h1>Highlight Support for Asciidoctor</h1>
  444 <div class="details">
  445 <span id="author" class="author">Tristano Ajmone</span><br>
  446 <span id="email" class="email"><a href="mailto:tajmone@gmail.com">tajmone@gmail.com</a></span><br>
  447 <span id="revnumber">version 1,</span>
  448 <span id="revdate">2019-04-12</span>
  449 </div>
  450 <div id="toc" class="toc2">
  451 <div id="toctitle">Table of Contents</div>
  452 <ul class="sectlevel1">
  453 <li><a href="#_introduction">Introduction</a></li>
  454 <li><a href="#_folder_contents">Folder Contents</a></li>
  455 <li><a href="#_original_vs_modded_extension">Original vs Modded Extension</a>
  456 <ul class="sectlevel2">
  457 <li><a href="#_custom_css_and_multiple_themes">Custom CSS and Multiple Themes</a></li>
  458 <li><a href="#_substitutions">Substitutions</a></li>
  459 <li><a href="#_highlight_datadir_enforcement"><code>HIGHLIGHT_DATADIR</code> Enforcement</a></li>
  460 </ul>
  461 </li>
  462 <li><a href="#_missing_features">Missing Features</a>
  463 <ul class="sectlevel2">
  464 <li><a href="#_callouts">Callouts</a></li>
  465 <li><a href="#_code_inside_tables">Code Inside Tables</a></li>
  466 </ul>
  467 </li>
  468 <li><a href="#_development_roadmap">Development Roadmap</a></li>
  469 <li><a href="#_credits">Credits</a>
  470 <ul class="sectlevel2">
  471 <li><a href="#_asciidoctor_highlight_extensions">Asciidoctor Highlight Extensions</a></li>
  472 <li><a href="#_asciidoctor_haml_templates">Asciidoctor Haml Templates</a></li>
  473 <li><a href="#_base16_color_schemes">Base16 Color Schemes</a></li>
  474 <li><a href="#_base16_sass">Base16 Sass</a></li>
  475 </ul>
  476 </li>
  477 </ul>
  478 </div>
  479 </div>
  480 <div id="content">
  481 <div id="preamble">
  482 <div class="sectionbody">
  483 <div class="paragraph">
  484 <p>Asciidoctor extensions to support syntax highlighting via Highlight in the HTML backend.</p>
  485 </div>
  486 <div class="ulist">
  487 <ul>
  488 <li>
  489 <p><code>highlight-treeprocessor.rb</code></p>
  490 </li>
  491 <li>
  492 <p><code>highlight-treeprocessor_mod.rb</code> v1.3.0 (2019-03-30)</p>
  493 </li>
  494 </ul>
  495 </div>
  496 </div>
  497 </div>
  498 <div class="sect1">
  499 <h2 id="_introduction"><a class="anchor" href="#_introduction"></a>Introduction</h2>
  500 <div class="sectionbody">
  501 <div class="paragraph">
  502 <p>AsciiDoc is a very powerful documentation markup syntax for writing documents and books in plaintext sources files which can be version controlled and converted to HTML5, DocBook, PDF, and many other formats&#8201;&#8212;&#8201;think markdown with tons of extra features.</p>
  503 </div>
  504 <div class="paragraph">
  505 <p>The most used AsciiDoc implementation today is
  506 <a href="https://asciidoctor.org/" title="visit Asciidoctor (Ruby) website" target="_blank" rel="noopener">Asciidoctor</a>,
  507 the Ruby successors of the original Python
  508 <a href="http://asciidoc.org//" title="visit AsciiDoc (Python) website" target="_blank" rel="noopener">AsciiDoc</a>.
  509 Asciidoctor is a fast, open source AsciiDoc text processor and publishing toolchain, with a rich echosystem of additional tools, extensions and resources.</p>
  510 </div>
  511 <div class="paragraph">
  512 <p>Unfortunately, Asciidoctor doesn&#8217;t natively support using Highlight for coloring code blocks in documentation, although other highlighters are natively supported.</p>
  513 </div>
  514 <div class="paragraph">
  515 <p>However, the Asciidoctor team has published on the
  516 <a href="https://github.com/asciidoctor/asciidoctor-extensions-lab">Asciidoctor Extensions Lab</a>
  517 project an
  518 <a href="https://asciidoctor.org/docs/user-manual/#extensions" title="Read more about this topic in the Asciidoctor official Documentation" target="_blank" rel="noopener">extension</a>
  519 called <strong>HighlightTreeprocessor</strong> that adds some basic support for Highlight integration:</p>
  520 </div>
  521 <div class="ulist">
  522 <ul>
  523 <li>
  524 <p><a href="https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/lib/highlight-treeprocessor.rb" class="bare">https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/lib/highlight-treeprocessor.rb</a></p>
  525 </li>
  526 </ul>
  527 </div>
  528 <div class="paragraph">
  529 <p>In this folder I&#8217;ll be including and documenting both the original extension as well as a tweaked version which I use in many documentation projects.</p>
  530 </div>
  531 </div>
  532 </div>
  533 <div class="sect1">
  534 <h2 id="_folder_contents"><a class="anchor" href="#_folder_contents"></a>Folder Contents</h2>
  535 <div class="sectionbody">
  536 <div class="hdlist">
  537 <table>
  538 <tr>
  539 <td class="hdlist1">
  540 <a href="./highlight-treeprocessor.rb" title="View the original HighlightTreeprocessor extension"><code>highlight-treeprocessor.rb</code></a> 
  541 </td>
  542 <td class="hdlist2">
  543 <p>The original extension.</p>
  544 </td>
  545 </tr>
  546 <tr>
  547 <td class="hdlist1">
  548 <a href="./highlight-treeprocessor_mod.rb" title="View the modded HighlightTreeprocessor extension"><code>highlight-treeprocessor_mod.rb</code></a> 
  549 </td>
  550 <td class="hdlist2">
  551 <p>The modded extension.</p>
  552 </td>
  553 </tr>
  554 <tr>
  555 <td class="hdlist1">
  556 <a href="./example.asciidoc" title="Example of using the original HighlightTreeprocessor extension"><code>example.asciidoc</code></a></br><a href="./example.html" title="Example of using the original HighlightTreeprocessor extension"><code>example.html</code></a> 
  557 </td>
  558 <td class="hdlist2">
  559 <p>Original extension usage example.</p>
  560 </td>
  561 </tr>
  562 <tr>
  563 <td class="hdlist1">
  564 <a href="./example_mod.asciidoc" title="Example of using the modded HighlightTreeprocessor extension"><code>example_mod.asciidoc</code></a></br><a href="./example_mod.html" title="Example of using the modded HighlightTreeprocessor extension"><code>example_mod.html</code></a></br><a href="./example_mod.css" title="Highlight styles for modded extension example"><code>example_mod.css</code></a> 
  565 </td>
  566 <td class="hdlist2">
  567 <p>Modded extension usage example.</p>
  568 </td>
  569 </tr>
  570 <tr>
  571 <td class="hdlist1">
  572 <a href="./haml/block_listing.html.haml" title="Custom haml template for using the modded HighlightTreeprocessor extension"><code>/haml/block_listing.html.haml</code></a></br>shared 
  573 </td>
  574 <td class="hdlist2">
  575 <p>Asciidoctor assets for the modded extension (only required during conversion).</p>
  576 </td>
  577 </tr>
  578 <tr>
  579 <td class="hdlist1">
  580 <a href="./sass" title="Sass sources for styling Highlight themes"><code>/sass/</code></a> 
  581 </td>
  582 <td class="hdlist2">
  583 <p>Sass sources and assets to customize the Highlight CSS themes for the modded extension examples.</p>
  584 </td>
  585 </tr>
  586 <tr>
  587 <td class="hdlist1">
  588 <a href="./build.sh" title="Script to convert the examples from AsciiDoc to HTML"><code>build.sh</code></a> 
  589 </td>
  590 <td class="hdlist2">
  591 <p>Converts the examples from AsciiDoc to HTML</p>
  592 </td>
  593 </tr>
  594 </table>
  595 </div>
  596 </div>
  597 </div>
  598 <div class="sect1">
  599 <h2 id="_original_vs_modded_extension"><a class="anchor" href="#_original_vs_modded_extension"></a>Original vs Modded Extension</h2>
  600 <div class="sectionbody">
  601 <div class="paragraph">
  602 <p>Here&#8217;s a comparison table of the differences between the original extension and my modded version:</p>
  603 </div>
  604 <table class="tableblock frame-all grid-all fit-content">
  605 <colgroup>
  606 <col>
  607 <col>
  608 <col>
  609 </colgroup>
  610 <thead>
  611 <tr>
  612 <th class="tableblock halign-left valign-top">feature</th>
  613 <th class="tableblock halign-center valign-top">original</th>
  614 <th class="tableblock halign-center valign-top">modded</th>
  615 </tr>
  616 </thead>
  617 <tbody>
  618 <tr>
  619 <td class="tableblock halign-left valign-top"><p class="tableblock">linenums</p></td>
  620 <td class="tableblock halign-center valign-top"><p class="tableblock">&check;</p></td>
  621 <td class="tableblock halign-center valign-top"><p class="tableblock">&check;</p></td>
  622 </tr>
  623 <tr>
  624 <td class="tableblock halign-left valign-top"><p class="tableblock">subs</p></td>
  625 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  626 <td class="tableblock halign-center valign-top"><p class="tableblock">&check;</p></td>
  627 </tr>
  628 <tr>
  629 <td class="tableblock halign-left valign-top"><p class="tableblock">external CSS</p></td>
  630 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  631 <td class="tableblock halign-center valign-top"><p class="tableblock">&check;</p></td>
  632 </tr>
  633 <tr>
  634 <td class="tableblock halign-left valign-top"><p class="tableblock">multiple themes</p></td>
  635 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  636 <td class="tableblock halign-center valign-top"><p class="tableblock">&check;</p></td>
  637 </tr>
  638 <tr>
  639 <td class="tableblock halign-left valign-top"><p class="tableblock">callouts</p></td>
  640 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  641 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  642 </tr>
  643 <tr>
  644 <td class="tableblock halign-left valign-top"><p class="tableblock">code in tables</p></td>
  645 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  646 <td class="tableblock halign-center valign-top"><p class="tableblock"><span class="red">&cross;</span></p></td>
  647 </tr>
  648 </tbody>
  649 </table>
  650 <div class="sect2">
  651 <h3 id="_custom_css_and_multiple_themes"><a class="anchor" href="#_custom_css_and_multiple_themes"></a>Custom CSS and Multiple Themes</h3>
  652 <div class="paragraph">
  653 <p>The reason I&#8217;ve tweaked the original extension was to allow using custom CSS stylesheets to provide each language with its own theme, instead of having a single coloring theme for every code block in the document.
  654 This is the main difference between the original extension and my modded version, and it comes at the price of having to provide your own CSS to the document&#8201;&#8212;&#8201;while the original extension will automatically inject into the document the CSS of an Highlight theme.</p>
  655 </div>
  656 <div class="paragraph">
  657 <p>So, if you&#8217;re happy highlighting all the code with one of Highlight native themes, then you should use the original <strong>HighlightTreeprocessor</strong> extension; but if you&#8217;d like more control over CSS styles, and to theme each language separately, then the modded extension is the way to go.</p>
  658 </div>
  659 <div class="paragraph">
  660 <p>In the <a href="./sass" title="Sass sources for styling Highlight themes"><code>/sass/</code></a> folder you&#8217;ll find some useful Sass/SCSS templates and examples on how to easily create multiple themes targeting specific languages.</p>
  661 </div>
  662 </div>
  663 <div class="sect2">
  664 <h3 id="_substitutions"><a class="anchor" href="#_substitutions"></a>Substitutions</h3>
  665 <div class="paragraph">
  666 <p>The other main difference is that the modded extension supports
  667 <a href="https://asciidoctor.org/docs/user-manual/#subs" title="Read more about this topic in the Asciidoctor official Documentation" target="_blank" rel="noopener">substitutions</a>
  668 in the code block.</p>
  669 </div>
  670 <div class="exampleblock">
  671 <div class="title">Example 1. Code with substitutions</div>
  672 <div class="content">
  673 <div class="literalblock">
  674 <div class="title">Asciidoc source</div>
  675 <div class="content">
  676 <pre>[source,alan,subs=quotes]
  677 ------------------------
  678 The 'dance hall' #IsA location#
  679   Description
  680     "The hall is #_bigger_ than you expected#, and
  681      far too crowded. You feel the urge to leave."
  682 End the.
  683 ------------------------</pre>
  684 </div>
  685 </div>
  686 <div class="listingblock">
  687 <div class="title">HTML result</div>
  688 <div class="content">
  689 <pre class="highlight" lang="alan"><code class="language-alan" data-lang="alan"><span class="hl kwa">The</span> &apos;dance hall&apos; <mark><span class="hl kwa">IsA</span> <span class="hl kwb">location</span></mark>&#x000A;  <span class="hl kwa">Description</span>&#x000A;    <span class="hl str">&quot;The hall is <mark><em>bigger</em> than you expected</mark>, and</span>&#x000A;<span class="hl str">     far too crowded. You feel the urge to leave.&quot;</span>&#x000A;<span class="hl kwa">End the.</span></code></pre>
  690 </div>
  691 </div>
  692 </div>
  693 </div>
  694 </div>
  695 <div class="sect2">
  696 <h3 id="_highlight_datadir_enforcement"><a class="anchor" href="#_highlight_datadir_enforcement"></a><code>HIGHLIGHT_DATADIR</code> Enforcement</h3>
  697 <div class="paragraph">
  698 <p>Another extra (optional) feature of the modded extension is that, if the <code>HIGHLIGHT_DATADIR</code> environment variable is set, it will enforce it by invoking Highlight with the <code>--data-dir=&lt;HIGHLIGHT_DATADIR&gt;</code> option so that it gets the highest override priority.</p>
  699 </div>
  700 <div class="paragraph">
  701 <p>This ensures that custom langDefs inside <code>HIGHLIGHT_DATADIR</code> will always override the predefined ones, whereas ordinarily the path of the <code>HIGHLIGHT_DATADIR</code> env var would be searched <em>after</em> Highlight installation folder.</p>
  702 </div>
  703 <div class="paragraph">
  704 <p>Since it&#8217;s not possible to control the <code>--data-dir</code> option from within AsciiDoc documents, this hardcoded workaround is a convenient solution for projects which need to override Highlight default configurations.</p>
  705 </div>
  706 </div>
  707 </div>
  708 </div>
  709 <div class="sect1">
  710 <h2 id="_missing_features"><a class="anchor" href="#_missing_features"></a>Missing Features</h2>
  711 <div class="sectionbody">
  712 <div class="paragraph">
  713 <p>Neither the original nor my modded version of the extension support callouts or highlighting listing blocks inside tables.</p>
  714 </div>
  715 <div class="sect2">
  716 <h3 id="_callouts"><a class="anchor" href="#_callouts"></a>Callouts</h3>
  717 <div class="paragraph">
  718 <p>The extension doesn&#8217;t currently process callouts, and Asciidoctor will raise a warning if you use them (indeed, the <a href="./build.sh" title="Script to convert the examples from AsciiDoc to HTML"><code>build.sh</code></a> script to convert this document does warn about missing callouts).</p>
  719 </div>
  720 <div class="exampleblock">
  721 <div class="title">Example 2. Code with callouts</div>
  722 <div class="content">
  723 <div class="listingblock">
  724 <div class="content">
  725 <pre class="highlight" lang="alan"><code class="language-alan" data-lang="alan"><span class="hl kwa">The</span> &apos;dance hall&apos; <span class="hl kwa">IsA</span> <span class="hl kwb">location</span> <span class="hl opt">&lt;</span><span class="hl num">1</span><span class="hl opt">&gt;&lt;</span><span class="hl num">2</span><span class="hl opt">&gt;</span>&#x000A;  <span class="hl kwa">Description</span> <span class="hl opt">&lt;</span><span class="hl num">3</span><span class="hl opt">&gt;</span>&#x000A;    <span class="hl str">&quot;The hall is bigger_ than you expected, and</span>&#x000A;<span class="hl str">     far too crowded. You feel the urge to leave.&quot;</span>&#x000A;<span class="hl kwa">End the.</span></code></pre>
  726 </div>
  727 </div>
  728 <div class="colist arabic">
  729 <table>
  730 <tr>
  731 <td><i class="conum" data-value="1"></i><b>1</b></td>
  732 <td><code>'dance hall'</code> is a quoted identifier, it will be show as the location name.</td>
  733 </tr>
  734 <tr>
  735 <td><i class="conum" data-value="2"></i><b>2</b></td>
  736 <td>The dance hall is an instance of the <code>location</code> class.</td>
  737 </tr>
  738 <tr>
  739 <td><i class="conum" data-value="3"></i><b>3</b></td>
  740 <td>The <code>Description</code> of a location will be shown every time the player enters the room or examines it via the <code>look</code> verb.</td>
  741 </tr>
  742 </table>
  743 </div>
  744 </div>
  745 </div>
  746 <div class="paragraph">
  747 <p>In the original extension support for callouts extraction and processing was never implemented.
  748 I&#8217;ve attempted to add callouts support myself, but without success.</p>
  749 </div>
  750 </div>
  751 <div class="sect2">
  752 <h3 id="_code_inside_tables"><a class="anchor" href="#_code_inside_tables"></a>Code Inside Tables</h3>
  753 <div class="paragraph">
  754 <p>Listing blocks inside table cells are not processed by the treeprocessor extension.
  755 The listing block will just get some basic styling but the code won&#8217;t be processed by Highlight.</p>
  756 </div>
  757 <div class="exampleblock">
  758 <div class="title">Example 3. Code listing inside a table cell</div>
  759 <div class="content">
  760 <table class="tableblock frame-all grid-all fit-content">
  761 <colgroup>
  762 <col>
  763 <col>
  764 </colgroup>
  765 <thead>
  766 <tr>
  767 <th class="tableblock halign-center valign-top">problem</th>
  768 <th class="tableblock halign-left valign-top">example</th>
  769 </tr>
  770 </thead>
  771 <tbody>
  772 <tr>
  773 <td class="tableblock halign-left valign-top"><p class="tableblock">Listing blocks inside tables won&#8217;t be highlighted.</p></td>
  774 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
  775 <p>This Lua block isn&#8217;t processed by Highlight:</p>
  776 </div>
  777 <div class="listingblock">
  778 <div class="content">
  779 <pre class="highlight" lang="lua"><code class="language-lua" data-lang="lua">if newState==HL_KEYWORD and kwgroup==5 then&#x000A;  AddKeyword(token, 5)&#x000A;end</code></pre>
  780 </div>
  781 </div></div></td>
  782 </tr>
  783 </tbody>
  784 </table>
  785 <div class="paragraph">
  786 <p>In the above table the rightmost column is set to be styled as AsciiDoc (using the <code>a</code> specifier):</p>
  787 </div>
  788 <div class="literalblock">
  789 <div class="content">
  790 <pre>[cols="1*&lt;d,1*&lt;a",options="header,autowidth"]</pre>
  791 </div>
  792 </div>
  793 <div class="paragraph">
  794 <p>But the treeprocessor extension doesn&#8217;t process listings inside table cells.</p>
  795 </div>
  796 </div>
  797 </div>
  798 <div class="admonitionblock note">
  799 <table>
  800 <tr>
  801 <td class="icon">
  802 <i class="fa icon-note" title="Note"></i>
  803 </td>
  804 <td class="content">
  805 For more details regarding this limitation, see Dan Allen&#8217;s reply in
  806 <a href="https://github.com/asciidoctor/asciidoctor/issues/2990" target="_blank" rel="noopener">Issue #2990</a>.
  807 </td>
  808 </tr>
  809 </table>
  810 </div>
  811 </div>
  812 </div>
  813 </div>
  814 <div class="sect1">
  815 <h2 id="_development_roadmap"><a class="anchor" href="#_development_roadmap"></a>Development Roadmap</h2>
  816 <div class="sectionbody">
  817 <div class="paragraph">
  818 <p>Bringing full Highlight support to Asciidoctor has always ranked high in my priorities list since I work a lot with code documentation and I enjoy the power of AsciiDoc.
  819 Unfortunately, I don&#8217;t have any knowledge of Ruby and the Asciidoctor API, so all my tweaks to the <strong>HighlightTreeprocessor</strong> extension so far are nothing more than trial and error attempts to hack my way through it.</p>
  820 </div>
  821 <div class="paragraph">
  822 <p>Lack of support for callouts is a serious limitation which hinders using Highlight in Asciidoctor projects&#8201;&#8212;&#8201;or the other way around, hinder using Asciidoctor in project which depend on Highlight.
  823 I&#8217;ve tried several times to add callouts support to the <strong>HighlightTreeprocessor</strong> extension, but to no avail.</p>
  824 </div>
  825 <div class="paragraph">
  826 <p>Also, as Dan Allen pointed out to me in
  827 <a href="https://github.com/asciidoctor/asciidoctor/issues/2990" target="_blank" rel="noopener">Issue #2990</a>,
  828 the new Asciidoctor API makes the approach of the <strong>HighlightTreeprocessor</strong> extension somewhat obsolete:</p>
  829 </div>
  830 <div class="quoteblock">
  831 <blockquote>
  832 <div class="paragraph">
  833 <p>Asciidoctor 2.0 introduces a new API for registering a syntax highlighter adapter. I recommend that you use this for your highlight extension. Here&#8217;s an example:</p>
  834 </div>
  835 <div class="paragraph">
  836 <p><a href="https://github.com/asciidoctor/asciidoctor/blob/master/lib/asciidoctor/syntax_highlighter/coderay.rb" class="bare">https://github.com/asciidoctor/asciidoctor/blob/master/lib/asciidoctor/syntax_highlighter/coderay.rb</a></p>
  837 </div>
  838 <div class="paragraph">
  839 <p>Instead of having to find nodes in a tree processor extension, the adapter gets called by the processor to highlight the relevant nodes, contribution markup to the output, and write a custom stylesheet.</p>
  840 </div>
  841 <div class="paragraph">
  842 <p>You can find the API docs here:</p>
  843 </div>
  844 <div class="paragraph">
  845 <p><a href="https://github.com/asciidoctor/asciidoctor/blob/master/lib/asciidoctor/syntax_highlighter.rb" class="bare">https://github.com/asciidoctor/asciidoctor/blob/master/lib/asciidoctor/syntax_highlighter.rb</a></p>
  846 </div>
  847 </blockquote>
  848 <div class="attribution">
  849 &#8212; Dan Allen (@mojavelinux)<br>
  850 <cite>Issue #2990 at asciidoctor</cite>
  851 </div>
  852 </div>
  853 <div class="paragraph">
  854 <p>So, ultimately, any further development in the direction of fully supporting Highlight in Asciidoctor (whether natively or by a third party extension) will need to shift to the new Asciidoctor 2.0 API.</p>
  855 </div>
  856 <div class="paragraph">
  857 <p>Hopefully, someone with more Ruby competence than me will take on this task, and soon we might see Highlight natively supported by Asciidoctor.
  858 In the meantime, I haven&#8217;t given up on this goal, and I&#8217;ll be trying to learn a bit of Ruby and study the new Asciidoctor API, and see where I can get.</p>
  859 </div>
  860 </div>
  861 </div>
  862 <div class="sect1">
  863 <h2 id="_credits"><a class="anchor" href="#_credits"></a>Credits</h2>
  864 <div class="sectionbody">
  865 <div class="paragraph">
  866 <p>Due credits and licenses for third party assets used in this directory tree.</p>
  867 </div>
  868 <div class="sect2">
  869 <h3 id="_asciidoctor_highlight_extensions"><a class="anchor" href="#_asciidoctor_highlight_extensions"></a>Asciidoctor Highlight Extensions</h3>
  870 <div class="ulist">
  871 <ul>
  872 <li>
  873 <p><a href="./highlight-treeprocessor.rb" title="View the original HighlightTreeprocessor extension"><code>highlight-treeprocessor.rb</code></a></p>
  874 </li>
  875 <li>
  876 <p><a href="./highlight-treeprocessor_mod.rb" title="View the modded HighlightTreeprocessor extension"><code>highlight-treeprocessor_mod.rb</code></a></p>
  877 </li>
  878 </ul>
  879 </div>
  880 <div class="paragraph">
  881 <p>The file <code>highlight-treeprocessor.rb</code> was taken from the
  882 <a href="https://github.com/asciidoctor/asciidoctor-extensions-lab" title="Visit the Asciidoctor  Extensions Lab project" target="_blank" rel="noopener"><strong>Asciidoctor Extensions Lab</strong></a>
  883 project (commit <code>18bdf62</code>), Copyright &#169; 2014-2016
  884 The Asciidoctor Project, released under MIT License:</p>
  885 </div>
  886 <div class="literalblock">
  887 <div class="content">
  888 <pre>The MIT License
  889 
  890 Copyright (C) 2014-2016 The Asciidoctor Project</pre>
  891 </div>
  892 </div>
  893 <div class="paragraph">
  894 <p>The <code>highlight-treeprocessor_mod.rb</code> file was adapted by Tristano Ajmone from the original file <code>highlight-treeprocessor.rb</code>, also released under MIT License:</p>
  895 </div>
  896 <div class="literalblock">
  897 <div class="content">
  898 <pre>The MIT License
  899 
  900 Copyright (C) 2018 Tristano Ajmone.
  901 Copyright (C) 2014-2016 The Asciidoctor Project
  902 
  903 Permission is hereby granted, free of charge, to any person obtaining a copy
  904 of this software and associated documentation files (the "Software"), to deal
  905 in the Software without restriction, including without limitation the rights
  906 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  907 copies of the Software, and to permit persons to whom the Software is
  908 furnished to do so, subject to the following conditions:
  909 
  910 The above copyright notice and this permission notice shall be included in
  911 all copies or substantial portions of the Software.
  912 
  913 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  914 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  915 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  916 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  917 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  918 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  919 THE SOFTWARE.</pre>
  920 </div>
  921 </div>
  922 </div>
  923 <div class="sect2">
  924 <h3 id="_asciidoctor_haml_templates"><a class="anchor" href="#_asciidoctor_haml_templates"></a>Asciidoctor Haml Templates</h3>
  925 <div class="ulist">
  926 <ul>
  927 <li>
  928 <p><a href="./haml" title="Custom Haml templates for the Asciidoctor HTML5 backend"><code>/haml/</code></a></p>
  929 </li>
  930 </ul>
  931 </div>
  932 <div class="paragraph">
  933 <p>The files inside the <code>/haml/</code> folder were adapted by Tristano Ajmone from the original
  934 <a href="https://github.com/asciidoctor/asciidoctor-backends/tree/master/haml/html5" target="_blank" rel="noopener">Haml HTML5 templates</a>
  935 taken from the
  936 <a href="https://github.com/asciidoctor/asciidoctor-backends" title="Visit the Asciidoctor Backends project" target="_blank" rel="noopener"><strong>Asciidoctor Backends</strong></a>
  937 project, Copyright &#169; 2012-2016 Dan Allen and the Asciidoctor Project, released under MIT License:</p>
  938 </div>
  939 <div class="literalblock">
  940 <div class="content">
  941 <pre>The MIT License
  942 
  943 Copyright (C) 2018 Tristano Ajmone.
  944 Copyright (C) 2012-2016 Dan Allen and the Asciidoctor Project
  945 
  946 Permission is hereby granted, free of charge, to any person obtaining a copy
  947 of this software and associated documentation files (the "Software"), to deal
  948 in the Software without restriction, including without limitation the rights
  949 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  950 copies of the Software, and to permit persons to whom the Software is
  951 furnished to do so, subject to the following conditions:
  952 
  953 The above copyright notice and this permission notice shall be included in
  954 all copies or substantial portions of the Software.
  955 
  956 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  957 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  958 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  959 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  960 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  961 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  962 THE SOFTWARE.</pre>
  963 </div>
  964 </div>
  965 </div>
  966 <div class="sect2">
  967 <h3 id="_base16_color_schemes"><a class="anchor" href="#_base16_color_schemes"></a>Base16 Color Schemes</h3>
  968 <div class="paragraph">
  969 <p>The Sass/CSS themes use the following Base16 color schemes:</p>
  970 </div>
  971 <div class="ulist">
  972 <ul>
  973 <li>
  974 <p><em>Base16 Eighties</em>, by <a href="http://chriskempson.com" target="_blank" rel="noopener">Chris Kempson</a></p>
  975 </li>
  976 <li>
  977 <p><em>Base16 Brewer</em>, by <a href="http://github.com/tpoisot" target="_blank" rel="noopener">Timothée Poisot</a></p>
  978 </li>
  979 </ul>
  980 </div>
  981 <div class="paragraph">
  982 <p>The <strong>Base16</strong> project was created by Chris Kempson:</p>
  983 </div>
  984 <div class="ulist">
  985 <ul>
  986 <li>
  987 <p><a href="http://chriskempson.com/projects/base16/" class="bare">http://chriskempson.com/projects/base16/</a></p>
  988 </li>
  989 </ul>
  990 </div>
  991 </div>
  992 <div class="sect2">
  993 <h3 id="_base16_sass"><a class="anchor" href="#_base16_sass"></a>Base16 Sass</h3>
  994 <div class="paragraph">
  995 <p>The following Base16 SCSS files:</p>
  996 </div>
  997 <div class="ulist">
  998 <ul>
  999 <li>
 1000 <p><a href="./sass/_base16-brewer.scss"><code>./sass/_base16-brewer.scss</code></a></p>
 1001 </li>
 1002 </ul>
 1003 </div>
 1004 <div class="paragraph">
 1005 <p>were taken from the <strong>Base16 Sass</strong> project by Tristano Ajmone:</p>
 1006 </div>
 1007 <div class="ulist">
 1008 <ul>
 1009 <li>
 1010 <p><a href="https://github.com/tajmone/Base16-Sass" class="bare">https://github.com/tajmone/Base16-Sass</a></p>
 1011 </li>
 1012 </ul>
 1013 </div>
 1014 <div class="paragraph">
 1015 <p>also released under MIT License.</p>
 1016 </div>
 1017 <div class="literalblock">
 1018 <div class="content">
 1019 <pre>MIT License
 1020 
 1021 Copyright (c) 2019 Tristano Ajmone &lt;tajmone@gmail.com&gt;
 1022 https://github.com/tajmone/Base16-Sass
 1023 
 1024 Copyright (c) 2012 Chris Kempson (http://chriskempson.com)
 1025 https://github.com/chriskempson/base16-builder
 1026 
 1027 Permission is hereby granted, free of charge, to any person obtaining a copy
 1028 of this software and associated documentation files (the "Software"), to deal
 1029 in the Software without restriction, including without limitation the rights
 1030 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 1031 copies of the Software, and to permit persons to whom the Software is
 1032 furnished to do so, subject to the following conditions:
 1033 
 1034 The above copyright notice and this permission notice shall be included in all
 1035 copies or substantial portions of the Software.
 1036 
 1037 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 1038 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 1039 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 1040 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 1041 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 1042 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 1043 SOFTWARE.</pre>
 1044 </div>
 1045 </div>
 1046 </div>
 1047 </div>
 1048 </div>
 1049 </div>
 1050 <div id="footer">
 1051 <div id="footer-text">
 1052 Version 1<br>
 1053 </div>
 1054 </div>
 1055 </body>
 1056 </html>