Compare commits

..

No commits in common. "4711fcbd49dc37e165bc2fa41d7513127ddce584" and "c5fe315a2e6abdf56aa52667cb7056fe38fd4ffa" have entirely different histories.

108 changed files with 5028 additions and 6356 deletions

View File

@ -1,8 +0,0 @@
root = true
[*]
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false

1
.gitignore vendored
View File

@ -1,4 +1,3 @@
.vscode/* .vscode/*
resources/_gen/* resources/_gen/*
public/* public/*
hokus.toml

View File

@ -18,10 +18,6 @@ pluralizeListTitles = false
googleAnalytics = "UA-12671637-1" googleAnalytics = "UA-12671637-1"
[mediaTypes]
[mediaTypes."image/svg+xml"]
suffixes = ["svg"]
[menu] [menu]
[[menu.main]] [[menu.main]]
identifier = "ueber-uns" identifier = "ueber-uns"
@ -38,10 +34,10 @@ googleAnalytics = "UA-12671637-1"
weight = -800 weight = -800
[[menu.main]] [[menu.main]]
identifier = "katalog" identifier = "galerie"
name = "Katalog" name = "Galerie"
title = "Katalog" title = "Galerie"
url = "/katalog" url = "/galerie"
weight = -500 weight = -500
[[menu.main]] [[menu.main]]

View File

@ -4,7 +4,6 @@ draft = false
title = "Neff Stein-Design" title = "Neff Stein-Design"
galleries = ["gemeinschaftsgrab", "grabmal", "bauen-und-wohnen"] galleries = ["gemeinschaftsgrab", "grabmal", "bauen-und-wohnen"]
about_us = ["qualitaet", "tradition", "handwerk"]
[menu] [menu]
[menu.footer] [menu.footer]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

View File

@ -1,9 +0,0 @@
+++
title = "Katalog"
date = "2019-01-10T04:14:10+01:00"
draft = false
keywords = []
type = "gallery"
outputs = ["HTML", "JSON"]
show_breadcrumbs = true
+++

View File

@ -1,7 +0,0 @@
+++
title = "Grabsteine"
date = "2019-01-10T04:14:10+01:00"
draft = false
keywords = []
type = "gallery"
+++

View File

@ -1,8 +0,0 @@
+++
title = "Laternen"
date = "2019-01-10T04:14:10+01:00"
draft = false
type = "catalog"
keywords = []
+++

View File

@ -1,10 +0,0 @@
+++
title = "Urnengrabanlagen"
date = "2019-01-10T04:14:10+01:00"
draft = false
type = "gallery"
keywords = []
outputs = ["HTML", "JSON"]
show_breadcrumbs = true
+++

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@ -1,36 +0,0 @@
+++
title = "Urnengrab Abdeckung"
date = "2019-05-02T06:30:55+02:00"
draft = false
type = "catalog"
alt = "Urnengrababdeckung mit Umrandung"
material = "PP4, poliert"
article_id = "0001"
ornament = "Kreuz"
description = "Urnengrab Abdeckplatte mit verklebter Einfassung"
offer = "/aktionen/preisbeispiel-urnengrab-2019/"
used_for = ["Urnengrab"]
keywords = []
outputs = ["HTML", "JSON"]
show_breadcrumbs = true
[[resources]]
title = "Test #:counter"
src = "bilder/abdeckung.png"
[resources.params]
alt = "Bild von einem Test"
featured = true
[[resources]]
title = "Model"
src = "model/abdeckung.gltf"
[resources.params]
alt = "Bild von einem Test"
[[resources.params.textures]]
name = "Granit 1"
filename = "granit.jpg"
[[resources.params.textures]]
name = "Granit 2"
filename = "1280px-Rosa-Beta-Granit.jpg"
+++

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 KiB

View File

@ -1,5 +1,5 @@
+++ +++
title = "Lieferanten und Partner" title = "Zulieferer Und Partnerbetriebe"
date = "2019-01-12T08:59:01+01:00" date = "2019-01-12T08:59:01+01:00"
draft = false draft = false
type = "page" type = "page"

View File

@ -1,8 +0,0 @@
+++
title = "Über Uns"
date = "2019-01-10T02:27:09+01:00"
draft = false
type = "page"
keywords = []
headless = true
+++

View File

@ -6,13 +6,6 @@ type = "ueber-uns"
weight = -100 weight = -100
icon = "knuepfel" icon = "knuepfel"
headless = true headless = true
[[resources]]
title = "Handwerk"
src = "bilder/knuepfel.svg"
[resources.params]
alt = "Knüpfel, Zirkel und Meißel"
featured = true
+++ +++
Wir planen und fertigen Arbeiten aus Naturstein im Wohnbereich, wie zum Wir planen und fertigen Arbeiten aus Naturstein im Wohnbereich, wie zum

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1819"
version="1.1"
viewBox="0 0 52.916665 52.916668"
height="200"
width="200"
sodipodi:docname="knuepfel.svg"
inkscape:version="0.92.2 2405546, 2018-03-11">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="721"
id="namedview14"
showgrid="false"
inkscape:zoom="2.36"
inkscape:cx="84.322034"
inkscape:cy="98.121025"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="1"
inkscape:current-layer="svg1819" />
<defs
id="defs1813" />
<metadata
id="metadata1816">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<path
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.52192783;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 65.123047 110.95117 L 52.9375 125.51367 C 52.9375 125.51367 56.94691 128.77952 59.326172 129.67383 C 60.637649 130.1666 62.090737 130.17013 63.488281 130.26953 C 65.217657 130.39237 67.182971 129.41139 68.689453 130.26953 C 73.979343 133.28271 81.58929 137.80619 89.490234 142.54102 C 90.480772 142.00384 91.547675 141.42215 92.572266 140.86523 C 92.471269 138.27974 92.368575 136.24016 92.267578 134.41211 C 85.490866 130.18256 78.973226 125.93594 73.890625 122.24414 C 72.30969 121.09581 71.935157 118.85977 70.917969 117.19141 C 70.338488 116.24101 69.863965 115.21024 69.134766 114.36914 C 67.983858 113.04169 65.123047 110.95117 65.123047 110.95117 z M 105.55859 142.51562 C 104.72258 142.99751 103.90845 143.47243 103.08008 143.95117 C 102.92667 146.11675 102.76966 148.25666 102.62109 150.46094 C 114.6472 157.73649 125.16016 164.15039 125.16016 164.15039 C 129.51661 182.15765 146.45518 151.76132 130.0625 156.7207 C 130.0625 156.7207 118.77102 150.39961 105.55859 142.51562 z "
transform="scale(0.26458333)"
id="path5800" />
<path
style="display:inline;opacity:1;fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.141;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 101.19141 29.197266 C 100.09889 29.178368 99.009611 29.284318 97.964844 29.515625 C 95.06138 30.158485 92.17614 31.718697 90.236328 33.972656 C 88.46622 36.029475 87.235279 38.839298 87.265625 41.552734 C 87.298507 44.505604 87.493428 48.329946 89.421875 50.566406 C 91.075192 52.483723 91.548173 54.145739 93.445312 56.335938 C 90.827109 59.8645 86.947564 65.107908 82.669922 70.910156 L 85.068359 70.931641 L 93.802734 59.533203 L 95.4375 61.761719 L 87.6875 70.955078 L 91.683594 70.990234 C 94.335731 67.913359 96.838211 65.016899 100.36328 60.886719 C 103.45924 64.454176 106.34456 67.759629 109.29492 71.144531 L 112.56836 71.173828 L 95.720703 51.935547 C 95.720703 51.935547 93.43755 49.60401 92.599609 48.220703 C 91.655941 46.66282 90.695204 44.980895 90.519531 43.167969 C 90.348991 41.408145 90.301886 39.278753 91.035156 37.669922 C 91.60633 36.416706 91.657374 36.003228 92.615234 35.013672 C 93.643039 33.951889 94.693145 32.812433 96.033203 32.189453 C 97.539832 31.489069 99.276197 31.274198 100.9375 31.296875 C 102.86092 31.323483 104.90244 31.55218 106.58398 32.486328 C 108.02341 33.285963 109.47428 34.376143 110.37305 35.755859 C 111.3672 37.281995 112.19221 39.005986 112.45312 40.808594 C 112.66003 42.23786 112.14772 44.06525 111.63672 45.416016 C 111.03362 47.01022 108.66406 49.576172 108.66406 49.576172 L 106.13867 47.941406 C 106.13867 47.941406 108.46448 45.392992 108.8125 43.78125 C 109.17182 42.117313 109.327 39.889881 108.58984 38.355469 C 107.7399 36.58631 105.86594 35.17875 104.05664 34.417969 C 102.22956 33.649629 99.943026 33.804491 98.113281 34.566406 C 96.593174 35.199364 95.393244 36.571928 94.546875 37.984375 C 93.88587 39.087506 93.474489 40.413575 93.505859 41.699219 C 93.54785 43.421776 95.140625 46.603516 95.140625 46.603516 L 114.64844 71.191406 L 118.51172 71.224609 C 113.63065 64.650071 109.19167 58.765362 106.24023 55.013672 C 108.17389 52.789798 109.91779 51.954899 111.54297 50.076172 C 112.68828 48.752166 114.16665 45.041674 114.50586 43.324219 C 115.10163 40.307664 114.38767 37.49096 113.00977 34.742188 C 111.85866 32.445898 109.54704 30.705764 107.16992 29.732422 C 105.53721 29.063861 102.99271 29.227199 101.19141 29.197266 z M 101.11719 36.160156 C 102.00122 36.148818 102.90603 36.353031 103.68555 36.720703 C 104.63598 37.168842 105.49599 37.987959 105.91602 38.951172 C 106.45099 40.177969 106.45221 41.6825 106.0625 42.962891 C 105.56902 44.584119 104.08145 46.455981 103.07617 47.820312 C 102.39007 48.751475 101.35937 50.130053 100.62109 51.128906 C 100.31193 50.747816 99.975351 50.321251 99.673828 49.953125 C 98.462936 48.474763 96.616187 46.924244 95.810547 45.191406 C 95.41037 44.330581 95.35207 43.3144 95.439453 42.369141 C 95.549778 41.175868 95.869154 39.935436 96.552734 38.951172 C 97.347059 37.807411 98.487132 36.745213 99.822266 36.349609 C 100.23649 36.226775 100.67404 36.166203 101.11719 36.160156 z M 123.97656 78.626953 C 123.93837 80.023017 123.87294 81.381563 123.78906 82.710938 L 134.52148 96.238281 L 123.71484 83.900391 C 123.62848 85.065503 123.52475 86.203761 123.4043 87.316406 C 132.4951 97.722648 139.49067 105.74859 141.59961 108.4082 C 141.05499 107.63208 156.34004 124.62957 147.58789 111.66016 C 142.64309 104.33266 133.0627 90.996978 123.97656 78.626953 z M 73.066406 83.992188 C 64.648921 95.528402 56.249212 107.23309 51.917969 113.86328 C 43.662589 126.50047 60.855323 106.50239 64.40625 102.35742 C 68.089744 98.057678 71.002496 94.717386 73.835938 91.484375 C 73.662329 90.327092 73.505973 89.144312 73.378906 87.927734 L 58.732422 105.30273 L 73.238281 86.373047 C 73.171069 85.591578 73.113961 84.796967 73.066406 83.992188 z "
transform="scale(0.26458333)"
id="path5789" />
<path
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.52192783;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 134.32031 113.62305 C 134.32031 113.62305 130.79015 116.05151 129.79883 116.83398 C 128.74829 117.66317 127.77315 118.98272 126.85352 119.95508 C 125.38359 121.5093 123.75787 123.80691 121.88672 124.84375 C 116.77982 127.6736 110.38249 131.17301 103.77734 134.77344 C 103.52851 137.69856 103.30236 140.80771 103.08008 143.94531 C 110.95998 139.38528 118.90194 134.86155 124.94531 131.60938 C 126.2103 130.92864 130.02691 131.12386 131.46289 131.08398 C 133.24822 131.03447 135.07047 131.18094 136.8125 130.78711 C 138.8492 130.3265 143.55273 127.7793 143.55273 127.7793 L 134.32031 113.62305 z M 92.572266 140.86523 C 79.396877 148.01666 67.945313 154.19531 67.945312 154.19531 C 49.81758 149.12655 71.354864 178.84597 72.167969 162.14258 C 72.167969 162.14258 81.442552 156.58625 92.861328 149.89258 C 92.764245 146.41978 92.669349 143.35056 92.572266 140.86523 z "
transform="scale(0.26458333)"
id="path5802" />
<circle
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1466"
cx="26.458334"
cy="26.458336"
r="23.916712" />
<path
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.52192783;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 91.40625 122.26758 C 91.958083 129.97459 92.508718 133.14788 93.060547 157.61328 C 80.986774 175.39781 117.03311 172.66904 102.125 157.76172 C 102.99689 145.10042 103.78476 131.75831 105.09375 122.59375 C 100.6215 124.54783 95.859635 124.41081 91.40625 122.26758 z "
transform="scale(0.26458333)"
id="path5798" />
<path
inkscape:connector-curvature="0"
id="path5796"
d="m 19.353565,18.73958 c -1.202171,17.87131 14.011217,19.56618 13.446989,0.11797 z"
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.66726005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -6,13 +6,6 @@ type = "ueber-uns"
weight = -300 weight = -300
icon = "qualitaet" icon = "qualitaet"
headless = true headless = true
[[resources]]
title = "Qualität"
src = "bilder/qualitaet.svg"
[resources.params]
alt = ""
featured = true
+++ +++
Eigene Ideen oder die unserer Kunden werden so umgesetzt, dass daraus Eigene Ideen oder die unserer Kunden werden so umgesetzt, dass daraus

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -6,13 +6,6 @@ type = "ueber-uns"
weight = -200 weight = -200
icon = "4w" icon = "4w"
headless = true headless = true
[[resources]]
title = "Tradition"
src = "bilder/4w.svg"
[resources.params]
alt = "4W - Das Symbol der Steinmetz Zunft"
featured = true
+++ +++
Die Firma wurde [um 1900](/firmengeschichte) in Niederkassel gegründet. Zu Die Firma wurde [um 1900](/firmengeschichte) in Niederkassel gegründet. Zu

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg896"
version="1.1"
viewBox="0 0 52.916665 52.916668"
height="200"
width="200">
<defs
id="defs890" />
<metadata
id="metadata893">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-244.08332)"
id="layer1">
<path
id="path5469"
d="m 28.179157,249.82276 c -4.420459,5.47409 -9.277968,10.71866 -14.800645,15.09055 0.894629,0.72064 1.076716,1.33575 1.430403,1.9482 2.731994,-0.11156 5.67589,-0.22416 8.596375,-0.32608 -0.0303,3.93657 -0.131824,7.87356 -0.408761,11.81013 -0.654239,0.89429 -1.447923,1.68127 -2.487703,2.56987 -0.75986,-0.80699 -0.934957,-1.4966 -1.160653,-2.19676 -2.163561,0.4878 -4.297944,0.66823 -6.674528,2.19676 1.694748,2.22521 3.114137,4.65755 4.146001,7.37992 0.75394,0.57647 1.428146,1.19277 1.90686,1.90686 1.245662,-0.35175 2.31315,-0.65543 3.586344,-0.70435 1.929627,-2.58386 3.181996,-3.63098 4.311365,-4.56097 1.049615,0.96607 2.202023,2.2378 2.881479,3.35846 0.488719,0.37392 0.901057,0.70016 1.285192,1.49241 1.514697,-0.39353 2.791309,-0.74655 3.979601,-0.70487 1.345631,-2.77766 3.385603,-5.61747 5.472535,-8.10493 -1.715958,-0.97873 -3.438961,-2.34252 -6.434748,-2.99258 -0.213321,0.78078 -0.588473,1.6444 -1.305349,2.42518 -0.778372,-0.5187 -1.27491,-1.20648 -1.784903,-1.88619 -0.145523,-3.88259 -0.403831,-8.27059 -0.418062,-12.2282 2.122479,-0.0531 3.633739,-0.0484 5.382617,-0.0563 1.216086,-2.6258 2.432264,-5.04507 3.648355,-6.4673 -3.165533,0.34541 -5.833393,0.50757 -8.998934,0.67541 0.04746,-3.13993 0.140512,-6.30592 0.293005,-9.50588 z m -0.0956,2.06861 c -0.145047,3.22857 -0.167066,6.4726 -0.133326,9.71206 2.641359,-0.10112 5.23082,-0.21686 7.755083,-0.44855 l -2.081527,3.31246 c -1.828247,-0.008 -3.711787,0.0278 -5.627047,0.0827 0.09616,4.96627 0.195659,10.19838 0.445968,14.95826 1.062903,1.23025 2.024261,2.26702 3.308323,3.38636 0.881605,-1.05753 1.706079,-2.14935 2.313554,-3.37137 1.156354,0.17376 2.493574,0.95128 3.399277,1.55701 -1.731807,2.02273 -2.838635,3.98361 -4.217829,6.00635 l -2.960545,0.49816 c -1.16369,-1.49534 -3.312726,-3.72192 -4.754747,-5.06118 -1.948852,1.66453 -3.732669,3.34259 -5.362464,5.21983 l -2.426725,0.35553 c -1.109613,-2.33287 -2.180791,-4.80782 -3.800802,-6.73395 1.056091,-0.88633 2.622465,-1.15811 3.765145,-1.33119 0.461399,1.08847 1.026032,2.12571 1.817977,3.04891 1.518815,-1.25319 3.218106,-2.77324 4.514453,-4.36821 0.156095,-4.68114 0.313934,-9.36243 0.371554,-14.04358 -3.00465,0.11549 -6.068721,0.25536 -9.137427,0.35346 4.499122,-4.04578 9.188451,-8.96273 12.811105,-13.13304 z m -3.664376,6.56652 c -1.113911,1.18038 -1.761445,2.02216 -3.254065,3.42976 1.098007,-0.0593 2.185991,-0.10614 3.266467,-0.14934 0.0023,-1.09343 3.87e-4,-2.18699 -0.0124,-3.28042 z"
style="display:inline;opacity:1;fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:0.08445571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<circle
r="23.916712"
cy="270.54166"
cx="26.458334"
id="path1466"
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.99999999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1,2 +0,0 @@
[[entry]]
name = "Hallo"

776
package-lock.json generated Normal file
View File

@ -0,0 +1,776 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"ajv": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz",
"integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"dev": true,
"requires": {
"safer-buffer": "~2.1.0"
}
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"dev": true
},
"aws4": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"dev": true
},
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true,
"requires": {
"tweetnacl": "^0.14.3"
}
},
"big.js": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
"chownr": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"dev": true
},
"color": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz",
"integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==",
"dev": true,
"requires": {
"color-convert": "^1.9.1",
"color-string": "^1.5.2"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"color-string": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
"integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
"dev": true,
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"combined-stream": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
"dev": true,
"requires": {
"delayed-stream": "~1.0.0"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
"cwise-compiler": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz",
"integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=",
"dev": true,
"requires": {
"uniq": "^1.0.0"
}
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
"data-uri-to-buffer": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz",
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=",
"dev": true
},
"datauri": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/datauri/-/datauri-1.0.5.tgz",
"integrity": "sha1-0JddGrbI8uDOPKQ7qkU5vhLSiaA=",
"dev": true,
"requires": {
"image-size": "^0.3.5",
"mimer": "^0.2.1",
"semver": "^5.0.3"
},
"dependencies": {
"image-size": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
"integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw=",
"dev": true
}
}
},
"decompress-response": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
"dev": true
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"dev": true
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true
},
"form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"fs-minipass": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"dev": true,
"requires": {
"minipass": "^2.2.1"
}
},
"get-pixels": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.0.tgz",
"integrity": "sha1-jZeVvq4YhQuED3SVgbrcBdPjbkE=",
"dev": true,
"requires": {
"data-uri-to-buffer": "0.0.3",
"jpeg-js": "^0.1.1",
"mime-types": "^2.0.1",
"ndarray": "^1.0.13",
"ndarray-pack": "^1.1.1",
"node-bitmap": "0.0.1",
"omggif": "^1.0.5",
"parse-data-uri": "^0.2.0",
"pngjs": "^2.0.0",
"request": "^2.44.0",
"through": "^2.3.4"
}
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
"dev": true
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"dev": true,
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
}
},
"image-size": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.1.tgz",
"integrity": "sha1-KO6oVIpLFENIDd3cHgg65UZSQ58=",
"dev": true
},
"iota-array": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz",
"integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=",
"dev": true
},
"is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
"dev": true
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
"jpeg-js": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz",
"integrity": "sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4=",
"dev": true
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"dev": true
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
"dev": true
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"dev": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
"loader-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"dev": true,
"requires": {
"big.js": "^3.1.3",
"emojis-list": "^2.0.0",
"json5": "^0.5.0"
}
},
"mime-db": {
"version": "1.37.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
"dev": true
},
"mime-types": {
"version": "2.1.21",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
"dev": true,
"requires": {
"mime-db": "~1.37.0"
}
},
"mimer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/mimer/-/mimer-0.2.3.tgz",
"integrity": "sha512-cICHJPMZUdZMqWaOQ+Eh0hHo1R6IUCiBee7WvIGGUJsZyjdMUInxQVmyu8hKj5uCy+Bi+Wlp/EsdUR61yOdWOw==",
"dev": true
},
"mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
},
"minipass": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
"minizlib": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true,
"requires": {
"minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
}
},
"nan": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
"integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
"dev": true
},
"ndarray": {
"version": "1.0.18",
"resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.18.tgz",
"integrity": "sha1-tg06cyJOxVXQ+qeXEeUCRI/T95M=",
"dev": true,
"requires": {
"iota-array": "^1.0.0",
"is-buffer": "^1.0.2"
}
},
"ndarray-pack": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz",
"integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=",
"dev": true,
"requires": {
"cwise-compiler": "^1.1.2",
"ndarray": "^1.0.13"
}
},
"node-bitmap": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz",
"integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=",
"dev": true
},
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
"omggif": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz",
"integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8=",
"dev": true
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
}
},
"parse-data-uri": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz",
"integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=",
"dev": true,
"requires": {
"data-uri-to-buffer": "0.0.3"
}
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
"pngjs": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz",
"integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=",
"dev": true
},
"psl": {
"version": "1.1.31",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
"integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
"dev": true
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
"request": {
"version": "2.88.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true,
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.0",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.4.3",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"semver": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
"dev": true
},
"sharp": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.19.1.tgz",
"integrity": "sha1-gZvxH1w/T/MutGXyVbX7h+Q87qE=",
"dev": true,
"requires": {
"color": "^3.0.0",
"detect-libc": "^1.0.3",
"nan": "^2.9.2",
"semver": "^5.5.0",
"simple-get": "^2.7.0",
"tar": "^4.4.0",
"tunnel-agent": "^0.6.0"
}
},
"simple-concat": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
"dev": true
},
"simple-get": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
"integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
"dev": true,
"requires": {
"decompress-response": "^3.3.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"dev": true,
"requires": {
"is-arrayish": "^0.3.1"
}
},
"srcset-loader": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/srcset-loader/-/srcset-loader-2.3.0.tgz",
"integrity": "sha512-b8U7Oqdy5Nrypuu0+CgwD8lW2idRNDzV968xWoVW66bqWQyKUiYVgmJRQs/gTZOgNAd+rVZwSu99TmB2HvAsOw==",
"dev": true,
"requires": {
"datauri": "1.0.5",
"get-pixels": "3.3.0",
"image-size": "0.5.1",
"loader-utils": "1.1.0",
"sharp": "^0.19.0"
}
},
"sshpk": {
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz",
"integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==",
"dev": true,
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
"dashdash": "^1.12.0",
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
}
},
"tar": {
"version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"dev": true,
"requires": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
"minipass": "^2.3.4",
"minizlib": "^1.1.1",
"mkdirp": "^0.5.0",
"safe-buffer": "^5.1.2",
"yallist": "^3.0.2"
}
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"dev": true,
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
},
"dependencies": {
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true
}
}
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
"requires": {
"safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true
},
"uniq": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
"integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
"dev": true
},
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true,
"requires": {
"punycode": "^2.1.0"
}
},
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
"dev": true
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"yallist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"dev": true
}
}
}

View File

@ -1,7 +0,0 @@
module.exports = {
trailingComma: "es5",
tabWidth: 2,
useTabs: false,
semi: false,
singleQuote: true
};

View File

@ -38,7 +38,6 @@ RewriteRule ^links/ /zulieferer-und-partnerbetriebe [L,R=301]
RewriteRule ^kontakt/ / [L,R=301] RewriteRule ^kontakt/ / [L,R=301]
RewriteRule ^ueber-uns/ / [L,R=301] RewriteRule ^ueber-uns/ / [L,R=301]
RewriteRule ^angebote/ / [L,R=301] RewriteRule ^angebote/ / [L,R=301]
RewriteRule ^aktionen/presibeispiel-urnengrab-2019/ /aktionen/preisbeispiel-urnengrab-2019/ [L,R=301]
## End new rules ## End new rules
</IfModule> </IfModule>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1,19 +0,0 @@
+++
title = "{{ replace .Name "-" " " | title }}"
draft = true
type = "catalog"
alt = "{{ replace .Name "-" " " | title }}"
description = "Kurzbeschreibung"
material = "Material, Bearbeitungsart"
ornament = "Ornament"
article_id = "Artikel Bezeichnung"
keywords = []
[[resources]]
title = "{{ replace .Name "-" " " | title }} #:counter"
src = "bilder/platzhalter.jpg"
[resources.params]
alt = "Bild von einem {{ replace .Name "-" " " | title }}"
+++
{{< gallery "bilder/**.jpg" >}}

View File

@ -10,7 +10,6 @@ const presets = [
safari: "10", safari: "10",
}, },
useBuiltIns: "usage", useBuiltIns: "usage",
corejs: '3'
}, },
], ],
]; ];

View File

@ -1,171 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}"> <html lang="{{ .Site.LanguageCode }}">
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{{- block "title" . -}}{{- .Site.Title -}}{{- end -}}</title> <title>{{- block "title" . -}}{{- .Site.Title -}}{{- end -}}</title>
{{ .Hugo.Generator }} {{ .Hugo.Generator }}
{{- partial "schema/site.html" . -}} {{- partial "head.html" . -}}
{{- if (and (eq .Kind "page") (eq .Type "news")) -}} {{- block "head" . -}}{{- end -}}
{{- partial "schema/post.html" . -}} <body>
{{- end -}} <div class="fixed-background background-{{ with .Params.background }}{{- . -}}{{- else -}}default{{- end -}}"></div>
{{- if (and (eq .Kind "page") (ne .Type "news")) -}} <div id="header" class="large">
{{- partial "schema/article.html" . -}} <div class="container">
{{- end -}} {{- partial "header.html" . -}}
{{- if (eq .Kind "section") -}}
{{- partial "schema/collectionpage.html" . -}}
{{- end -}}
{{ partial "part/style.html" (dict "ctx" . "path" "css/style.css" )}}
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="icon" type="image/png" href="/img/favicon.png" sizes="32x32">
<link rel="icon" type="image/png" href="/img/favicon-large.png" sizes="96x96">
<link rel="apple-touch-icon" type="image/png" href="/img/apple-touch-icon.png" sizes="180x180">
<meta name="msapplication-TileBackground" content="#000000">
<meta name="msapplication-TileImage" content="/img/ms-tile.png">
{{- block "head" . -}}{{- end -}}
<body>
<div class="fixed-background background-{{ with .Params.background }}{{- . -}}{{- else -}}default{{- end -}}"></div>
<div id="header" class="large">
<div class="container">
<div class="flex row">
<div class="col-xs-12">
<div class="navbar-logo padding">
<a href="{{.Site.BaseURL }}">
<picture>
<source srcset="/img/logo.svg" media="(min-width: 48rem)">
<img src="/img/logo-klein.svg" alt="Logo der Firma Neff Stein-Design" />
</picture>
</a>
</div> </div>
<div class="navbar small">
<input type="checkbox" class="hamburger" id="top-navigation-checkbox"
name="top-navigation-checkbox"><label class="hamburger" for="top-navigation-checkbox"><span
class="toggler"><span class="line"></span><span class="line"></span><span
class="line"></span></span></label>
<div class="navbar-container">
<nav>
<ul>
{{- $currentPage := . -}}
{{- range .Site.Menus.main -}}
{{- if .HasChildren -}}
<li class="{{ if $currentPage.HasMenuCurrent .Menu . }}active{{ end }}">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
<ul class="sub-menu">
{{- range .Children -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
</li>
{{- else -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
{{- end -}}
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
{{- if eq .Kind "home" -}}
{{- $section := $.Site.GetPage "section" "aktionen" -}}
{{ $page := "" }}
{{- with $section.Pages }}
{{- $page = index . 0 -}}
{{ end }}
{{- with $page -}}
<section id="banner">
<div class="container">
<div id="banner-container" class="col-xs-12">
<h1>{{ .Title }}</h1>
<p>{{ .Params.description }}</p>
<p><a href="{{ .Permalink }}" class="btn btn-primary">{{ i18n "more-info" }}</a></p>
</div>
</div>
</section>
{{- end }}
{{- end -}}
<div id="page-wrapper">
{{- if .Params.show_breadcrumbs -}}
<div class="container">
{{- partial "breadcrumbs.html" . }}
</div>
{{- end -}}
<div id="content">
{{- block "content" . -}}
<div class="container">
{{- block "main" . -}}{{- end -}}
</div> </div>
{{- if eq .Kind "home" -}}
{{- partial "banner.html" . -}}
{{- end -}} {{- end -}}
</div> <div id="page-wrapper">
<div id="footer"> <div id="content">
{{- if (ne .Kind "home") -}} {{- block "content" . -}}
<div class="container"> <div class="container">
<section class="row" id="index-contact"> {{- block "main" . -}}{{- end -}}
<div class="col-xs-12"> </div>
<h2 class="padding"><a class="anchor" id="{{ i18n "contact" }}">Kontakt</a></h2>
<div class="call-to-action flex row text-center">
<div class="padding">
<a class="btn btn-primary" href="mailto:{{ .Site.Author.email }}">{{ i18n "send-mail" }}</a>
</div>
</div>
<div class="row">
{{- $site := . }}
{{- range .Site.Data.kontakt.kontakt -}}
{{- partial "address.html" (dict "address" . "ctx" $site) -}}
{{- end -}} {{- end -}}
</div>
</div> </div>
</section> <div id="footer">
</div> {{- partial "footer.html" . -}}
{{- end }}
<div class="container bottom">
<div class="row" id="footer-social" class="padding">
<div class="col-xs-12">
{{- partial "social.html" . -}}
</div> </div>
</div>
<nav class="row">
{{- $currentPage := . -}}
{{- range .Site.Menus.footer -}}
<ul class="list-unstyled col-xs-12 col-sm-4">
{{- if .HasChildren -}}
<li class="{{ if $currentPage.HasMenuCurrent .Menu . }}active{{ end }}">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
<ul class="list-unstyled sub-menu">
{{- range .Children -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
</li>
{{- else -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
{{- end -}}
</nav>
</div> </div>
</div> <div id="lightbox-section">
</div> </div>
<div id="lightbox-section"> {{- partial "lightbox.html" . -}}
</div> {{- partial "scripts.html" . -}}
{{- partial "templates/lightbox.html" . -}} {{- block "scripts" . -}}{{- end -}}
<script> </body>
var $googleAnalytics = '{{ .Site.GoogleAnalytics }}'; </html>
</script>
{{ partial "part/script.html" (dict "ctx" . "path" "js/common.bundle.js")}}
{{ partial "part/script.html" (dict "ctx" . "path" "js/app.bundle.js")}}
{{- block "scripts" . -}}{{- end -}}
</body>
</html>

View File

@ -1,24 +1,21 @@
{{- $currentPage := . -}} {{- $currentPage := . -}}
<li class="col-sm-12"> <li class="padding">
<div> <div class="flex column">
<div> <div>
{{- range $.Resources.ByType "image" -}} {{- range $.Resources.ByType "image" -}}
{{- if .Params.featured -}} {{- if .Params.featured -}}
{{- $orig := . -}} {{- $orig := . -}}
{{ partial "figure.html" (dict "ctx" $currentPage "image" . "lightbox" false "class" "left round small")}} {{ partial "figure.html" (dict "ctx" $currentPage "image" . "lightbox" false "class" "left round small")}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
<a href="{{ .RelPermalink }}"> <a href="{{ .RelPermalink }}"><h4>{{ .Title }}</h4></a>
<h4>{{ .Title }}</h4> {{ .Summary }}
</a> {{- if .Truncated -}}
{{ .Summary }} &nbsp;<a href="{{ .RelPermalink }}">{{ i18n "read-more" }}&#8230;</a>
{{- if .Truncated -}} {{- end -}}
&nbsp;<a href="{{ .RelPermalink }}">{{ i18n "read-more" }}&#8230;</a> <footer>
{{- end -}} <time class="list-item-lastmod" datetime='{{ .Lastmod.Format "2006-01-02T15:04-07:00" }}'>{{ .Lastmod.Format "02.01.2006 15:04" }}</time>
<footer> </footer>
<time class="list-item-lastmod" </div>
datetime='{{ .Lastmod.Format "2006-01-02T15:04-07:00" }}'>{{ .Lastmod.Format "02.01.2006 15:04" }}</time>
</footer>
</div> </div>
</div> </li>
</li>

View File

@ -1,20 +1,20 @@
{{- define "title" -}} {{- define "title" -}}
{{ .Title }} &bull; {{ .Site.Title }} {{ .Title }} &bull; {{ .Site.Title }}
{{- end -}} {{- end -}}
{{ define "main" }} {{ define "main" }}
<main id="list"> <main id="list">
{{- with .Content -}} {{- with .Content -}}
<div class="content row"> <div class="content flex column">
<div class="col-xs-12"> <div class="padding">
{{ . }} {{ . }}
</div> </div>
</div> </div>
{{- end -}}
<ul class="list-unstyled row">
{{- range .Pages -}}
{{- .Render "li" -}}
{{- end -}} {{- end -}}
</ul> <ul class="list-unstyled flex column">
{{- range .Pages -}}
{{- .Render "li" -}}
{{- end -}}
</ul>
</main> </main>
{{ end }} {{ end }}

View File

@ -1,35 +0,0 @@
{
"name": {{ .Title | jsonify }}
{{ with .Pages }}
,"pages": [
{{ range $index, $value := .}}
{{ if $index }},{{ end }}
{
"title": {{ .Title | jsonify }}
,"id": {{ .File.UniqueID | jsonify }}
,"url": {{ .RelPermalink | jsonify }}
,"date": {{ .PublishDate | jsonify }}
,"modified": {{ .Lastmod | jsonify }}
,"summary": {{ .Summary | jsonify }}
,"type": {{ .Type | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
{{ with .Params.alt }},"alt": {{ . | jsonify }}{{ end }}
{{ with .Keywords }}
,"keywords": {{ . | jsonify }}
{{ end }}
{{ range $value.Resources.ByType "image" }}
{{ if .Params.featured }}
{{ $orig := . }}
,"image":
{
"url": {{ .RelPermalink | jsonify }},
"alt": {{ .Params.alt | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
}
{{ end }}
{{ end }}
}
{{ end }}
]
{{ end }}
}

View File

@ -1,33 +1,11 @@
{{- define "title" -}} {{- define "title" -}}
{{ .Title }} &bull; {{ .Site.Title }} {{ .Title }} &bull; {{ .Site.Title }}
{{- end -}} {{- end -}}
{{- define "main" -}} {{- define "main" -}}
<main class="row" id="single"> <main id="single">
<article class="col-sm-12"> <article>
<header class="flex padding"> {{- partial "single.html" . -}}
<h1>{{ .Title }}</h1> </article>
</header>
{{- $resources := .Resources -}}
{{- with .Content -}}
<div class="content row">
<div class="col-sm-12">
{{- range $.Resources.ByType "image" -}}
{{- if .Params.featured -}}
{{- $orig := . -}}
{{ partial "figure.html" (dict "ctx" . "image" . "lightbox" true "class" "featured rounded left" "showTitle" true "showDescription" true)}}
{{- end -}}
{{- end -}}
{{ . }}
</div>
</div>
{{- end -}}
<footer class="single-footer padding">
<p>
<i class="fa fa-calendar"></i> <time
datetime='{{ .Lastmod.Format "2006-01-02T15:04-07:00" }}'>{{ .Lastmod.Format "02.01.2006 15:04" }}</time>
</p>
</footer>
</article>
</main> </main>
{{- end -}} {{- end -}}

View File

@ -1,18 +0,0 @@
{
"title": {{ .Title | jsonify }}
,"id": {{ .File.UniqueID | jsonify }}
,"url": {{ .RelPermalink | jsonify }}
,"date": {{ .PublishDate | jsonify }}
,"modified": {{ .Lastmod | jsonify }}
,"summary": {{ .Summary | jsonify }}
,"type": {{ .Type | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
{{ with .Params.alt }},"alt": {{ . | jsonify }}{{ end }}
{{ range .Resources.ByType "image" }}
,"image": {
"url": {{ .RelPermalink | jsonify }},
"alt": {{ .Params.alt | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
}
{{ end }}
}

View File

@ -1,23 +0,0 @@
{{- $ctx := . -}}
{{- $page := (index .Pages 0) -}}
{{- $image := "" -}}
{{- $images := slice -}}
{{- with $page -}}
{{- $images = $page.Resources.ByType "image" }}
{{- else -}}
{{- $images = .Resources.ByType "image" -}}
{{- end -}}
{{- range $images -}}
{{ if .Params.featured }}
{{ $image = . }}
{{ end }}
{{ end }}
{{ if $image }}
{{ else }}
{{ $image = index $images 0 }}
{{ end }}
{{ with $image }}
<li class="col-xs-6 col-sm-4">
{{- partial "figure.html" (dict "ctx" $ctx "image" . "class" "catalog" "showTitle" true "showDescription" false "showDetails" true "isOverlay" true) -}}
</li>
{{ end }}

View File

@ -1,21 +0,0 @@
{
"title": {{ .Title | jsonify }}
{{ range $index, $value := .Pages }}
{{ if $index }},{{ end }}
[
"title": {{ .Title | jsonify }}
,"id": {{ .File.UniqueID | jsonify }}
,"type": {{ .Type | jsonify }}
,"article_type": [{{ range $index, $value := .Params.used_for }}{{ if $index }}, {{ end }}{{ $value | jsonify }}{{ end }}]
{{ with .Params.offer }}
,"offer": {{ . | jsonify }}
{{ end }}
{{ with .Params.ornament }}
,"ornament": {{ . | jsonify }}
{{ end }}
,"description": {{ .Params.description | jsonify }}
,"material": {{ .Params.material | jsonify }}
,"article_id": {{ .Params.article_id | jsonify }}
]
{{ end }}
}

View File

@ -1,44 +0,0 @@
{{- define "title" -}}
{{ .Title }} &bull; {{ .Site.Title }}
{{- end -}}
{{- define "main" -}}
<main class="catalog row" id="single">
<article id="catalog-article" class="col-sm-12">
<header class="flex padding">
<h1>{{ .Title }}</h1>
</header>
<div class="content flex">
<div class="padding">
{{- with .Resources.GetMatch "bilder/*" -}}
{{- $orig := . -}}
{{ partial "figure.html" (dict "ctx" . "image" . "lightbox" true "class" "featured left wide" "showTitle" false "showDescription" false)}}
{{- end -}}
{{ with .Params.offer }}
<p class="offer"><a class="btn btn-secondary" href="{{ . }}">Angebot</a></p>{{ end }}
<p class="type">Typ: {{ range $index, $value := .Params.used_for }}{{ if $index }}, {{end}}{{ . }}{{end}}</p>
{{ with .Params.material }}
<p class="material">Material: {{ . }}</p>{{ end }}
{{ with .Params.ornament }}
<p class="ornament">Ornament: {{ . }}</p>{{ end }}
{{ with .Params.description }}
<p class="description">{{ . }}</p>{{ end }}
<p class="article-id">Art. Nr.: {{ .Params.article_id }}</p>
{{ with .Content }}
{{ . }}
{{ end }}
</div>
</div>
</article>
</main>
{{- end -}}
{{- define "head" -}}
{{ partial "part/style.html" (dict "ctx" . "path" "css/catalog.css")}}
{{- end -}}
{{- define "scripts" -}}
{{ partial "part/script.html" (dict "ctx" . "path" "js/three.bundle.js")}}
{{ partial "part/script.html" (dict "ctx" . "path" "js/vue.bundle.js")}}
{{ partial "part/script.html" (dict "ctx" . "path" "js/catalog.bundle.js")}}
{{- end -}}

View File

@ -1,36 +0,0 @@
{
"title": {{ .Title | jsonify }}
,"id": {{ .File.UniqueID | jsonify }}
,"url": {{ .RelPermalink | jsonify }}
,"date": {{ .PublishDate | jsonify }}
,"modified": {{ .Lastmod | jsonify }}
,"content": {{ .RawContent | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
{{ with .Params.alt }},"alt": {{ . | jsonify }}{{ end }}
{{ range .Resources.ByType "image" }}
,"images": {
"url": {{ .RelPermalink | jsonify }},
"alt": {{ .Params.alt | jsonify }}
{{ with .Params.description }},"description": {{ . | jsonify }}{{ end }}
}
{{ end }}
,"article_type": [{{ range $index, $value := .Params.used_for }}{{ if $index }}, {{ end }}{{ $value | jsonify }}{{ end }}]
{{ with .Params.offer }}
,"offer": {{ . | jsonify }}
{{ end }}
{{ with .Params.ornament }}
,"ornament": {{ . | jsonify }}
{{ end }}
,"description": {{ .Params.description | jsonify }}
,"material": {{ .Params.material | jsonify }}
,"article_id": {{ .Params.article_id | jsonify }}
,"model":
{{ $res := .Resources }}
{{ with .Resources.GetMatch "model/*.gl*" }}
{"url": {{ .RelPermalink | jsonify }}, "title": {{ .Title | jsonify }}, "textures": [{{ range $index, $value := .Params.textures }}
{{ $texture := printf "%s%s" "model/" $value.filename }}
{{ if $index }}, {{end}}{"name": {{ $value.name | jsonify }}, "url": {{ with $res.GetMatch $texture }}{{ .RelPermalink | jsonify }}{{ end }}}
{{ end }}]
}
{{ end }}
}

View File

@ -8,16 +8,15 @@
{{- $images = .Resources.ByType "image" -}} {{- $images = .Resources.ByType "image" -}}
{{- end -}} {{- end -}}
{{- range $images -}} {{- range $images -}}
{{ if .Params.featured }} {{ if .Params.featured }}
{{ $image = . }} {{ $image = . }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ if $image }} {{ if $image }}
{{ else }} {{ else }}
{{ $image = index $images 0 }} {{ $image = index $images 0 }}
{{ end }} {{ end }}
{{ with $image }} {{ with $images }}
<li class="col-xs-6 col-sm-4"> <li class="padding"> {{- partial "figure.html" (dict "ctx" $ctx "image" $image "class" "gallery" "showTitle" true "showDescription" true) -}}
{{- partial "figure.html" (dict "ctx" $ctx "image" . "class" "catalog" "showTitle" true "showDescription" true) -}}
</li> </li>
{{ end }} {{ end }}

34
themes/neff/layouts/gallery/list.html Normal file → Executable file
View File

@ -1,26 +1,24 @@
{{- define "title" -}} {{- define "title" -}}
{{ .Title }} &bull; {{ .Site.Title }} {{ .Title }} &bull; {{ .Site.Title }}
{{- end -}} {{- end -}}
{{ define "main" }} {{ define "main" }}
<main id="list"> <main id="list">
<div class="row"> <h1 class="padding">{{ .Title }}</h1>
<h1 class="col-xs-12">{{ .Title }}</h1> <ul class="list-unstyled flex row gallery">
</div> {{- range .Sections -}}
<ul class="list-unstyled row"> {{- .Render "li" -}}
{{- range .Sections -}} {{- end -}}
{{- .Render "li" -}} {{- range .Pages -}}
{{- .Render "li" -}}
{{- end -}}
</ul>
{{- with .Content -}}
<div class="content flex column">
<div class="padding">
{{ . }}
</div>
</div>
{{- end -}} {{- end -}}
{{- range .Pages -}}
{{- .Render "li" -}}
{{- end -}}
</ul>
{{- with .Content -}}
<div class="content row">
<div class="col-sm-12">
{{ . }}
</div>
</div>
{{- end -}}
</main> </main>
{{ end }} {{ end }}

View File

@ -1,136 +1,114 @@
{{ define "content" }} {{ define "content" }}
<div id="index"> <div id="index">
<div class="container transparent"> <div class="container transparent">
<div class="row"> <div class="flex row">
<div class="col-xs-12 col-offset-sm-8 col-sm-4" id="index-short-contact"> <div id="index-short-contact">
<div class="phone"> <div class="phone">
<i class="fa fa-phone"></i>: {{ (index .Site.Data.kontakt.kontakt 0).telephone }} <i class="fa fa-phone"></i>: {{ (index .Site.Data.kontakt.kontakt 0).telephone }}
</div>
<div class="mail">
{{- $email := (index .Site.Data.kontakt.kontakt 0).email }}
<i class="fa fa-envelope"></i>: <a href="mailto:{{ $email }}">{{ $email }}</a>
</div>
<div class="social">
{{ partial "social.html" . }}
</div>
</div>
</div>
</div> </div>
<div class="mail">
{{- $email := (index .Site.Data.kontakt.kontakt 0).email }}
<i class="fa fa-envelope"></i>: <a href="mailto:{{ $email }}">{{ $email }}</a>
</div>
<div class="social">
{{ partial "social.html" . }}
</div>
</div>
</div>
</div>
{{- with .Content -}} {{- with .Content -}}
<div class="container"> <div class="container">
<main> <main>
<article> <article>
<div class="lead" id="index-content"> <div class="lead padding" id="index-content">
<a id="{{ i18n "home" }}"></a> <a id="{{ i18n "home" }}"></a>
<h1 id="index-title">{{ .Title }}</h1> <h1 id="index-title">{{ .Title }}</h1>
{{ . }} {{ . }}
</div>
</article>
</main>
</div> </div>
</article>
</main>
</div>
{{- end -}}
<div class="container">
<section id="index-hero">
<a class="anchor" id="{{ i18n "about-us" }}">
<h1 class="padding">{{ (replace (replace (i18n "about-us") "-" " ") "ue" "ü") | title}}</h1>
</a>
<ul class="list-unstyled row">
{{- range .Params.about_us }}
<li class="col-xs-12 col-sm-4">
{{- $section := $.Site.GetPage "section" "ueber-uns" -}}
{{- $page := $section.GetPage . -}}
{{- $image := $page.Resources.GetMatch "bilder/*" -}}
{{ partial "figure.html" (dict "image" $image "ctx" $page "class" "fill" "showContent" true "showTitle" true "keepOriginal" true "imgClass" "img-center" )}}
</li>
{{- end -}} {{- end -}}
</ul>
</section>
</div>
<div class="container"> <div class="container">
<section class="row" id="index-contact"> <section id="index-hero">
<div class="col-xs-12"> <a class="anchor" id="{{ i18n "about-us" }}"><h1 class="padding">{{ (replace (replace (i18n "about-us") "-" " ") "ue" "ü") | title}}</h1></a>
<a class="anchor" id="{{ i18n "contact" }}"> <div class="flex row">
<h1 class="padding">Kontakt</h1> {{- range (first 3 (where .Site.Pages.ByWeight ".Params.type" "ueber-uns")) -}}
</a> <div>
<div class="call-to-action flex row text-center"> {{- partial "hero.html" . -}}
<div class="padding"> </div>
<a class="btn btn-primary" href="mailto:{{ .Site.Author.email }}">{{ i18n "send-mail" }}</a> {{- end -}}
</div> </div>
</section>
</div> </div>
<div class="row">
{{- $site := . }} <div class="container">
{{- range .Site.Data.kontakt.kontakt -}} <section id="index-contact">
{{- partial "address.html" (dict "address" . "ctx" $site) -}} <div>
{{- end -}} <a class="anchor" id="{{ i18n "contact" }}"><h1 class="padding">Kontakt</h1></a>
<div class="call-to-action flex row text-center">
<div class="padding">
<a class="btn btn-primary" href="mailto:{{ .Site.Author.email }}">{{ i18n "send-mail" }}</a>
</div>
</div>
<div class="flex row">
{{- $site := . }}
{{- range .Site.Data.kontakt.kontakt -}}
{{- partial "address.html" (dict "address" . "ctx" $site) -}}
{{- end -}}
</div>
</div>
</section>
</div> </div>
</div>
</section>
</div>
<div class="container"> <div class="container">
<section class="row" id="index-gallery"> <section id="index-gallery">
<h1 class="col-xs-12 padding"> <h1 class="padding">
<a class="anchor" href="/galerie" id="{{ i18n "gallery" }}">{{ i18n "gallery" | title}}</a> <a class="anchor" href="/galerie" id="{{ i18n "gallery" }}">{{ i18n "gallery" | title}}</a>
<span class="small"></span> <span class="small"></span>
</h1> </h1>
<div class="col-xs-12"> <ul class="flex row list-unstyled">
<ul class="row list-unstyled"> {{- range .Params.galleries }}
{{- range .Params.galleries }} <li class="padding">
<li class="col-xs-12 col-sm-4"> {{- $section := $.Site.GetPage "section" "galerie" -}}
{{- $section := $.Site.GetPage "section" "galerie" -}} {{- $page := $section.GetPage . -}}
{{- $page := $section.GetPage . -}} {{- $image := ((index $page.Pages 0).Resources.GetMatch "**.jpg") -}}
{{- $image := ((index $page.Pages 0).Resources.GetMatch "**.jpg") -}} {{ partial "figure.html" (dict "image" $image "ctx" $page "class" "fill" "showDescription" true "showTitle" true)}}
{{ partial "figure.html" (dict "image" $image "ctx" $page "class" "fill" "showDescription" true "showTitle" true)}} </li>
</li> {{- end -}}
{{- end -}} </ul>
</ul> <div class="padding">
</div> <p class="text-right">
<a href="/galerie"><strong>Alle Galerien</strong></a>
</p>
</div>
</section>
</div>
<div class="col-xs-12 end-sm"> <div class="container">
<p> <section id="index-news">
<a href="/galerie"><strong>Alle Galerien</strong></a> <h1 class="padding"><a class="anchor" href="/neuigkeiten" id="{{ i18n "news" }}">{{ i18n "news" | title}}</a></h1>
</p> <ul class="list-unstyled flex row">
</div> {{- range (first 3 (where .Site.Pages.ByWeight ".Params.type" "news")) -}}
</section> {{- partial "news.html" . -}}
</div> {{- end -}}
</ul>
<div class="padding">
<p class="text-right">
<a href="/neuigkeiten"><strong>Alle Neuigkeiten</strong></a>
</p>
</div>
</section>
</div>
<div class="container"> {{- if .IsTranslated -}}
<section class="row" id="index-news"> <div class="container">
<h1 class="col-xs-12 padding"><a class="anchor" href="/neuigkeiten" <section id="translations" class="flex row">
id="{{ i18n "news" }}">{{ i18n "news" | title}}</a></h1> {{- partial "translations.html" . -}}
<div class="col-xs-12"> </section>
<ul class="list-unstyled row"> </div>
{{- range (first 3 (where .Site.Pages.ByWeight ".Params.type" "news")) -}} {{- end -}}
<li class="col-xs-12 col-sm-4"> </div>
{{- $site := . -}} {{ end }}
{{- range .Resources.ByType "image" -}}
{{- if .Params.featured -}}
{{- $orig := .}}
{{ partial "figure.html" (dict "image" $orig "ctx" $site "class" "gallery" "showTitle" true "showSummary" true)}}
{{- end -}}
{{- end -}}
</li>
{{- end -}}
</ul>
</div>
<div class="col-xs-12 end-sm">
<p>
<a href="/neuigkeiten"><strong>Alle Neuigkeiten</strong></a>
</p>
</div>
</section>
</div>
{{- if .IsTranslated -}}
<div class="container">
<section id="translations" class="flex row">
{{- partial "translations.html" . -}}
</section>
</div>
{{- end -}}
</div>
{{ end }}

View File

@ -1,50 +1,48 @@
<section class="address col-xs-12 col-sm-4"> <section class="address padding">
<header> <header>
<h3>{{ .address.address.addressLocality }}</h3> <h3>{{ .address.address.addressLocality }}</h3>
</header> </header>
<address class="address"> <address class="address">
{{ with .address.name }}<span>{{ . }}</span>{{ end }} {{ with .address.name }}<span>{{ . }}</span>{{ end }}
<div> <div>
{{ with .address.address.streetAddress }}<span>{{ . }}</span><br>{{ end }} {{ with .address.address.streetAddress }}<span>{{ . }}</span><br>{{ end }}
{{ with .address.address.postalCode }}<span>{{ . }}</span>{{ end }} {{ with .address.address.postalCode }}<span>{{ . }}</span>{{ end }}
{{ with .address.address.addressLocality }}<span>{{ . }}</span><br>{{ end }} {{ with .address.address.addressLocality }}<span>{{ . }}</span><br>{{ end }}
{{ with .address.address.addressRegion }}<span>{{ . }}</span><br>{{ end }} {{ with .address.address.addressRegion }}<span>{{ . }}</span><br>{{ end }}
{{ with .address.address.addressCountry }}<span>{{ i18n . }}</span><br>{{ end }} {{ with .address.address.addressCountry }}<span>{{ i18n . }}</span><br>{{ end }}
</div> </div>
<p> <p>
{{ with .address.telephone }}<em>{{ i18n "telephone" }}:</em> <span>{{ . }}</span><br>{{ end }} {{ with .address.telephone }}<em>{{ i18n "telephone" }}:</em> <span>{{ . }}</span><br>{{ end }}
{{ with .address.faxNumber }}<em>{{ i18n "fax" }}:</em> <span>{{ . }}</span>{{ end }}<br> {{ with .address.faxNumber }}<em>{{ i18n "fax" }}:</em> <span>{{ . }}</span>{{ end }}<br>
</p> </p>
{{ with .address.openingHours }} {{ with .address.openingHours }}
<p> <p>
<em>{{ i18n "openingHours" }}:</em><br> <em>{{ i18n "openingHours" }}:</em><br>
{{- range . -}} {{- range . -}}
{{- $split := split . " " }} {{- $split := split . " " }}
{{- $daysStr := index (split (index $split 0) " ") 0 }} {{- $daysStr := index (split (index $split 0) " ") 0 }}
{{- $hoursStr := index (split (index $split 1) " ") 0 }} {{- $hoursStr := index (split (index $split 1) " ") 0 }}
{{- $days := split $daysStr "," }} {{- $days := split $daysStr "," }}
{{- $localizedDays := slice }} {{- $localizedDays := slice }}
{{- range $idx, $day := $days -}} {{- range $idx, $day := $days -}}
{{- if in . "-" -}} {{- if in . "-" -}}
{{- $innerDays := split . "-" -}} {{- $innerDays := split . "-" -}}
{{- $innerLocalizedDays := slice -}} {{- $innerLocalizedDays := slice -}}
{{- range $innerDays -}} {{- range $innerDays -}}
{{- $innerLocalizedDays = $innerLocalizedDays | append (i18n .) -}} {{- $innerLocalizedDays = $innerLocalizedDays | append (i18n .) -}}
{{- end -}} {{- end -}}
{{- $dayRange := delimit $innerLocalizedDays "-" -}} {{- $dayRange := delimit $innerLocalizedDays "-" -}}
{{- $dayRange -}} {{- $dayRange -}}
{{- $localizedDays = $localizedDays | append (i18n $dayRange) -}} {{- $localizedDays = $localizedDays | append (i18n $dayRange) -}}
{{- else -}} {{- else -}}
{{- $localizedDays = $localizedDays | append (i18n $day) -}} {{- $localizedDays = $localizedDays | append (i18n $day) -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{ delimit $localizedDays ", " }} {{ $hoursStr }}<br> {{ delimit $localizedDays ", " }} {{ $hoursStr }}<br>
{{- end -}} {{- end -}}
</p> </p>
{{- end -}} {{- end -}}
{{ partial "schema/localbusiness.html" (dict "contact" .address "ctx" .ctx "short" false) }} {{ partial "schema/localbusiness.html" (dict "contact" .address "ctx" .ctx "short" false) }}
</address> </address>
<a <a href="https://maps.openrouteservice.org/directions?n1={{ .address.geo.lat }}&n2={{ .address.geo.lon }}&n3=13&a=null,null,{{ .address.geo.lat }},{{ .address.geo.lon }}&b=0&k1=de-DE&k2=km"><i class="fa fa-map"></i> Zum Routenplaner</a>
href="https://maps.openrouteservice.org/directions?n1={{ .address.geo.lat }}&n2={{ .address.geo.lon }}&n3=13&a=null,null,{{ .address.geo.lat }},{{ .address.geo.lon }}&b=0&k1=de-DE&k2=km"><i
class="fa fa-map"></i> Zum Routenplaner</a>
</section> </section>

View File

@ -0,0 +1,16 @@
{{- $section := $.Site.GetPage "section" "aktionen" -}}
{{ $page := "" }}
{{- with $section.Pages }}
{{- $page = index . 0 -}}
{{ end }}
{{- with $page -}}
<section id="banner">
<div class="container">
<div id="banner-container" class="padding">
<h1>{{ .Title }}</h1>
<p>{{ .Params.description }}</p>
<p><a href="{{ .Permalink }}" class="btn btn-primary">{{ i18n "more-info" }}</a></p>
</div>
</div>
</section>
{{- end }}

View File

@ -1,16 +0,0 @@
<nav class="breadcrumbs row">
<ol class="nav navbar-nav col-xs-12">
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
</ol>
{{ define "breadcrumbnav" }}
{{ if .p1.Parent }}
{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
{{ else if not .p1.IsHome }}
{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
{{ end }}
<li class="{{ if eq .p1 .p2 }} active{{ end }}">
<a href="{{ .p1.Permalink }}">{{ if .p1.IsHome }}Startseite{{ else }}{{ .p1.Title }}{{ end }}</a>{{ if ne .p1 .p2 }}
<i class="fa fa-chevron-right"></i>{{ end }}
</li>
{{ end }}
</nav>

View File

@ -1,77 +1,30 @@
{{- $ctx := .ctx -}}
{{- $title := .ctx.Title -}} {{- $title := .ctx.Title -}}
{{- $alt := .ctx.Params.alt -}} {{- $alt := .ctx.Params.alt -}}
{{- $description := .ctx.Params.description | markdownify -}} {{- $description := .ctx.Params.description | markdownify -}}
{{- $content := .ctx.Content -}}
{{- $keep := .keepOriginal -}} {{- $keep := .keepOriginal -}}
{{- $class := .class -}} {{- $class := .class -}}
{{- $imgClass := .imgClass -}}
{{- $href := .ctx.Params.href }} {{- $href := .ctx.Params.href }}
<figure {{- with .class }} class="{{ . }}" {{- end -}}> <figure {{- with .class }} class="{{ . }}"{{- end -}}>
<a href="{{- with $href -}}{{ . }}{{ else }}{{ .ctx.RelPermalink }}{{ end }}" {{- with .lightbox }} <a href="{{- with $href -}}{{ . }}{{ else }}{{ .ctx.Permalink }}{{ end }}"{{- with .lightbox }} data-lightbox{{- end -}}>
data-lightbox{{- end -}}> {{- partial "img.html" (dict "image" .image "ctx" .ctx "keepOriginal" $keep "class" $class) -}}
{{- partial "img.html" (dict "image" .image "ctx" .ctx "keepOriginal" $keep "class" $imgClass) -}}
</a>
{{ with .ctx.Params.offer }}
<div class="ribbon">
<span>
Angebot
</span>
</div>
{{ end }}
<figcaption class="description{{ if .isOverlay }} overlay hidden{{ end }}">
{{- if .showTitle -}}
{{- if $href -}}
<a href="{{$href}}">
<h3>{{ $title }}</h3>
</a> </a>
{{- else -}} <figcaption class="description">
<h3>{{ $title }}</h3> {{- if .showTitle -}}
{{- end -}} {{- if $href -}}
{{- end -}} <a href="{{$href}}"><h3>{{ $title }}</h3></a>
{{- if .showDescription -}} {{- else -}}
<p> <h3>{{ $title }}</h3>
{{- with $description -}} {{- end -}}
{{- . -}} {{- end -}}
{{- else -}} {{- if .showDescription -}}
{{- $alt -}} <p>
{{- end -}} {{- with $description -}}
</p> {{- . -}}
{{- end -}} {{- else -}}
{{- if .showContent -}} {{- $alt -}}
<p> {{- end -}}
{{- with $content -}} </p>
{{- . -}} {{- end -}}
{{- end -}} </figcaption>
</p> </figure>
{{- end -}}
{{- if .showSummary -}}
{{ with $ctx.Summary }}
<p>
{{- . -}}
{{- if $ctx.Truncated -}}
&nbsp;<a href="{{ $ctx.RelPermalink }}">{{ i18n "read-more" }}&#8230;</a>
{{- end -}}
</p>
{{ end }}
{{- end -}}
{{- if .showDetails -}}
{{ with .ctx.Params.material }}
<p class="material">Material: {{ . }}</p>
{{- end -}}
{{ with .ctx.Params.ornament }}
<p class="ornament">Ornament: {{ . }}</p>
{{- end -}}
{{- with .ctx.Params.used_for -}}
<p class="type">Typ: {{ range $index, $value := . }}{{ if $index }}, {{end}}{{ . }}{{end}}</p>
{{- end -}}
<p class="details">
{{ with .ctx.Params.offer }}
<a class="btn btn-small btn-secondary" href="{{ . }}">Angebot</a>
{{ end }}
<a class="btn btn-small btn-primary" href="{{$ctx.RelPermalink }}">Details</a>
</p>
{{- end -}}
</figcaption>
</figure>

View File

@ -0,0 +1,47 @@
{{- if (ne .Kind "home") -}}
<div class="container">
<section id="index-contact">
<div>
<h2 class="padding"><a class="anchor" id="{{ i18n "contact" }}">Kontakt</a></h2>
<div class="call-to-action flex row text-center">
<div class="padding">
<a class="btn btn-primary" href="mailto:{{ .Site.Author.email }}">{{ i18n "send-mail" }}</a>
</div>
</div>
<div class="flex row">
{{- $site := . }}
{{- range .Site.Data.kontakt.kontakt -}}
{{- partial "address.html" (dict "address" . "ctx" $site) -}}
{{- end -}}
</div>
</div>
</section>
</div>
{{- end }}
<div class="container bottom">
<div id="footer-social" class="padding">
{{- partial "social.html" . -}}
</div>
<nav class="padding">
{{- $currentPage := . -}}
{{- range .Site.Menus.footer -}}
<ul>
{{- if .HasChildren -}}
<li class="{{ if $currentPage.HasMenuCurrent .Menu . }}active{{ end }}">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
<ul class="sub-menu">
{{- range .Children -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
</li>
{{- else -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
{{- end -}}
</nav>
</div>

View File

@ -1,8 +1,8 @@
<div class="clearfix"></div> <div class="clearfix"></div>
<ul class="list-unstyled flex row gallery"> <ul class="list-unstyled flex row gallery">
{{- range .Resources.ByType "image" -}} {{- range .Resources.ByType "image" -}}
<li class="col-xs-12 col-sm-4 padding"> <li class="padding">
{{- partial "figure.html" (dict "image" . "ctx" . "lightbox" true "class" "gallery" "showTitle" true "showDescription" true) }} {{- partial "figure.html" (dict "image" . "ctx" . "lightbox" true "class" "gallery" "showTitle" true "showDescription" true) }}
</li> </li>
{{- end -}} {{- end -}}
</ul> </ul>

View File

@ -0,0 +1,20 @@
{{- partial "schema/site.html" . -}}
{{- if (and (eq .Kind "page") (eq .Type "news")) -}}
{{- partial "schema/post.html" . -}}
{{- end -}}
{{- if (and (eq .Kind "page") (ne .Type "news")) -}}
{{- partial "schema/article.html" . -}}
{{- end -}}
{{- if (eq .Kind "section") -}}
{{- partial "schema/collectionpage.html" . -}}
{{- end -}}
{{- $css := resources.Get "css/style.css" -}}
{{- $css = $css | resources.Fingerprint -}}
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}">
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
<link rel="icon" type="image/png" href="/img/favicon.png" sizes="32x32">
<link rel="icon" type="image/png" href="/img/favicon-large.png" sizes="96x96">
<link rel="apple-touch-icon" type="image/png" href="/img/apple-touch-icon.png" sizes="180x180">
<meta name="msapplication-TileBackground" content="#000000">
<meta name="msapplication-TileImage" content="/img/ms-tile.png">

View File

@ -0,0 +1,38 @@
<div class="flex row">
<div class="navbar-logo padding">
<a href="{{.Site.BaseURL }}">
<picture>
<source srcset="/img/logo.svg"
media="(min-width: 960px)">
<img src="/img/logo-klein.svg" alt="Logo der Firma Neff Stein-Design" />
</picture>
</a>
</div>
<div class="navbar small">
<input type="checkbox" class="hamburger" id="top-navigation-checkbox" name="top-navigation-checkbox"><label class="hamburger" for="top-navigation-checkbox"><span class="toggler"><span class="line"></span><span class="line"></span><span class="line"></span></span></label>
<div class="navbar-container">
<nav>
<ul>
{{- $currentPage := . -}}
{{- range .Site.Menus.main -}}
{{- if .HasChildren -}}
<li class="{{ if $currentPage.HasMenuCurrent .Menu . }}active{{ end }}">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
<ul class="sub-menu">
{{- range .Children -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
</li>
{{- else -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
{{- end -}}
</ul>
</nav>
</div>
</div>
</div>

View File

@ -0,0 +1,9 @@
<div class="padding hero-container">
<img src="img/hero/{{ .Params.icon }}.svg" class="hero" alt="Hero {{ .Title }}">
<header>
<h2>{{ .Title }}</h2>
</header>
<div class="content">
{{ .Content }}
</div>
</div>

View File

@ -1,26 +1,32 @@
{{ $keep := .keepOriginal}} {{ $keep := .keepOriginal}}
{{- $title := .ctx.Name -}} {{- $title := .ctx.Name -}}
{{- with .ctx.Title -}} {{- with .ctx.Title -}}
{{- $title = . -}} {{- $title = . -}}
{{- end -}} {{- end -}}
{{- $alt := $title -}} {{- $alt := $title -}}
{{- with .ctx.Params.alt -}} {{- with .ctx.Params.alt -}}
{{- $alt = . -}} {{- $alt = . -}}
{{- end -}} {{- end -}}
{{ $class := "" }}
{{- with .class -}} {{- with .class -}}
{{- $class = . -}} {{- $class := . -}}
{{- end -}} {{- end -}}
{{- $ctx := .ctx -}} {{- $ctx := .ctx -}}
{{ with .image }} {{ with .image }}
{{- $class := "" -}}
{{ if eq $keep true }} {{ if eq $keep true }}
<img alt="{{ $alt }}" title="{{ $title }}" class="original {{ $class }}" src="{{ .RelPermalink }}" /> <img alt="{{ $alt }}"
title="{{ $title }}"
class="original {{- $class }}"
src="{{ .RelPermalink }}" />
{{ else }} {{ else }}
{{- $imageSm := .Fill "300x300 Top" -}} {{- $imageSm := .Fill "300x300 Top" -}}
{{- $imageMd := .Fill "500x500 Top" -}} {{- $imageMd := .Fill "500x500 Top" -}}
<img alt="{{ $alt }}" title="{{ $title }}" class="{{ $class }}" <img alt="{{ $alt }}"
srcset="{{ $imageSm.RelPermalink }} 300w, {{ $imageMd.RelPermalink }} 500w" sizes="(min-width: 48rem) 300px, 500px" title="{{ $title }}"
src="{{ $imageMd.RelPermalink }}" /> class="{{ $class }}"
srcset="{{ $imageSm.RelPermalink }} 300w, {{ $imageMd.RelPermalink }} 500w"
sizes="(max-width: 300px) 300px, 500px"
src="{{ $imageMd.RelPermalink }}" />
{{ end }} {{ end }}
{{- partial "schema/img.html" (dict "image" . "ctx" $ctx) -}} {{- partial "schema/img.html" (dict "image" . "ctx" $ctx) -}}
{{ end }} {{ end }}

View File

@ -0,0 +1,29 @@
<template id="lightbox-template">
<div id="lightbox" class="lightbox">
<div id="lightbox-container" class="lightbox-container">
<div class="lightbox-header">
<h1 class="lightbox-title">Title</h1>
<div class="lightbox-controls">
<a class="lightbox-close"><i class="fa fa-times"></i></a>
</div>
</div>
<div class="lightbox-image">
<div class="image-container">
<a class="lightbox-prev">
<div class="lightbox-nav-prev">
<div><i class="fa fa-chevron-left"></i></div>
</div>
</a>
<a class="lightbox-next">
<div class="lightbox-nav-next">
<div><i class="fa fa-chevron-right"></i></div>
</div>
</a>
<img src="#" alt="image">
</div>
</div>
<div class="lightbox-footer">
</div>
</div>
</div>
</template>

View File

@ -1,18 +1,18 @@
{{- $currentPage := .ctx -}} {{- $currentPage := .ctx -}}
{{- $link := .item -}} {{- $link := .item -}}
{{- if (eq .item.Identifier "copyright") -}} {{- if (eq .item.Identifier "copyright") -}}
<li> <li>
<a href="{{ .item.URL }}"> <a href="{{ .item.URL }}">
<span>&copy; {{ $currentPage.Site.Copyright }}</span> <span>&copy; {{ $currentPage.Site.Copyright }}</span>
</a> </a>
</li> </li>
{{- else -}} {{- else -}}
<li class="{{ if $currentPage.HasMenuCurrent .item.Menu .item }}active{{ end }}"> <li class="{{ if $currentPage.HasMenuCurrent .item.Menu .item }}active{{ end }}">
{{- if ne .item.Title "" -}} {{- if ne .item.Title "" -}}
<a href="{{ .item.URL }}"> <a href="{{ .item.URL }}">
{{ $link.Pre }} {{ $link.Pre }}
<span>{{ $link.Name }}</span> <span>{{ $link.Name }}</span>
</a> </a>
{{- end -}} {{- end -}}
</li> </li>
{{- end -}} {{- end -}}

View File

@ -0,0 +1,25 @@
{{- $currentPage := .ctx -}}
{{- range .menu -}}
<ul>
{{- if .HasChildren -}}
<li class="{{ if $currentPage.HasMenuCurrent .Menu . }}active{{ end }}">
{{- $pre := .Pre -}}
{{- $name := .Name -}}
{{- with .URL }}
<a href="{{ . }}">
{{ $pre }}
<span>{{ $name }}</span>
</a>
{{- end -}}
<ul class="sub-menu">
{{- range .Children -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
</li>
{{- else -}}
{{ partial "menu-item.html" (dict "item" . "ctx" $currentPage)}}
{{- end -}}
</ul>
<div class="clearfix"></div>
{{- end -}}

View File

@ -0,0 +1,20 @@
<li class="padding">
<div>
{{- $site := . -}}
{{- range .Resources.ByType "image" -}}
{{- if .Params.featured -}}
{{- $orig := .}}
{{ partial "figure.html" (dict "image" $orig "ctx" $site "class" "fill")}}
{{- end -}}
{{- end -}}
</div>
<header>
<h3><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
</header>
<div>
{{ .Summary }}
{{- if .Truncated -}}
&nbsp;<a href="{{ .RelPermalink }}">{{ i18n "read-more" }}&#8230;</a>
{{- end -}}
</div>
</li>

View File

@ -1,7 +0,0 @@
{{- $js := resources.Get .path -}}
{{ if .ctx.Site.IsServer }}
<script src="{{ $js.RelPermalink }}"></script>
{{ else }}
{{- $js = $js | resources.Fingerprint -}}
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}"></script>
{{ end }}

View File

@ -1,7 +0,0 @@
{{- $css := resources.Get .path -}}
{{ if .ctx.Site.IsServer }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
{{ else }}
{{- $css = $css | resources.Fingerprint -}}
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}">
{{ end }}

View File

@ -1,3 +1,3 @@
<script type="application/ld+json"> <script type="application/ld+json">
{{- partial "schema/collectionpage.jsonld" (dict "list" . "ctx" .) -}} {{- partial "schema/collectionpage.jsonld" (dict "list" . "ctx" .) -}}
</script> </script>

View File

@ -1,3 +1,3 @@
<script type="application/ld+json"> <script type="application/ld+json">
{{- partial "schema/localbusiness.jsonld" (dict "contact" .contact "ctx" .ctx "short" .short) -}} {{- partial "schema/localbusiness.jsonld" (dict "contact" .contact "ctx" .ctx "short" .short) -}}
</script> </script>

View File

@ -1,3 +1,3 @@
<script type="application/ld+json"> <script type="application/ld+json">
{{- partial "schema/organization.jsonld" (dict "org" . "ctx" .) -}} {{- partial "schema/organization.jsonld" (dict "org" . "ctx" .) -}}
</script> </script>

View File

@ -0,0 +1,6 @@
<script>
var $googleAnalytics = '{{ .Site.GoogleAnalytics }}';
</script>
{{- $js := resources.Get "js/bundle.js" -}}
{{- $js = $js | resources.Fingerprint -}}
<script src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}"></script>

View File

@ -0,0 +1,22 @@
<header class="flex column padding">
<h1>{{ .Title }}</h1>
</header>
{{- $resources := .Resources -}}
{{- with .Content -}}
<div class="content flex column">
<div class="padding">
{{- range $.Resources.ByType "image" -}}
{{- if .Params.featured -}}
{{- $orig := . -}}
{{ partial "figure.html" (dict "ctx" . "image" . "lightbox" true "class" "featured left" "showTitle" true "showDescription" true)}}
{{- end -}}
{{- end -}}
{{ . }}
</div>
</div>
{{- end -}}
<footer class="single-footer padding">
<p>
<i class="fa fa-calendar"></i> <time datetime='{{ .Lastmod.Format "2006-01-02T15:04-07:00" }}'>{{ .Lastmod.Format "02.01.2006 15:04" }}</time>
</p>
</footer>

View File

@ -1,7 +1,7 @@
<ul class="social-icons"> <ul class="social-icons">
{{- range $key, $value := (index .Site.Data.kontakt.kontakt 0).social -}} {{- range $key, $value := (index .Site.Data.kontakt.kontakt 0).social -}}
{{- with $value }} {{- with $value }}
<li><a href="{{ . }}" title="{{ $key | title }}"><i class="fab fa-{{ $key }}"></i></a></li> <li><a href="{{ . }}" title="{{ $key | title }}"><i class="fab fa-{{ $key }}"></i></a></li>
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
</ul> </ul>

View File

@ -1,29 +0,0 @@
<template id="lightbox-template">
<div id="lightbox" class="lightbox">
<div id="lightbox-container" class="lightbox-container">
<div class="lightbox-header">
<h1 class="lightbox-title">Title</h1>
<div class="lightbox-controls">
<a class="lightbox-close"><i class="fa fa-times"></i></a>
</div>
</div>
<div class="lightbox-image">
<div class="image-container">
<a class="lightbox-prev">
<div class="lightbox-nav-prev">
<div><i class="fa fa-chevron-left"></i></div>
</div>
</a>
<a class="lightbox-next">
<div class="lightbox-nav-next">
<div><i class="fa fa-chevron-right"></i></div>
</div>
</a>
<img src="#" alt="image">
</div>
</div>
<div class="lightbox-footer">
</div>
</div>
</div>
</template>

View File

@ -1,8 +1,8 @@
<h4>{{ i18n "translations" | title }}</h4> <h4>{{ i18n "translations" | title }}</h4>
<ul class="col-xs-12"> <ul>
{{- range .Translations -}} {{- range .Translations -}}
<li> <li>
<a href="{{ .Permalink }}" hreflang="{{ .Language.Lang }}">{{ .Language.LanguageName }}: {{ .Title }}</a> <a href="{{ .Permalink }}" hreflang="{{ .Language.Lang }}">{{ .Language.LanguageName }}: {{ .Title }}</a>
</li> </li>
{{- end -}} {{- end -}}
</ul> </ul>

View File

@ -4,52 +4,52 @@
{{- $description := true -}} {{- $description := true -}}
{{- $lightbox := true -}} {{- $lightbox := true -}}
{{- if .IsNamedParams -}} {{- if .IsNamedParams -}}
{{- with .Get "search" -}} {{- with .Get "search" -}}
{{ $search = . }} {{ $search = . }}
{{- end -}} {{- end -}}
{{- with .Get "original" -}} {{- with .Get "original" -}}
{{- $keep = true }} {{- $keep = true }}
{{- end -}} {{- end -}}
{{- with .Get "title" -}} {{- with .Get "title" -}}
{{ $title = . }} {{ $title = . }}
{{- end -}} {{- end -}}
{{- $description := true -}} {{- $description := true -}}
{{ with .Get "description" -}} {{ with .Get "description" -}}
{{- end -}} {{- end -}}
{{- with .Get "lightbox" -}} {{- with .Get "lightbox" -}}
{{ $lightbox = true }} {{ $lightbox = true }}
{{- end -}} {{- end -}}
{{- else -}} {{- else -}}
{{- with .Get 0 -}} {{- with .Get 0 -}}
{{ $search = . }} {{ $search = . }}
{{- end -}} {{- end -}}
{{- with .Get 1 -}} {{- with .Get 1 -}}
{{ $title = . }} {{ $title = . }}
{{- end -}} {{- end -}}
{{- with .Get 2 -}} {{- with .Get 2 -}}
{{ $description = . }} {{ $description = . }}
{{- end -}} {{- end -}}
{{- with .Get 3 -}} {{- with .Get 3 -}}
{{ $keep = true }} {{ $keep = true }}
{{- end -}} {{- end -}}
{{- with .Get 4 -}} {{- with .Get 4 -}}
{{ $lightbox = true }} {{ $lightbox = true }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
<div class="clearfix"></div> <div class="clearfix"></div>
{{ with .Inner }} {{ with .Inner }}
<ul class="list-unstyled row gallery"> <ul class="list-unstyled flex row gallery neg-margin">
{{ . }} {{ . }}
</ul> </ul>
{{ else }} {{ else }}
<ul class="list-unstyled row gallery"> <ul class="list-unstyled flex row gallery neg-margin">
{{ range $.Page.Resources.Match $search }} {{ range $.Page.Resources.Match $search }}
{{- if (ne .Params.featured true) -}} {{- if (ne .Params.featured true) -}}
<li class="col-xs-6 col-sm-4"> <li class="padding">
{{- partial "figure.html" (dict "image" . "ctx" . "lightbox" $lightbox "class" "gallery" "showTitle" $title "showDescription" $description "keepOriginal" $keep) -}} {{- partial "figure.html" (dict "image" . "ctx" . "lightbox" $lightbox "class" "gallery" "showTitle" $title "showDescription" $description "keepOriginal" $keep) -}}
</li> </li>
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
</ul> </ul>
{{- end -}} {{- end -}}

View File

@ -8,48 +8,48 @@
{{ $showDescription := true }} {{ $showDescription := true }}
{{ $list := false }} {{ $list := false }}
{{ if .IsNamedParams }} {{ if .IsNamedParams }}
{{ with .Get "search" }} {{ with .Get "search" }}
{{ $search = .}} {{ $search = .}}
{{ end }} {{ end }}
{{ with .Get "class" }} {{ with .Get "class" }}
{{ $class = .}} {{ $class = .}}
{{ end }} {{ end }}
{{ with .Get "title" }} {{ with .Get "title" }}
{{ $title = .}} {{ $title = .}}
{{ end }} {{ end }}
{{ with .Get "description" }} {{ with .Get "description" }}
{{ $description = .}} {{ $description = .}}
{{ end }} {{ end }}
{{ with .Get "alt" }} {{ with .Get "alt" }}
{{ $alt = .}} {{ $alt = .}}
{{ else }}
{{ $alt = $description}}
{{ end }}
{{ with .Get "lightbox" }}
{{ $lightbox = .}}
{{ end }}
{{ with .Get "showTitle" }}
{{ $showTitle = .}}
{{ end }}
{{ with .Get "showDescription" }}
{{ $showTitle = .}}
{{ end }}
{{ with .Get "list" }}
{{ $list = .}}
{{ end }}
{{ else }} {{ else }}
{{ $alt = $description}} {{ with .Get 0 }}
{{ end }} {{ $search = . }}
{{ with .Get "lightbox" }} {{ end }}
{{ $lightbox = .}} {{ with .Get 1 }}
{{ end }} {{ $class = . }}
{{ with .Get "showTitle" }} {{ end }}
{{ $showTitle = .}}
{{ end }}
{{ with .Get "showDescription" }}
{{ $showTitle = .}}
{{ end }}
{{ with .Get "list" }}
{{ $list = .}}
{{ end }}
{{ else }}
{{ with .Get 0 }}
{{ $search = . }}
{{ end }}
{{ with .Get 1 }}
{{ $class = . }}
{{ end }}
{{ end }} {{ end }}
{{ $image := $.Page.Resources.GetMatch $search }} {{ $image := $.Page.Resources.GetMatch $search }}
{{ if $list }} {{ if $list }}
<li class="col-xs-6 col-sm-4 padding"> <li class="padding">
{{ end }} {{ end }}
{{ partial "figure.html" (dict "image" $image "ctx" $image "class" $class "lightbox" $lightbox "showTitle" $showTitle "showDescription" $showDescription) }} {{ partial "figure.html" (dict "image" $image "ctx" $image "class" $class "lightbox" $lightbox "showTitle" $showTitle "showDescription" $showDescription) }}
{{ if $list }} {{ if $list }}
</li> </li>
{{ end }} {{ end }}

View File

@ -1,5 +1,4 @@
{{- $type := .Get "type" -}} {{- $type := .Get "type" -}}
<div class="clearfix"></div> <ul class="flex row list-unstyled clearfix {{ $type }}">
<ul class="flex row list-unstyled {{ $type }}"> {{ .Inner }}
{{ .Inner }}
</ul> </ul>

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +1,41 @@
{ {
"name": "neff", "name": "neff",
"version": "0.2.1", "version": "0.0.1",
"description": "A gohugo.io theme for http://www.neff-steindesign.de", "description": "A gohugo.io theme for http://www.neff-steindesign.de",
"scripts": { "scripts": {
"build": "webpack --config webpack.prod.js", "build": "webpack",
"watch": "webpack --watch --config webpack.dev.js" "watch": "webpack --watch"
}, },
"author": "", "author": "",
"private": true, "private": true,
"license": "MIT", "license": "MIT",
"sideEffects": true,
"dependencies": { "dependencies": {
"@babel/polyfill": "^7.4.4", "@babel/polyfill": "^7.2.5",
"@fortawesome/fontawesome-free": "^5.8.1", "@fortawesome/fontawesome-free": "^5.6.3"
"axios": "^0.18.0",
"core-js": "^3.0.1",
"three": "^0.104.0",
"vue": "^2.6.10",
"vuex": "^3.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.4.4", "@babel/cli": "^7.2.3",
"@babel/core": "^7.4.4", "@babel/core": "^7.2.2",
"@babel/preset-env": "^7.4.4", "@babel/preset-env": "^7.2.3",
"@vue/web-component-wrapper": "^1.2.0", "autoprefixer": "^9.4.3",
"autoprefixer": "^9.5.1", "babel-loader": "^8.0.4",
"babel-loader": "^8.0.5", "clean-webpack-plugin": "^1.0.0",
"babel-minify-webpack-plugin": "^0.3.1",
"clean-webpack-plugin": "^1.0.1",
"cookieconsent": "^3.1.0", "cookieconsent": "^3.1.0",
"css-loader": "^2.1.1", "css-loader": "^2.1.0",
"css-validator-loader": "^1.1.3", "css-validator-loader": "^1.1.3",
"file-loader": "^3.0.1", "file-loader": "^3.0.1",
"font-loader": "^0.1.2",
"image-webpack-loader": "^4.6.0", "image-webpack-loader": "^4.6.0",
"mini-css-extract-plugin": "^0.5.0", "mini-css-extract-plugin": "^0.5.0",
"node-sass": "^4.11.0",
"optimize-css-assets-webpack-plugin": "^5.0.1", "optimize-css-assets-webpack-plugin": "^5.0.1",
"postcss-loader": "^3.0.0", "postcss-loader": "^3.0.0",
"postcss-preset-env": "^6.6.0", "postcss-preset-env": "^6.5.0",
"prettier": "^1.17.0",
"sass": "^1.19.0",
"sass-loader": "^7.1.0", "sass-loader": "^7.1.0",
"style-loader": "^0.23.1", "style-loader": "^0.23.1",
"uglifyjs-webpack-plugin": "^2.1.2", "uglifyjs-webpack-plugin": "^2.1.1",
"url-loader": "^1.1.2", "url-loader": "^1.1.2",
"vue-loader": "^15.7.0", "webpack": "^4.28.2",
"vue-template-compiler": "^2.6.10", "webpack-cli": "^3.1.2"
"webpack": "^4.30.0",
"webpack-cli": "^3.3.1",
"webpack-merge": "^4.2.1"
} }
} }

View File

@ -1,32 +0,0 @@
import Vue from 'vue'
import CatalogArticle from '../vue/CatalogArticle.vue'
import ModelViewer from '../vue/ModelViewer.vue'
import store from '../vue/catalogArticle.store.js'
let modelViewerRoot = document.getElementById('model-viewer-root')
if (modelViewerRoot) {
new Vue({
store,
render: function(h) {
return h(ModelViewer)
},
beforeMount() {
this.modelUrl = this.$el.dataset.url
},
}).$mount(modelViewerRoot)
}
let catalogArticle = document.getElementById('catalog-article')
if (catalogArticle) {
new Vue({
store,
render: function(h) {
return h(CatalogArticle)
},
beforeMount() {
this.modelUrl = this.$el.dataset.url
},
}).$mount(catalogArticle)
}

View File

@ -1,102 +1,86 @@
import 'cookieconsent' import 'cookieconsent'
var gaDisableStr = 'ga-disable-' + $googleAnalytics
var gaDisableStr = 'ga-disable-' + $googleAnalytics;
function disableGoogleAnalytics() { function disableGoogleAnalytics() {
if (document.cookie.indexOf(gaDisableStr + '=true') > -1) { if (document.cookie.indexOf(gaDisableStr + '=true') > -1) {
window[gaDisableStr] = true window[gaDisableStr] = true;
} }
document.cookie = document.cookie = gaDisableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
gaDisableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/' window[gaDisableStr] = true;
window[gaDisableStr] = true
} }
function enableGoogleAnalytics() { function enableGoogleAnalytics() {
var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
var doNotTrack = dnt == '1' || dnt == 'yes' var doNotTrack = (dnt == "1" || dnt == "yes");
if (!doNotTrack) { if (!doNotTrack) {
;(function(i, s, o, g, r, a, m) { (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
i['GoogleAnalyticsObject'] = r (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
;(i[r] = m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
i[r] || })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
function() { ga('create', $googleAnalytics, 'auto');
;(i[r].q = i[r].q || []).push(arguments) ga('set', 'anonymizeIp', true);
}), ga('send', 'pageview');
(i[r].l = 1 * new Date()) }
;(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0])
a.async = 1
a.src = g
m.parentNode.insertBefore(a, m)
})(
window,
document,
'script',
'https://www.google-analytics.com/analytics.js',
'ga'
)
ga('create', $googleAnalytics, 'auto')
ga('set', 'anonymizeIp', true)
ga('send', 'pageview')
}
} }
function setupGoogleAnalytics(status) { function setupGoogleAnalytics(status) {
if (status === 'allow' || status === 'dismiss') { if (status === 'allow' || status === 'dismiss') {
enableGoogleAnalytics() enableGoogleAnalytics();
} }
if (status === 'deny') { if (status === 'deny') {
disableGoogleAnalytics() disableGoogleAnalytics();
} }
} }
window.addEventListener('load', function() {
window.cookieconsent.initialise({ window.addEventListener("load", function () {
palette: { window.cookieconsent.initialise({
popup: { palette: {
background: '#efefef', popup: {
text: '#000', background: "#efefef",
}, text: "#000"
button: { },
background: '#2d763a', button: {
text: '#ffffff', background: "#2d763a",
}, text: "#ffffff"
}, }
theme: 'classic', },
type: 'opt-out', theme: "classic",
content: { type: "opt-out",
message: content: {
'Diese Webseite nutzt Cookies zur Verbesserung des Erlebnisses unserer Besucher.<br>Indem Sie weiterhin auf dieser Webseite navigieren, erklären Sie sich mit der Verwendung von Cookies einverstanden. Die Nutzung von externen Cookies kann unterbunden werden.', message: "Diese Webseite nutzt Cookies zur Verbesserung des Erlebnisses unserer Besucher.<br>Indem Sie weiterhin auf dieser Webseite navigieren, erklären Sie sich mit der Verwendung von Cookies einverstanden. Die Nutzung von externen Cookies kann unterbunden werden.",
dismiss: 'OK', dismiss: "OK",
allow: 'Erlauben', allow: "Erlauben",
deny: 'Verbieten', deny: "Verbieten",
href: '/datenschutz', href: "/datenschutz",
link: 'Datenschutzbestimmung', link: "Datenschutzbestimmung",
policy: 'Cookie Vereinbarung', policy: "Cookie Vereinbarung"
}, },
dismissOnScroll: 600, dismissOnScroll: 600,
onInitialise: function(status) { onInitialise: function (status) {
setupGoogleAnalytics(status) setupGoogleAnalytics(status)
}, },
onStatusChange: function(status) { onStatusChange: function (status) {
if (status === 'allow' || status === 'dismiss') { if (status === 'allow' || status === 'dismiss') {
if (document.cookie.indexOf(gaDisableStr + '=true') > -1) { if (document.cookie.indexOf(gaDisableStr + '=true') > -1) {
window[gaDisableStr] = false window[gaDisableStr] = false;
document.cookie = document.cookie = gaDisableStr + '=true; expires=Thu, 31 Dec 1970 23:59:59 UTC; path=/';
gaDisableStr + }
'=true; expires=Thu, 31 Dec 1970 23:59:59 UTC; path=/' }
} setupGoogleAnalytics(status)
} },
setupGoogleAnalytics(status) })
}, });
})
})
var gaOptOut = document.querySelector('a.ga-optout') var gaOptOut = document.querySelector('a.ga-optout')
if (gaOptOut !== null) { if (gaOptOut !== null) {
gaOptOut.addEventListener('click', e => { gaOptOut.addEventListener('click', (e) => {
e.preventDefault() e.preventDefault();
disableGoogleAnalytics() disableGoogleAnalytics();
}) })
} }

View File

@ -1,51 +0,0 @@
function showOverlay(el) {
if (el) {
let classes = el.className
if (classes.indexOf('hidden') !== -1) {
el.className = classes.replace(/ ?hidden ?/, '')
}
}
}
function hideOverlay(el) {
if (el) {
let classes = el.className
if (classes.indexOf('hidden') === -1) {
el.className = classes + ' hidden'
}
}
}
function toggleOverlay(el) {
if (el) {
if (el.className.indexOf('hidden') === -1) {
hideOverlay(el)
} else {
showOverlay(el)
}
}
}
function addListeners(el, overlay) {
var isTouchSupported = 'ontouchend' in document
if (isTouchSupported) {
el.addEventListener('touchstart', ev => {
ev.preventDefault()
toggleOverlay(overlay)
})
} else {
el.addEventListener('mouseover', ev => {
ev.preventDefault()
showOverlay(overlay)
})
el.addEventListener('mouseleave', ev => {
ev.preventDefault()
hideOverlay(overlay)
})
}
}
document.querySelectorAll('figure').forEach(figure => {
let overlay = figure.querySelector('.overlay')
addListeners(figure, overlay)
})

View File

@ -1,4 +1,2 @@
function requireAll(r) { function requireAll(r) { r.keys().forEach(r); }
r.keys().forEach(r) requireAll(require.context('../img/', true, /\.(png|gif|jpg|jpeg|svg)$/));
}
requireAll(require.context('../img/', true, /\.(png|gif|jpg|jpeg|svg)$/))

View File

@ -1,115 +1,110 @@
const container = document.querySelector('#lightbox-section') const container = document.querySelector('#lightbox-section');
const template = document.querySelector('#lightbox-template') const template = document.querySelector('#lightbox-template')
const images = document.querySelectorAll('a[data-lightbox]') const images = document.querySelectorAll('a[data-lightbox]')
const lightboxes = [] const lightboxes = [];
class Lightbox { class Lightbox {
constructor(idx) { constructor(idx) {
this.idx = idx this.idx = idx
this.element = images[idx] this.element = images[idx];
this.figure = this.element.parentElement this.figure = this.element.parentElement;
this.image = this.figure.querySelector('img') this.image = this.element.querySelector('img');
if (this.image === null) { this.title = this.figure.querySelector('h3')
this.figure = this.element.parentElement.parentElement this.title = this.image.getAttribute('title')
this.image = this.figure.querySelector('img') this.description = this.figure.querySelector('.description p')
} if (this.description !== null) {
this.title = this.figure.querySelector('h3') this.description = this.description.innerHTML
this.title = this.image.getAttribute('title') }
this.description = this.figure.querySelector('.description p')
if (this.description !== null) { this.href = this.element.getAttribute('href')
this.description = this.description.innerHTML this.alt = this.image.getAttribute('alt')
this.template = template.cloneNode(true);
} }
this.href = this.element.getAttribute('href') update() {
this.alt = this.image.getAttribute('alt') this.calcSurrounding()
this.template = template.cloneNode(true) this.updateTemplate()
} this.addEventListeners()
update() {
this.calcSurrounding()
this.updateTemplate()
this.addEventListeners()
}
calcSurrounding() {
if (images.length > 1) {
this.prev = this.idx - 1
this.next = this.idx + 1
if (this.prev === -1) {
this.prev = images.length - 1
}
if (this.next === images.length) {
this.next = 0
}
} }
}
updateTemplate() { calcSurrounding() {
// Update template if (images.length > 1) {
container.innerHTML = this.template.innerHTML this.prev = this.idx - 1;
let lightbox = container.querySelector('#lightbox') this.next = this.idx + 1;
let img = lightbox.querySelector('img') if (this.prev === -1) {
img.setAttribute('src', this.href) this.prev = images.length - 1;
img.setAttribute('alt', this.alt) }
let title = lightbox.querySelector('.lightbox-title') if (this.next === images.length) {
let description = lightbox.querySelector('.lightbox-footer') this.next = 0;
if (this.title !== null) { }
title.innerHTML = this.title }
} else {
title.innerHtml = this.alt
} }
if (this.description !== null) {
description.innerHTML = this.description updateTemplate() {
} else { // Update template
description.innerHTML = this.alt container.innerHTML = this.template.innerHTML;
let lightbox = container.querySelector('#lightbox');
let img = lightbox.querySelector('img');
img.setAttribute('src', this.href);
img.setAttribute('alt', this.alt);
let title = lightbox.querySelector('.lightbox-title');
let description = lightbox.querySelector('.lightbox-footer');
if (this.title !== null) {
title.innerHTML = this.title;
}
else {
title.innerHtml = this.alt;
}
if (this.description !== null) {
description.innerHTML = this.description;
}
else {
description.innerHTML = this.alt;
}
} }
}
addEventListeners() { addEventListeners() {
// Close with click outside of .lightbox-container // Close with click outside of .lightbox-container
let lightboxContainer = lightbox.querySelector('div.lightbox-container') let lightboxContainer = lightbox.querySelector('div.lightbox-container');
lightbox.addEventListener('click', e => { lightbox.addEventListener('click', (e) => {
if (!lightboxContainer.contains(e.target)) { if (!lightboxContainer.contains(e.target)) {
container.innerHTML = '' container.innerHTML = '';
} }
})
// Close with click on .lightbox-close link
let lightboxClose = lightbox.querySelector('a.lightbox-close')
lightboxClose.addEventListener('click', () => {
container.innerHTML = ''
})
// Previous image with click on .lightbox-prev link
let lightboxPrev = lightbox
.querySelectorAll('a.lightbox-prev')
.forEach(el => {
el.addEventListener('click', () => {
lightboxes[this.prev].update()
}) })
}) // Close with click on .lightbox-close link
let lightboxClose = lightbox.querySelector('a.lightbox-close');
// Next image with click on .lightbox-next link lightboxClose.addEventListener('click', () => {
let lightboxNext = lightbox container.innerHTML = '';
.querySelectorAll('a.lightbox-next')
.forEach(el => {
el.addEventListener('click', () => {
lightboxes[this.next].update()
}) })
})
}
// Previous image with click on .lightbox-prev link
let lightboxPrev = lightbox.querySelectorAll('a.lightbox-prev').forEach((el) => {
el.addEventListener('click', () => {
lightboxes[this.prev].update();
})
})
// Next image with click on .lightbox-next link
let lightboxNext = lightbox.querySelectorAll('a.lightbox-next').forEach((el) => {
el.addEventListener('click', () => {
lightboxes[this.next].update();
})
})
}
} }
function main() { function main() {
for (let i = 0; i < images.length; i++) { for (let i = 0; i < images.length; i++) {
lightboxes.push(new Lightbox(i)) lightboxes.push(new Lightbox(i))
images[i].addEventListener('click', e => { images[i].addEventListener('click', (e) => {
e.preventDefault() e.preventDefault();
lightboxes[i].update() lightboxes[i].update();
}) })
} }
} }
main() main();

View File

@ -1,4 +1,3 @@
import "./cookies" import './cookies';
import "./lightbox" import './lightbox';
import "./scrollspy" import './scrollspy';
import "./gallery"

View File

@ -1,44 +1,46 @@
const header = document.querySelector('#header') const header = document.querySelector('#header');
const scrollPosition = 50 const scrollPosition = 50;
const menuLinks = document.querySelectorAll('.menu-list li a') const menuLinks = document.querySelectorAll('.menu-list li a');
const checkbox = document.querySelector('#top-navigation-checkbox') const checkbox = document.querySelector('#top-navigation-checkbox');
const banner = document.querySelector('#banner') const banner = document.querySelector('#banner');
let lastScrollPosition = 0 let lastScrollPosition = 0;
window.addEventListener('scroll', e => { window.addEventListener('scroll', (e) => {
let st = window.pageYOffset || document.documentElement.scrollTop let st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollPosition && st > scrollPosition) {
header.classList.add('small')
header.classList.remove('large')
header.classList.add('hidden')
if (banner !== null) {
banner.classList.add('hidden')
}
checkbox.checked = false
} else {
if (st < scrollPosition) {
header.classList.add('large')
header.classList.remove('small')
if (banner !== null) {
banner.classList.remove('hidden')
}
}
if (st < lastScrollPosition) {
setTimeout(() => {
header.classList.remove('hidden')
}, 500)
}
if (st > lastScrollPosition && st > scrollPosition) { if (st > lastScrollPosition && st > scrollPosition) {
header.classList.add('hidden') header.classList.add('small')
header.classList.remove('large')
header.classList.add('hidden')
if(banner !== null) {
banner.classList.add('hidden')
}
checkbox.checked = false;
} }
} else {
lastScrollPosition = window.pageYOffset || document.documentElement.scrollTop if (st < scrollPosition) {
}) header.classList.add('large')
header.classList.remove('small')
if(banner !== null) {
banner.classList.remove('hidden')
}
}
if (st < lastScrollPosition) {
setTimeout(() => {
header.classList.remove('hidden')
}, 500);
}
if (st > lastScrollPosition && st > scrollPosition) {
header.classList.add('hidden')
}
}
lastScrollPosition = window.pageYOffset || document.documentElement.scrollTop;
});
menuLinks.forEach(el => { menuLinks.forEach((el) => {
el.addEventListener('click', () => { el.addEventListener('click', () => {
checkbox.checked = false console.log('hello');
}) checkbox.checked = false;
}) })
})

View File

@ -1,903 +0,0 @@
/* BASE STYLES */
html {
scroll-behavior: smooth;
}
body {
min-height: calc(100vh - calc(3 * #{$gutter-width}));
font-family: $base-font-family;
font-size: $base-font-size;
line-height: $base-line-height;
display: flex;
flex-direction: column;
padding: calc(5.25rem + #{$gutter-width}) 0 0;
background-color: $background-color;
color: $font-color;
width: 100%;
height: 100vh;
}
@supports (-webkit-overflow-scrolling: touch) {
.fixed-background {
background-attachment: scroll;
}
}
header {
margin: 0;
}
p {
margin: 0.5rem 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
line-height: 1.2em;
margin: 0.2em auto;
font-family: $heading-font-family;
font-weight: bold;
}
h1 {
font-size: 1.6rem;
span.small {
font-size: 1.4rem;
}
}
h2 {
font-size: 1.3rem;
}
h3 {
font-size: 1.2rem;
}
h4 {
font-size: 1.1rem;
}
h5 {
font-size: 1rem;
}
h6 {
font-size: 1rem;
}
ul {
list-style: circle;
padding-left: 1.4em;
}
ol {
list-style: decimal;
padding-left: 1.4em;
}
table {
tr {
th,
td {
padding: calc(#{$gutter-width} / 2) calc(#{$gutter-width * 2})
calc(#{$gutter-width} / 2) 0;
}
th {
font-weight: bold;
}
}
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
@media only screen and (min-width: $sm-min) {
body {
padding: calc(9rem + #{$gutter-width}) 0 0;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.6rem;
}
h3 {
font-size: 1.4rem;
}
h4 {
font-size: 1.2rem;
}
h5 {
font-size: 1.1rem;
}
h6 {
font-size: 1rem;
}
}
a {
text-decoration: none;
&.anchor:hover,
&:active,
&:visited,
&:link {
color: $primary-color;
}
&:hover {
color: darken($primary-color, 15%);
}
&.anchor:hover {
color: $font-color;
cursor: default;
}
}
img {
border-radius: $border-radius;
max-width: calc(100vw - calc(6 * #{$gutter-width}));
}
table {
thead {
tr {
th {
text-align: left;
}
}
}
tr {
td {
vertical-align: top;
}
}
}
/* BACKGROUND IMAGES */
.fixed-background {
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -1000;
@include background('default');
@include background('bau');
}
/* CONTAINER */
.container {
background-color: rgba(255, 255, 255, 0.9);
border-radius: $border-radius;
margin-bottom: $gutter-width;
padding: $half-gutter-width $gutter-width;
&.transparent {
background-color: transparent;
padding: $half-gutter-width $half-gutter-width;
}
}
/* HELPER */
.lead {
font-size: 1.2em;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.list-unstyled {
list-style: none;
padding: 0;
}
.clearfix::before,
.clearfix::after {
content: ' ';
display: table;
}
.clearfix::after {
clear: both;
}
.left {
float: left;
margin-right: $gutter-width;
padding: 0.5rem 0;
}
.right {
float: right;
margin-left: $gutter-width;
padding: 0.5rem 0;
}
figure {
max-width: 100%;
position: relative;
&.featured {
max-width: 33.33333333%;
&.wide {
max-width: 66.66666667%;
}
}
&.fill {
img {
width: 100%;
height: auto;
}
}
&.round {
img {
border-radius: 50%;
}
}
&.small {
img {
max-width: 150px;
}
}
&.right,
&.left {
max-width: 33.33333333%;
&.wide {
max-width: 66.66666667%;
}
}
img {
display: block;
width: 100%;
height: auto;
&.img-center {
margin: 0 auto;
}
&.original {
width: auto !important;
max-width: 100%;
}
}
figcaption {
&.overlay {
h3 {
font-size: 1.2rem;
}
&.hidden {
visibility: hidden;
}
.details {
line-height: 3rem;
a.btn {
text-shadow: none;
font-weight: bold;
}
}
position: absolute;
background-color: rgba(230, 230, 230, 0.85);
top: 0;
left: 0;
bottom: 5px;
right: 0;
border-radius: $border-radius;
text-align: center;
padding: $gutter-width;
padding-bottom: 0;
padding-top: 0;
text-shadow: 1px 1px 2px white;
p {
max-width: 100%;
}
}
color: $font-color;
}
.ribbon {
position: absolute;
right: 0px;
top: 0px;
overflow: hidden;
width: 75px;
height: 75px;
text-align: right;
span {
font-size: 12px;
color: #d7c9aa;
text-align: center;
font-weight: bold;
line-height: 20px;
transform: rotate(45deg);
width: 100px;
display: block;
background: $secondary-color;
box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 0.5);
position: absolute;
top: 19px;
right: -21px;
}
}
}
.btn {
padding: 0.5rem 2rem;
border: 1px solid black;
border-radius: $border-radius;
color: black margin 0 1rem;
line-height: 3rem;
&.btn-small {
padding: 0.3rem 1rem;
margin: 1rem;
}
}
.btn-primary {
background-color: $primary-color;
border: 1px solid $primary-color;
color: white;
&:active,
&:visited {
color: white;
}
}
a.btn-secondary,
a.btn-primary {
color: white;
&:active,
&:visited {
color: white;
}
}
.btn-secondary {
background-color: $secondary-color;
border: 1px solid $secondary-color;
color: white;
&:active,
&:visited {
color: white;
}
}
.call-to-action {
min-height: 2rem;
div {
width: 100%;
}
}
.full-width {
min-width: 100%;
}
.youtube {
width: 100%;
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
margin: $gutter-width 0;
border-radius: $border-radius;
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
}
nav {
&.breadcrumbs {
display: block;
ol {
list-style: none;
li {
display: inline-block;
&.active {
font-weight: bold;
}
}
}
}
}
/* CONTENT */
/* HEADER */
#header {
$transition-time: 0.4s;
position: fixed;
width: 100%;
top: 0;
left: 0;
font-family: $heading-font-family;
z-index: 2000;
&.small {
transition: $transition-time;
.navbar-logo {
flex: 0 1 0;
min-width: 100px;
float: left;
img {
max-height: 2rem;
transition: $transition-time * 1.5;
width: auto;
}
}
@media only screen and (min-width: $sm-min) {
.navbar-logo {
img {
transition: $transition-time * 1.5;
max-height: 4rem;
}
float: none;
}
}
}
&.large {
transition: $transition-time;
.navbar-logo {
flex: 0 1 0;
min-width: 100px;
float: left;
img {
max-height: 4rem;
width: auto;
transition: $transition-time * 1.5;
}
}
@media only screen and (min-width: $sm-min) {
.navbar-logo {
img {
max-height: 6rem;
transition: $transition-time * 1.5;
}
float: none;
}
}
}
&.hidden {
transition: $transition-time;
top: -200px;
}
h1 {
font-size: 1.3rem;
display: inline;
margin: $gutter-width;
padding: 0;
}
.container {
border-radius: 0 0 $border-radius $border-radius;
}
.navbar {
justify-content: space-between;
align-items: stretch;
flex: 1 0 0;
min-width: 0;
line-height: 1.75rem;
@media only screen and (min-width: $sm-min) {
max-width: none;
}
input[type='checkbox'] {
display: none;
& + label {
display: block;
margin-left: auto;
margin-top: $gutter-width;
max-width: 35px;
max-height: 35px;
min-width: 35px;
min-height: 35px;
.toggler {
position: relative;
display: block;
cursor: pointer;
width: 35px;
height: 30px;
background-color: transparent;
.line {
height: 4px;
width: 35px;
background: black;
border-radius: 2px;
transition: 0.4s;
transform-origin: center;
position: absolute;
}
.line:nth-child(1) {
top: 0px;
}
.line:nth-child(2) {
top: 10px;
transition: 0.1s;
}
.line:nth-child(3) {
top: 20px;
}
}
}
}
input[type='checkbox']:checked + .hamburger .line:nth-child(1) {
transform: translateY(10px) rotate(-45deg);
}
input[type='checkbox']:checked + .hamburger .line:nth-child(2) {
opacity: 0;
}
input[type='checkbox']:checked + .hamburger .line:nth-child(3) {
transform: translateY(-10px) rotate(45deg);
}
ul {
display: none;
}
input[type='checkbox']:checked ~ .navbar-container nav {
ul {
@include menu-list(column);
li {
text-align: right;
flex: 0 0 0;
margin: $half-gutter-width 0;
font-size: 1.1rem;
font-weight: bold;
a {
&:active,
&:hover {
color: darken($primary-color, 15%);
}
}
}
}
}
.navbar-container {
margin-top: auto;
min-width: 0;
height: 100%;
nav {
height: 100%;
@media only screen and (min-width: $sm-min) {
ul {
@include menu-list(row);
align-items: flex-end;
justify-content: flex-end;
height: 100%;
display: flex;
li {
font-size: 1.1rem;
font-weight: bold;
}
}
}
}
}
@media only screen and (min-width: $sm-min) {
input[type='checkbox'] {
display: none;
& + label {
display: none;
.line {
display: none;
}
}
}
ul:last-child {
li {
padding: 0 $half-gutter-width;
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
}
}
}
}
}
}
/* FOOTER */
#footer {
nav {
align-items: flex-end;
flex-wrap: wrap;
ul {
@include menu-list(row);
flex: 1 1 0;
height: 100%;
padding: 0 $half-gutter-width;
li {
flex: 1 0 0;
width: 100%;
padding: 0;
margin: 0;
padding-left: 0;
.sub-menu {
@include menu-list(column);
margin: 0;
padding: 0;
li {
padding: 0;
}
}
}
}
}
#footer-social {
ul {
@include menu-list(row);
@include trim-list-margin-horizontal;
justify-content: center;
font-size: 2rem;
li {
margin: 0 $half-gutter-width;
}
}
}
}
#content {
/* INDEX */
#index-hero {
.hero-container {
text-align: center;
img.hero {
margin: 0.5rem auto 0;
max-width: 150px;
height: auto;
}
header,
div.content {
text-align: left;
}
}
}
#index-title {
display: none;
}
#index-short-contact {
font-size: 1.1rem;
align-items: flex-start;
background-color: rgba(255, 255, 255, 0.9);
border-radius: $border-radius;
margin: calc(100vh - calc(15rem - #{$gutter-width})) 0 0 0;
padding: $half-gutter-width $gutter-width;
overflow: hidden;
@media only screen and (min-width: $sm-min) {
margin: calc(100vh - calc(19rem - #{$gutter-width})) -$half-gutter-width 0
auto;
}
ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: row;
justify-content: center;
li {
margin: 0.5rem $gutter-width;
font-size: 2rem;
}
}
}
#index-contact {
.padding {
flex: 1 0 0;
}
}
#index-gallery {
figure {
text-align: center;
figcaption {
text-align: left;
}
}
}
/* SINGLE */
#single {
.single-footer {
p {
margin: 0;
font-size: 0.8rem;
}
}
.featured {
height: auto;
margin-bottom: 1rem;
img {
width: 100%;
}
& + p {
margin-top: 0;
}
}
p {
float: none;
}
blockquote {
float: none;
font-style: italic;
cite {
font-size: 0.8em;
margin-left: 1rem;
}
}
p {
font-size: 1.2rem;
&.material {
font-weight: bold;
}
&.type {
font-style: italic;
}
&.article-id {
font-size: 1rem;
}
&.offer {
font-size: 1.2rem;
font-weight: bold;
text-align: center;
margin: 1rem 0;
}
}
}
/* LIST */
#list {
footer {
font-size: 0.8rem;
}
}
}
/* BANNER */
#banner {
font-size: 1.2rem;
position: absolute;
top: calc(5.25rem + #{$gutter-width});
width: 100%;
transition: 0.6s;
z-index: 500;
text-align: center;
h1 {
font-size: 1.4rem;
}
.container {
border-radius: $border-radius;
margin: 0 auto;
}
&.hidden {
top: -200px;
transition: 0.6s;
}
p {
margin: 1rem 0 0;
}
}
@media only screen and (min-width: $sm-min) {
#banner {
top: calc(9rem + #{$gutter-width});
}
}

