diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..213f2e0 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Thibaut Lienart + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..70483c7 --- /dev/null +++ b/Project.toml @@ -0,0 +1,7 @@ +[deps] +Franklin = "713c75ef-9fc9-4b05-94a9-213340da978e" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" +PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" diff --git a/README.md b/README.md new file mode 100644 index 0000000..23abde5 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Franklin Docs + +Website for [Franklin.jl](https://github.com/tlienart/Franklin.jl). + +## Dev note + +No prerendering (due to tricky code environments that get destroyed by highlight.js). diff --git a/_assets/code/eval-tricks/code/circles.jl b/_assets/code/eval-tricks/code/circles.jl new file mode 100644 index 0000000..130a489 --- /dev/null +++ b/_assets/code/eval-tricks/code/circles.jl @@ -0,0 +1,6 @@ +# This file was generated, do not modify it. # hide +#hideall +colors=(:pink, :lightpink, :hotpink, :deeppink, :mediumvioletred, :palevioletred, :coral, :tomato, :orangered, :darkorange, :orange, :gold, :yellow) +print("@@ccols ") +print.("\\circle{$c}" for c in colors) +println("@@") \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/output/circles.out b/_assets/code/eval-tricks/code/output/circles.out new file mode 100644 index 0000000..47cad96 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/circles.out @@ -0,0 +1 @@ +@@ccols \circle{pink}\circle{lightpink}\circle{hotpink}\circle{deeppink}\circle{mediumvioletred}\circle{palevioletred}\circle{coral}\circle{tomato}\circle{orangered}\circle{darkorange}\circle{orange}\circle{gold}\circle{yellow}@@ diff --git a/_assets/code/eval-tricks/code/output/circles.res b/_assets/code/eval-tricks/code/output/circles.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/circles.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/output/py1.out b/_assets/code/eval-tricks/code/output/py1.out new file mode 100644 index 0000000..f429be0 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/py1.out @@ -0,0 +1 @@ +0.65 diff --git a/_assets/code/eval-tricks/code/output/py1.res b/_assets/code/eval-tricks/code/output/py1.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/py1.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/output/table.out b/_assets/code/eval-tricks/code/output/table.out new file mode 100644 index 0000000..3e7a9f1 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/table.out @@ -0,0 +1,19 @@ +@@simple-table +Name | Number +:--- | :--- +Taimur | 1525 +Catherine | 5134 +Maria | 4214 +Arvind | 9019 +Jose | 8918 +Minjie | 5757 +@@ +~~~ + +~~~ + diff --git a/_assets/code/eval-tricks/code/output/table.res b/_assets/code/eval-tricks/code/output/table.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/table.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/output/teamcards.out b/_assets/code/eval-tricks/code/output/teamcards.out new file mode 100644 index 0000000..9b7cb3a --- /dev/null +++ b/_assets/code/eval-tricks/code/output/teamcards.out @@ -0,0 +1,77 @@ +@@cards @@row +@@column + \card{Jane Doe}{CEO & Founder}{Phasellus eget enim eu lectus faucibus vestibulum}{example@example.com} +@@ + +@@column + \card{Mike Ross}{Art Director}{Phasellus eget enim eu lectus faucibus vestibulum}{example@example.com} +@@ + +@@column + \card{John Doe}{Designer}{Phasellus eget enim eu lectus faucibus vestibulum}{example@example.com} +@@ + +@@ @@ +~~~ + +~~~ + diff --git a/_assets/code/eval-tricks/code/output/teamcards.res b/_assets/code/eval-tricks/code/output/teamcards.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/eval-tricks/code/output/teamcards.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/py1.jl b/_assets/code/eval-tricks/code/py1.jl new file mode 100644 index 0000000..f7c7953 --- /dev/null +++ b/_assets/code/eval-tricks/code/py1.jl @@ -0,0 +1,12 @@ +# This file was generated, do not modify it. # hide +#hideall +using PyCall +lines = replace("""import numpy as np +np.random.seed(2) +x = np.random.randn(5) +r = np.linalg.norm(x) / len(x) +np.round(r, 2)""", r"(^|\n)([^\n]+)\n?$" => s"\1res = \2") +py""" +$$lines +""" +println(py"res") \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/table.jl b/_assets/code/eval-tricks/code/table.jl new file mode 100644 index 0000000..e7c807e --- /dev/null +++ b/_assets/code/eval-tricks/code/table.jl @@ -0,0 +1,19 @@ +# This file was generated, do not modify it. # hide +#hideall +names = (:Taimur, :Catherine, :Maria, :Arvind, :Jose, :Minjie) +numbers = (1525, 5134, 4214, 9019, 8918, 5757) +println("@@simple-table") +println("Name | Number") +println(":--- | :---") +println.("$name | $number" for (name, number) in zip(names, numbers)) +println("@@") +raw""" +~~~ + +~~~ +""" |> println \ No newline at end of file diff --git a/_assets/code/eval-tricks/code/teamcards.jl b/_assets/code/eval-tricks/code/teamcards.jl new file mode 100644 index 0000000..f9decbe --- /dev/null +++ b/_assets/code/eval-tricks/code/teamcards.jl @@ -0,0 +1,82 @@ +# This file was generated, do not modify it. # hide +#hideall +team = [ + (name="Jane Doe", title="CEO & Founder", vitae="Phasellus eget enim eu lectus faucibus vestibulum", email="example@example.com"), + (name="Mike Ross", title="Art Director", vitae="Phasellus eget enim eu lectus faucibus vestibulum", email="example@example.com"), + (name="John Doe", title="Designer", vitae="Phasellus eget enim eu lectus faucibus vestibulum", email="example@example.com") + ] + +"@@cards @@row" |> println +for person in team + """ + @@column + \\card{$(person.name)}{$(person.title)}{$(person.vitae)}{$(person.email)} + @@ + """ |> println +end +println("@@ @@") # end of cards + row + +raw""" +~~~ + +~~~ +""" |> println \ No newline at end of file diff --git a/_assets/code/index/code/ex_show.jl b/_assets/code/index/code/ex_show.jl new file mode 100644 index 0000000..e32503e --- /dev/null +++ b/_assets/code/index/code/ex_show.jl @@ -0,0 +1,4 @@ +# This file was generated, do not modify it. # hide +x = 5 +println("hello") +x^2 \ No newline at end of file diff --git a/_assets/code/index/code/output/ex_show.out b/_assets/code/index/code/output/ex_show.out new file mode 100644 index 0000000..ce01362 --- /dev/null +++ b/_assets/code/index/code/output/ex_show.out @@ -0,0 +1 @@ +hello diff --git a/_assets/code/index/code/output/ex_show.res b/_assets/code/index/code/output/ex_show.res new file mode 100644 index 0000000..410b14d --- /dev/null +++ b/_assets/code/index/code/output/ex_show.res @@ -0,0 +1 @@ +25 \ No newline at end of file diff --git a/_assets/code/index/code/output/pyplot1.out b/_assets/code/index/code/output/pyplot1.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/code/index/code/output/pyplot1.res b/_assets/code/index/code/output/pyplot1.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/index/code/output/pyplot1.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/index/code/output/sinc.svg b/_assets/code/index/code/output/sinc.svg new file mode 100644 index 0000000..351768b --- /dev/null +++ b/_assets/code/index/code/output/sinc.svg @@ -0,0 +1,1622 @@ + + + + diff --git a/_assets/code/index/code/pyplot1.jl b/_assets/code/index/code/pyplot1.jl new file mode 100644 index 0000000..ec8d74e --- /dev/null +++ b/_assets/code/index/code/pyplot1.jl @@ -0,0 +1,8 @@ +# This file was generated, do not modify it. # hide +using PyPlot +figure(figsize=(8, 6)) +x = range(-2, 2, length=500) +for α in 1:5 + plot(x, sinc.(α .* x)) +end +savefig(joinpath(@OUTPUT, "sinc.svg")) # hide \ No newline at end of file diff --git a/_assets/code/literate/code/ee.jl b/_assets/code/literate/code/ee.jl new file mode 100644 index 0000000..aeec79c --- /dev/null +++ b/_assets/code/literate/code/ee.jl @@ -0,0 +1,2 @@ +# This file was generated, do not modify it. # hide +x = randn(10) \ No newline at end of file diff --git a/_assets/code/literate/code/ee2.jl b/_assets/code/literate/code/ee2.jl new file mode 100644 index 0000000..985e555 --- /dev/null +++ b/_assets/code/literate/code/ee2.jl @@ -0,0 +1,4 @@ +# This file was generated, do not modify it. # hide +x = rand(10) +println(sum(x)) +y = 5 \ No newline at end of file diff --git a/_assets/code/literate/code/ee3.jl b/_assets/code/literate/code/ee3.jl new file mode 100644 index 0000000..8fbcbc9 --- /dev/null +++ b/_assets/code/literate/code/ee3.jl @@ -0,0 +1,3 @@ +# This file was generated, do not modify it. # hide +x = randn(10) +@show x[1] \ No newline at end of file diff --git a/_assets/code/literate/code/ex1.jl b/_assets/code/literate/code/ex1.jl new file mode 100644 index 0000000..b041e98 --- /dev/null +++ b/_assets/code/literate/code/ex1.jl @@ -0,0 +1,2 @@ +# This file was generated, do not modify it. # hide +x = exp(im*π) + 1 \ No newline at end of file diff --git a/_assets/code/literate/code/ex2.jl b/_assets/code/literate/code/ex2.jl new file mode 100644 index 0000000..99804a7 --- /dev/null +++ b/_assets/code/literate/code/ex2.jl @@ -0,0 +1,2 @@ +# This file was generated, do not modify it. # hide +x ≈ 0 \ No newline at end of file diff --git a/_assets/code/literate/code/ex3.jl b/_assets/code/literate/code/ex3.jl new file mode 100644 index 0000000..246a003 --- /dev/null +++ b/_assets/code/literate/code/ex3.jl @@ -0,0 +1,2 @@ +# This file was generated, do not modify it. # hide +abs(x) < eps() \ No newline at end of file diff --git a/_assets/code/literate/code/output/ee.out b/_assets/code/literate/code/output/ee.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/code/literate/code/output/ee.res b/_assets/code/literate/code/output/ee.res new file mode 100644 index 0000000..8e323c8 --- /dev/null +++ b/_assets/code/literate/code/output/ee.res @@ -0,0 +1,11 @@ +10-element Array{Float64,1}: + -0.38675115697308454 + 1.6354610234843316 + -1.2380735722784506 + -0.07027813689054306 + -1.5736602463947076 + 0.6028777803673767 + 0.907469270100251 + -0.0015565188581515314 + 0.4464988414874392 + 0.24990993606446546 \ No newline at end of file diff --git a/_assets/code/literate/code/output/ee2.out b/_assets/code/literate/code/output/ee2.out new file mode 100644 index 0000000..ab37eac --- /dev/null +++ b/_assets/code/literate/code/output/ee2.out @@ -0,0 +1 @@ +5.418007222107764 diff --git a/_assets/code/literate/code/output/ee2.res b/_assets/code/literate/code/output/ee2.res new file mode 100644 index 0000000..7813681 --- /dev/null +++ b/_assets/code/literate/code/output/ee2.res @@ -0,0 +1 @@ +5 \ No newline at end of file diff --git a/_assets/code/literate/code/output/ee3.out b/_assets/code/literate/code/output/ee3.out new file mode 100644 index 0000000..d21c20d --- /dev/null +++ b/_assets/code/literate/code/output/ee3.out @@ -0,0 +1 @@ +x[1] = 0.33964471312600475 diff --git a/_assets/code/literate/code/output/ee3.res b/_assets/code/literate/code/output/ee3.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/code/literate/code/output/ee3.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/code/literate/code/output/ex1.out b/_assets/code/literate/code/output/ex1.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/code/literate/code/output/ex1.res b/_assets/code/literate/code/output/ex1.res new file mode 100644 index 0000000..bc9877a --- /dev/null +++ b/_assets/code/literate/code/output/ex1.res @@ -0,0 +1 @@ +0.0 + 1.2246467991473532e-16im \ No newline at end of file diff --git a/_assets/code/literate/code/output/ex2.out b/_assets/code/literate/code/output/ex2.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/code/literate/code/output/ex2.res b/_assets/code/literate/code/output/ex2.res new file mode 100644 index 0000000..02e4a84 --- /dev/null +++ b/_assets/code/literate/code/output/ex2.res @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/_assets/code/literate/code/output/ex3.out b/_assets/code/literate/code/output/ex3.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/code/literate/code/output/ex3.res b/_assets/code/literate/code/output/ex3.res new file mode 100644 index 0000000..f32a580 --- /dev/null +++ b/_assets/code/literate/code/output/ex3.res @@ -0,0 +1 @@ +true \ No newline at end of file diff --git a/_assets/extras/plotly/code/ex1.jl b/_assets/extras/plotly/code/ex1.jl new file mode 100644 index 0000000..ea988b4 --- /dev/null +++ b/_assets/extras/plotly/code/ex1.jl @@ -0,0 +1,13 @@ +# This file was generated, do not modify it. # hide +using PlotlyJS +z = [10 10.625 12.5 15.625 20 + 5.625 6.25 8.125 11.25 15.625 + 2.5 3.125 5. 8.125 12.5 + 0.625 1.25 3.125 6.25 10.625 + 0 0.625 2.5 5.625 10] + +data = contour(; z=z) +layout = Layout(; title="Basic Contour Plot") +plt = plot(data, layout) + +fdplotly(json(plt)) # hide \ No newline at end of file diff --git a/_assets/extras/plotly/code/output/ex1.out b/_assets/extras/plotly/code/output/ex1.out new file mode 100644 index 0000000..be15619 --- /dev/null +++ b/_assets/extras/plotly/code/output/ex1.out @@ -0,0 +1,10 @@ +~~~ +
+ + +~~~ + diff --git a/_assets/extras/plotly/code/output/ex1.res b/_assets/extras/plotly/code/output/ex1.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/extras/plotly/code/output/ex1.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/img/add_deploy_key.png b/_assets/img/add_deploy_key.png new file mode 100644 index 0000000..a7cc523 Binary files /dev/null and b/_assets/img/add_deploy_key.png differ diff --git a/_assets/img/add_secret.png b/_assets/img/add_secret.png new file mode 100644 index 0000000..5cdc9f6 Binary files /dev/null and b/_assets/img/add_secret.png differ diff --git a/_assets/img/deploy_branch.png b/_assets/img/deploy_branch.png new file mode 100644 index 0000000..1817fb7 Binary files /dev/null and b/_assets/img/deploy_branch.png differ diff --git a/_assets/img/team/beth.jpg b/_assets/img/team/beth.jpg new file mode 100644 index 0000000..a8a562d Binary files /dev/null and b/_assets/img/team/beth.jpg differ diff --git a/_assets/img/team/meseeks.jpg b/_assets/img/team/meseeks.jpg new file mode 100644 index 0000000..dfc9048 Binary files /dev/null and b/_assets/img/team/meseeks.jpg differ diff --git a/_assets/img/team/rick.jpg b/_assets/img/team/rick.jpg new file mode 100644 index 0000000..e5d318e Binary files /dev/null and b/_assets/img/team/rick.jpg differ diff --git a/_assets/infra/favicon.ico b/_assets/infra/favicon.ico new file mode 100644 index 0000000..9d06e64 Binary files /dev/null and b/_assets/infra/favicon.ico differ diff --git a/_assets/infra/favicon.png b/_assets/infra/favicon.png new file mode 100644 index 0000000..cb3e8c1 Binary files /dev/null and b/_assets/infra/favicon.png differ diff --git a/_assets/infra/favicon2.gif b/_assets/infra/favicon2.gif new file mode 100644 index 0000000..2f6570f Binary files /dev/null and b/_assets/infra/favicon2.gif differ diff --git a/_assets/infra/franklin.svg b/_assets/infra/franklin.svg new file mode 100644 index 0000000..43c66af --- /dev/null +++ b/_assets/infra/franklin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/hamburger.svg b/_assets/infra/hamburger.svg new file mode 100644 index 0000000..233bf21 --- /dev/null +++ b/_assets/infra/hamburger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/judoc.svg b/_assets/infra/judoc.svg new file mode 100644 index 0000000..519077e --- /dev/null +++ b/_assets/infra/judoc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/logo1.svg b/_assets/infra/logo1.svg new file mode 100644 index 0000000..164616f --- /dev/null +++ b/_assets/infra/logo1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/logoF.gif b/_assets/infra/logoF.gif new file mode 100644 index 0000000..1c6e0f5 Binary files /dev/null and b/_assets/infra/logoF.gif differ diff --git a/_assets/infra/logoF.ico b/_assets/infra/logoF.ico new file mode 100644 index 0000000..858b8a1 Binary files /dev/null and b/_assets/infra/logoF.ico differ diff --git a/_assets/infra/logoF.svg b/_assets/infra/logoF.svg new file mode 100644 index 0000000..0465bb7 --- /dev/null +++ b/_assets/infra/logoF.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/logoF2.svg b/_assets/infra/logoF2.svg new file mode 100644 index 0000000..3f61b33 --- /dev/null +++ b/_assets/infra/logoF2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/logoF_square.gif b/_assets/infra/logoF_square.gif new file mode 100644 index 0000000..45916c3 Binary files /dev/null and b/_assets/infra/logoF_square.gif differ diff --git a/_assets/infra/logoF_square.svg b/_assets/infra/logoF_square.svg new file mode 100644 index 0000000..805eeb2 --- /dev/null +++ b/_assets/infra/logoF_square.svg @@ -0,0 +1,37 @@ + + + diff --git a/_assets/infra/logoF_square2.svg b/_assets/infra/logoF_square2.svg new file mode 100644 index 0000000..0bfe528 --- /dev/null +++ b/_assets/infra/logoF_square2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/infra/rndimg.jpg b/_assets/infra/rndimg.jpg new file mode 100644 index 0000000..98be38d Binary files /dev/null and b/_assets/infra/rndimg.jpg differ diff --git a/_assets/jemdoc/jemdoc1.png b/_assets/jemdoc/jemdoc1.png new file mode 100644 index 0000000..03a83ac Binary files /dev/null and b/_assets/jemdoc/jemdoc1.png differ diff --git a/_assets/jemdoc/jemdoc2.png b/_assets/jemdoc/jemdoc2.png new file mode 100644 index 0000000..27e6b39 Binary files /dev/null and b/_assets/jemdoc/jemdoc2.png differ diff --git a/_assets/jemdoc/jemdoc3.png b/_assets/jemdoc/jemdoc3.png new file mode 100644 index 0000000..526d47c Binary files /dev/null and b/_assets/jemdoc/jemdoc3.png differ diff --git a/_assets/jemdoc/jemdoc4.png b/_assets/jemdoc/jemdoc4.png new file mode 100644 index 0000000..aaadd20 Binary files /dev/null and b/_assets/jemdoc/jemdoc4.png differ diff --git a/_assets/literate/script_ee.md b/_assets/literate/script_ee.md new file mode 100644 index 0000000..dc1eac7 --- /dev/null +++ b/_assets/literate/script_ee.md @@ -0,0 +1,27 @@ + +Some **really cool** maths: + +$$ \exp(i\pi) + 1 \quad = \quad 0 $$ + +We can show this with some code: + +```julia:ex1 +x = exp(im*π) + 1 +``` + +that looks close to zero but + +```julia:ex2 +x ≈ 0 +``` + +however + +```julia:ex3 +abs(x) < eps() +``` + +#### Conclusion + +The equation is proven thanks to our very rigorous proof. + diff --git a/_assets/literate/script_ee_script.jl b/_assets/literate/script_ee_script.jl new file mode 100644 index 0000000..c27ea40 --- /dev/null +++ b/_assets/literate/script_ee_script.jl @@ -0,0 +1,8 @@ +# This file was generated, do not modify it. + +x = exp(im*π) + 1 + +x ≈ 0 + +abs(x) < eps() + diff --git a/_assets/syntax/markdown/code/output/snippet1.out b/_assets/syntax/markdown/code/output/snippet1.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/syntax/markdown/code/output/snippet1.res b/_assets/syntax/markdown/code/output/snippet1.res new file mode 100644 index 0000000..dc61f02 --- /dev/null +++ b/_assets/syntax/markdown/code/output/snippet1.res @@ -0,0 +1 @@ +3.173 \ No newline at end of file diff --git a/_assets/syntax/markdown/code/snippet1.jl b/_assets/syntax/markdown/code/snippet1.jl new file mode 100644 index 0000000..10de34e --- /dev/null +++ b/_assets/syntax/markdown/code/snippet1.jl @@ -0,0 +1,5 @@ +# This file was generated, do not modify it. # hide +using LinearAlgebra, Random +Random.seed!(555) +a = randn(5) +round(norm(a), sigdigits=4) \ No newline at end of file diff --git a/_assets/syntax/markdown/ex1.jl b/_assets/syntax/markdown/ex1.jl new file mode 100644 index 0000000..318d265 --- /dev/null +++ b/_assets/syntax/markdown/ex1.jl @@ -0,0 +1,5 @@ +# This file was generated, do not modify it. # hide +using PyPlot +figure() +plot([0, 1], [0, 1]) +savefig(joinpath(@OUTPUT, "test.png")) \ No newline at end of file diff --git a/_assets/syntax/markdown/output/ex1.out b/_assets/syntax/markdown/output/ex1.out new file mode 100644 index 0000000..e69de29 diff --git a/_assets/syntax/markdown/output/ex1.res b/_assets/syntax/markdown/output/ex1.res new file mode 100644 index 0000000..97896a0 --- /dev/null +++ b/_assets/syntax/markdown/output/ex1.res @@ -0,0 +1 @@ +nothing \ No newline at end of file diff --git a/_assets/syntax/markdown/output/test.png b/_assets/syntax/markdown/output/test.png new file mode 100644 index 0000000..0b9b338 Binary files /dev/null and b/_assets/syntax/markdown/output/test.png differ diff --git a/_css/jtd.css b/_css/jtd.css new file mode 100644 index 0000000..db8cc86 --- /dev/null +++ b/_css/jtd.css @@ -0,0 +1,747 @@ +html{ + font-family:sans-serif; + -ms-text-size-adjust:100%; + -webkit-text-size-adjust:100%; + font-size:15px !important; +} +@media (min-width: 31.25rem){ + html{ + font-size:17px !important; + } +} + +body{ + margin:0; + position:relative; + padding-bottom:4rem; + font-family:-apple-system,"helvetica neue",helvetica,roboto,noto,"segoe ui",arial,sans-serif; + font-size:inherit; + line-height:1.5; + color:#5c5962; + background-color:#fff; +} +@media (min-width: 50rem){ + body{ + position:static; + padding-bottom:0; + } +} +h1{ + font-size:2em; + margin:0.67em 0 +} +sub,sup{ + font-size:75%; + line-height:0; + position:relative; + vertical-align:baseline +} +sup{ + top:-0.5em +} +sub{ + bottom:-0.25em +} +img{ + border:0 +} +p,h1,h2,h3,h4,h5,h6,ol,ul,pre,address,blockquote,dl,div,fieldset,form,hr,noscript,table{ + margin-top:0 +} +h1,h2,h3,h4,h5,h6{ + margin-top:1.2em; + margin-bottom:0.8em; + font-weight:500; + line-height:1.15; + color:#27262b; +} +p{ + margin-bottom:1em +} +a{ + color:#0E39B0; + text-decoration:none; +} +pre{ + overflow:auto; + margin:0; + margin-bottom: 0.8em; +} +code{ + font-family:"SFMono-Regular",Menlo,Consolas,Monospace; + font-size:12px; + line-height:1.4; + padding:0.2em 0.15em; + font-weight:400; + background-color:#f5f6fa; + border:1px solid #eeebee; + border-radius:4px; +} +li:not(:last-child) { + margin-bottom: 5px; +} +img{ + max-width:100%; + height:auto +} +hr{ + height:1px; + padding:0; + margin:2rem 0; + background-color:#eeebee; + border:0; +} + + +@media (min-width: 50rem){ + .page-wrap{ + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: hidden; + } +} + +/************************************************************ +============================================================= + +SIDE BAR + +============================================================ +************************************************************/ + +.side-bar{ + z-index: 100; + display: flex; + flex-wrap: wrap; + background-color:#f5f6fa; +} +.side-bar .header { + display: flex; + min-height: 60px; + align-items: center; +} +.side-bar .header .title{ + padding-right:1rem; + padding-left:1rem; + flex-grow:1; + display:flex; + height:100%; + align-items:center; + padding-top:.75rem; + padding-bottom:.75rem; + color:#27262b; + font-size:18px !important; + line-height: 1.15em; +} +.show-menu { + cursor: pointer; + appearance:none; + display:flex; + height:100%; + /* line-height: 60px; */ + padding:1rem; + align-items:center; + color:#0E39B0; + text-transform:uppercase; + background:transparent; + text-align:right; + padding-right: 2rem; + border:0; + width: calc(100% - 220px); + background-color: white; +} +.side-bar .menu { + width: 100%; + padding-right:1rem; + padding-left:1rem +} +.menu-list{ + padding:0; + margin-top:0; + margin-bottom:0; + list-style:none +} +.menu-list-child-list{ + padding-left:.75rem; + line-height: 0.9em; + list-style:none; +} +.menu-list-child-list .menu-list-link{ + color:#5c5962 +} +.menu-list-child-list .menu-list-item{ + position:relative +} +.menu-list-child-list .menu-list-item::before{ + position:absolute; + margin-top:0.3em; + margin-left:-0.8em; + color:rgba(92,89,98,0.3); + content:"- " +} +.menu-list-child-list .menu-list-item.active::before{ + color:#5c5962 +} +.menu-list-item{ + font-size:14px !important; + margin:0 +} +.menu-list-parent .menu-list-child-list{ + display:none +} +.menu-list-parent.active .menu-list-child-list{ + display:block +} +.menu-list-item.active a { + font-weight:600; + color:#27262b; + text-decoration:none +} +.menu-list-child-list{ + margin-top: 0.5em; + padding-left: 0.5em; +} +ul.menu-list-child-list li { + font-size: 80%; +} + +.menu-list-link{ + display:block; + padding-top:.25rem; + padding-bottom:.25rem +} +/* .menu-list-link.active{ + font-weight:600; + color:#27262b; + text-decoration:none +} */ + +.side-bar .footer { + width: 150px; + font-size: 13px; + padding-right:1rem; + padding-left:1rem; + position:absolute; + bottom:0; + left:0; + padding-top:1rem; + padding-bottom:1rem +} + +/*Hide checkbox*/ +input[type=checkbox]{display: none;} +/*Show menu when invisible checkbox is checked*/ +input[type=checkbox]:checked ~ #side-menu{display: block;} + +/* side bar adjustments for narrow mode (bar on top) */ +@media (max-width : 49.99rem){ + /* Toggle menu off */ + .side-bar .menu { + display: none; + padding-left:35px; + padding-bottom:15px;} + .side-bar { + border-bottom: 1px solid #eeebee; + } + .side-bar .header { + padding-left: 15px; + width: 150px;} /* middle space */ + .show-menu {display: block;} + .side-bar .footer { + display:none; + } +} +/* side bar adjustments for narrow mode (bar on top) */ +@media (min-width: 31.25rem){ + .side-bar .header .title{ + font-size:24px !important + } + .menu-list-item{ + font-size:16px !important + } +} +/* side bar adjustments for medium mode (bar on side) */ +@media (min-width: 50rem){ + .side-bar{ + flex-wrap: nowrap; + position: absolute; + width: 248px; + height: 100%; + flex-direction: column; + align-items: flex-end; + } + .side-bar .header{ + z-index: 101; + height: 60px; + max-height: 60px; + border-bottom: 1px solid #eeebee; + padding-right:3.5rem; + padding-left:2rem; + } + .side-bar .header .title{ + font-size: 35px !important; + padding-top:.5rem; + padding-bottom:.5rem + } + .show-menu { + display:none + } + .side-bar .menu{ + width: 160px; + padding-right:2.5rem; + /* padding-left:0rem; */ + padding-top:3rem; + padding-bottom:1rem; + overflow-y:auto; + flex:1 1 auto + } + .side-bar .footer{ + padding-right:2rem; + padding-left:2rem; + position: static; + } +} +/* side bar adjustments for wide mode (bar on side) */ +@media (min-width: 66.5rem){ + .side-bar{ + width:calc((100% - 66.5rem) / 2 + 264px); + min-width:264px; + } +} + + +/************************************************************ +============================================================= + +MAIN CONTENT + +============================================================ +************************************************************/ + +@media (min-width: 50rem){ + .main-content-wrap{ + position:absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-overflow-scrolling: touch; + overflow-x: hidden; + overflow-y: scroll + } + .main-content{ + position:relative; + max-width: 800px; + margin-left: 248px + } +} +@media (min-width: 66.5rem){ + .main-content { + margin-left:calc((100% - 1064px) / 2 + 264px); + } +} + +.main-header{ + padding-right:1rem; + padding-left:1rem; + display:none; + /* padding-top:1rem; */ + /* padding-bottom:1rem; */ + background-color:#f5f6fa; + height: 60px; + line-height: 60px; +} +@media (min-width: 50rem){ + .main-header{ + padding-right:2rem; + padding-left:2rem + } +} +@media (min-width: 50rem){ + .main-header{ + display:flex; + justify-content:flex-end; + height: -1em; + background-color:#fff; + border-bottom:1px solid #eeebee; + } +} +.main-footer{ + font-size: 14px; + color: darkgray; + border-top: 1px solid #eeebee; + padding-top: 15px; +} + +.franklin-content { + padding-right:1rem; + padding-left:1rem; + padding-top:1rem; + padding-bottom:1rem; + + line-height:1.5 +} +@media (min-width: 50rem){ + .franklin-content { + padding-right:2rem; + padding-left:2rem; + padding-top:2rem; + padding-bottom:2rem; + } +} + +/************************************************************ +============================================================= + +JUDOC SPECIFICS + +============================================================ +************************************************************/ + +.franklin-content a{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} + +.franklin-content ul,ol{ + line-height: 1em; +} +.franklin-content li{ + margin-top: 0.3em; + line-height: 1.3em; +} + +.franklin-content ul,.franklin-content ol{ + padding-left:1.5em +} + +.franklin-content h1:first-of-type{ + margin-top:0.5em +} + +.franklin-content h1,h2,h3,h4,h5,h6{ + position:relative +} + +td.fndef-backref { + min-width: 20px; +} + + +.franklin-content table { + margin-left: auto; + margin-right: auto; + border-collapse: collapse; + text-align: center; + margin-bottom: 1em;} +.franklin-content tr,th,td{ + padding: 10px; + border: 1px solid black;} + +.franklin-content table tbody tr td { + border: 1px solid black; +} + +.franklin-content blockquote { + background: lemonchiffon; + border-left: 7px solid #a8a8a8; + margin: 1.5em 10px; + padding: 0.5em 10px; + font-style: italic;} + +.franklin-content blockquote p { + display: inline; } + +.franklin-content .row { + display: block; } + +.franklin-content .left { + float: left; + margin-right: 15px; } + +.franklin-content .right { + float: right; } + +.franklin-content .container img { + width: auto; + padding-left: 0; + border-radius: 10px; + margin-bottom: 1em;} + + +.franklin-content .fndef table { + margin: 0; + margin-bottom: 1em; + border: 0; +} +.franklin-content .fndef tr { + padding: 0; + border: 0; + text-align: left; +} +.franklin-content .fndef td { + padding: 0; + border: 0; +} +.franklin-content .fndef td.fndef-backref { + vertical-align: top; + font-size: 80%; + padding-left: 5px; +} +.franklin-content .fndef td.fndef-content { + font-size: 90%; + padding-left: 10px; +} +.franklin-content .fndef tr { + border-left: 2px solid lightgray; +} + +.franklin-content img { + width: 70%; + text-align: center; + padding-left: 10%; } + +.franklin-content .img-small img { + width: 50%; + text-align: center; + padding-left: 20%; } + + +/* ================================================================== + KATEX +================================================================== */ + +body { counter-reset: eqnum; } + +.katex { font-size: 1em !important; } + +.katex-display .katex { + display: inline-block; } /* overwrite katex settings */ + +.katex-display::after { + counter-increment: eqnum; + content: "(" counter(eqnum) ")"; + position: relative; + float: right; + padding-right: 5px; } + +/* ================================================================== + CODE & HIGHLIGHT.JS +================================================================== */ + +.hljs { + font-size: 80%; + line-height: 1.35em; + border-radius: 10px; + padding: 1em; + padding-left:1.2em; + } + +.hljs-meta, .hljs-metas, .hljs-metap { font-weight: bold; } + +.hljs-meta { color: rgb(25, 179, 51); } + +.hljs-metas { color: red; } + +.hljs-metap { color: rgb(51, 131, 231); } + +.hljs-string {color: #ca4418;} +.hljs-subst { color: inherit;} + +.page-foot { + margin-top: 2em; + border-top: 1px solid #eeebee; + padding-top:20px; + padding-bottom:15px; + color: gray; + font-size: 90%; +} + +/* code.language-plaintext {color: purple;} */ + +.franklin-toc ol > li > ol {list-style-type: lower-alpha;} +.franklin-toc ol > li > ol > li > ol {list-style-type: lower-roman;} + +code.language-yaml .hljs-attr { color: #ca4418;} +code.language-yaml .hljs-string { color: green;} + +ul.menu-list-child-list { + padding-bottom: 0.5em; +} + +ul.menu-list-child-list li{ + padding-left: 1em; +} +ul.menu-list-child-list a.menu-list-link { + font-size: 14px !important; +} + + +/* LUNR */ +.result-title a { + /* font-size: 1.2em; */ + text-decoration: none; +} + +.result-title a:hover { + text-decoration: underline; +} + +.result-preview { + color: #808080; +} + +/* .search-input { + width: 250px; +} */ + +.resultCount { + color: #808080; +} + +.result-query { + font-weight: bold; +} + +#lunrSearchForm { + margin-top: 1em; +} + +/* .pagination { + text-align: center; + margin: 16px 8px 16px 8px; +} +.pagination a { + color: black; + padding: 8px 16px; + text-decoration: none; +} +.pagination a.active { + background-color: #4CAF50; + color: white; +} +.pagination a:hover:not(.active) { + background-color: #ddd; +} */ + +/* ================================================================== */ +/* PAGE-DIVS +- .flist = lists with a checkmark +- .note = highlight the background in light yellow +*/ +/* ================================================================== */ + +.blank { + height: 1.5em; +} + +.flist p { + display:inline; +} +.flist ul { + list-style: none; +} +.flist a#goto { + padding-right: 10px; + margin-left: -15px; +} +.flist a#goto #arrow{ + display:none; +} +.flist a#goto:hover #check { + display: none; +} +.flist a#goto:hover #arrow { + display: inline; +} +.tlist p { + display:inline; +} + +.note { + margin-top: 1.5em; + width: 95%; + margin-left:auto; + margin-right:auto; + background-color: aliceblue; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + margin-bottom: 1em; +} +.note .content { + padding: 10px; + padding-left: 12px; +} +.note .title{ + font-size: 105%; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + padding-left: 7px; + padding-top: 2px; + color: white; + background: cornflowerblue; +} + +.definition { + background-color: aliceblue; + border-left: 5px solid cornflowerblue; + border-radius: 10px; + padding: 10px; + margin-bottom: 1em; +} + +.important { + background-color: lemonchiffon; + padding: 0.5em; + margin-bottom: 1em; +} + +.silly-formatting { + width: 50%; + text-align: center; + color: magenta; + border: 1px solid black; +} + +.ccols { + margin-top:1.5em; + margin-bottom:1.5em; + margin-left:auto; + margin-right:auto; + width: 60%; + text-align: center;} +.ccols svg { + width:30px;} + +.lalign td { + text-align: left; +} +.lalign tr:first-of-type > td { + text-align: center; +} + +.lalignb td { + text-align: left; +} +.lalignb tr:first-of-type > td { + text-align: center; +} +.lalignb th:nth-child(1){ + width:100px; +} + +/* ================================================================== */ +/* Small additional divs */ +/* ================================================================== */ + +.small-img { + width: 50%; + margin-left: auto; + margin-right: auto; +} diff --git a/_libs/lunr/build_index.js b/_libs/lunr/build_index.js new file mode 100644 index 0000000..1e5b502 --- /dev/null +++ b/_libs/lunr/build_index.js @@ -0,0 +1,103 @@ +var path = require("path"); +var fs = require("fs"); +var lunr = require("lunr"); +var cheerio = require("cheerio"); + +// don't modify this, it'll be modified on the fly by lunr() in Franklin +const PATH_PREPEND = ".."; + +const HTML_FOLDER = "../../__site"; +const OUTPUT_INDEX = "lunr_index.js"; + +function isHtml(filename) { + lower = filename.toLowerCase(); + return (lower.endsWith(".htm") || lower.endsWith(".html")); +} + +function findHtml(folder) { + if (!fs.existsSync(folder)) { + console.log("Could not find folder: ", folder); + return; + } + var files = fs.readdirSync(folder); + var htmls = []; + for (var i = 0; i < files.length; i++) { + var filename = path.join(folder, files[i]); + var stat = fs.lstatSync(filename); + if (stat.isDirectory()) { + if (stat == "assets" || stat == "css" || stat == "libs" ) { + continue + } + var recursed = findHtml(filename); + for (var j = 0; j < recursed.length; j++) { + recursed[j] = path.join(files[i], recursed[j]).replace(/\\/g, "/"); + } + htmls.push.apply(htmls, recursed); + } + else if (isHtml(filename)){ + htmls.push(files[i]); + }; + }; + return htmls; +}; + +function readHtml(root, file, fileId) { + var filename = path.join(root, file); + var txt = fs.readFileSync(filename).toString(); + var $ = cheerio.load(txt); + var title = $("title").text(); + if (typeof title == 'undefined') title = file; + var body = $("body").text() + if (typeof body == 'undefined') body = ""; + + var data = { + "id": fileId, + "l": filename, + "t": title, + "b": body + } + return data; +} + +function buildIndex(docs) { + var idx = lunr(function () { + this.ref('id'); + this.field('t'); // title + this.field('b'); // body + docs.forEach(function (doc) { + this.add(doc); + }, this); + }); + return idx; +} + +function buildPreviews(docs) { + var result = {}; + for (var i = 0; i < docs.length; i++) { + var doc = docs[i]; + result[doc["id"]] = { + "t": doc["t"], + "l": doc["l"].replace(/^\.\.\/\.\.\/__site/gi, '/' + PATH_PREPEND) + } + } + return result; +} + +function main() { + files = findHtml(HTML_FOLDER); + var docs = []; + for (var i = 0; i < files.length; i++) { + docs.push(readHtml(HTML_FOLDER, files[i], i)); + } + var idx = buildIndex(docs); + var prev = buildPreviews(docs); + var js = "const LUNR_DATA = " + JSON.stringify(idx) + ";\n" + + "const PREVIEW_LOOKUP = " + JSON.stringify(prev) + ";"; + fs.writeFile(OUTPUT_INDEX, js, function(err) { + if(err) { + return console.log(err); + } + }); +} + +main(); diff --git a/_libs/lunr/lunr.min.js b/_libs/lunr/lunr.min.js new file mode 100644 index 0000000..fa6842a --- /dev/null +++ b/_libs/lunr/lunr.min.js @@ -0,0 +1 @@ +!function(){var t,l,c,e,r,h,d,f,p,y,m,g,x,v,w,Q,k,S,E,L,b,P,T,O,I,i,n,z=function(e){var t=new z.Builder;return t.pipeline.add(z.trimmer,z.stopWordFilter,z.stemmer),t.searchPipeline.add(z.stemmer),e.call(t,t),t.build()};function s(e){var t,r,i,n,s,o,a;if(e.length<3)return e;if("y"==(i=e.substr(0,1))&&(e=i.toUpperCase()+e.substr(1)),s=m,(n=y).test(e)?e=e.replace(n,"$1$2"):s.test(e)&&(e=e.replace(s,"$1$2")),s=x,(n=g).test(e)){var u=n.exec(e);(n=h).test(u[1])&&(n=v,e=e.replace(n,""))}else if(s.test(e)){t=(u=s.exec(e))[1],(s=p).test(t)&&(o=Q,a=k,(s=w).test(e=t)?e+="e":o.test(e)?(n=v,e=e.replace(n,"")):a.test(e)&&(e+="e"))}if((n=S).test(e)&&(e=(t=(u=n.exec(e))[1])+"i"),(n=E).test(e)&&(t=(u=n.exec(e))[1],r=u[2],(n=h).test(t)&&(e=t+l[r])),(n=L).test(e)&&(t=(u=n.exec(e))[1],r=u[2],(n=h).test(t)&&(e=t+c[r])),s=P,(n=b).test(e))t=(u=n.exec(e))[1],(n=d).test(t)&&(e=t);else if(s.test(e)){t=(u=s.exec(e))[1]+u[2],(s=d).test(t)&&(e=t)}return(n=T).test(e)&&(t=(u=n.exec(e))[1],s=f,o=I,((n=d).test(t)||s.test(t)&&!o.test(t))&&(e=t)),s=d,(n=O).test(e)&&s.test(e)&&(n=v,e=e.replace(n,"")),"y"==i&&(e=i.toLowerCase()+e.substr(1)),e}z.version="2.3.8",z.utils={},z.utils.warn=(t=this,function(e){t.console&&console.warn&&console.warn(e)}),z.utils.asString=function(e){return null==e?"":e.toString()},z.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i=p0)&&!(p1>=hi)",["p0","p1"]),g=u("lo===p0",["p0"]),v=u("lo >1)-1;0===z?d(s,l,L--,I):1===z?d(c,u,C--,I):2===z&&d(h,f,P--,I)}}},scanBipartite:function(t,e,r,n,a,c,u,h,f,v,m,y){var x=0,b=2*t,_=e,w=e+t,k=1,T=1;n?T=o:k=o;for(var A=a;A =r)for(n=r;++in&&(n=r)}else for(;++i=r)for(n=r;++in&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,a=n,i=-1,o=0;if(null==e)for(;++i l.length)return r;var a,i=c[n-1];return null!=e&&n>=l.length?a=r.entries():(a=[],r.each(function(e,r){a.push({key:r,values:t(e,n)})})),null!=i?a.sort(function(t,e){return i(t.key,e.key)}):a}(u(t,0,i,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,"__esModule",{value:!0})}("object"==typeof r&&"undefined"!=typeof e?r:n.d3=n.d3||{})},{}],155:[function(t,e,r){var n;n=this,function(t){"use strict";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var a="\\s*([+-]?\\d+)\\s*",i="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3})$/,l=/^#([0-9a-f]{6})$/,c=new RegExp("^rgb\\("+[a,a,a]+"\\)$"),u=new RegExp("^rgb\\("+[o,o,o]+"\\)$"),h=new RegExp("^rgba\\("+[a,a,a,i]+"\\)$"),f=new RegExp("^rgba\\("+[o,o,o,i]+"\\)$"),p=new RegExp("^hsl\\("+[i,o,o]+"\\)$"),d=new RegExp("^hsla\\("+[i,o,o,i]+"\\)$"),g={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function v(t){var e;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?new _((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=c.exec(t))?new _(e[1],e[2],e[3],1):(e=u.exec(t))?new _(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=h.exec(t))?y(e[1],e[2],e[3],e[4]):(e=f.exec(t))?y(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=p.exec(t))?k(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?k(e[1],e[2]/100,e[3]/100,e[4]):g.hasOwnProperty(t)?m(g[t]):"transparent"===t?new _(NaN,NaN,NaN,0):null}function m(t){return new _(t>>16&255,t>>8&255,255&t,1)}function y(t,e,r,n){return n<=0&&(t=e=r=NaN),new _(t,e,r,n)}function x(t){return t instanceof n||(t=v(t)),t?new _((t=t.rgb()).r,t.g,t.b,t.opacity):new _}function b(t,e,r,n){return 1===arguments.length?x(t):new _(t,e,r,null==n?1:n)}function _(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function w(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function k(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new A(t,e,r,n)}function T(t,e,r,a){return 1===arguments.length?function(t){if(t instanceof A)return new A(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new A;if(t instanceof A)return t;var e=(t=t.rgb()).r/255,r=t.g/255,a=t.b/255,i=Math.min(e,r,a),o=Math.max(e,r,a),s=NaN,l=o-i,c=(o+i)/2;return l?(s=e===o?(r-a)/l+6*(r0&&c<1?0:s,new A(s,l,c,t.opacity)}(t):new A(t,e,r,null==a?1:a)}function A(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function M(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),e(_,b,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+w(this.r)+w(this.g)+w(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),e(A,T,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new A(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new A(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,a=2*r-n;return new _(M(t>=240?t-240:t+120,a,n),M(t,a,n),M(t<120?t+240:t-120,a,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var S=Math.PI/180,E=180/Math.PI,L=.96422,C=1,P=.82521,O=4/29,z=6/29,I=3*z*z,D=z*z*z;function R(t){if(t instanceof B)return new B(t.l,t.a,t.b,t.opacity);if(t instanceof G){if(isNaN(t.h))return new B(t.l,0,0,t.opacity);var e=t.h*S;return new B(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof _||(t=x(t));var r,n,a=U(t.r),i=U(t.g),o=U(t.b),s=N((.2225045*a+.7168786*i+.0606169*o)/C);return a===i&&i===o?r=n=s:(r=N((.4360747*a+.3850649*i+.1430804*o)/L),n=N((.0139322*a+.0971045*i+.7141733*o)/P)),new B(116*s-16,500*(r-s),200*(s-n),t.opacity)}function F(t,e,r,n){return 1===arguments.length?R(t):new B(t,e,r,null==n?1:n)}function B(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function N(t){return t>D?Math.pow(t,1/3):t/I+O}function j(t){return t>z?t*t*t:I*(t-O)}function V(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function q(t){if(t instanceof G)return new G(t.h,t.c,t.l,t.opacity);if(t instanceof B||(t=R(t)),0===t.a&&0===t.b)return new G(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*E;return new G(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function H(t,e,r,n){return 1===arguments.length?q(t):new G(t,e,r,null==n?1:n)}function G(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}e(B,F,r(n,{brighter:function(t){return new B(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new B(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new _(V(3.1338561*(e=L*j(e))-1.6168667*(t=C*j(t))-.4906146*(r=P*j(r))),V(-.9787684*e+1.9161415*t+.033454*r),V(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),e(G,H,r(n,{brighter:function(t){return new G(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new G(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return R(this).rgb()}}));var Y=-.14861,W=1.78277,X=-.29227,Z=-.90649,J=1.97294,K=J*Z,Q=J*W,$=W*X-Z*Y;function tt(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.s,t.l,t.opacity);t instanceof _||(t=x(t));var e=t.r/255,r=t.g/255,n=t.b/255,a=($*n+K*e-Q*r)/($+K-Q),i=n-a,o=(J*(r-a)-X*i)/Z,s=Math.sqrt(o*o+i*i)/(J*a*(1-a)),l=s?Math.atan2(o,i)*E-120:NaN;return new et(l<0?l+360:l,s,a,t.opacity)}(t):new et(t,e,r,null==n?1:n)}function et(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}e(et,tt,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new et(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new et(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*S,e=+this.l,r=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),a=Math.sin(t);return new _(255*(e+r*(Y*n+W*a)),255*(e+r*(X*n+Z*a)),255*(e+r*(J*n)),this.opacity)}})),t.color=v,t.rgb=b,t.hsl=T,t.lab=F,t.hcl=H,t.lch=function(t,e,r,n){return 1===arguments.length?q(t):new G(r,e,t,null==n?1:n)},t.gray=function(t,e){return new B(t,0,0,null==e?1:e)},t.cubehelix=tt,Object.defineProperty(t,"__esModule",{value:!0})}("object"==typeof r&&"undefined"!=typeof e?r:n.d3=n.d3||{})},{}],156:[function(t,e,r){var n;n=this,function(t){"use strict";var e={value:function(){}};function r(){for(var t,e=0,r=arguments.length,a={};e =a.length)return e;var n=[],o=i[r++];return e.forEach(function(e,a){n.push({key:e,values:t(a,r)})}),o?n.sort(function(t,e){return o(t.key,e.key)}):n}(o(t.map,e,0),0)},n.key=function(t){return a.push(t),n},n.sortKeys=function(t){return i[a.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new C;if(t)for(var r=0,n=t.length;r 360?t-=360:t<0&&(t+=360),t<60?n+(a-n)*t/60:t<180?a:t<240?n+(a-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(a=r<=.5?r*(1+e):r+e-r*e),new ie(i(t+120),i(t),i(t-120))}function Gt(e,r,n){return this instanceof Gt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Gt?new Gt(e.h,e.c,e.l):ee(e instanceof Xt?e.l:(e=fe((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Gt(e,r,n)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,t*this.l)},qt.rgb=function(){return Ht(this.h,this.s,this.l)},t.hcl=Gt;var Yt=Gt.prototype=new Vt;function Wt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Lt)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Gt?Wt(t.h,t.c,t.l):fe((t=ie(t)).r,t.g,t.b):new Xt(t,e,r)}Yt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Zt*(arguments.length?t:1)))},Yt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Zt*(arguments.length?t:1)))},Yt.rgb=function(){return Wt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Zt=18,Jt=.95047,Kt=1,Qt=1.08883,$t=Xt.prototype=new Vt;function te(t,e,r){var n=(t+16)/116,a=n+e/500,i=n-r/200;return new ie(ae(3.2404542*(a=re(a)*Jt)-1.5371385*(n=re(n)*Kt)-.4985314*(i=re(i)*Qt)),ae(-.969266*a+1.8760108*n+.041556*i),ae(.0556434*a-.2040259*n+1.0572252*i))}function ee(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Ct,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ae(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ie(t,e,r){return this instanceof ie?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ie?new ie(t.r,t.g,t.b):ue(""+t,ie,Ht):new ie(t,e,r)}function oe(t){return new ie(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+""}$t.brighter=function(t){return new Xt(Math.min(100,this.l+Zt*(arguments.length?t:1)),this.a,this.b)},$t.darker=function(t){return new Xt(Math.max(0,this.l-Zt*(arguments.length?t:1)),this.a,this.b)},$t.rgb=function(){return te(this.l,this.a,this.b)},t.rgb=ie;var le=ie.prototype=new Vt;function ce(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ue(t,e,r){var n,a,i,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(a=n[2].split(","),n[1]){case"hsl":return r(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case"rgb":return e(de(a[0]),de(a[1]),de(a[2]))}return(i=ge.get(t))?e(i.r,i.g,i.b):(null==t||"#"!==t.charAt(0)||isNaN(i=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&i)>>4,o|=o>>4,s=240&i,s|=s>>4,l=15&i,l|=l<<4):7===t.length&&(o=(16711680&i)>>16,s=(65280&i)>>8,l=255&i)),e(o,s,l))}function he(t,e,r){var n,a,i=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-i,l=(o+i)/2;return s?(a=l<.5?s/(o+i):s/(2-o-i),n=t==o?(e-r)/s+(e=o)d(c,u,L--,C=C-o|0);else if(C>=0)d(s,l,E--,C);else if(C<=-o){C=-C-o|0;for(var P=0;Ps&&(r=s-l),i=r;i>=0;i--){for(var h=!0,f=0;f0&&l.push(["index[",h,"]-=s",h].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function i(t,e,r){for(var n=t.body,a=[],i=[],o=0;oh;)f.pop(),--p;var d,g=new Array(p+1);for(i=0;i<=p;++i)(d=g[i]=[]).x0=i>0?f[i-1]:u,d.x1=i=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),K.hasOwnProperty(r)?{space:K[r],local:t}:t}},W.attr=function(e,r){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(Q(r,e[r]));return this}return this.each(Q(e,r))},W.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=et(t)).length,a=-1;if(e=r.classList){for(;++a