# HG changeset patch # User Steve Losh # Date 1578268633 18000 # Node ID 3a93ce0b1bd228bafe4ef93866b9bc8896f89585 # Parent 721e4d30593fe690b88737c90d5e2ba8b180a98a Remove all the old Hugo garbage diff -r 721e4d30593f -r 3a93ce0b1bd2 LICENSE --- a/LICENSE Sun Jan 05 18:36:56 2020 -0500 +++ b/LICENSE Sun Jan 05 18:57:13 2020 -0500 @@ -1,4 +1,4 @@ -Copyright (c) 2016 Steve Losh +Copyright (c) 2020 Steve Losh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff -r 721e4d30593f -r 3a93ce0b1bd2 config.toml --- a/config.toml Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -baseurl = "http://stevelosh.com/" -languageCode = "en-us" -title = "Steve Losh" -PluralizeListTitles = false -PygmentsCodeFences = true -pygmentsuseclasses = true -disableHugoGeneratorInject = true - -[Params] - DateForm = "January 2, 2006" - DateFormFull = "2006-01-02T15:04:05Z" - -[author] - name = "Steve Losh" diff -r 721e4d30593f -r 3a93ce0b1bd2 generate.lisp --- a/generate.lisp Sun Jan 05 18:36:56 2020 -0500 +++ b/generate.lisp Sun Jan 05 18:57:13 2020 -0500 @@ -86,6 +86,9 @@ ;;;; Base Templates ----------------------------------------------------------- +(defmacro css (href &rest more) + `(who (:link :href ,href :rel "stylesheet" :type "text/css" :charset "utf-8" ,@more))) + (defun t/header () (who (:header @@ -112,7 +115,8 @@ (:html :lang "en" (:head (:meta :charset "utf-8") - (:link :href "/static/style.css" :rel "stylesheet") + (css "/static/css/style.css") + (css "/static/css/print.css" :media "print") (:title (str (if title (format nil "~A / Steve Losh" title) "Steve Losh")))) diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/aal.css --- a/static-old/media/css/aal.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* - aardvark.legs originally by Anatoli Papirovski - http://fecklessmind.com/ - Licensed under the MIT license. http://www.opensource.org/licenses/mit-license.php -*/ - -/* - Reset first. Modified version of Eric Meyer and Paul Chaplin reset - from http://meyerweb.com/eric/tools/css/reset/ -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -header, nav, section, article, aside, footer -{border: 0; margin: 0; outline: 0; padding: 0; background: transparent; vertical-align: baseline;} - -article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { - display:block; -} - -blockquote, q {quotes: none;} -blockquote:before,blockquote:after,q:before,q:after {content: ''; content: none;} - -header, nav, section, article, aside, footer {display: block;} - -/* Basic styles */ -html {overflow-y: scroll;} -body {background: #fdfdfd; color: #353535; font: normal 18px/25px Palatino, "Palatino Linotype", serif; text-rendering: optimizeLegibility;} -html>body {font-size: 18px; line-height: 25px;} - -img {display: inline-block; vertical-align: bottom;} - -h1,h2,h3,h4,h5,h6,strong,b,dt,th {font-weight: 700;} -address,cite,em,i,caption,dfn,var {font-style: italic;} - -h1 { font-size: 45px; line-height: 50px; margin: 25px 0; } -h2 { font-size: 32px; line-height: 50px; margin: 25px 0; } -h3 { font-size: 23px; line-height: 25px; margin: 25px 0; } -h4 {margin: 0 0 22px; font-size: 16px; line-height: 22px;} -h5 {margin: 0 0 22px; font-size: 14px; line-height: 22px;} -h6 {margin: 0 0 22px; font-size: 12px; line-height: 22px;} - -p,ul,ol,dl,blockquote,pre {margin: 0 0 25px;} - -li ul,li ol {margin: 0;} -ul {list-style: outside disc;} -ol {list-style: outside decimal;} -li {margin: 0 0 0 44px;} -dd {padding-left: 25px;} -blockquote {padding: 0 25px;} - -a {text-decoration: underline;} -a:hover {text-decoration: none;} -abbr,acronym {border-bottom: 1px dotted; cursor: help;} -del {text-decoration: line-through;} -ins {text-decoration: overline;} -sub {font-size: 14px; line-height: 25px; vertical-align: sub;} -sup {font-size: 14px; line-height: 25px; vertical-align: super;} - -tt,code,kbd,samp,pre {font-size: 14px; line-height: 25px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace;} - -/* Table styles */ -/* TODO */ -table {border-collapse: collapse; border-spacing: 0; margin: 0 0 1.5em;} -caption {text-align: left;} -th, td {padding: .25em .5em;} -tbody td, tbody th {border: 1px solid #222;} -tfoot {font-style: italic;} - -/* Form styles */ -/* TODO */ -fieldset {clear: both;} -legend {padding: 0 0 1.286em; font-size: 1.167em; font-weight: 700;} -fieldset fieldset legend {padding: 0 0 1.5em; font-size: 1em;} -* html legend {margin-left: -7px;} -*+html legend {margin-left: -7px;} - -form .field, form .buttons {clear: both; margin: 0 0 1.5em;} -form .field label {display: block;} -form ul.fields li {list-style-type: none; margin: 0;} -form ul.inline li, form ul.inline label {display: inline;} -form ul.inline li {padding: 0 .75em 0 0;} - -input.radio, input.checkbox {vertical-align: top;} -label, button, input.submit, input.image {cursor: pointer;} -* html input.radio, * html input.checkbox {vertical-align: middle;} -*+html input.radio, *+html input.checkbox {vertical-align: middle;} - -textarea {overflow: auto;} -input.text, input.password, textarea, select {margin: 0; font: 1em/1.3 Helvetica, Arial, "Liberation Sans", "Bitstream Vera Sans", sans-serif; vertical-align: baseline;} -input.text, input.password, textarea {border: 1px solid #444; border-bottom-color: #666; border-right-color: #666; padding: 2px;} - -* html button {margin: 0 .34em 0 0;} -*+html button {margin: 0 .34em 0 0;} - -form.horizontal .field {padding-left: 150px;} -form.horizontal .field label {display: inline; float: left; width: 140px; margin-left: -150px;} - -/* Useful classes */ -/* TODO */ -img.left {display: inline; float: left; margin: 0 1.5em .75em 0;} -img.right {display: inline; float: right; margin: 0 0 .75em .75em;} -.group:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/featherlight.gallery.min.css --- a/static-old/media/css/featherlight.gallery.min.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -/** - * Featherlight Gallery – an extension for the ultra slim jQuery lightbox - * Version 1.7.7 - http://noelboss.github.io/featherlight/ - * - * Copyright 2017, Noël Raoul Bossart (http://www.noelboss.com) - * MIT Licensed. -**/ -@media all{.featherlight-next,.featherlight-previous{display:block;position:absolute;top:25px;right:25px;bottom:0;left:80%;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:rgba(0,0,0,0)}.featherlight-previous{left:25px;right:80%}.featherlight-next:hover,.featherlight-previous:hover{background:rgba(255,255,255,.25)}.featherlight-next span,.featherlight-previous span{display:none;position:absolute;top:50%;left:5%;width:82%;text-align:center;font-size:80px;line-height:80px;margin-top:-40px;text-shadow:0 0 5px #fff;color:#fff;font-style:normal;font-weight:400}.featherlight-next span{right:5%;left:auto}.featherlight-next:hover span,.featherlight-previous:hover span{display:inline-block}.featherlight-first-slide.featherlight-last-slide .featherlight-next,.featherlight-first-slide.featherlight-last-slide .featherlight-previous,.featherlight-loading .featherlight-next,.featherlight-loading .featherlight-previous,.featherlight-swipe-aware .featherlight-next,.featherlight-swipe-aware .featherlight-previous{display:none}}@media only screen and (max-device-width:1024px){.featherlight-next:hover,.featherlight-previous:hover{background:0 0}.featherlight-next span,.featherlight-previous span{display:block}}@media only screen and (max-width:1024px){.featherlight-next,.featherlight-previous{top:10px;right:10px;left:85%}.featherlight-previous{left:10px;right:85%}.featherlight-next span,.featherlight-previous span{margin-top:-30px;font-size:40px}} \ No newline at end of file diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/featherlight.min.css --- a/static-old/media/css/featherlight.min.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -/** - * Featherlight - ultra slim jQuery lightbox - * Version 1.7.7 - http://noelboss.github.io/featherlight/ - * - * Copyright 2017, Noël Raoul Bossart (http://www.noelboss.com) - * MIT Licensed. -**/ -@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch;overflow-y:scroll}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}} \ No newline at end of file diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/fixer.css --- a/static-old/media/css/fixer.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -body { - width: 700px !important; - margin: 50px auto 200px !important; - font: 18px/1.3 Palatino !important; -} - -pre, code, tt { - font: 16px/1.2 Menlo !important; -} - -pre { - width: 700px; - padding: 3px; - overflow-x: auto; - background-color: #fcfcfc; - border: 1px solid #ddd; -} - -tt, code { - padding: 1px 3px; - background-color: #fcfcfc; - border: 1px solid #ddd; -} - - diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/print.css --- a/static-old/media/css/print.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -body { - font: normal 10pt/1.25 Palatino, "Palatino Linotype"; - text-rendering: optimizeLegibility; -} -nav, -header, -.toc { - display: none; -} -#leaf-title a { - text-decoration: none; - color: black; -} -#leaf-content ul.print-links { - display: block; - font-size: 1em; - list-style-type: none; - margin-left: 0em; -} -#leaf-content ul.print-links a { - text-decoration: none; -} -#leaf-content code, -#leaf-content pre { - font: normal 9pt Menlo, Monaco, Consolas, "Courier New", Courier, monospace; -} -#leaf-content img { - display: block; - margin-left: auto; - margin-right: auto; - border: 1.43em solid #e5e5e5; - padding: 1px; - background: black; - width: 400px; -} -#leaf-content img.left, -#leaf-content img.right { - border: none; - background: none; - padding: none; -} -#leaf-content img.left { - margin: 0 1.5em 1em 0; - float: left; -} -#leaf-content img.right { - margin: 0 0 .75em 1em; - float: right; -} -div#leaf-content.with-diagrams img { - display: block; - margin-left: auto; - margin-right: auto; - background: none; - border: none; -} -span.amp { - font-family: "Palatino", "Constantia", "Palatino Linotype", serif; - font-style: italic; -} -a { - text-decoration: underline; - color: #c06; -} -footer { - display: none; -} diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/print.less --- a/static-old/media/css/print.less Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -body { - font: normal 10pt/1.25 Palatino, "Palatino Linotype"; - text-rendering: optimizeLegibility; -} - -nav, header, .toc { - display: none; -} -#leaf-title { - a { - text-decoration: none; - color: black; - } -} -#leaf-content { - ul.print-links { - display: block; - font-size: 1em; - list-style-type: none; - margin-left: 0em; - - a { - text-decoration: none; - } - } - code, pre { - font: normal 9pt Menlo, Monaco, Consolas, "Courier New", Courier, monospace; - } - img { - display: block; - margin-left: auto; - margin-right: auto; - border: 1.43em solid #e5e5e5; - padding: 1px; - background: black; - width: 400px; - } - img.left, img.right { - border: none; - background: none; - padding: none; - } - img.left { - margin: 0 1.5em 1em 0; - float: left; - } - img.right { - margin: 0 0 .75em 1em; - float: right; - } -} -div#leaf-content.with-diagrams img { - display: block; - margin-left: auto; - margin-right: auto; - background: none; - border: none; -} -span.amp { - font-family: "Palatino", "Constantia", "Palatino Linotype", serif; - font-style: italic; -} -a { - text-decoration: underline; - color: #c06; -} -footer { - display: none; -} diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/pygments-clean.css --- a/static-old/media/css/pygments-clean.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* @override http://localhost:8080/media/css/pygments-monokai-light.css */ -div.highlight .hll { background-color: #FFD7EF; display: block; } -div.highlight .err { color: #fff; background-color: #f00 } /* Error */ -div.highlight .gi { font-weight: bold } /* Diff Insert */ -div.highlight .gd { font-weight: bold } /* Diff Delete */ -div.highlight .k { color: #111} /* Keyword */ -div.highlight .l { color: #111 } /* Literal */ -div.highlight .n { color: #111 } /* Name */ -div.highlight .o { color: #111 } /* Operator */ -div.highlight .p { color: #111 } /* Punctuation */ -div.highlight .c { color: #714678; font-style: italic; font-weight: bold; } /* Comment */ -div.highlight .cm { color: #714678; font-style: italic; font-weight: bold; } /* Comment.Multiline */ -div.highlight .cp { color: #714678; font-style: italic; font-weight: bold; } /* Comment.Preproc */ -div.highlight .c1 { color: #714678; font-style: italic; font-weight: bold; } /* Comment.Single */ -div.highlight .cs { color: #714678; font-style: italic; font-weight: bold; } /* Comment.Special */ -div.highlight .ge { font-style: italic } /* Generic.Emph */ -div.highlight .gs { font-weight: bold } /* Generic.Strong */ -div.highlight .kc { color: #111 } /* Keyword.Constant */ -div.highlight .kd { color: #111 } /* Keyword.Declaration */ -div.highlight .kn { color: #111 } /* Keyword.Namespace */ -div.highlight .kp { color: #111 } /* Keyword.Pseudo */ -div.highlight .kr { color: #111 } /* Keyword.Reserved */ -div.highlight .kt { color: #111 } /* Keyword.Type */ -div.highlight .ld { color: #111 } /* Literal.Date */ -div.highlight .m { color: #111 } /* Literal.Number */ -div.highlight .s { color: #111; font-style: italic; } /* Literal.String */ -div.highlight .na { color: #111 } /* Name.Attribute */ -div.highlight .nb { color: #111 } /* Name.Builtin */ -div.highlight .nc { color: #111 } /* Name.Class */ -div.highlight .no { color: #111 } /* Name.Constant */ -div.highlight .nd { color: #111 } /* Name.Decorator */ -div.highlight .ni { color: #111 } /* Name.Entity */ -div.highlight .ne { color: #111 } /* Name.Exception */ -div.highlight .nf { color: #111} /* Name.Function */ -div.highlight .nl { color: #111 } /* Name.Label */ -div.highlight .nn { color: #111} /* Name.Namespace */ -div.highlight .nx { color: #111 } /* Name.Other */ -div.highlight .py { color: #111 } /* Name.Property */ -div.highlight .nt { color: #111 } /* Name.Tag */ -div.highlight .nv { color: #111 } /* Name.Variable */ -div.highlight .ow { color: #111 } /* Operator.Word */ -div.highlight .w { color: #111 } /* Text.Whitespace */ -div.highlight .mf { color: #111 } /* Literal.Number.Float */ -div.highlight .mh { color: #111 } /* Literal.Number.Hex */ -div.highlight .mi { color: #111 } /* Literal.Number.Integer */ -div.highlight .mo { color: #111 } /* Literal.Number.Oct */ -div.highlight .sb { color: #111 } /* Literal.String.Backtick */ -div.highlight .sc { color: #111 } /* Literal.String.Char */ -div.highlight .sd { color: #111 } /* Literal.String.Doc */ -div.highlight .s2 { color: #111 } /* Literal.String.Double */ -div.highlight .se { color: #111 } /* Literal.String.Escape */ -div.highlight .sh { color: #111 } /* Literal.String.Heredoc */ -div.highlight .si { color: #111 } /* Literal.String.Interpol */ -div.highlight .sx { color: #111 } /* Literal.String.Other */ -div.highlight .sr { color: #111 } /* Literal.String.Regex */ -div.highlight .s1 { color: #111 } /* Literal.String.Single */ -div.highlight .ss { color: #111 } /* Literal.String.Symbol */ -div.highlight .bp { color: #111 } /* Name.Builtin.Pseudo */ -div.highlight .vc { color: #111 } /* Name.Variable.Class */ -div.highlight .vg { color: #111 } /* Name.Variable.Global */ -div.highlight .vi { color: #111 } /* Name.Variable.Instance */ -div.highlight .il { color: #111 } /* Literal.Number.Integer.Long */ diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/pygments-monokai-light.css --- a/static-old/media/css/pygments-monokai-light.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* @override http://localhost:8080/media/css/pygments-monokai-light.css */ -.codehilite .hll { background-color: #49483e } -.codehilite .c { color: #7A7663 } /* Comment */ -.codehilite .err { color: #960050; background-color: #1e0010 } /* Error */ -.codehilite .k { color: #00a8c8} /* Keyword */ -.codehilite .l { color: #ae81ff } /* Literal */ -.codehilite .n { color: #111111 } /* Name */ -.codehilite .o { color: #f92672 } /* Operator */ -.codehilite .p { color: #111111 } /* Punctuation */ -.codehilite .cm { color: #75715e } /* Comment.Multiline */ -.codehilite .cp { color: #75715e } /* Comment.Preproc */ -.codehilite .c1 { color: #75715e } /* Comment.Single */ -.codehilite .cs { color: #75715e } /* Comment.Special */ -.codehilite .ge { font-style: italic } /* Generic.Emph */ -.codehilite .gs { font-weight: bold } /* Generic.Strong */ -.codehilite .kc { color: #00a8c8 } /* Keyword.Constant */ -.codehilite .kd { color: #00a8c8 } /* Keyword.Declaration */ -.codehilite .kn { color: #f92672 } /* Keyword.Namespace */ -.codehilite .kp { color: #00a8c8 } /* Keyword.Pseudo */ -.codehilite .kr { color: #00a8c8 } /* Keyword.Reserved */ -.codehilite .kt { color: #00a8c8 } /* Keyword.Type */ -.codehilite .ld { color: #d88200 } /* Literal.Date */ -.codehilite .m { color: #ae81ff } /* Literal.Number */ -.codehilite .s { color: #d88200} /* Literal.String */ -.codehilite .na { color: #75af00 } /* Name.Attribute */ -.codehilite .nb { color: #111111 } /* Name.Builtin */ -.codehilite .nc { color: #75af00 } /* Name.Class */ -.codehilite .no { color: #00a8c8 } /* Name.Constant */ -.codehilite .nd { color: #75af00 } /* Name.Decorator */ -.codehilite .ni { color: #111111 } /* Name.Entity */ -.codehilite .ne { color: #75af00 } /* Name.Exception */ -.codehilite .nf { color: #75af00} /* Name.Function */ -.codehilite .nl { color: #111111 } /* Name.Label */ -.codehilite .nn { color: #111111} /* Name.Namespace */ -.codehilite .nx { color: #111111 } /* Name.Other */ -.codehilite .py { color: #111111 } /* Name.Property */ -.codehilite .nt { color: #f92672 } /* Name.Tag */ -.codehilite .nv { color: #111111 } /* Name.Variable */ -.codehilite .ow { color: #f92672 } /* Operator.Word */ -.codehilite .w { color: #111111 } /* Text.Whitespace */ -.codehilite .mf { color: #ae81ff } /* Literal.Number.Float */ -.codehilite .mh { color: #ae81ff } /* Literal.Number.Hex */ -.codehilite .mi { color: #ae81ff } /* Literal.Number.Integer */ -.codehilite .mo { color: #ae81ff } /* Literal.Number.Oct */ -.codehilite .sb { color: #d88200 } /* Literal.String.Backtick */ -.codehilite .sc { color: #d88200 } /* Literal.String.Char */ -.codehilite .sd { color: #d88200 } /* Literal.String.Doc */ -.codehilite .s2 { color: #d88200 } /* Literal.String.Double */ -.codehilite .se { color: #8045FF } /* Literal.String.Escape */ -.codehilite .sh { color: #d88200 } /* Literal.String.Heredoc */ -.codehilite .si { color: #d88200 } /* Literal.String.Interpol */ -.codehilite .sx { color: #d88200 } /* Literal.String.Other */ -.codehilite .sr { color: #d88200 } /* Literal.String.Regex */ -.codehilite .s1 { color: #d88200 } /* Literal.String.Single */ -.codehilite .ss { color: #d88200 } /* Literal.String.Symbol */ -.codehilite .bp { color: #111111 } /* Name.Builtin.Pseudo */ -.codehilite .vc { color: #111111 } /* Name.Variable.Class */ -.codehilite .vg { color: #111111 } /* Name.Variable.Global */ -.codehilite .vi { color: #111111 } /* Name.Variable.Instance */ -.codehilite .il { color: #ae81ff } /* Literal.Number.Integer.Long */ diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/sjl.css --- a/static-old/media/css/sjl.css Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,396 +0,0 @@ -html { - overflow-y: scroll; -} -body { - text-rendering: optimizeLegibility; - color: #222; - position: relative; -} -body a { - text-decoration: none; - color: #e50053; -} -body a:hover { - text-decoration: underline; -} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6 { - font-family: HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - font-weight: normal; -} -body h1 a, -body h2 a, -body h3 a, -body h4 a, -body h5 a, -body h6 a { - color: #222; -} -body h1 a:hover, -body h2 a:hover, -body h3 a:hover, -body h4 a:hover, -body h5 a:hover, -body h6 a:hover { - color: #e50053; - text-decoration: none; -} -body h1 .amp, -body h2 .amp, -body h3 .amp, -body h4 .amp, -body h5 .amp, -body h6 .amp { - font-style: italic; -} -body h1 { - font-size: 45px; - line-height: 50px; - margin: 25px 0; -} -body h2 { - font-size: 32px; - line-height: 50px; - margin: 25px 0; -} -body h3 { - font-size: 23px; - line-height: 25px; - margin: 25px 0; -} -body h4 { - font-size: 18px; - line-height: 25px; - margin: 25px 0; - font-weight: bold; -} -body code, -body pre { - font-family: Consolas, Menlo, "Courier New", monospace; - font-size: 14px; -} -body div.threejs { - margin-bottom: 16px; -} -body div.threejs canvas { - border: 1px solid #222222; -} -body div.threejs div { - text-align: center; -} -body pre { - font-family: Consolas, Menlo, "Courier New", monospace; - font-size: 14px; - line-height: 20px; - overflow-x: auto; - border: 1px solid #d5d5d5; - border-left: 10px solid #d5d5d5; - background-color: #fafafa; - padding: 11px 15px 12px; - margin-left: -25px; -} -body pre::-webkit-scrollbar { - height: 25px; -} -body pre::-webkit-scrollbar-button:start, -body pre::-webkit-scrollbar-button:end { - display: none; -} -body pre::-webkit-scrollbar-track-piece { - background-color: #eee; -} -body pre::-webkit-scrollbar-thumb { - background-color: #bbb; - border: 7px solid #eee; - -webkit-background-clip: padding-box; - -webkit-border-radius: 12px; -} -body pre.lineart { - background: none; - font-family: Consolas, Menlo, "Courier New", monospace; - font-size: 16px; - line-height: 20px; - border: none; -} -body pre code { - line-height: 20px; -} -body p code, -body li code, -body table code { - border: 1px solid #ccc; - background-color: #fafafa; - font-size: 14px; - padding: 0px 3px; - line-height: 20px; - margin: 0; - white-space: nowrap; - display: inline-block; -} -body .wrap { - width: 615px; - margin: 0 auto; - margin-bottom: 5em; -} -body .wrap .top header { - float: left; - font-family: HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - font-size: 23px; - line-height: 50px; - text-transform: lowercase; - padding-left: 2px; - width: 120px; -} -body .wrap .top header .amp { - font-style: italic; -} -body .wrap .top header a { - color: #222; -} -body .wrap .top header a:hover { - color: #e50053; -} -body .wrap .top nav { - font: normal 18px/50px HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - text-align: right; - text-transform: lowercase; - padding-right: 2px; - width: 488px; - float: left; -} -body .wrap .top nav .sep { - padding: 0 4px; - color: #666; -} -body .wrap .hr { - margin-top: -12px; - margin-bottom: 37px; - height: 25px; - background: transparent url('/media/images/hr.png') top left no-repeat; -} -body .wrap .hrb { - height: 25px; - margin-top: 50px; - background: transparent url('/media/images/hrb.png') top left no-repeat; -} -body .wrap footer { - text-align: center; -} -body .wrap footer p { - font-size: 14px; - font-style: italic; - line-height: 50px; - margin-bottom: 0px; -} -body .wrap footer .rochester-made img { - opacity: 0.7; - padding: 5px 20px; -} -hr { - border: none; - background: #ccc; - height: 1px; - margin-bottom: 24px; -} -.splash { - color: #454545; - text-align: center; - font: normal 27px/32px HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - margin-bottom: -1px; - padding-top: 0; -} -.splash p { - margin-bottom: 24px; -} -.splash .amp { - font-style: italic; -} -.splash .fn { - color: #454545; - text-decoration: none; -} -.splash .fn:hover { - color: #e50053; - text-decoration: none; -} -.splash .fn .last-name { - display: none; -} -.section-listing { - margin-bottom: -50px; -} -.section-listing ol { - list-style-type: none; -} -.section-listing ol li { - margin: 0 0 25px 0; -} -.section-listing ol li a { - font: normal 23px/32px HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - color: #222; - display: block; -} -.section-listing ol li a:hover { - color: #e50053; - text-decoration: none; -} -.section-listing ol li span.snip { - font-size: 18px; - color: #333; - line-height: 25px; - font-style: italic; -} -.section-listing ol li .amp { - font-style: italic; -} -blockquote { - border: 1px solid #ccc; - background-color: #fafafa; - padding: 11px 15px 12px; - margin-left: 2em; - overflow: auto; -} -blockquote p:last-child { - margin-bottom: 0; -} -span.dquo { - margin-left: -0.23em; -} -#leaf-stats p { - color: #666; - margin-top: -22px; - margin-bottom: 22px; -} -#leaf-content img { - display: block; - margin: 25px auto 26px; - border: 11px solid #e5e5e5; - padding: 1px; - background: black; - max-width: 590px; -} -#leaf-content img.diagram { - display: block; - margin: 25px auto; - padding: 0; - background: none; - border: none; -} -#leaf-content img.left, -#leaf-content img.right { - border: none; - background: none; - padding: none; -} -#leaf-content img.left { - margin: 0 1.5em 1em 0; -} -#leaf-content img.right { - margin: 0 0 .75em 1em; -} -#leaf-content .gallery img { - background: none; - padding: 0; - border: none; - display: inline; - margin-bottom: 25px; - margin-right: 25px; -} -#leaf-content .photo-gallery-link { - display: inline-block; - position: relative; - width: 200px; - height: 200px; - margin-right: 1px; -} -#leaf-content .photo-gallery-link img { - display: block; - margin: 0px; - border: none; -} -#leaf-content .photo-gallery-link .caption { - width: 202px; - background: rgba(0, 0, 0, 0.6); - text-align: center; - color: white; - padding: 5px 0px 0px; - position: absolute; - left: 0px; - bottom: 10px; -} -#leaf-content .photo-gallery-thumbnail { - display: inline-block; - margin: 0px; - padding: 0px; - width: 200px; - height: 200px; - margin-right: 1px; -} -#leaf-content .photo-gallery-thumbnail img { - display: block; - margin: 0px; - border: none; -} -#leaf-content nav#TableOfContents ul { - list-style: none; -} -#leaf-content nav#TableOfContents ul:first-child > li { - margin-left: 0em; -} -#leaf-content table { - padding: 0px; - margin-top: -8px; - margin-bottom: 25px; -} -#leaf-content table tr { - margin: 0px; - padding: 0px; -} -#leaf-content table tr td, -#leaf-content table tr th { - margin: 0px; - padding: 5px 5px; - line-height: 23px; -} -#leaf-content table tr td { - border: 1px solid #666; -} -#leaf-toc { - display: none; -} -.print-links { - display: none; -} -img.self { - border: none; - padding: 0; - margin: 0; - margin-right: -108px; - margin-top: -15px; - margin-left: 30px; - margin-bottom: 20px; -} -div#cboxCurrent { - bottom: -30px; - font-size: 17px; - font-weight: normal; - left: 60px; -} -div.screenshots img { - max-width: 580px; -} -#scrolling-header { - color: #999; - font-size: 23px; - font-style: italic; - font: italic 23px HoeflerText-Regular, 'Hoefler Text', 'Goudy Old Style', 'Palatino', 'Palatino Linotype', serif; - line-height: 30px; - position: fixed; - top: 75px; - text-align: right; - width: 180px; -} diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/css/sjl.less --- a/static-old/media/css/sjl.less Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,404 +0,0 @@ -@c-link: #e50053; -@c-body: #222; -@w-body: 615px; -@font-fancy: HoeflerText-Regular,'Hoefler Text','Goudy Old Style','Palatino','Palatino Linotype',serif; - -html { - overflow-y: scroll; -} -body { - text-rendering: optimizeLegibility; - color: @c-body; - position: relative; - - a { - text-decoration: none; - color: @c-link; - - &:hover { - text-decoration: underline; - } - } - h1, h2, h3, h4, h5, h6 { - font-family: @font-fancy; - font-weight: normal; - - a { - color: @c-body; - - &:hover { - color: @c-link; - text-decoration: none; - } - } - .amp { - font-style: italic; - } - } - h1 { font-size: 45px; line-height: 50px; margin: 25px 0; } // 3 - h2 { font-size: 32px; line-height: 50px; margin: 25px 0; } // m7 - h3 { font-size: 23px; line-height: 25px; margin: 25px 0; } // 3 - h4 { font-size: 18px; line-height: 25px; margin: 25px 0; font-weight: bold; } // r - code, pre { - font-family: Consolas, Menlo, "Ubuntu Mono", "Courier New", monospace; - font-size: 16px; - } - div.threejs { - margin-bottom: 16px; - - canvas { - border: 1px solid #222222; - } - div { - text-align: center; - } - } - - pre { - font-family: Consolas, Menlo, "Ubuntu Mono", "Courier New", monospace; - font-size: 16px; - line-height: 20px; - - overflow-x: auto; - - border: 1px solid #d5d5d5; - border-left: 10px solid #d5d5d5; - background-color: #fafafa; - - padding: 11px 15px 12px; - margin-left: -25px; - } - pre::-webkit-scrollbar { - height: 25px; - } - pre::-webkit-scrollbar-button:start, - pre::-webkit-scrollbar-button:end { - display: none; - } - pre::-webkit-scrollbar-track-piece { - background-color: #eee; - } - pre::-webkit-scrollbar-thumb { - background-color: #bbb; - border: 7px solid #eee; - -webkit-background-clip: padding-box; - -webkit-border-radius: 12px; - } - - pre.lineart { - background: none; - font-family: Consolas, Menlo, "Ubuntu Mono", "Courier New", monospace; - font-size: 16px; - line-height: 20px; - border: none; - } - pre code { - line-height: 20px; - } - p code, li code, table code { - border: 1px solid #ccc; - background-color: #fafafa; - font-size: 16px; - padding: 1px 3px; - line-height: 20px; - margin: 0; - white-space: nowrap; - } - - .wrap { - width: @w-body; - margin: 0 auto; - margin-bottom: 5em; - - .top { - header { - float: left; - font-family: @font-fancy; - font-size: 23px; // 3 - line-height: 50px; - text-transform: lowercase; - padding-left: 2px; - width: 612px - 2px - 490px; - - .amp { - font-style: italic; - } - a { - color: @c-body; - - &:hover { - color: @c-link; - } - } - } - nav { - font: normal 18px/50px @font-fancy; // 1 - text-align: right; - text-transform: lowercase; - padding-right: 2px; - width: 490px - 2px; - float: left; - - .sep { - padding: 0 4px; - color: #666; - } - } - } - .hr { - margin-top: -12px; - margin-bottom: 12px + 25px; - height: 25px; - background: transparent url('/media/images/hr.png') top left no-repeat; - } - .hrb { - height: 25px; - margin-top: 50px; - background: transparent url('/media/images/hrb.png') top left no-repeat; - } - footer { - text-align: center; - - p { - font-size: 14px; - font-style: italic; - line-height: 50px; - margin-bottom: 0px; - } - .rochester-made { - img { - opacity: 0.7; - padding: 5px 20px; - } - } - } - } -} -hr { - border: none; - background: #ccc; - height: 1px; - margin-bottom: 24px; -} -.splash { - @color: #454545; - color: @color; - text-align: center; - font: normal 27px/32px @font-fancy; - margin-bottom: -1px; - padding-top: 0; - - p { - margin-bottom: 24px; - } - .amp { - font-style: italic; - } - .fn { - color: @color; - text-decoration: none; - - &:hover { - color: @c-link; - text-decoration: none; - } - .last-name { - display: none; - } - } -} -.section-listing { - margin-bottom: -50px; - ol { - list-style-type: none; - - li { - margin: 0 0 25px 0; - - a { - font: normal 23px/32px @font-fancy; // 3 - color: @c-body; - display: block; - - &:hover { - color: @c-link; - text-decoration: none; - } - } - - span.snip { - font-size: 18px; // 1 - color: #333; - line-height: 25px; - font-style: italic; - } - .amp { - font-style: italic; - } - } - } -} - -blockquote { - border: 1px solid #ccc; - background-color: #fafafa; - padding: 11px 15px 12px; - margin-left: 2em; - overflow: auto; - - p:last-child { - margin-bottom: 0; - } -} -span.dquo { - margin-left: -0.23em; -} - -#leaf-stats p { - color: #666; - margin-top: -22px; - margin-bottom: 22px; -} -#leaf-content { - img { - display: block; - margin: 25px auto 26px; - border: 11px solid #e5e5e5; - padding: 1px; - background: black; - max-width: 590px; - } - img.diagram { - display: block; - margin: 25px auto; - padding: 0; - background: none; - border: none; - } - img.left, img.right { - border: none; - background: none; - padding: none; - } - img.left { - margin: 0 1.5em 1em 0; - } - img.right { - margin: 0 0 .75em 1em; - } - .gallery img { - background: none; - padding: 0; - border: none; - display: inline; - margin-bottom: 25px; - margin-right: 25px; - } - .photo-gallery-link { - display: inline-block; - position: relative; - width: 200px; - height: 200px; - margin-right: 1px; - // border: 1px solid black; - - img { - display: block; - margin: 0px; - border: none; - } - .caption { - width: 202px; - background: rgba(0, 0, 0, 0.6); - text-align: center; - color: white; - padding: 5px 0px 0px; - - position: absolute; - left: 0px; - bottom: 10px; - } - } - .photo-gallery-thumbnail { - display: inline-block; - margin: 0px; - padding: 0px; - width: 200px; - height: 200px; - margin-right: 1px; - - img { - display: block; - margin: 0px; - border: none; - } - } - nav#TableOfContents { - ul { - list-style: none; - } - - ul:first-child>li { - margin-left: 0em; - } - } - table { - padding: 0px; - margin-top: -8px; - margin-bottom: 25px; - - tr { - margin: 0px; - padding: 0px; - - td, th { - margin: 0px; - padding: 5px 5px; - line-height: 23px; - } - td { - border: 1px solid #666; - } - } - } -} -#leaf-toc { - display: none; -} - -.print-links { - display: none; -} -img.self { - border: none; - padding: 0; - margin: 0; - margin-right: -108px; - margin-top: -15px; - margin-left: 30px; - margin-bottom: 20px; -} - -div#cboxCurrent { - bottom: -30px; - font-size: 17px; - font-weight: normal; - left: 60px; -} -div.screenshots { - img { - max-width: 580px; - } -} - -#scrolling-header { - color: #999; - font-size: 23px; - font-style: italic; - font: italic 23px @font-fancy; - line-height: 30px; - position: fixed; - top: 75px; - text-align: right; - width: 180px; -} diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/diamond-square.monopic Binary file static-old/media/diamond-square.monopic has changed diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/js/TrackballControls.js --- a/static-old/media/js/TrackballControls.js Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,606 +0,0 @@ - -/** - * @author Eberhard Graether / http://egraether.com/ - * @author Mark Lundin / http://mark-lundin.com - * @author Simone Manini / http://daron1337.github.io - * @author Luca Antiga / http://lantiga.github.io - */ - -THREE.TrackballControls = function ( object, domElement ) { - - var _this = this; - var STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 }; - - this.object = object; - this.domElement = ( domElement !== undefined ) ? domElement : document; - - // API - - this.enabled = true; - - this.screen = { left: 0, top: 0, width: 0, height: 0 }; - - this.rotateSpeed = 1.0; - this.zoomSpeed = 1.2; - this.panSpeed = 0.3; - - this.noRotate = false; - this.noZoom = false; - this.noPan = false; - - this.staticMoving = false; - this.dynamicDampingFactor = 0.2; - - this.minDistance = 0; - this.maxDistance = Infinity; - - this.keys = [ 65 /*A*/, 83 /*S*/, 68 /*D*/ ]; - - // internals - - this.target = new THREE.Vector3(); - - var EPS = 0.000001; - - var lastPosition = new THREE.Vector3(); - - var _state = STATE.NONE, - _prevState = STATE.NONE, - - _eye = new THREE.Vector3(), - - _movePrev = new THREE.Vector2(), - _moveCurr = new THREE.Vector2(), - - _lastAxis = new THREE.Vector3(), - _lastAngle = 0, - - _zoomStart = new THREE.Vector2(), - _zoomEnd = new THREE.Vector2(), - - _touchZoomDistanceStart = 0, - _touchZoomDistanceEnd = 0, - - _panStart = new THREE.Vector2(), - _panEnd = new THREE.Vector2(); - - // for reset - - this.target0 = this.target.clone(); - this.position0 = this.object.position.clone(); - this.up0 = this.object.up.clone(); - - // events - - var changeEvent = { type: 'change' }; - var startEvent = { type: 'start' }; - var endEvent = { type: 'end' }; - - - // methods - - this.handleResize = function () { - - if ( this.domElement === document ) { - - this.screen.left = 0; - this.screen.top = 0; - this.screen.width = window.innerWidth; - this.screen.height = window.innerHeight; - - } else { - - var box = this.domElement.getBoundingClientRect(); - // adjustments come from similar code in the jquery offset() function - var d = this.domElement.ownerDocument.documentElement; - this.screen.left = box.left + window.pageXOffset - d.clientLeft; - this.screen.top = box.top + window.pageYOffset - d.clientTop; - this.screen.width = box.width; - this.screen.height = box.height; - - } - - }; - - this.handleEvent = function ( event ) { - - if ( typeof this[ event.type ] == 'function' ) { - - this[ event.type ]( event ); - - } - - }; - - var getMouseOnScreen = ( function () { - - var vector = new THREE.Vector2(); - - return function getMouseOnScreen( pageX, pageY ) { - - vector.set( - ( pageX - _this.screen.left ) / _this.screen.width, - ( pageY - _this.screen.top ) / _this.screen.height - ); - - return vector; - - }; - - }() ); - - var getMouseOnCircle = ( function () { - - var vector = new THREE.Vector2(); - - return function getMouseOnCircle( pageX, pageY ) { - - vector.set( - ( ( pageX - _this.screen.width * 0.5 - _this.screen.left ) / ( _this.screen.width * 0.5 ) ), - ( ( _this.screen.height + 2 * ( _this.screen.top - pageY ) ) / _this.screen.width ) // screen.width intentional - ); - - return vector; - - }; - - }() ); - - this.rotateCamera = ( function() { - - var axis = new THREE.Vector3(), - quaternion = new THREE.Quaternion(), - eyeDirection = new THREE.Vector3(), - objectUpDirection = new THREE.Vector3(), - objectSidewaysDirection = new THREE.Vector3(), - moveDirection = new THREE.Vector3(), - angle; - - return function rotateCamera() { - - moveDirection.set( _moveCurr.x - _movePrev.x, _moveCurr.y - _movePrev.y, 0 ); - angle = moveDirection.length(); - - if ( angle ) { - - _eye.copy( _this.object.position ).sub( _this.target ); - - eyeDirection.copy( _eye ).normalize(); - objectUpDirection.copy( _this.object.up ).normalize(); - objectSidewaysDirection.crossVectors( objectUpDirection, eyeDirection ).normalize(); - - objectUpDirection.setLength( _moveCurr.y - _movePrev.y ); - objectSidewaysDirection.setLength( _moveCurr.x - _movePrev.x ); - - moveDirection.copy( objectUpDirection.add( objectSidewaysDirection ) ); - - axis.crossVectors( moveDirection, _eye ).normalize(); - - angle *= _this.rotateSpeed; - quaternion.setFromAxisAngle( axis, angle ); - - _eye.applyQuaternion( quaternion ); - _this.object.up.applyQuaternion( quaternion ); - - _lastAxis.copy( axis ); - _lastAngle = angle; - - } else if ( ! _this.staticMoving && _lastAngle ) { - - _lastAngle *= Math.sqrt( 1.0 - _this.dynamicDampingFactor ); - _eye.copy( _this.object.position ).sub( _this.target ); - quaternion.setFromAxisAngle( _lastAxis, _lastAngle ); - _eye.applyQuaternion( quaternion ); - _this.object.up.applyQuaternion( quaternion ); - - } - - _movePrev.copy( _moveCurr ); - - }; - - }() ); - - - this.zoomCamera = function () { - - var factor; - - if ( _state === STATE.TOUCH_ZOOM_PAN ) { - - factor = _touchZoomDistanceStart / _touchZoomDistanceEnd; - _touchZoomDistanceStart = _touchZoomDistanceEnd; - _eye.multiplyScalar( factor ); - - } else { - - factor = 1.0 + ( _zoomEnd.y - _zoomStart.y ) * _this.zoomSpeed; - - if ( factor !== 1.0 && factor > 0.0 ) { - - _eye.multiplyScalar( factor ); - - if ( _this.staticMoving ) { - - _zoomStart.copy( _zoomEnd ); - - } else { - - _zoomStart.y += ( _zoomEnd.y - _zoomStart.y ) * this.dynamicDampingFactor; - - } - - } - - } - - }; - - this.panCamera = ( function() { - - var mouseChange = new THREE.Vector2(), - objectUp = new THREE.Vector3(), - pan = new THREE.Vector3(); - - return function panCamera() { - - mouseChange.copy( _panEnd ).sub( _panStart ); - - if ( mouseChange.lengthSq() ) { - - mouseChange.multiplyScalar( _eye.length() * _this.panSpeed ); - - pan.copy( _eye ).cross( _this.object.up ).setLength( mouseChange.x ); - pan.add( objectUp.copy( _this.object.up ).setLength( mouseChange.y ) ); - - _this.object.position.add( pan ); - _this.target.add( pan ); - - if ( _this.staticMoving ) { - - _panStart.copy( _panEnd ); - - } else { - - _panStart.add( mouseChange.subVectors( _panEnd, _panStart ).multiplyScalar( _this.dynamicDampingFactor ) ); - - } - - } - - }; - - }() ); - - this.checkDistances = function () { - - if ( ! _this.noZoom || ! _this.noPan ) { - - if ( _eye.lengthSq() > _this.maxDistance * _this.maxDistance ) { - - _this.object.position.addVectors( _this.target, _eye.setLength( _this.maxDistance ) ); - _zoomStart.copy( _zoomEnd ); - - } - - if ( _eye.lengthSq() < _this.minDistance * _this.minDistance ) { - - _this.object.position.addVectors( _this.target, _eye.setLength( _this.minDistance ) ); - _zoomStart.copy( _zoomEnd ); - - } - - } - - }; - - this.update = function () { - - _eye.subVectors( _this.object.position, _this.target ); - - if ( ! _this.noRotate ) { - - _this.rotateCamera(); - - } - - if ( ! _this.noZoom ) { - - _this.zoomCamera(); - - } - - if ( ! _this.noPan ) { - - _this.panCamera(); - - } - - _this.object.position.addVectors( _this.target, _eye ); - - _this.checkDistances(); - - _this.object.lookAt( _this.target ); - - if ( lastPosition.distanceToSquared( _this.object.position ) > EPS ) { - - _this.dispatchEvent( changeEvent ); - - lastPosition.copy( _this.object.position ); - - } - - }; - - this.reset = function () { - - _state = STATE.NONE; - _prevState = STATE.NONE; - - _this.target.copy( _this.target0 ); - _this.object.position.copy( _this.position0 ); - _this.object.up.copy( _this.up0 ); - - _eye.subVectors( _this.object.position, _this.target ); - - _this.object.lookAt( _this.target ); - - _this.dispatchEvent( changeEvent ); - - lastPosition.copy( _this.object.position ); - - }; - - // listeners - - function keydown( event ) { - - if ( _this.enabled === false ) return; - - _prevState = _state; - - if ( _state !== STATE.NONE ) { - - return; - - } else if ( event.keyCode === _this.keys[ STATE.ROTATE ] && ! _this.noRotate ) { - - _state = STATE.ROTATE; - - } else if ( event.keyCode === _this.keys[ STATE.ZOOM ] && ! _this.noZoom ) { - - _state = STATE.ZOOM; - - } else if ( event.keyCode === _this.keys[ STATE.PAN ] && ! _this.noPan ) { - - _state = STATE.PAN; - - } - - } - - function keyup( event ) { - - if ( _this.enabled === false ) return; - - _state = _prevState; - - } - - function mousedown( event ) { - - if ( _this.enabled === false ) return; - - if ( _state === STATE.NONE ) { - - _state = event.button; - - } - - if ( _state === STATE.ROTATE && ! _this.noRotate ) { - - _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); - _movePrev.copy( _moveCurr ); - - } else if ( _state === STATE.ZOOM && ! _this.noZoom ) { - - _zoomStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - _zoomEnd.copy( _zoomStart ); - - } else if ( _state === STATE.PAN && ! _this.noPan ) { - - _panStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - _panEnd.copy( _panStart ); - - } - - document.addEventListener( 'mousemove', mousemove, false ); - document.addEventListener( 'mouseup', mouseup, false ); - - _this.dispatchEvent( startEvent ); - - } - - function mousemove( event ) { - - if ( _this.enabled === false ) return; - - if ( _state === STATE.ROTATE && ! _this.noRotate ) { - - _movePrev.copy( _moveCurr ); - _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); - - } else if ( _state === STATE.ZOOM && ! _this.noZoom ) { - - _zoomEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - - } else if ( _state === STATE.PAN && ! _this.noPan ) { - - _panEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); - - } - - } - - function mouseup( event ) { - - if ( _this.enabled === false ) return; - - _state = STATE.NONE; - - document.removeEventListener( 'mousemove', mousemove ); - document.removeEventListener( 'mouseup', mouseup ); - _this.dispatchEvent( endEvent ); - - } - - function mousewheel( event ) { - - if ( _this.enabled === false ) return; - - var delta = 0; - - if ( event.wheelDelta ) { - - // WebKit / Opera / Explorer 9 - - delta = event.wheelDelta / 40; - - } else if ( event.detail ) { - - // Firefox - - delta = - event.detail / 3; - - } - - _zoomStart.y += delta * 0.01; - _this.dispatchEvent( startEvent ); - _this.dispatchEvent( endEvent ); - - } - - function touchstart( event ) { - - if ( _this.enabled === false ) return; - - switch ( event.touches.length ) { - - case 1: - _state = STATE.TOUCH_ROTATE; - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - _movePrev.copy( _moveCurr ); - break; - - default: // 2 or more - _state = STATE.TOUCH_ZOOM_PAN; - var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - _touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy ); - - var x = ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ) / 2; - var y = ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ) / 2; - _panStart.copy( getMouseOnScreen( x, y ) ); - _panEnd.copy( _panStart ); - break; - - } - - _this.dispatchEvent( startEvent ); - - } - - function touchmove( event ) { - - if ( _this.enabled === false ) return; - - switch ( event.touches.length ) { - - case 1: - _movePrev.copy( _moveCurr ); - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - break; - - default: // 2 or more - var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; - var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; - _touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy ); - - var x = ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ) / 2; - var y = ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY ) / 2; - _panEnd.copy( getMouseOnScreen( x, y ) ); - break; - - } - - } - - function touchend( event ) { - - if ( _this.enabled === false ) return; - - switch ( event.touches.length ) { - - case 0: - _state = STATE.NONE; - break; - - case 1: - _state = STATE.TOUCH_ROTATE; - _moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) ); - _movePrev.copy( _moveCurr ); - break; - - } - - _this.dispatchEvent( endEvent ); - - } - - function contextmenu( event ) { - - event.preventDefault(); - - } - - this.dispose = function() { - - this.domElement.removeEventListener( 'contextmenu', contextmenu, false ); - this.domElement.removeEventListener( 'mousedown', mousedown, false ); - this.domElement.removeEventListener( 'mousewheel', mousewheel, false ); - this.domElement.removeEventListener( 'MozMousePixelScroll', mousewheel, false ); // firefox - - this.domElement.removeEventListener( 'touchstart', touchstart, false ); - this.domElement.removeEventListener( 'touchend', touchend, false ); - this.domElement.removeEventListener( 'touchmove', touchmove, false ); - - document.removeEventListener( 'mousemove', mousemove, false ); - document.removeEventListener( 'mouseup', mouseup, false ); - - window.removeEventListener( 'keydown', keydown, false ); - window.removeEventListener( 'keyup', keyup, false ); - - }; - - this.domElement.addEventListener( 'contextmenu', contextmenu, false ); - this.domElement.addEventListener( 'mousedown', mousedown, false ); - this.domElement.addEventListener( 'mousewheel', mousewheel, false ); - this.domElement.addEventListener( 'MozMousePixelScroll', mousewheel, false ); // firefox - - this.domElement.addEventListener( 'touchstart', touchstart, false ); - this.domElement.addEventListener( 'touchend', touchend, false ); - this.domElement.addEventListener( 'touchmove', touchmove, false ); - - window.addEventListener( 'keydown', keydown, false ); - window.addEventListener( 'keyup', keyup, false ); - - this.handleResize(); - - // force an update at start - this.update(); - -}; - -THREE.TrackballControls.prototype = Object.create( THREE.EventDispatcher.prototype ); -THREE.TrackballControls.prototype.constructor = THREE.TrackballControls; - diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/js/featherlight.gallery.min.js --- a/static-old/media/js/featherlight.gallery.min.js Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -/** - * Featherlight Gallery – an extension for the ultra slim jQuery lightbox - * Version 1.7.7 - http://noelboss.github.io/featherlight/ - * - * Copyright 2017, Noël Raoul Bossart (http://www.noelboss.com) - * MIT Licensed. -**/!function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&(c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g&&(c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}),c.$instance.addClass(this.namespace+"-swipe-aware",g)),c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},beforeContent:function(a,b){var c=this.currentNavigation(),d=this.slides().length;return this.$instance.toggleClass(this.namespace+"-first-slide",0===c).toggleClass(this.namespace+"-last-slide",c===d-1),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-featherlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a(''+this[b+"Icon"]+"").click(function(){a(this).trigger(b+"."+c.namespace)})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a),this},a(document).ready(function(){b._onReady()})}(jQuery); \ No newline at end of file diff -r 721e4d30593f -r 3a93ce0b1bd2 static-old/media/js/featherlight.min.js --- a/static-old/media/js/featherlight.min.js Sun Jan 05 18:36:56 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -/** - * Featherlight - ultra slim jQuery lightbox - * Version 1.7.7 - http://noelboss.github.io/featherlight/ - * - * Copyright 2017, Noël Raoul Bossart (http://www.noelboss.com) - * MIT Licensed. -**/ -!function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}function c(a,b){var c={};for(var d in a)d in b&&(c[d]=a[d],delete a[d]);return c}function d(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var e=[],f=function(b){return e=a.grep(e,function(a){return a!==b&&a.$instance.closest("body").length>0})},g={allowfullscreen:1,frameborder:1,height:1,longdesc:1,marginheight:1,marginwidth:1,name:1,referrerpolicy:1,scrolling:1,sandbox:1,src:1,srcdoc:1,width:1},h={keyup:"onKeyUp",resize:"onResize"},i=function(c){a.each(b.opened().reverse(),function(){return c.isDefaultPrevented()||!1!==this[h[c.type]](c)?void 0:(c.preventDefault(),c.stopPropagation(),!1)})},j=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(h,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,i)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"✕",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=!1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['
','
','",'
'+d.loading+"
","
","
"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(d.close(b),b.preventDefault())}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f=b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){var c=this;return b.is("iframe")&&c.$instance.addClass(c.namespace+"-iframe"),c.$instance.removeClass(c.namespace+"-loading"),c.$instance.find("."+c.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(c.$instance[0],b[0])?"":b),c.$content=b.addClass(c.namespace+"-inner"),c},open:function(b){var c=this;if(c.$instance.hide().appendTo(c.root),!(b&&b.isDefaultPrevented()||c.beforeOpen(b)===!1)){b&&b.preventDefault();var d=c.getContent();if(d)return e.push(c),j(!0),c.$instance.fadeIn(c.openSpeed),c.beforeContent(b),a.when(d).always(function(a){c.setContent(a),c.afterContent(b)}).then(c.$instance.promise()).done(function(){c.afterOpen(b)})}return c.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,d=a.Deferred();return c.beforeClose(b)===!1?d.reject():(0===f(c).length&&j(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),d.resolve()})),d.promise()},resize:function(a,b){if(a&&b){this.$content.css("width","").css("height","");var c=Math.max(a/(this.$content.parent().width()-1),b/(this.$content.parent().height()-1));c>1&&(c=b/Math.floor(b/c),this.$content.css("width",""+a/c+"px").css("height",""+b/c+"px"))}},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("
").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var e=new a.Deferred,f=a("