View File

@ -0,0 +1,32 @@
#banner {
font-size: 1.2rem;
position: absolute;
top: 105px;
width: 100%;
transition: 0.6s;
z-index: 500;
text-align: center;
h1 {
font-size: 1.4rem;
}
.container {
border-radius: $border-radius;
margin: 0 auto;
}
&.hidden {
top: -200px;
transition: 0.6s;
}
p {
margin: 1rem 0 0;
}
}
@media only screen and (min-width: $media-query) {
#banner {
top: 155px;
}
}

View File

@ -0,0 +1,3 @@
#content {
flex: 1 1 0;
}

View File

@ -1,420 +0,0 @@
/* VARIABLES */
$gutter-width: 0.5rem !default;
$outer-margin: 1rem !default;
$xs-min: 30rem !default;
$sm-min: 48rem !default;
$lg-min: 64rem !default;
$xl-min: 75rem !default;
/* CALCULATED VARIABLES */
$breakpoints: 1 8.33333333%, 2 16.66666667%, 3 25%, 4 33.33333333%,
5 41.66666667%, 6 50%, 7 58.33333333%, 8 66.66666667%, 9 75%, 10 83.33333333%,
11 91.66666667%, 12 100%;
$half-gutter-width: $gutter-width * 0.5;
$gutter-compensation: $half-gutter-width * -1;
/* GRID */
@mixin flex() {
box-sizing: border-box;
display: flex;
flex: 0 1 auto;
flex-wrap: wrap;
}
@mixin col($size) {
flex-basis: $size;
max-width: $size;
}
@mixin offset($size) {
margin-left: $size;
}
.container,
.container-fluid {
margin: 0 auto;
padding: 0 $outer-margin;
max-width: calc(90vw - #{$gutter-width} * 2);
}
.row {
@include flex();
flex-direction: row;
margin: 0 $gutter-compensation;
&.reverse {
flex-direction: row-reverse;
}
}
.column {
@include flex();
flex-direction: column;
&.reverse {
flex-direction: row-column;
}
}
/* XS */
.col-xs,
.col-xs-1,
.col-xs-2,
.col-xs-3,
.col-xs-4,
.col-xs-5,
.col-xs-6,
.col-xs-7,
.col-xs-8,
.col-xs-9,
.col-xs-10,
.col-xs-11,
.col-xs-12,
.col-offset-xs-1,
.col-offset-xs-2,
.col-offset-xs-3,
.col-offset-xs-4,
.col-offset-xs-5,
.col-offset-xs-6,
.col-offset-xs-7,
.col-offset-xs-8,
.col-offset-xs-9,
.col-offset-xs-10,
.col-offset-xs-11,
.col-offset-xs-12 {
box-sizing: border-box;
flex: 0 0 auto;
padding: 0 $half-gutter-width;
}
.col-xs {
flex-grow: 1;
flex-basis: 0;
max-width: 100%;
}
@each $i, $x in $breakpoints {
.col-xs-#{$i} {
@include col($x);
}
}
@each $i, $x in $breakpoints {
.col-offset-xs-#{$i} {
@include offset($x);
}
}
.start-xs {
justify-content: flex-start;
text-align: start;
}
.center-xs {
justify-content: center;
text-align: center;
}
.end-xs {
justify-content: flex-end;
text-align: end;
}
.top-xs {
align-items: flex-start;
}
.middle-xs {
align-items: center;
}
.bottom-xs {
align-items: flex-end;
}
.around-xs {
justify-content: space-around;
}
.between-xs {
justify-content: space-between;
}
/* SM */
@media only screen and (min-width: $sm-min) {
.container {
width: $sm-min - $gutter-width;
}
.col-sm,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-offset-sm-1,
.col-offset-sm-2,
.col-offset-sm-3,
.col-offset-sm-4,
.col-offset-sm-5,
.col-offset-sm-6,
.col-offset-sm-7,
.col-offset-sm-8,
.col-offset-sm-9,
.col-offset-sm-10,
.col-offset-sm-11,
.col-offset-sm-12 {
box-sizing: border-box;
flex: 0 0 auto;
padding: 0 $half-gutter-width;
}
.col-sm {
flex-grow: 1;
flex-basis: 0;
max-width: 100%;
}
@each $i, $x in $breakpoints {
.col-sm-#{$i} {
@include col($x);
}
}
@each $i, $x in $breakpoints {
.col-offset-sm-#{$i} {
@include offset($x);
}
}
.start-sm {
justify-content: flex-start;
text-align: start;
}
.center-sm {
justify-content: center;
text-align: center;
}
.end-sm {
justify-content: flex-end;
text-align: end;
}
.top-sm {
align-items: flex-start;
}
.middle-sm {
align-items: center;
}
.bottom-sm {
align-items: flex-end;
}
.around-sm {
justify-content: space-around;
}
.between-sm {
justify-content: space-between;
}
}
/* LG */
@media only screen and (min-width: $lg-min) {
.container {
width: $lg-min;
}
.col-lg,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-offset-lg-1,
.col-offset-lg-2,
.col-offset-lg-3,
.col-offset-lg-4,
.col-offset-lg-5,
.col-offset-lg-6,
.col-offset-lg-7,
.col-offset-lg-8,
.col-offset-lg-9,
.col-offset-lg-10,
.col-offset-lg-11,
.col-offset-lg-12 {
box-sizing: border-box;
flex: 0 0 auto;
padding: 0 $half-gutter-width;
}
.col-lg {
flex-grow: 1;
flex-basis: 0;
max-width: 100%;
}
@each $i, $x in $breakpoints {
.col-lg-#{$i} {
@include col($x);
}
}
@each $i, $x in $breakpoints {
.col-offset-lg-#{$i} {
@include offset($x);
}
}
.start-lg {
justify-content: flex-start;
text-align: start;
}
.center-lg {
justify-content: center;
text-align: center;
}
.end-lg {
justify-content: flex-end;
text-align: end;
}
.top-lg {
align-items: flex-start;
}
.middle-lg {
align-items: center;
}
.bottom-lg {
align-items: flex-end;
}
.around-lg {
justify-content: space-around;
}
.between-lg {
justify-content: space-between;
}
}
/* XL */
@media only screen and (min-width: $xl-min) {
.container {
width: $xl-min;
}
.col-xl,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-offset-xl-1,
.col-offset-xl-2,
.col-offset-xl-3,
.col-offset-xl-4,
.col-offset-xl-5,
.col-offset-xl-6,
.col-offset-xl-7,
.col-offset-xl-8,
.col-offset-xl-9,
.col-offset-xl-10,
.col-offset-xl-11,
.col-offset-xl-12 {
box-sizing: border-box;
flex: 0 0 auto;
padding: 0 $half-gutter-width;
}
.col-xl {
flex-grow: 1;
flex-basis: 0;
max-width: 100%;
}
@each $i, $x in $breakpoints {
.col-xl-#{$i} {
@include col($x);
}
}
@each $i, $x in $breakpoints {
.col-offset-xl-#{$i} {
@include offset($x);
}
}
.start-xl {
justify-content: flex-start;
text-align: start;
}
.center-xl {
justify-content: center;
text-align: center;
}
.end-xl {
justify-content: flex-end;
text-align: end;
}
.top-xl {
align-items: flex-start;
}
.middle-xl {
align-items: center;
}
.bottom-xl {
align-items: flex-end;
}
.around-xl {
justify-content: space-around;
}
.between-xl {
justify-content: space-between;
}
}

View File

@ -1,91 +1,119 @@
/* roboto-regular - latin */ /* roboto-regular - latin */
@font-face { @font-face {
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('../fonts/roboto-v18-latin-regular.eot'); src: url('../fonts/roboto-v18-latin-regular.eot');
src: local('Roboto'), local('Roboto-Regular'), /* IE9 Compat Modes */
url('../fonts/roboto-v18-latin-regular.eot?#iefix') src: local('Roboto'), local('Roboto-Regular'),
format('embedded-opentype'), url('../fonts/roboto-v18-latin-regular.eot?#iefix') format('embedded-opentype'),
url('../fonts/roboto-v18-latin-regular.woff2') format('woff2'), /* IE6-IE8 */
url('../fonts/roboto-v18-latin-regular.woff') format('woff'), url('../fonts/roboto-v18-latin-regular.woff2') format('woff2'),
url('../fonts/roboto-v18-latin-regular.ttf') format('truetype'), /* Super Modern Browsers */
url('../fonts/roboto-v18-latin-regular.svg#Roboto') format('svg'); url('../fonts/roboto-v18-latin-regular.woff') format('woff'),
/* Modern Browsers */
url('../fonts/roboto-v18-latin-regular.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-v18-latin-regular.svg#Roboto') format('svg');
/* Legacy iOS */
} }
/* roboto-italic - latin */ /* roboto-italic - latin */
@font-face { @font-face {
font-family: 'Roboto'; font-family: 'Roboto';
font-style: italic; font-style: italic;
font-weight: 400; font-weight: 400;
src: url('../fonts/roboto-v18-latin-italic.eot'); src: url('../fonts/roboto-v18-latin-italic.eot');
/* IE9 Compat Modes */
src: local('Roboto Italic'), local('Roboto-Italic'), src: local('Roboto Italic'), local('Roboto-Italic'),
url('../fonts/roboto-v18-latin-italic.eot?#iefix') url('../fonts/roboto-v18-latin-italic.eot?#iefix') format('embedded-opentype'),
format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-v18-latin-italic.woff2') format('woff2'), url('../fonts/roboto-v18-latin-italic.woff2') format('woff2'),
url('../fonts/roboto-v18-latin-italic.woff') format('woff'), /* Super Modern Browsers */
url('../fonts/roboto-v18-latin-italic.ttf') format('truetype'), url('../fonts/roboto-v18-latin-italic.woff') format('woff'),
url('../fonts/roboto-v18-latin-italic.svg#Roboto') format('svg'); /* Modern Browsers */
url('../fonts/roboto-v18-latin-italic.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-v18-latin-italic.svg#Roboto') format('svg');
/* Legacy iOS */
} }
/* roboto-700 - latin */ /* roboto-700 - latin */
@font-face { @font-face {
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('../fonts/roboto-v18-latin-700.eot'); src: url('../fonts/roboto-v18-latin-700.eot');
src: local('Roboto Bold'), local('Roboto-Bold'), /* IE9 Compat Modes */
url('../fonts/roboto-v18-latin-700.eot?#iefix') format('embedded-opentype'), src: local('Roboto Bold'), local('Roboto-Bold'),
url('../fonts/roboto-v18-latin-700.woff2') format('woff2'), url('../fonts/roboto-v18-latin-700.eot?#iefix') format('embedded-opentype'),
url('../fonts/roboto-v18-latin-700.woff') format('woff'), /* IE6-IE8 */
url('../fonts/roboto-v18-latin-700.ttf') format('truetype'), url('../fonts/roboto-v18-latin-700.woff2') format('woff2'),
url('../fonts/roboto-v18-latin-700.svg#Roboto') format('svg'); /* Super Modern Browsers */
url('../fonts/roboto-v18-latin-700.woff') format('woff'),
/* Modern Browsers */
url('../fonts/roboto-v18-latin-700.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-v18-latin-700.svg#Roboto') format('svg');
/* Legacy iOS */
} }
/* roboto-700italic - latin */ /* roboto-700italic - latin */
@font-face { @font-face {
font-family: 'Roboto'; font-family: 'Roboto';
font-style: italic; font-style: italic;
font-weight: 700; font-weight: 700;
src: url('../fonts/roboto-v18-latin-700italic.eot'); src: url('../fonts/roboto-v18-latin-700italic.eot');
/* IE9 Compat Modes */
src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'),
url('../fonts/roboto-v18-latin-700italic.eot?#iefix') url('../fonts/roboto-v18-latin-700italic.eot?#iefix') format('embedded-opentype'),
format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-v18-latin-700italic.woff2') format('woff2'), url('../fonts/roboto-v18-latin-700italic.woff2') format('woff2'),
url('../fonts/roboto-v18-latin-700italic.woff') format('woff'), /* Super Modern Browsers */
url('../fonts/roboto-v18-latin-700italic.ttf') format('truetype'), url('../fonts/roboto-v18-latin-700italic.woff') format('woff'),
url('../fonts/roboto-v18-latin-700italic.svg#Roboto') format('svg'); /* Modern Browsers */
url('../fonts/roboto-v18-latin-700italic.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-v18-latin-700italic.svg#Roboto') format('svg');
/* Legacy iOS */
} }
/* roboto-slab-regular - latin */ /* roboto-slab-regular - latin */
@font-face { @font-face {
font-family: 'Roboto Slab'; font-family: 'Roboto Slab';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('../fonts/roboto-slab-v7-latin-regular.eot'); src: url('../fonts/roboto-slab-v7-latin-regular.eot');
src: local('Roboto Slab Regular'), local('RobotoSlab-Regular'), /* IE9 Compat Modes */
url('../fonts/roboto-slab-v7-latin-regular.eot?#iefix') src: local('Roboto Slab Regular'), local('RobotoSlab-Regular'),
format('embedded-opentype'), url('../fonts/roboto-slab-v7-latin-regular.eot?#iefix') format('embedded-opentype'),
url('../fonts/roboto-slab-v7-latin-regular.woff2') format('woff2'), /* IE6-IE8 */
url('../fonts/roboto-slab-v7-latin-regular.woff') format('woff'), url('../fonts/roboto-slab-v7-latin-regular.woff2') format('woff2'),
url('../fonts/roboto-slab-v7-latin-regular.ttf') format('truetype'), /* Super Modern Browsers */
url('../fonts/roboto-slab-v7-latin-regular.svg#RobotoSlab') format('svg'); url('../fonts/roboto-slab-v7-latin-regular.woff') format('woff'),
/* Modern Browsers */
url('../fonts/roboto-slab-v7-latin-regular.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-slab-v7-latin-regular.svg#RobotoSlab') format('svg');
/* Legacy iOS */
} }
/* roboto-slab-700 - latin */ /* roboto-slab-700 - latin */
@font-face { @font-face {
font-family: 'Roboto Slab'; font-family: 'Roboto Slab';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('../fonts/roboto-slab-v7-latin-700.eot'); src: url('../fonts/roboto-slab-v7-latin-700.eot');
/* IE9 Compat Modes */
src: local('Roboto Slab Bold'), local('RobotoSlab-Bold'), src: local('Roboto Slab Bold'), local('RobotoSlab-Bold'),
url('../fonts/roboto-slab-v7-latin-700.eot?#iefix') url('../fonts/roboto-slab-v7-latin-700.eot?#iefix') format('embedded-opentype'),
format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-slab-v7-latin-700.woff2') format('woff2'), url('../fonts/roboto-slab-v7-latin-700.woff2') format('woff2'),
url('../fonts/roboto-slab-v7-latin-700.woff') format('woff'), /* Super Modern Browsers */
url('../fonts/roboto-slab-v7-latin-700.ttf') format('truetype'), url('../fonts/roboto-slab-v7-latin-700.woff') format('woff'),
url('../fonts/roboto-slab-v7-latin-700.svg#RobotoSlab') format('svg'); /* Modern Browsers */
url('../fonts/roboto-slab-v7-latin-700.ttf') format('truetype'),
/* Safari, Android, iOS */
url('../fonts/roboto-slab-v7-latin-700.svg#RobotoSlab') format('svg');
/* Legacy iOS */
} }

View File

@ -0,0 +1,47 @@
#footer {
nav {
display: flex;
flex-direction: row;
align-items: flex-end;
flex-wrap: wrap;
ul {
@include menu-list(row);
flex: 1 1 0;
height: 100%;
li {
flex: 1 0 0;
width: 100%;
padding: 0;
margin: 0;
padding-left: 0;
min-width: $min-column-width;
.sub-menu {
@include menu-list(column);
margin: 0;
padding: 0;
li {
min-width: $min-column-width;
padding: 0;
}
}
}
&:first-child {
margin-left: -$gutter-width;
}
}
}
#footer-social {
ul {
@include menu-list(row);
@include trim-list-margin-horizontal;
justify-content: center;
font-size: 2rem;
}
}
}

View File

@ -0,0 +1,394 @@
html {
scroll-behavior: smooth;
}
body {
min-height: calc(100vh - calc(3 * #{$gutter-width}));
font-family: $base-font-family;
font-size: $base-font-size;
line-height: $base-line-height;
display: flex;
flex-direction: column;
padding: 105px 0 0 0;
margin: 0;
background-color: $background-color;
color: $font-color;
width: 100%;
height: 100vh;
}
.fixed-background {
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -1000;
@include background("default");
@include background("bau");
}
@supports (-webkit-overflow-scrolling: touch) {
.fixed-background {
background-attachment: scroll;
}
}
header {
margin: 0;
}
p {
margin: 0.5rem 0;
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.2em;
margin: .2em auto;
font-family: $heading-font-family;
font-weight: bold;
}
h1 {
font-size: 1.6rem;
span.small {
font-size: 1.4rem;
}
}
h2 {
font-size: 1.3rem;
}
h3 {
font-size: 1.2rem;
}
h4 {
font-size: 1.1rem;
}
h5 {
font-size: 1rem;
}
h6 {
font-size: 1rem;
}
ul {
list-style: circle;
padding-left: 1.4em;
}
ol {
list-style: decimal;
padding-left: 1.4em;
}
table {
tr {
th, td {
padding: calc(#{$gutter-width} / 2) calc(#{$gutter-width * 2}) calc(#{$gutter-width} / 2) 0;
}
th {
font-weight: bold;
}
}
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
@media only screen and (min-width: $media-query) {
body {
padding: 155px 0 0 0;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.6rem;
}
h3 {
font-size: 1.4rem;
}
h4 {
font-size: 1.2rem;
}
h5 {
font-size: 1.1rem;
}
h6 {
font-size: 1rem;
}
}
a {
text-decoration: none;
&.anchor:hover,
&:active,
&:visited,
&:link {
color: $primary-color;
}
&:hover {
color: darken($primary-color, 15%);
}
&.anchor:hover {
color: $font-color;
cursor: default;
}
}
img {
border-radius: $border-radius;
max-width: calc(100vw - calc(6 * #{$gutter-width}));
}
table {
thead {
tr {
th {
text-align: left;
}
}
}
tr {
td {
vertical-align: top;
}
}
}
.container {
width: calc(100% - calc(6 * #{$gutter-width}));
margin: 0 auto;
padding: $gutter-width;
background-color: rgba(255, 255, 255, 0.9);
&.transparent {
background-color: transparent;
}
}
.flex {
display: flex;
}
@media only screen and (min-width: $media-query) {
.container {
width: calc(#{$max-width} + calc(2 * #{$gutter-width}));
}
}
.row {
flex-direction: row;
flex-wrap: wrap;
}
.column {
flex-direction: column;
}
.padding {
padding: $gutter-width / 2;
margin: $gutter-width / 2;
}
.news-featured-image {
img {
max-width: 100%;
height: auto;
}
}
.lead {
font-size: 1.2em;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.list-unstyled {
list-style: none;
margin: 0;
padding: 0;
}
.clearfix::before,
.clearfix::after {
content: " ";
display: table;
}
.clearfix::after {
clear: both;
}
figure.fill {
img {
width: 100%;
height: auto;
}
}
figure.round {
img {
border-radius: 50%;
}
}
figure.small {
img {
max-width: 150px;
}
}
figure.left {
float: left;
margin-right: $gutter-width;
max-width: $min-column-width;
padding: 0.5rem 0;
float: left
}
figure.right {
float: right;
margin-left: $gutter-width;
max-width: $min-column-width;
padding: 0.5rem 0;
}
img.original {
width: auto !important;
max-width: 100%
}
figure {
max-width: 100%;
img {
width: 100%;
height: auto;
}
figcaption {
color: $font-color;
}
}
.neg-margin {
margin: 0 calc(0 - #{$gutter-width}) 0;
}
.btn {
padding: .5rem 2rem;
border: 1px solid black;
border-radius: $border-radius;
color: black
}
a.btn-primary {
background-color: $primary-color;
border: 1px solid $primary-color;
color: white;
&:active,
&:visited {
color: white;
}
}
.call-to-action {
min-height: 2rem;
div {
width: 100%;
}
}
.full-width {
min-width: 100%;
}
.youtube {
width: 100%;
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
margin: $gutter-width 0;
border-radius: $border-radius;
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border:0;
}
}
.container {
margin-bottom: $gutter-width;
border-radius: $border-radius;
}
.flex {
justify-content: start;
& > * {
flex: 1 1 0;
min-width: $min-column-width;
}
h1, h2, h3, h4, h5, h6 {
min-width: 100%;
}
}
@media only screen and (min-width: $media-query) {
.flex {
& > * {
min-width: $min-column-width-desktop;
}
p {
max-width: 90%;
}
&.gallery {
li {
max-width: calc(#{$min-column-width-desktop} + calc(3 * #{$gutter-width}));
}
}
}
}

View File

@ -0,0 +1,225 @@
#header {
$transition-time: 0.4s;
position: fixed;
width: 100%;
top: 0;
left: 0;
font-family: $heading-font-family;
z-index: 2000;
&.small {
transition: $transition-time;
.navbar-logo {
flex: 0 1 0;
min-width: 100px;
img {
max-height: 25px;
transition: $transition-time * 1.5;
width: auto;
}
}
@media only screen and (min-width: $media-query) {
.navbar-logo {
img {
transition: $transition-time * 1.5;
max-height: 40px;
}
}
}
}
&.large {
transition: $transition-time;
.navbar-logo {
flex: 0 1 0;
min-width: 100px;
img {
max-height: 50px;
width: auto;
transition: $transition-time * 1.5;
}
}
@media only screen and (min-width: $media-query) {
.navbar-logo {
img {
max-height: 100px;
transition: $transition-time * 1.5;
}
}
}
}
&.hidden {
transition: $transition-time;
top: -200px;
}
h1 {
font-size: 1.3rem;
display: inline;
margin: $gutter-width;
padding: 0;
}
.container {
border-radius: 0 0 $border-radius $border-radius;
margin-bottom: 0;
}
.navbar {
@extend .flex;
@extend .column;
justify-content: space-between;
align-items: stretch;
padding: 0 $gutter-width;
flex: 1 0 0;
min-width: 0;
@media only screen and (min-width: $media-query) {
max-width: none;
}
input[type=checkbox] {
display: none;
& + label {
display: block;
margin-left: auto;
margin-top: $gutter-width;
max-width: 35px;
max-height: 35px;
min-width: 35px;
min-height: 35px;
.toggler {
position: relative;
display: block;
cursor: pointer;
width: 35px;
height: 30px;
background-color: transparent;
.line {
height: 4px;
width: 35px;
background: black;
border-radius: 2px;
transition: 0.4s;
transform-origin: center;
position: absolute;
}
.line:nth-child(1) {
top: 0px;
}
.line:nth-child(2) {
top: 10px;
transition: 0.1s;
}
.line:nth-child(3) {
top: 20px;
}
}
}
}
input[type=checkbox]:checked+.hamburger .line:nth-child(1) {
transform: translateY(10px) rotate(-45deg);
}
input[type=checkbox]:checked+.hamburger .line:nth-child(2) {
opacity: 0;
}
input[type=checkbox]:checked+.hamburger .line:nth-child(3) {
transform: translateY(-10px) rotate(45deg);
}
ul {
display: none;
}
input[type=checkbox]:checked ~ .navbar-container nav {
ul {
@include menu-list(column);
li {
text-align: right;
flex: 0 0 0;
margin: $gutter-width 0;
font-size: 1.1rem;
font-weight: bold;
a {
&:active,
&:hover {
color: darken($primary-color, 15%);
}
}
}
}
}
.navbar-container {
margin-top: auto;
min-width: 0;
nav {
@extend .flex;
@extend .column;
align-items: flex-end;
height: 100%;
@media only screen and (min-width: $media-query) {
& {
justify-content: flex-end;
align-items: flex-end;
}
ul {
@include menu-list(row);
align-items: flex-end;
height: 100%;
li {
font-size: 1.1rem;
font-weight: bold;
}
}
}
}
}
@media only screen and (min-width: $media-query) {
input[type=checkbox] {
display: none;
& + label {
display: none;
.line {
display: none;
}
}
}
ul:last-child {
li {
&:last-child {
margin-right: 0;
}
}
}
}
}
}

View File

@ -0,0 +1,78 @@
#content {
#index-hero {
.hero-container {
text-align: center;
img.hero {
margin: 0.5rem auto 0;
max-width: 150px;
height: auto;
}
header,
div.content {
text-align: left;
}
}
}
#index-title {
display: none;
}
#index-short-contact {
font-size: 1.1rem;
align-items: flex-start;
background-color: rgba(255, 255, 255, 0.9);
height: 90px;
border-radius: $border-radius;
padding: $gutter-width;
margin: calc(100vh - 310px) -$gutter-width 0 -$gutter-width;
overflow: hidden;
min-width: 100%;
@media only screen and (min-width: $media-query) {
margin-top: calc(100vh - 285px);
margin-bottom: -$gutter-width;
margin-left: calc(#{$gutter-width} + calc(2 * calc(#{$max-width} / 3)));
margin-right: -$gutter-width;
padding-right: $gutter-width;
max-width: calc(#{$max-width} / 3);
min-width: calc(#{$max-width} / 3);
}
ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: row;
justify-content: center;
li {
margin: 0.5rem $gutter-width;
font-size: 2rem;
}
}
& > * {
flex: 1 0 0;
}
}
#index-contact {
.padding {
flex: 1 0 0;
}
}
#index-gallery {
figure {
text-align: center;
figcaption {
text-align: left;
}
}
}
}

View File

@ -1,107 +1,107 @@
.lightbox { .lightbox {
position: fixed; position: fixed;
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
margin: 0; margin: 0;
top: 0; top: 0;
left: 0; left: 0;
background-color: rgba(#000, 0.5); background-color: rgba(#000, 0.5);
z-index: 10000; z-index: 10000;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.lightbox-container { .lightbox-container {
flex: 0 0 0; flex: 0 0 0;
position: relative;
padding: $gutter-width;
margin: $gutter-width;
background-color: $background-color;
border-radius: $border-radius;
.lightbox-header {
flex: 0 0 0;
display: flex;
flex-direction: row;
justify-content: space-between;
h1 {
flex: 1 0 0;
font-size: 1.4rem;
}
}
.lightbox-image {
flex: 1 0 0;
text-align: center;
vertical-align: middle;
margin: 0;
padding: 0;
.image-container {
position: relative; position: relative;
margin: 0;
padding: 0;
img {
margin: 0;
padding: 0;
max-height: calc(90vh - calc(8 * #{$gutter-width}));
max-width: calc(90vw - calc(4 * #{$gutter-width}));
}
}
}
.lightbox-footer {
flex: 0 0 0;
z-index: 100000;
max-width: 500px;
}
.lightbox-controls {
font-size: 1.6rem;
}
.lightbox-close {
position: absolute;
right: 0;
top: 0;
margin: $gutter-width;
z-index: 100000;
}
.lightbox-nav-prev,
.lightbox-nav-next {
cursor: pointer;
position: absolute;
top: 0;
width: 40%;
height: 100%;
margin: 0;
display: flex;
flex-direction: row;
align-items: center;
div {
background-color: #fff;
vertical-align: middle;
padding: $gutter-width; padding: $gutter-width;
} margin: $gutter-width;
} background-color: $background-color;
.lightbox-nav-prev { border-radius: $border-radius;
left: 0;
div { .lightbox-header {
border-radius: 0 $border-radius $border-radius 0; flex: 0 0 0;
} display: flex;
} flex-direction: row;
justify-content: space-between;
.lightbox-nav-next { h1 {
right: 0; flex: 1 0 0;
div { font-size: 1.4rem;
margin-left: auto; }
border-radius: $border-radius 0 0 $border-radius; }
}
.lightbox-image {
flex: 1 0 0;
text-align: center;
vertical-align: middle;
margin: 0;
padding: 0;
.image-container {
position: relative;
margin: 0;
padding: 0;
img {
margin: 0;
padding: 0;
max-height: calc(90vh - calc(8 * #{$gutter-width}));
max-width: calc(90vw - calc(4 * #{$gutter-width}));
}
}
}
.lightbox-footer {
flex: 0 0 0;
z-index: 100000;
max-width: 500px;
}
.lightbox-controls {
font-size: 1.6rem;
}
.lightbox-close {
position: absolute;
right: 0;
top: 0;
margin: $gutter-width;
z-index: 100000;
}
.lightbox-nav-prev,
.lightbox-nav-next {
cursor: pointer;
position: absolute;
top: 0;
width: 40%;
height: 100%;
margin: 0;
display: flex;
flex-direction: row;
align-items: center;
div {
background-color: #fff;
vertical-align: middle;
padding: $gutter-width;
}
}
.lightbox-nav-prev {
left: 0;
div {
border-radius: 0 $border-radius $border-radius 0;
}
}
.lightbox-nav-next {
right: 0;
div {
margin-left: auto;
border-radius: $border-radius 0 0 $border-radius;
}
}
} }
}
} }

View File

@ -0,0 +1,5 @@
#list {
footer {
font-size: 0.8rem;
}
}

View File

@ -1,46 +1,50 @@
@mixin trim-list-margin-horizontal { @mixin trim-list-margin-horizontal {
& { & {
li { li {
&:first-child { &:first-child {
margin-left: 0; margin-left: 0;
} }
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
} }
}
} }
}
} }
@mixin menu-list($direction) { @mixin menu-list($direction) {
& { & {
list-style: none; list-style: none;
display: flex; margin: 0;
flex-direction: #{$direction}; padding: 0;
display: flex;
flex-direction: #{$direction};
li { li {
flex: 0 0 auto; flex: 0 0 auto;
margin: 0 $gutter-width;
}
} }
}
} }
@mixin background($class) { @mixin background($class) {
$background-image: '/img/background/' + $class + '.jpg'; $background-image: "/img/background/" + $class + ".jpg";
& { & {
background-position: center; background-position: center;
background-attachment: fixed; background-attachment: fixed;
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
&.background-#{$class} { &.background-#{$class} {
background-image: url(#{$background-image}); background-image: url(#{$background-image});
}
@media only screen and (max-width: 800px) {
&.background-default {
background-position-x: 37%;
}
}
} }
@media only screen and (max-width: $sm-min) {
&.background-default {
background-position-x: 37%;
}
}
}
} }

View File

@ -84,12 +84,12 @@ time,
mark, mark,
audio, audio,
video { video {
margin: 0; margin: 0;
padding: 0; padding: 0;
border: 0; border: 0;
font-size: 100%; font-size: 100%;
font: inherit; font: inherit;
vertical-align: baseline; vertical-align: baseline;
} }
/* HTML5 display-role reset for older browsers */ /* HTML5 display-role reset for older browsers */
@ -105,32 +105,32 @@ hgroup,
menu, menu,
nav, nav,
section { section {
display: block; display: block;
} }
body { body {
line-height: 1; line-height: 1;
} }
ol, ol,
ul { ul {
list-style: none; list-style: none;
} }
blockquote, blockquote,
q { q {
quotes: none; quotes: none;
} }
blockquote:before, blockquote:before,
blockquote:after, blockquote:after,
q:before, q:before,
q:after { q:after {
content: ''; content: '';
content: none; content: none;
} }
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
} }

View File

@ -0,0 +1,56 @@
#single {
.single-footer {
p {
margin: 0;
font-size: 0.8rem;
}
}
.featured {
max-width: $min-column-width;
height: auto;
display: inline-block;
margin-bottom: 1rem;
float: left;
img {
width: 100%;
}
& + p {
margin-top: 0;
}
}
p {
float: none;
}
blockquote {
float: none;
font-style: italic;
cite {
font-size: 0.8em;
margin-left: 1rem;
}
}
}
@media screen and (min-width: 500px) {
#single {
.featured {
max-width: $min-column-width-desktop;
}
}
}
@media screen and (min-width: $media-query) {
figure.left {
max-width: $min-column-width-desktop;
}
figure.right {
max-width: $min-column-width-desktop;
}
}

View File

@ -1,18 +1,23 @@
$gutter-width: 1rem; $max-width: 900px;
$gutter-width: 10px;
$min-column-width: 200px;
$min-column-width-desktop: $min-column-width + (6 * $gutter-width);
$base-font-size: 16px; $base-font-size: 16px;
$base-line-height: 1.4em; $base-line-height: 1.4em;
$base-font-family: Roboto, sans-serif; $base-font-family: Roboto, sans-serif;
$heading-font-family: 'Roboto Slab', sans-serif; $heading-font-family: "Roboto Slab", sans-serif;
$font-color: black; $font-color: black;
$background-color: white; $background-color: white;
$primary-color: #2d763a; $primary-color: #2d763a;
$secondary-color: #720026;
$border-radius: 5px; $border-radius: 5px;
$background-default: 'grabmal';
$background-bau: 'bau';
$fa-font-path: '~@fortawesome/fontawesome-free/webfonts/'; $background-default: "grabmal";
$background-bau: "bau";
$media-query: #{$max-width + 6 * $gutter-width};
$fa-font-path: "~@fortawesome/fontawesome-free/webfonts/";

View File

@ -1,16 +1,22 @@
@import '_reset.scss'; @import "_reset.scss";
@import '_variables.scss'; @import "_variables.scss";
@import '~@fortawesome/fontawesome-free/scss/fontawesome.scss'; @import "~@fortawesome/fontawesome-free/scss/fontawesome.scss";
@import '~@fortawesome/fontawesome-free/scss/regular.scss'; @import "~@fortawesome/fontawesome-free/scss/regular.scss";
@import '~@fortawesome/fontawesome-free/scss/solid.scss'; @import "~@fortawesome/fontawesome-free/scss/solid.scss";
@import '~@fortawesome/fontawesome-free/scss/brands.scss'; @import "~@fortawesome/fontawesome-free/scss/brands.scss";
@import '~cookieconsent/src/styles/animation.css'; @import "~cookieconsent/src/styles/animation.css";
@import '~cookieconsent/src/styles/base.css'; @import "~cookieconsent/src/styles/base.css";
@import '~cookieconsent/src/styles/layout.css'; @import "~cookieconsent/src/styles/layout.css";
@import '~cookieconsent/src/styles/media.css'; @import "~cookieconsent/src/styles/media.css";
@import '~cookieconsent/src/styles/themes/classic.css'; @import "~cookieconsent/src/styles/themes/classic.css";
@import '_fonts.scss'; @import "_fonts.scss";
@import '_mixins.scss'; @import "_mixins.scss";
@import '_flexgrid.scss'; @import "_grid.scss";
@import '_app.scss'; @import "_header.scss";
@import '_lightbox.scss'; @import "_footer.scss";
@import "_list.scss";
@import "_single.scss";
@import "_index.scss";
@import "_lightbox.scss";
@import "_content.scss";
@import "_banner.scss";

View File

@ -1,96 +0,0 @@
<template>
<article class="row" v-if="articleData">
<header class="col-xs-12">
<h1>{{ articleData.title }}</h1>
</header>
<div class="col-xs-12">
<div class="row">
<div
v-if="hasWebGl && articleData.model"
class="featured col-xs-12 col-sm-8"
>
<model-viewer :modelData="articleData.model" />
</div>
<figure v-else class="featured col-xs-12 col-sm-8">
<img alt="" title="" class="" srcset="" sizes="" src="" />
</figure>
<div class="col-sm-4 col-xs-12">
<p
v-if="
hasWebGl &&
articleData.model &&
articleData.model.textures.length > 1
"
>
<strong>Material ändern</strong>
<material-switcher :modelData="articleData.model" />
</p>
<p class="offer">
<a
class="btn btn-secondary"
v-if="articleData.offer"
:href="articleData.offer"
>Angebot</a
>
</p>
<p class="type">Typ: {{ types }}</p>
<p class="material">Material: {{ material }}</p>
<p class="ornament" v-if="articleData.ornament">
Ornament: {{ articleData.ornament }}
</p>
<p class="description" v-if="articleData.description">
{{ articleData.description }}
</p>
<p class="article-id">Art. Nr.: {{ articleData.article_id }}</p>
</div>
</div>
</div>
</article>
</template>
<script>
import ModelViewer from './components/ModelViewer.vue'
import MaterialSwitcher from './components/MaterialSwitcher.vue'
import * as WebGL from 'three/examples/js/WebGL.js'
import { mapState } from 'vuex'
export default {
data() {
return {
hasWebGl: false,
}
},
mounted() {
this.$store.dispatch('fetchArticleData')
console.log(WebGL)
var canvas = document.createElement('canvas')
if (
window.WebGLRenderingContext &&
(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))
) {
this.hasWebGl = true
} else {
this.hasWebGl = false
}
},
computed: {
...mapState(['articleData', 'activeTexture']),
types() {
if (this.articleData.article_type) {
return this.articleData.article_type.join(', ')
}
return ''
},
material() {
if (this.activeTexture) {
return this.activeTexture.name
}
return this.articleData.material
},
},
components: {
ModelViewer,
MaterialSwitcher,
},
}
</script>

View File

@ -1,15 +0,0 @@
<template>
<div>{{ msg }}{{ hello }}</div>
</template>
<script>
export default {
name: 'catalog-similar',
props: ['hello'],
data() {
return {
msg: 'Hello World'
}
}
}
</script>

View File

@ -1,60 +0,0 @@
<template>
<article v-if="articleData">
<header class="flex padding">
<h1>{{ articleData.title }}</h1>
</header>
<div class="content flex">
<div class="padding">
<div v-if="articleData.model" class="featured left wide">
<model-viewer class="model-viewer" :modelData="articleData.model" />
</div>
<p>
<strong>Material ändern</strong>
<material-switcher :modelData="articleData.model" />
</p>
<p class="type">Typ: {{ types }}</p>
<p class="material">Material: {{ material }}</p>
<p class="offer" v-if="articleData.offer">
<a :href="articleData.offer">Angebot</a>
</p>
<p class="ornament" v-if="articleData.ornament">
Ornament: {{ articleData.ornament }}
</p>
<p class="description" v-if="articleData.description">
{{ articleData.description }}
</p>
<p class="article-id">Art. Nr.: {{ articleData.article_id }}</p>
</div>
</div>
</article>
</template>
<script>
import ModelViewer from './components/ModelViewer.vue'
import MaterialSwitcher from './components/MaterialSwitcher.vue'
import { mapState } from 'vuex'
export default {
mounted() {
this.$store.dispatch('fetchArticleData')
},
computed: {
...mapState(['articleData', 'activeTexture']),
types() {
if (this.articleData.article_type) {
return this.articleData.article_type.join(', ')
}
return ''
},
material() {
if (this.activeTexture) {
return this.activeTexture.name
}
return this.articleData.material
},
},
components: {
ModelViewer,
MaterialSwitcher,
},
}
</script>

Some files were not shown because too many files have changed in this diff Show More