kick things off
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
public/
|
0
.hugo_build.lock
Normal file
6
archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
214
assets/css/common/header.css
Normal file
@ -0,0 +1,214 @@
|
||||
.nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||
margin-inline-start: auto;
|
||||
margin-inline-end: auto;
|
||||
line-height: var(--header-height);
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display:block;
|
||||
text-align: center;
|
||||
margin: 3rem auto 1rem auto;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: flex;
|
||||
/* margin: auto var(--gap); */
|
||||
margin:auto;
|
||||
text-align: center;
|
||||
/* padding:0 1rem; */
|
||||
}
|
||||
|
||||
.logo a {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.logo a img, .logo a svg {
|
||||
display: block;
|
||||
pointer-events: none;
|
||||
transform: translate(0, -10%);
|
||||
border-radius: 6px;
|
||||
margin-inline-end: 8px;
|
||||
max-height: 5rem;
|
||||
}
|
||||
|
||||
button#theme-toggle {
|
||||
font-size: 26px;
|
||||
width: 100%;
|
||||
margin: auto auto auto 1rem;
|
||||
}
|
||||
|
||||
body.dark #moon {
|
||||
vertical-align: middle;
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.dark) #sun {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sun:hover,
|
||||
#moon:hover {
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
#menu {
|
||||
list-style: none;
|
||||
word-break: keep-all;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#menu li + li {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
#menu a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#menu .active {
|
||||
font-weight: 500;
|
||||
border-bottom: 2px solid currentColor;
|
||||
}
|
||||
|
||||
a:not(.logo a):hover {
|
||||
color: var(--secondary) !important;
|
||||
}
|
||||
|
||||
.lang-switch li,
|
||||
.lang-switch ul,
|
||||
.logo-switches {
|
||||
display: inline-flex;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
.lang-switch {
|
||||
display: flex;
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.lang-switch a {
|
||||
margin: auto 3px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.logo-switches {
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
|
||||
/* .nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||
margin-inline-start: auto;
|
||||
margin-inline-end: auto;
|
||||
line-height: var(--header-height);
|
||||
}
|
||||
|
||||
.nav a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.logo,
|
||||
#menu {
|
||||
display: flex;
|
||||
margin: auto var(--gap);
|
||||
}
|
||||
|
||||
.logo {
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.logo a {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.logo a img, .logo a svg {
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
pointer-events: none;
|
||||
transform: translate(0, -10%);
|
||||
border-radius: 6px;
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
|
||||
button#theme-toggle {
|
||||
font-size: 26px;
|
||||
width: 100%;
|
||||
margin: auto 1rem;
|
||||
}
|
||||
|
||||
body.dark #moon {
|
||||
vertical-align: middle;
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.dark) #sun {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sun:hover,
|
||||
#moon:hover {
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
#menu {
|
||||
list-style: none;
|
||||
word-break: keep-all;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#menu li + li {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
#menu a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#menu .active {
|
||||
font-weight: 500;
|
||||
border-bottom: 2px solid currentColor;
|
||||
}
|
||||
|
||||
a:not(.logo a):hover {
|
||||
color: var(--secondary) !important;
|
||||
}
|
||||
|
||||
.lang-switch li,
|
||||
.lang-switch ul,
|
||||
.logo-switches {
|
||||
display: inline-flex;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
.lang-switch {
|
||||
display: flex;
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.lang-switch a {
|
||||
margin: auto 3px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.logo-switches {
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
*/
|
BIN
assets/icon.png
Normal file
After Width: | Height: | Size: 17 KiB |
156
assets/logo_plain.svg
Normal file
@ -0,0 +1,156 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="28.922007pc"
|
||||
height="28.922007pc"
|
||||
viewBox="0 0 122.43649 122.43649"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.0595392"
|
||||
inkscape:cx="248.22111"
|
||||
inkscape:cy="262.85012"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1026"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer3" /><defs
|
||||
id="defs2" /><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3"
|
||||
transform="translate(-2.281749,-2.281749)"><circle
|
||||
style="fill:#fafaf0;fill-opacity:1;stroke:#000000;stroke-width:1.68107;stroke-linejoin:bevel;stroke-opacity:1"
|
||||
id="path3103"
|
||||
cx="63.5"
|
||||
cy="63.5"
|
||||
r="60.377716"
|
||||
inkscape:export-filename="logo_plain.svg"
|
||||
inkscape:export-xdpi="41.490894"
|
||||
inkscape:export-ydpi="41.490894" /></g><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="matrix(4.9149114,0,0,4.9149114,-92.689271,-173.764)"><g
|
||||
id="g1826"
|
||||
transform="matrix(0.1533195,0,0,0.1533195,31.470928,39.765224)"><g
|
||||
id="color"><g
|
||||
id="g1779"><polygon
|
||||
fill="#b1cc33"
|
||||
points="46.447,40.596 56.508,36.833 63.42,40.135 58.736,43.284 52.438,44.974 55.279,48.737 56.172,53.633 48.214,53.192 42.991,51.809 39.919,56.878 36.527,59.301 31.471,54.958 29.321,51.656 24.866,53.499 17.109,54.344 16.391,49.466 18.722,46.279 11.733,43.284 8.661,40.827 14.498,37.601 17.032,37.14 28.092,41.211 37.462,42.286 "
|
||||
id="polygon1775" /><polygon
|
||||
fill="#b1cc33"
|
||||
points="46.447,40.596 56.508,36.833 63.42,40.135 58.736,43.284 52.438,44.974 55.279,48.737 56.172,53.633 48.214,53.192 42.991,51.809 39.919,56.878 36.527,59.301 31.471,54.958 29.321,51.656 24.866,53.499 17.109,54.344 16.391,49.466 18.722,46.279 11.733,43.284 8.661,40.827 14.498,37.601 17.032,37.14 28.092,41.211 37.462,42.286 "
|
||||
id="polygon1777" /></g><path
|
||||
fill="#5c9e31"
|
||||
d="m 38.4657,44.1935 6.3361,-1.7682 5.9016,-1.9892 4.0447,-4.0523 5.7467,2.284 2.9471,1.9892 -3.0944,2.063 -6.2625,1.9155 -0.8841,1.1789 2.5791,4.5679 0.3922,3.25 -6.7283,-0.5244 -6.4522,-1.2991 -0.768,2.2569 L 36,59 V 45 Z"
|
||||
id="path1781" /><polygon
|
||||
fill="#ffa7c0"
|
||||
points="36.306,12.699 42.055,16.781 44.23,19.054 45.736,21.501 49.252,18.778 51.749,17.601 55.179,27.457 55.421,35.905 50.703,40.436 42.296,43.431 37.216,44.123 32.015,44.046 25.18,41.895 19.193,38.286 17.004,33.533 17.923,25.306 20.864,17.601 22.701,18.164 26.677,21.548 28.466,19.007 32.74,14.631 "
|
||||
id="polygon1783" /><path
|
||||
fill="#e67a94"
|
||||
d="m 44.2711,23.6246 4.3408,-4.7982 2.6236,-1.206 2.5825,4.6847 1.7831,9.37 -0.2332,5.5349 -6.0385,3.9123 -8.3624,2.4986 -4.796,0.39 z"
|
||||
id="path1785" /></g><g
|
||||
id="line"><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M 31.037,43.5708 C 28.2283,44.8189 25.2024,45.5049 22.13,45.59 21.3352,45.5992 20.5406,45.5625 19.75,45.48 15.5524,44.9533 11.5322,43.4683 8,41.14 c 2.8158,-2.1842 6.1637,-3.5772 9.6978,-4.035"
|
||||
id="path1788" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 35.6085,44.5929 c -0.6457,2.4758 -2.1654,4.6344 -4.2785,6.0771 -0.571,0.3918 -1.173,0.7362 -1.8,1.03 -5.42,2.61 -12.96,2.43 -12.96,2.43 -0.2099,-3.2031 0.9454,-6.3455 3.18,-8.65 0.7906,0.0825 1.5852,0.1192 2.38,0.11 3.0724,-0.0851 6.0983,-0.7711 8.907,-2.0192"
|
||||
id="path1790" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.59,44.5242 c 0.7826,2.4929 2.4276,4.6256 4.64,6.0158 0.5928,0.3758 1.2148,0.7035 1.86,0.98 v 0.01 C 42.05,55.91 36,59 36,59 c 0,0 -5.18,-2.95 -6.47,-7.3 0.627,-0.2938 1.229,-0.6382 1.8,-1.03 2.1108,-1.4411 3.6296,-3.5966 4.2764,-6.0693 z"
|
||||
id="path1792" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.781,45.07 c 0.839,2.2642 2.4032,4.1873 4.449,5.47 0.5928,0.3758 1.2148,0.7035 1.86,0.98 v 0.01 c 5.57,2.47 13.08,2.1 13.08,2.1 0.0203,-3.2395 -1.3095,-6.3412 -3.67,-8.56 -0.4849,-0.4407 -1.0068,-0.8388 -1.56,-1.19 -1.0805,-0.6708 -2.2379,-1.2092 -3.4471,-1.6034"
|
||||
id="path1794" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 54.7227,36.5008 c 3.3059,0.7391 6.4496,2.0739 9.2773,3.9392 -3.4131,2.4314 -7.3544,4.0182 -11.5,4.63 -0.4849,-0.4407 -1.0068,-0.8388 -1.56,-1.19 -1.2326,-0.7602 -2.5604,-1.3539 -3.9488,-1.7658"
|
||||
id="path1796" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.3064,44.5634 c 0,0 -19.3028,-2.4511 -19.3028,-11.03 0,-8.5789 2.8955,-14.7069 3.8606,-15.9324 0.9651,-1.2255 6.756,4.9022 6.756,7.3534"
|
||||
id="path1798" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 44.9926,24.9543 c 0,-2.4512 5.7909,-8.579 6.756,-7.3534 0.9651,1.2256 3.86,7.3534 3.86,15.9324 0,8.579 -19.3027,11.03 -19.3027,11.03"
|
||||
id="path1800" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10"
|
||||
stroke-width="2"
|
||||
d="m 43.3534,19.5336 c 0,0 -4.698,-6.3166 -7.047,-6.3166 -2.349,0 -7.047,6.3166 -7.047,6.3166"
|
||||
id="path1802" /></g></g></g><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(-2.281749,-2.281749)"><g
|
||||
aria-label="now"
|
||||
id="text2041"
|
||||
style="font-size:33.2525px;font-family:'Lobster Two';-inkscape-font-specification:'Lobster Two, Normal';fill:#e67a94;stroke-width:15.4271;stroke-linejoin:bevel"><path
|
||||
d="m 19.195671,45.85021 v 16.62625 h 3.325249 v -10.6408 c 0.631798,-2.593695 1.629373,-3.624522 2.992725,-3.624522 1.130585,0 2.12816,0.731555 2.12816,3.591269 0,0.897818 -0.09976,4.954623 -0.09976,5.785935 0,2.693453 1.097332,5.087632 3.890542,5.087632 1.396605,0 3.558017,-0.598544 4.555592,-6.151712 H 34.75784 c -0.53204,2.52719 -1.363352,3.624523 -2.39418,3.624523 -1.46311,0 -1.496362,-2.161413 -1.496362,-2.859715 0,-1.72913 0.199515,-4.090058 0.199515,-5.652925 0,-2.560442 -0.53204,-5.952197 -4.555593,-5.952197 -1.130585,0 -2.693452,0.26602 -3.9903,2.693452 v -2.52719 z"
|
||||
id="path1003" /><path
|
||||
d="m 40.809827,45.683948 c -4.987875,0 -6.484238,5.353652 -6.484238,9.244194 0,5.71943 3.258745,7.747832 6.218218,7.747832 3.59127,0 5.686177,-3.291997 5.686177,-8.745407 0,-0.465535 -0.03325,-0.93107 -0.03325,-1.363352 2.028403,-0.332525 4.223068,-1.296848 5.087633,-2.726705 l -0.498788,-0.897817 c -1.097332,1.130585 -2.726705,1.995149 -4.555592,1.995149 H 46.030472 C 45.598189,47.97837 44.301342,45.683948 40.80983,45.683948 Z m 0.332525,14.464837 c -1.496363,0 -3.225493,-1.030828 -3.225493,-5.353653 0,-3.258745 0.997575,-7.282297 3.757533,-7.282297 0.997575,0 1.86214,0.53204 2.39418,2.061655 -0.864565,0.03325 -1.3301,0.39903 -1.3301,1.429857 0,1.130585 0.53204,1.59612 1.795634,1.662625 0.03325,0.26602 0.03325,0.53204 0.03325,0.79806 0,4.223068 -1.097332,6.683753 -3.425007,6.683753 z"
|
||||
id="path1005" /><path
|
||||
d="m 48.657436,45.85021 v 11.671627 c 0,3.790785 2.094907,5.154137 4.688602,5.154137 1.363353,0 2.726705,-0.798059 3.59127,-2.593694 0.764808,1.695877 2.460685,2.593694 4.189815,2.593694 4.588845,0 6.151712,-6.384479 6.151712,-11.405607 0,-4.489087 -1.263595,-6.118459 -2.79321,-6.118459 -1.097332,0 -1.695877,0.831312 -1.695877,1.695877 0,0.831313 0.53204,1.762383 1.59612,1.762383 0.199515,0 0.66505,-0.03325 0.864565,-0.26602 0.199515,0.964322 0.299272,2.261169 0.299272,3.491512 0,3.923795 -0.997575,8.313125 -3.72428,8.313125 -1.629372,0 -1.928645,-1.529615 -1.928645,-2.992725 V 45.85021 h -3.325249 v 10.674052 c 0,2.294423 -1.3301,3.624523 -2.593695,3.624523 -1.163838,0 -1.99515,-0.831313 -1.99515,-2.992725 V 45.85021 Z"
|
||||
id="path1007" /></g><g
|
||||
aria-label="noticed"
|
||||
id="text2809"
|
||||
style="font-weight:800;font-size:29.0484px;font-family:Lato;-inkscape-font-specification:'Lato, Ultra-Bold';fill:#5c9e31;stroke-width:13.4767;stroke-linejoin:bevel"><path
|
||||
d="m 22.562885,74.057791 q 0.45025,-0.435726 0.929549,-0.798831 0.493822,-0.363105 1.031218,-0.624541 0.551919,-0.261436 1.17646,-0.406678 0.639065,-0.145242 1.379799,-0.145242 1.220033,0 2.164106,0.421202 0.944073,0.421202 1.583138,1.17646 0.653589,0.755259 0.973121,1.801001 0.334057,1.045743 0.334057,2.294824 v 9.513351 h -3.994155 v -9.513351 q 0,-1.249081 -0.580968,-1.931719 -0.580968,-0.697161 -1.713856,-0.697161 -0.842404,0 -1.583138,0.363105 -0.740734,0.363105 -1.408847,1.016694 v 10.762432 h -4.00868 v -14.97445 h 2.469114 q 0.755259,0 1.00217,0.697161 z"
|
||||
id="path1010" /><path
|
||||
d="m 42.068869,72.082499 q 1.684807,0 3.064606,0.537396 1.379799,0.537395 2.367445,1.539565 0.987646,0.987646 1.525041,2.411017 0.537396,1.423372 0.537396,3.209849 0,1.786476 -0.537396,3.224372 -0.537395,1.423372 -1.525041,2.425542 -0.987646,1.002169 -2.367445,1.539565 -1.379799,0.537395 -3.064606,0.537395 -1.699331,0 -3.093655,-0.537395 -1.379799,-0.537396 -2.367444,-1.539565 -0.987646,-1.00217 -1.539565,-2.425542 -0.537396,-1.437896 -0.537396,-3.224372 0,-1.786477 0.537396,-3.209849 0.551919,-1.423371 1.539565,-2.411017 0.987645,-1.00217 2.367444,-1.539565 1.394324,-0.537396 3.093655,-0.537396 z m 0,12.418192 q 1.713856,0 2.541735,-1.176461 0.82788,-1.190984 0.82788,-3.52938 0,-2.323872 -0.82788,-3.500333 -0.827879,-1.190984 -2.541735,-1.190984 -1.757428,0 -2.585308,1.190984 -0.827879,1.176461 -0.827879,3.500333 0,2.338396 0.827879,3.52938 0.82788,1.176461 2.585308,1.176461 z"
|
||||
id="path1012" /><path
|
||||
d="M 67.399049,87.289337 H 63.404894 V 75.190678 h -6.63756 v 7.81402 q 0,0.624541 0.290484,0.987646 0.305008,0.363105 0.856928,0.363105 0.290484,0 0.493823,-0.0581 0.203338,-0.07262 0.34858,-0.145242 0.145242,-0.08714 0.261436,-0.145242 0.130718,-0.07262 0.261436,-0.07262 0.17429,0 0.290484,0.08715 0.116193,0.07262 0.232387,0.261436 l 1.205508,1.917194 q -0.827879,0.653589 -1.873621,0.987646 -1.045743,0.334056 -2.164106,0.334056 -1.016694,0 -1.801001,-0.290484 -0.784307,-0.305008 -1.321702,-0.856927 -0.537396,-0.55192 -0.813356,-1.336227 -0.275959,-0.784307 -0.275959,-1.771952 v -8.075456 h -1.408848 q -0.319532,0 -0.551919,-0.203339 -0.217863,-0.203338 -0.217863,-0.610016 v -1.568614 l 2.396493,-0.435726 0.813355,-3.877961 q 0.159766,-0.653589 0.885976,-0.653589 h 2.091485 v 4.560599 h 10.631715 z m 0.62454,-19.25909 q 0,0.493823 -0.203339,0.944073 -0.203338,0.435726 -0.551919,0.769783 -0.334057,0.319532 -0.798831,0.522871 -0.45025,0.188815 -0.973122,0.188815 -0.493822,0 -0.944073,-0.188815 -0.435726,-0.203339 -0.769782,-0.522871 -0.334057,-0.334057 -0.537396,-0.769783 -0.188814,-0.45025 -0.188814,-0.944073 0,-0.508347 0.188814,-0.944073 0.203339,-0.45025 0.537396,-0.784306 0.334056,-0.334057 0.769782,-0.522872 0.450251,-0.203338 0.944073,-0.203338 0.522872,0 0.973122,0.203338 0.464774,0.188815 0.798831,0.522872 0.348581,0.334056 0.551919,0.784306 0.203339,0.435726 0.203339,0.944073 z"
|
||||
id="path1014" /><path
|
||||
d="m 81.690885,75.655453 q -0.17429,0.232387 -0.348581,0.363105 -0.17429,0.116193 -0.493823,0.116193 -0.290484,0 -0.566443,-0.159766 -0.261436,-0.17429 -0.610017,-0.363105 -0.348581,-0.203339 -0.827879,-0.363105 -0.479299,-0.17429 -1.190985,-0.17429 -0.9005,0 -1.568613,0.334056 -0.653589,0.319533 -1.089315,0.929549 -0.435726,0.610016 -0.653589,1.481468 -0.203339,0.871452 -0.203339,1.960768 0,2.294823 0.915025,3.514856 0.929548,1.220033 2.52721,1.220033 0.55192,0 0.944073,-0.08714 0.406678,-0.10167 0.697162,-0.246912 0.305008,-0.145242 0.522871,-0.319532 0.217863,-0.174291 0.406678,-0.319533 0.203339,-0.145242 0.392153,-0.232387 0.203339,-0.101669 0.45025,-0.101669 0.464775,0 0.726211,0.348581 l 1.147411,1.45242 q -0.639064,0.740734 -1.365275,1.234557 -0.72621,0.479298 -1.510516,0.769782 -0.769783,0.27596 -1.568614,0.37763 -0.798831,0.116193 -1.583138,0.116193 -1.379799,0 -2.614356,-0.508347 -1.234557,-0.522871 -2.164106,-1.510517 -0.929549,-0.987645 -1.481468,-2.425541 -0.537396,-1.437896 -0.537396,-3.282469 0,-1.641235 0.479299,-3.050083 0.479299,-1.408847 1.408847,-2.440065 0.929549,-1.031218 2.294824,-1.612186 1.379799,-0.595493 3.1808,-0.595493 1.713856,0 3.006509,0.55192 1.292654,0.55192 2.323873,1.597662 z"
|
||||
id="path1016" /><path
|
||||
d="m 94.123553,78.037421 q 0,-0.62454 -0.17429,-1.190984 -0.159766,-0.566444 -0.522871,-1.00217 -0.363105,-0.435726 -0.915025,-0.682637 -0.551919,-0.261436 -1.321702,-0.261436 -1.437896,0 -2.251251,0.813355 -0.813355,0.813356 -1.060267,2.323872 z M 87.82005,80.41939 q 0.188815,2.106009 1.190985,3.079131 1.016694,0.973121 2.643404,0.973121 0.82788,0 1.423372,-0.188814 0.610016,-0.203339 1.060267,-0.435726 0.464774,-0.246912 0.827879,-0.435726 0.377629,-0.203339 0.740734,-0.203339 0.464775,0 0.72621,0.348581 l 1.161936,1.45242 q -0.639065,0.740734 -1.408847,1.234557 -0.769783,0.479298 -1.597662,0.769782 -0.82788,0.27596 -1.670283,0.37763 -0.842404,0.116193 -1.626711,0.116193 -1.568613,0 -2.933888,-0.508347 -1.350751,-0.522871 -2.367445,-1.525041 -1.00217,-1.016694 -1.583138,-2.512687 -0.580968,-1.495992 -0.580968,-3.471283 0,-1.525042 0.493823,-2.875792 0.508347,-1.350751 1.45242,-2.352921 0.944073,-1.002169 2.294824,-1.583137 1.35075,-0.595493 3.050082,-0.595493 1.437896,0 2.643404,0.464775 1.220033,0.45025 2.091485,1.321702 0.885976,0.871452 1.365275,2.149582 0.493823,1.263605 0.493823,2.890316 0,0.45025 -0.04357,0.740734 -0.04357,0.290484 -0.145242,0.464774 -0.101669,0.174291 -0.27596,0.246912 -0.17429,0.0581 -0.45025,0.0581 z"
|
||||
id="path1018" /><path
|
||||
d="m 109.44657,76.207372 q -0.56645,-0.653589 -1.23456,-0.915024 -0.65359,-0.261436 -1.39432,-0.261436 -0.72621,0 -1.32171,0.27596 -0.59549,0.27596 -1.03122,0.871452 -0.4212,0.580968 -0.65358,1.495992 -0.23239,0.915025 -0.23239,2.178631 0,1.249081 0.18881,2.120533 0.18882,0.871452 0.5374,1.408847 0.3631,0.537396 0.87145,0.784307 0.50835,0.232387 1.13289,0.232387 1.06026,0 1.77195,-0.421202 0.72621,-0.421201 1.36528,-1.190984 z m 4.00867,-10.573618 v 21.655583 h -2.46911 q -0.76978,0 -0.98765,-0.697161 l -0.33405,-1.307179 q -0.45025,0.493823 -0.9586,0.900501 -0.49382,0.406678 -1.07479,0.711686 -0.58097,0.290484 -1.24908,0.45025 -0.66811,0.159766 -1.45242,0.159766 -1.20551,0 -2.20768,-0.508347 -1.00217,-0.508347 -1.7429,-1.481468 -0.72621,-0.987646 -1.132891,-2.411018 -0.406678,-1.423371 -0.406678,-3.25342 0,-1.670284 0.45025,-3.108179 0.464779,-1.437896 1.307179,-2.483639 0.8424,-1.045742 2.03339,-1.641234 1.19098,-0.595493 2.6434,-0.595493 1.22003,0 2.04791,0.363106 0.84241,0.363105 1.52505,0.987645 v -7.741399 z"
|
||||
id="path1020" /></g></g></svg>
|
After Width: | Height: | Size: 16 KiB |
193
assets/meditations_template.svg
Normal file
@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1000"
|
||||
height="200"
|
||||
viewBox="0 0 264.5833 52.91666"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="meditations_template.svg"
|
||||
inkscape:export-filename="../content/meditations/covers/minute.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.1061539"
|
||||
inkscape:cx="483.65784"
|
||||
inkscape:cy="182.61474"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1032"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><rect
|
||||
style="fill:#45212a;stroke:none;stroke-width:1.296;stroke-linejoin:bevel;fill-opacity:1"
|
||||
id="rect788"
|
||||
width="264.58331"
|
||||
height="52.91666"
|
||||
x="-6.4941405e-06"
|
||||
y="-1.5441894e-07"
|
||||
ry="0" /><g
|
||||
id="g2040"
|
||||
transform="matrix(0.30139217,0,0,0.30139217,219.11177,7.3199272)"><g
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3"><circle
|
||||
style="fill:#fafaf0;fill-opacity:1;stroke:#000000;stroke-width:1.68107;stroke-linejoin:bevel;stroke-opacity:1"
|
||||
id="path3103"
|
||||
cx="63.5"
|
||||
cy="63.5"
|
||||
r="60.377716"
|
||||
inkscape:export-filename="logo_small.png"
|
||||
inkscape:export-xdpi="41.490894"
|
||||
inkscape:export-ydpi="41.490894" /></g><g
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-5"
|
||||
transform="matrix(4.9149114,0,0,4.9149114,-90.407522,-171.48225)"><g
|
||||
id="g1826"
|
||||
transform="matrix(0.1533195,0,0,0.1533195,31.470928,39.765224)"><g
|
||||
id="color"><g
|
||||
id="g1779"><polygon
|
||||
fill="#b1cc33"
|
||||
points="46.447,40.596 56.508,36.833 63.42,40.135 58.736,43.284 52.438,44.974 55.279,48.737 56.172,53.633 48.214,53.192 42.991,51.809 39.919,56.878 36.527,59.301 31.471,54.958 29.321,51.656 24.866,53.499 17.109,54.344 16.391,49.466 18.722,46.279 11.733,43.284 8.661,40.827 14.498,37.601 17.032,37.14 28.092,41.211 37.462,42.286 "
|
||||
id="polygon1775" /><polygon
|
||||
fill="#b1cc33"
|
||||
points="46.447,40.596 56.508,36.833 63.42,40.135 58.736,43.284 52.438,44.974 55.279,48.737 56.172,53.633 48.214,53.192 42.991,51.809 39.919,56.878 36.527,59.301 31.471,54.958 29.321,51.656 24.866,53.499 17.109,54.344 16.391,49.466 18.722,46.279 11.733,43.284 8.661,40.827 14.498,37.601 17.032,37.14 28.092,41.211 37.462,42.286 "
|
||||
id="polygon1777" /></g><path
|
||||
fill="#5c9e31"
|
||||
d="m 38.4657,44.1935 6.3361,-1.7682 5.9016,-1.9892 4.0447,-4.0523 5.7467,2.284 2.9471,1.9892 -3.0944,2.063 -6.2625,1.9155 -0.8841,1.1789 2.5791,4.5679 0.3922,3.25 -6.7283,-0.5244 -6.4522,-1.2991 -0.768,2.2569 L 36,59 V 45 Z"
|
||||
id="path1781" /><polygon
|
||||
fill="#ffa7c0"
|
||||
points="49.252,18.778 51.749,17.601 55.179,27.457 55.421,35.905 50.703,40.436 42.296,43.431 37.216,44.123 32.015,44.046 25.18,41.895 19.193,38.286 17.004,33.533 17.923,25.306 20.864,17.601 22.701,18.164 26.677,21.548 28.466,19.007 32.74,14.631 36.306,12.699 42.055,16.781 44.23,19.054 45.736,21.501 "
|
||||
id="polygon1783" /><path
|
||||
fill="#e67a94"
|
||||
d="m 44.2711,23.6246 4.3408,-4.7982 2.6236,-1.206 2.5825,4.6847 1.7831,9.37 -0.2332,5.5349 -6.0385,3.9123 -8.3624,2.4986 -4.796,0.39 z"
|
||||
id="path1785" /></g><g
|
||||
id="line"><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M 31.037,43.5708 C 28.2283,44.8189 25.2024,45.5049 22.13,45.59 21.3352,45.5992 20.5406,45.5625 19.75,45.48 15.5524,44.9533 11.5322,43.4683 8,41.14 c 2.8158,-2.1842 6.1637,-3.5772 9.6978,-4.035"
|
||||
id="path1788" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 35.6085,44.5929 c -0.6457,2.4758 -2.1654,4.6344 -4.2785,6.0771 -0.571,0.3918 -1.173,0.7362 -1.8,1.03 -5.42,2.61 -12.96,2.43 -12.96,2.43 -0.2099,-3.2031 0.9454,-6.3455 3.18,-8.65 0.7906,0.0825 1.5852,0.1192 2.38,0.11 3.0724,-0.0851 6.0983,-0.7711 8.907,-2.0192"
|
||||
id="path1790" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.59,44.5242 c 0.7826,2.4929 2.4276,4.6256 4.64,6.0158 0.5928,0.3758 1.2148,0.7035 1.86,0.98 v 0.01 C 42.05,55.91 36,59 36,59 c 0,0 -5.18,-2.95 -6.47,-7.3 0.627,-0.2938 1.229,-0.6382 1.8,-1.03 2.1108,-1.4411 3.6296,-3.5966 4.2764,-6.0693 z"
|
||||
id="path1792" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.781,45.07 c 0.839,2.2642 2.4032,4.1873 4.449,5.47 0.5928,0.3758 1.2148,0.7035 1.86,0.98 v 0.01 c 5.57,2.47 13.08,2.1 13.08,2.1 0.0203,-3.2395 -1.3095,-6.3412 -3.67,-8.56 -0.4849,-0.4407 -1.0068,-0.8388 -1.56,-1.19 -1.0805,-0.6708 -2.2379,-1.2092 -3.4471,-1.6034"
|
||||
id="path1794" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 54.7227,36.5008 c 3.3059,0.7391 6.4496,2.0739 9.2773,3.9392 -3.4131,2.4314 -7.3544,4.0182 -11.5,4.63 -0.4849,-0.4407 -1.0068,-0.8388 -1.56,-1.19 -1.2326,-0.7602 -2.5604,-1.3539 -3.9488,-1.7658"
|
||||
id="path1796" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 36.3064,44.5634 c 0,0 -19.3028,-2.4511 -19.3028,-11.03 0,-8.5789 2.8955,-14.7069 3.8606,-15.9324 0.9651,-1.2255 6.756,4.9022 6.756,7.3534"
|
||||
id="path1798" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m 44.9926,24.9543 c 0,-2.4512 5.7909,-8.579 6.756,-7.3534 0.9651,1.2256 3.86,7.3534 3.86,15.9324 0,8.579 -19.3027,11.03 -19.3027,11.03"
|
||||
id="path1800" /><path
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-miterlimit="10"
|
||||
stroke-width="2"
|
||||
d="m 43.3534,19.5336 c 0,0 -4.698,-6.3166 -7.047,-6.3166 -2.349,0 -7.047,6.3166 -7.047,6.3166"
|
||||
id="path1802" /></g></g></g><g
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.2525px;font-family:'Lobster Two';-inkscape-font-specification:'Lobster Two, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#e67a94;fill-opacity:1;stroke-width:15.4271;stroke-linejoin:bevel"
|
||||
x="17.666056"
|
||||
y="62.47646"
|
||||
id="text2041"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2039"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.2525px;font-family:'Lobster Two';-inkscape-font-specification:'Lobster Two, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#e67a94;fill-opacity:1;stroke-width:15.4271"
|
||||
x="17.666056"
|
||||
y="62.47646">now</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:29.0484px;font-family:Lato;-inkscape-font-specification:'Lato, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5c9e31;fill-opacity:1;stroke-width:13.4767;stroke-linejoin:bevel"
|
||||
x="17.188931"
|
||||
y="87.289337"
|
||||
id="text2809"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2807"
|
||||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:29.0484px;font-family:Lato;-inkscape-font-specification:'Lato, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5c9e31;fill-opacity:1;stroke-width:13.4767"
|
||||
x="17.188931"
|
||||
y="87.289337">noticed</tspan></text></g></g><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.0492px;line-height:0.8;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#fafaf0;fill-opacity:1;stroke:none;stroke-width:0.606267;stroke-linejoin:bevel"
|
||||
x="18.913553"
|
||||
y="25.764103"
|
||||
id="text2509"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2507"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.0492px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#fafaf0;fill-opacity:1;stroke-width:0.606267"
|
||||
x="18.913553"
|
||||
y="25.764103">Be Present </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.0492px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#fafaf0;fill-opacity:1;stroke-width:0.606267"
|
||||
x="18.913553"
|
||||
y="37.003456"
|
||||
id="tspan4065">for a Minute</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.0513px;line-height:0.8;font-family:'Lobster Two';-inkscape-font-specification:'Lobster Two, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#fafaf0;fill-opacity:1;stroke:none;stroke-width:0.692663;stroke-linejoin:bevel"
|
||||
x="124.97482"
|
||||
y="32.132454"
|
||||
id="text2509-2"><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.0513px;font-family:'Lobster Two';-inkscape-font-specification:'Lobster Two, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#fafaf0;fill-opacity:1;stroke-width:0.692663"
|
||||
x="124.97482"
|
||||
y="32.132454"
|
||||
id="tspan4065-8">meditations</tspan></text><rect
|
||||
style="fill:#fafaf0;fill-opacity:1;stroke:none;stroke-width:1.296;stroke-linejoin:bevel"
|
||||
id="rect4169"
|
||||
width="1.7221717"
|
||||
height="38.175072"
|
||||
x="109.65657"
|
||||
y="7.3707943" /></g></svg>
|
After Width: | Height: | Size: 12 KiB |
9
content/_index.md
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
## Test
|
||||
Welcome to *Now Noticed*, a resource to promote mindfulness and
|
||||
|
||||
|
||||
{{<rawhtml>}}
|
||||
<span style="display:block;height:calc(var(--gap)*2);">
|
||||
{{</rawhtml>}}
|
27
content/about.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
draft: false
|
||||
title: "About Now Noticed"
|
||||
description: "Mindfulness changed my life, and I want to share that experience."
|
||||
showReadingTime: false
|
||||
showPostNavLinks: false
|
||||
---
|
||||
|
||||
## About The Author
|
||||
|
||||
My name is Landon. I'm passionate about living mindfully, as it's how I gained a sense of peace and control in my own life. I was tired of paywalled or low-quality mindfulness resources, so I decided to build this little hobby project.
|
||||
|
||||
## About This Website
|
||||
|
||||
This website is produced by [Landon J. Taylor](https://www.landonjtaylor.net) and is a [MossBiscuits](https://www.mossbiscuits.com) publication. MossBiscuits is the title of a publication and is not an incorporated entity. That is, MossBiscuits does not conduct business; rather, Landon Taylor uses MossBiscuits to publish his work. This publication does not directly produce any revenue or material benefit to its author or his affiliates and is offered under no warranty to its end users.
|
||||
|
||||
Nothing on this website constitutes advice. I am not a medical or mental health professional. I do not claim to be an expert, and I urge readers to consult with a licensed professional before implementing any idea from this website, especially for individuals with mental health challenges.
|
||||
|
||||
This website is not produced in affiliation with any third-party organization. I use Hugo with the PaperMod theme to produce this fast static site. All content is produced without the use of generative AI.
|
||||
|
||||
## Privacy
|
||||
|
||||
This static website does not use cookies. This website does not collect any data about its users and does not store or sell any personal information. Usage of this website does not constitute consent to track, collect, or store information.
|
||||
|
||||
## Congrats
|
||||
|
||||
If you've read to this point, you are an extremely responsible internet user. Give yourself a pat on the back and go do something interesting rather than reading privacy policies.
|
7
content/categories/_index.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Categories"
|
||||
description: "Looking for a specific kind of stuff? Here's where to find it."
|
||||
# layout: list
|
||||
url: "/categories/"
|
||||
# ShowRssButtonInSectionTermList: true
|
||||
---
|
271
content/getting_started.md
Normal file
@ -0,0 +1,271 @@
|
||||
---
|
||||
draft: false
|
||||
title: "Whisker's Going Gluten-Free Guide"
|
||||
author: Landon Taylor
|
||||
description: "New to the gluten-free scene? Breathe easy. We've got you."
|
||||
summary: "New to the gluten-free scene? Breathe easy. We've got you."
|
||||
showReadingTime: true
|
||||
showWordCount: false
|
||||
showTOC: true
|
||||
showPostNavLinks: false
|
||||
---
|
||||
|
||||
Our guide takes a slightly different approach from others we've seen. We've carefully designed this guide to help you avoid some of the mistakes we've made, but please adapt it to meet your unique needs.
|
||||
|
||||
## 1. A Gluten-Free Identity
|
||||
|
||||
There are a lot of reasons someone starts eating gluten-free. Millions of people are affected by Celiac's Disease, a gluten intolerance, a wheat allergy, or another condition that bars them from eating gluten. Others still go gluten-free by choice, perhaps because they feel better without gluten or they perceive it as healthier.
|
||||
|
||||
It's important to decide how seriously you're going to take your new gluten-free diet. If you have a medical condition that prevents you from eating gluten, consult with your doctor to find out if you can eat *any* gluten (spoiler alert: the answer is probably "no"). If you are going gluten free by choice, decide *how much* gluten you're able or willing to eat.
|
||||
|
||||
## 2. Eating Out
|
||||
|
||||
Eating out can be one of the most intimidating things to do when you first go gluten free. One of the most helpful things to do beforehand is research gluten free options near you with a service like [Find Me Gluten Free](https://www.findmeglutenfree.com). But even if a restaurant claims to have gluten free options, there are some things to watch out for.
|
||||
|
||||
### Understanding Cross-Contamination
|
||||
|
||||
If you're taking gluten-free seriously, you may want to start thinking about gluten like a dangerous food-borne pathogen. In the same way you have to be careful what you do with your cooking equipment after you use it to cook chicken, you have to be careful cooking after (or while) equipment has been used for gluten.
|
||||
|
||||
Gluten doesn't multiply like pathogens, which is helpful. But it does spread. Common culprits include unwashed hands, fry oil, pasta water, cast iron or porous cookware, utinsels, cutting boards, and even the air. You've certainly seen a flour poof while making bread or pizza crust. The flour in the poof contains enough gluten to trigger some sensitive individuals.
|
||||
|
||||
### Avoiding Cross-Contamination
|
||||
|
||||
The safest food is *always* the food you control yourself from start to finish. Learning to cook good gluten free food is going to be your best shot at a safe, enjoyable, fulfilling diet.
|
||||
|
||||
Many people who eat gluten free have great success focusing on whole foods. It's easy to make a gluten-free meal directly from fresh produce, meats, cheeses, and so on. The more processed food becomes, the harder it gets to trust it's gluten free.
|
||||
|
||||
Nonetheless, it's unreasonable to never eat out, so it's good to know how to do it safely.
|
||||
|
||||
### Dangerous Terms
|
||||
|
||||
Gluten free food is a big business. That means, especially in the US and similar places, businesses have a lot of incentive to market potentially unsafe products to people as if the products are gluten free.
|
||||
|
||||
There are a few terms that, depending on how sensitive you are, should probably spark more research:
|
||||
|
||||
- **Gluten Free** is not a regulated term in the US (but that might change if gluten gets added to the list of big allergens). Read the ingredient list carefully (we have instructions on how to do that below). Products advertised as gluten free are often truly gluten free, but it cannot be guaranteed.
|
||||
- **Paleo** indicates a product is grain-free, but it does not indicate any effort has been made to keep a product completely gluten free. It is not a regulated term in the US.
|
||||
- **Keto** does not mean gluten free. Some Keto products are gluten free, and some gluten free products are Keto, but the terms mean different things.
|
||||
- **Gluten Friendly** means the item in question may have been gluten free at one point, but it is almost certainly not by the time you get it. Look out for this term at restaurants if you are very sensitive to gluten, since it means they are probably not washing cooking surfaces, changing gloves, using clean fry oil or pasta water, or taking other cautions to keep your food gluten free.
|
||||
- **Certified Gluten Free** generally means very little in the US, since there is currently no public regulatory board to certify gluten freedom. Some independent organizations certify gluten freedom, and we have information about them below.
|
||||
|
||||
### Ordering at Restaurants
|
||||
|
||||
Sometimes, people are hesitant to be bold about dietary restrictions. But enough people are gluten free that a restaurant should at least be familiar with the concept.
|
||||
|
||||
Being clear and upfront about your dietary restrictions is not only critical to your own safety, but it is helpful to restaurants that want to meet your needs.
|
||||
|
||||
Because it can be intimidating to start the conversation in public, here is how we handle it:
|
||||
|
||||
At a counter, it is completely appropriate to ask, "I cannot eat gluten. Do you have any gluten-free options?" Most fast food establishments, while their food is often not gluten free in the first place, will serve a burger on a gluten free bun or lettuce or offer some alternative. If you are very sensitive and nobody in the restaurant knows if they can serve gluten free food, eat somewhere else. Your health is more important than politeness.
|
||||
|
||||
With table service, mention you are gluten free before you place your order. If we go to a new restaurant, we usually ask the host for a gluten free menu. When a server asks for a drink order, we start the conversation by saying, "First things first, we cannot have gluten." It can also be helpful to ask what menu items can be made gluten free, since servers often have a good idea of what menu items are actually good from the gluten free menu.
|
||||
|
||||
When you receive your food, always receive direct confirmation the item is gluten free. If I'm picking food up at a counter (Stefani usually orders gluten free and I don't), I point to the gluten free item and confirm, "This one is gluten free, correct?" If our server brings our food, they often mention when a dish is gluten free, but if not, we always confirm. "And here's the spaghetti" is always followed by one of us asking, "and that's gluten free?"
|
||||
|
||||
Sometimes I feel silly doing this, but it is very normal for restaurant staff to mess up. They are only human, and they are usually spread very thin. Helping them remember you're gluten free then following up when you get your food helps prevent accidents. Again, politeness is not worth your health. You're not being a Karen because you have dietary restrictions. Be kind, but be firm. If you receive the wrong item or a restaurant doesn't meet your dietary restriction, send food back or leave.
|
||||
|
||||
Here are some phrases we've used:
|
||||
|
||||
- "I think there's been a mix-up, can you bring me the gluten free dish I ordered?"
|
||||
- "It looks like this salad has croutons on it. Do you know if they are gluten free?"
|
||||
- "It looks like there's nothing I can eat from your menu. Thank you for your help, but we'll have to eat somewhere else today."
|
||||
|
||||
|
||||
## 3. Grocery Shopping
|
||||
|
||||
Since we started eating gluten free at home, I've actually started to love grocery shopping and cooking at home. Stefani and I eat *better food* after going gluten free than we ever did before. It sounds counterintuitive, but here's why:
|
||||
|
||||
- We started buying nutrient-dense foods rather than ready-made products
|
||||
- We get to control what the food tastes like
|
||||
- We can buy seasonal, fresh food in a way restaurants cannot
|
||||
- We save loads of money cooking instead of eating out
|
||||
- We're confident the food we make is truly gluten free
|
||||
- We can eat food much closer to its source
|
||||
- We get to balance the nutrients we eat in a more natural way
|
||||
- We can make any recipe we feel like making without being stuck with a restaurant's meager, overpriced gluten free menu
|
||||
|
||||
While I occasionally do enjoy eating out, making good food at home has really opened up our options and given us more flexibility.
|
||||
However, eating gluten free at home means learning how to read labels and grocery-shop effectively.
|
||||
|
||||
### Start with Whole Foods
|
||||
|
||||
Now is a perfect time to go back to the basics. You can do incredible things (even on a busy weeknight) with basic food items, and you'll find you save a ton of money starting from whole foods.
|
||||
|
||||
Just think how many meals you could make with some combination of produce, meat, cheese, nuts, and some gluten free grains (plus a few spices, which we'll talk about later).
|
||||
|
||||
It takes a while to figure out how to replace flour, packaged mixes, and other processed foods. But even beginner chefs can pull off really tasty, satisfying meals with whole foods.
|
||||
|
||||
Some of the easiest dishes in the world to make gluten free just involve letting food's flavor speak for itself:
|
||||
|
||||
- Sheet pan roasted vegetables and chicken thighs
|
||||
- Steak and mashed potatoes with a vegetable side
|
||||
- Scrambled eggs, bacon, and air fried potatoes
|
||||
- Carrot/ginger soup with a side salad
|
||||
- Cheesy ground-beef-stuffed red peppers
|
||||
- Instant pot weeknight ratatouille
|
||||
- Chicken paprikash over rice
|
||||
- Beef and vegetable stew
|
||||
- Rice and beans with salsa and sour cream
|
||||
|
||||
The opportunities are endless, and you don't have to give up the flavors you love because you're gluten free. Substitutes for gluten-containing recipes can be challenging, but naturally gluten free foods can be cheap, satisfying, and easy to make.
|
||||
|
||||
As we develop recipes for Whisker's, we're going to prioritize recipes made from mostly whole foods. It's what we always recommend to anyone learning how to live gluten free, and it's how we plan our own meals.
|
||||
|
||||
### Spices
|
||||
|
||||
Salt and pepper are usually safe. But there are so many other spices out there. How can you tell which ones are safe?
|
||||
|
||||
- **Single-Ingredient Spices**, as the name implies, have only one ingredient on the label. These can include garlic powder, ginger, turmeric, bay leaves, basil, thyme, and so on. These spices are usually safe, since if a company thins out a spice with wheat flour, they must declare wheat as an allergen. Most of these spices are not certified gluten free, so if you are concerned about the risk, shopping online for certified gluten free spices might be a good option for you.
|
||||
- **Spice Blends**, like italian seasoning, curry powder, garam masala, tajin, and others are usually gluten free. However, some brands use a gluten-containing anti-caking agent like wheat starch. Always read the label on spice blends.
|
||||
- **Seasoning Packets**, like taco seasonings, gravy mixes, and others are usually *not* gluten free. We've enjoyed using taco seasoning and a few others from Badia, as they advertise their spice mixes as gluten free. The downside to this is buying a large bottle of taco seasoning when all you needed was a packet.
|
||||
- **Bulk Spices**, like all bulk foods, run a huge risk of cross-contamination. We've seen people in our local grocery store dip a scoop into bread flour, then dip that same scoop right into a bin of gluten free flour. Pouring dispensers are probably safer, but it's usually best to steer clear of the bulk aisle.
|
||||
|
||||
### Sauces and Condiments
|
||||
|
||||
Bottled or canned sauces are endlessly convenient. Sadly, most of them have gluten in them. Even innocent-looking sauces like ketchup and soy sauce often contain wheat as a coloring or thickening agent, so it's important to check every label.
|
||||
|
||||
We've noticed a few particularly bad culprits:
|
||||
|
||||
- Hunts tomato products (at least as of a couple of years ago)
|
||||
- Soy sauce (though some brands make a gluten free option)
|
||||
- Oyster sauce
|
||||
- Fish sauce
|
||||
- Nacho cheese
|
||||
- Teriyaki sauce
|
||||
- Worcestershire sauce
|
||||
- Barbeque sauces
|
||||
- Salad dressings
|
||||
- Tartar sauce
|
||||
|
||||
And we've found a few that are usually safe (but always check the label):
|
||||
|
||||
- Mayonnaise
|
||||
- Mustards
|
||||
- Vinegars
|
||||
- Chocolate sauce
|
||||
- Guacamole
|
||||
- Honey
|
||||
- Hot sauces
|
||||
- Peanut butter
|
||||
- Pickles/relish
|
||||
- Tomato sauce
|
||||
|
||||
But these products vary greatly from place to place and from brand to brand. Always, always, always read the label. Over time, we're going to compile lists of gluten-free foods, but for now, read the label.
|
||||
|
||||
We've also noticed a number of sauces that normally contain gluten often have gluten-free alternatives at local, health-centric, or ethnic grocery stores. We can't get gluten free oyster sauce at our local supermarket, for example, but we can find it at an Asian grocery store nearby.
|
||||
|
||||
### Meat and Dairy
|
||||
|
||||
While on their own, meat and dairy are gluten free, some brands use wheat flour or other gluten-containing products.
|
||||
|
||||
We've identified some common things to watch out for:
|
||||
|
||||
- **Shredded cheese**, which sometimes uses wheat starch to prevent caking
|
||||
- **Seasoned Meat**, like pre-seasoned carne asada or fajitas, which sometimes use gluten-containing spice mixes
|
||||
- **Some Lunchmeat**, which uses wheat as a binding agent
|
||||
- **Most Gyro Meat**, which uses wheat flour as a binding agent
|
||||
- **Specialty Yogurts**, which sometimes use barley malt extract or another gluten-containing product
|
||||
|
||||
We always recommend buying food as close to the source as possible. For example, we love buying tubs of plain or vanilla yogurt (that we already know is gluten free) and flavoring it ourselves with granola, jam, and fruit.
|
||||
In general, always read the label.
|
||||
|
||||
### Gluten Free Alternatives
|
||||
|
||||
Thankfully, gluten free alternatives to products you enjoy are becoming much more common. Some store brands even sell gluten free versions of common products. In general, these products are much more expensive (usually about twice as much), so we focus on eating naturally gluten free foods that don't drive up our budget as much.
|
||||
|
||||
But there's something to be said about having a just-add-water cake mix, boxed mac and cheese, or a TV dinner once in a while. We're going to compile lists of our favorite products as well as product reviews, but our advice is to read reviews. Look especially for comments about gritty breads or baked goods, slimy pasta, and chemical or metallic tastes.
|
||||
|
||||
Most off-the-shelf gluten free products are passable, but they're usually not great. Cooking and baking from scratch is going to be your best option for high-quality food.
|
||||
|
||||
### Make a List
|
||||
|
||||
Reading every label in a store is a quick way to turn grocery shopping into an endless chore. We recommend keeping a list of products that you enjoy and that are safe for you to eat. Then, if you run out of ketchup, you know what brand you like and can have.
|
||||
|
||||
Sadly, some companies change their recipes to add gluten, so it doesn't hurt to do spot checks every once in a while to make sure you're still getting a gluten free product.
|
||||
|
||||
If you have the budget for it, it's great to support companies who treat gluten responsibly. We prefer to support brands that certify gluten freedom in their products, but that can increase the cost of the product.
|
||||
|
||||
|
||||
## 4. Around Your Home
|
||||
|
||||
### Family Boundaries
|
||||
|
||||
Refer back to your personal gluten free identity. Do your dietary restrictions require you to keep gluten completely out of your kitchen? Now is the time to have a conversation with people in your household about gluten.
|
||||
|
||||
It's good to decide if meals eaten together will be completely gluten free, or if you'll be making separate meals for yourself. A compromise that works in our home is that we make gluten free dinners, and we want something like rolls with our soup or toast with breakfast, Stefani makes gluten free bread and I buy some gluten-containing bread at a grocery store to have with my meal.
|
||||
|
||||
For example, Stefani is fine with me having gluten in our kitchen, but I always have to clean up after myself and be extremely careful to avoid cross-contamination. A more sensitive friend disallows any gluten in her home, since the smallest amount of gluten can trigger a reaction. Some people are sensitive enough that they even need to worry about a spouse or significant other eating gluten before kissing, so it's best to have an open dialogue with people who are close to you about your needs.
|
||||
|
||||
### Household Goods
|
||||
|
||||
Some, but not all, people who are sensitive to gluten also have skin sensitivities. Now is a good time to check if your soaps, lotions, shampoos, cleaning products, pet food, and other household items are gluten free.
|
||||
|
||||
It sounds bizarre, but some people are seriously affected by this. We are not affected by it, so if you are sensitive to gluten on your skin, we would recommend consulting other blogs (or ideally, a dermatologist or allergist).
|
||||
|
||||
## 5. Getting Meals on the Table
|
||||
|
||||
Planning in advance is the best way to have a fulfilling diet gluten free. We enjoy using the list-making and meal-planning app [Anylist](https://anylist.com), but you should find the tool that works for you. An app, a notepad in the kitchen, or a chain of text messages are all completely valid.
|
||||
|
||||
### Finding Recipes
|
||||
|
||||
Finding natually gluten free recipes (or recipes that are easy to convert) can be tricky, but here are a few of our favorite recipe websites:
|
||||
|
||||
- [America's Test Kitchen](https://americastestkitchen.com) is paywalled, but their recipes (from their website, cookbooks, or shows) have all been a hit for us. If you have some money to spend to get started, we believe it is best spent here. Their gluten free baked goods aren't quite as nice as the next two resources', but we haven't been able to beat their main dish recipes. You can watch their show on PBS (some seasons with Passport only) or Youtube (free), and the recipes on their homepage are free.
|
||||
- [Let Them Eat Gluten Free Cake](https://www.letthemeatgfcake.com/) is an excellent resource. We particularly like her [All-Purpose Flour Blend](https://www.letthemeatgfcake.com/gluten-free-flour-blends/), which even a beginning gluten free cook can substitute one-for-one in cookies, cakes, and other baked goods with really impressive results.
|
||||
- [The Loopy Whisk](https://theloopywhisk.com/) is a great resource, especially for bakers. Katarina Cermelj does deep dives into the science of why gluten free baked goods work how they do. We especially love her cookbook, [Baked To Perfection](https://theloopywhisk.com/baked-to-perfection-gluten-free-cookbook/).
|
||||
|
||||
### Adapting Cooking Recipes
|
||||
|
||||
Sometimes a recipe will be mostly gluten free, but it'll call for a few tablespoons of flour to make a roux. Recipes like this are a perfect place to substitute any of the following for wheat flour:
|
||||
|
||||
- All-purpose gluten free flour (any store-bought flour can work here)
|
||||
- White rice flour
|
||||
- Brown rice flour
|
||||
- Potato starch (sometimes)
|
||||
- Corn starch (sometimes)
|
||||
- Tapioca starch (sometimes)
|
||||
|
||||
These substitutions work because when you make a roux for something like a gravy or a béchamel, you're not relying on the sticky nature of gluten to hold anything together. You're just thickening a sauce.
|
||||
|
||||
These substitutes also usually work for breading and frying food, especially chicken. We bread our favorite fried chicken (which we'll post a recipe for soon) using equal parts cornstarch and all-purpose gluten free flour. If you're feeling really adventurous, adapt your favorite fried chicken recipe with this breading.
|
||||
|
||||
In general, we steer clear of recipes that require a lot of store-bought sauces. It's been enough of a headache (living in a moderate food desert) to find gluten-free sauces that we avoid them altogether.
|
||||
|
||||
### Adapting Baking Recipes
|
||||
|
||||
Adapting recipes for baking can be complicated. The first few things we tried to make turned out tasting like cement or drywall. Over time, we've learned how to make gluten free baked goods that really work, but here are a few tips to get your feet in the water:
|
||||
|
||||
1. Start simple. Make something like cookies, brownies, or a chocolate cake.
|
||||
2. Use a good one-to-one flour blend. We really enjoy [Kim's All-Purpose Flour Blend](https://www.letthemeatgfcake.com/gluten-free-flour-blends/) in most baking recipes.
|
||||
3. Add a little extra structure. To keep cookies from spreading, we add a little bit of psyllium husk (1 tsp husk dissolved into 1 tbsp water) with our eggs. To help cakes get fluffier, we usually double the baking powder.
|
||||
4. Make a note of what adaptations you made. If the recipe turns out, make a note that they worked. If not, make a note of what went wrong so you can troubleshoot later.
|
||||
|
||||
Give yourself some patience. It takes time to learn what works in your home, especially because changes in altitude, climate, and other factors can really change how a gluten free recipe turns out.
|
||||
|
||||
## 6. Eating at Others' Homes
|
||||
|
||||
It can be scary to eat in other people's homes. If you are very sensitive, it could be worth telling a host you'll bring your own meal to reheat there. If you are comfortable eating in someone else's home, we have a few tips:
|
||||
|
||||
1. Establish expectations at the time you're invited. If they don't already know you're gluten free, mention your dietary restrictions. It can be helpful to let them know it can be intimidating making gluten free food, so you could bring your own food or help them figure out a recipe.
|
||||
2. Good boundaries keep you safe. Thank them for making food for you, but don't be afraid to turn down food if you don't think it's been prepared safely. As always, politeness is not worth your health.
|
||||
3. Share some naturally gluten free recipes or ideas. While most people might be intimidated by adapting a recipe, almost anyone can make a sheet pan dinner, baked potato, or fruit salad gluten free.
|
||||
|
||||
Now is as good a time as any to reinforce the idea that you visit family and friends to enjoy their company, not to eat their food. When it comes to some of our friends, we plan to watch a movie and have snacks rather than eating a meal together, which relieves a lot of stress on everyone's part.
|
||||
|
||||
## 7. Travelling Gluten Free
|
||||
|
||||
If you take a long road trip or do a lot of travel, **make plans in advance**. If you are driving through rural parts of the US, for example, your chances of finding decent gluten free food at a restaurant or truck stop are slim to none. There are few things sadder than winding up in the middle of nowhere eating 3 truck stop yogurt cups for dinner.
|
||||
|
||||
One trick that can be helpful is planning to keep a meal ready in a cooler. Many truck stops have microwaves where you could reheat a dinner that's safe for you while the rest of your party eats week-old gas station burritos.
|
||||
|
||||
## 8. On Optimism
|
||||
|
||||
You're probably overwhelmed. We've all been there. *Breathe*. Tons of people have figured out how to have a satisfying, fulfilling, enjoyable diet without gluten, and you'll get there.
|
||||
|
||||
Take advantage of this transition to start eating the way you really want to. Be adventurous; try foods you never knew about. Use this time to learn about eating and cooking whole, healthy foods.
|
||||
|
||||
You've got this.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
We are not sponsored by or otherwise affiliated with any of the organizations we mention on this page. We promote certain resources because they have truly been helpful to us, but we encourage all our readers to research and make their own informed decisions.
|
9
content/meditations/_index.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Meditations"
|
||||
description: "Guided and semi-guided meditation exercises."
|
||||
taxButtons: true
|
||||
layout: list_fw
|
||||
url: "/meditations/"
|
||||
ShowRssButtonInSectionTermList: true
|
||||
---
|
||||
|
BIN
content/meditations/covers/minute.png
Normal file
After Width: | Height: | Size: 34 KiB |
160
content/meditations/minute.md
Normal file
@ -0,0 +1,160 @@
|
||||
---
|
||||
draft: false
|
||||
title: "Be Present for a Minute"
|
||||
summary: "This simple exercise encourages you to mindfully exist in time."
|
||||
description: "This simple exercise encourages you to mindfully exist in time."
|
||||
date: 2025-05-01
|
||||
# author: landon
|
||||
tags:
|
||||
- "Interactive"
|
||||
categories:
|
||||
- "Self-Guided Meditations"
|
||||
showReadingTime: false
|
||||
cover:
|
||||
image: "/meditations/covers/minute.png"
|
||||
alt: "Meditation: Be Present for a Minute"
|
||||
# caption: "<text>"
|
||||
relative: false # To use relative path for cover image, used in hugo Page-bundles
|
||||
---
|
||||
|
||||
Time can slip away so easily. Sometimes, days go on for months and months feel like days.
|
||||
When we talk about mindfulness, we often talk about being present in *space*. This is important,
|
||||
but it can also be valuable to be present in *time*.
|
||||
Being present in time means acknowledging the flow of moments as they pass,
|
||||
recognizing the significance of each one, and understanding how they shape our experiences.
|
||||
|
||||
## The Exercise
|
||||
|
||||
As you settle into this simple meditation, this framework may be helpful:
|
||||
|
||||
1. Choose an amount of time you would like to be present for. At first, it might be helpful to pick a small amount, like a minute.
|
||||
2. Sit or lie in a comfortable place.
|
||||
3. Set a timer or a stopwatch, and close your eyes.
|
||||
4. When you feel a minute has passed, open your eyes.
|
||||
5. Compare your perception of time to the timer's ground truth.
|
||||
|
||||
Use a timer you feel comfortable with. The simple timer below may be helpful.
|
||||
|
||||
{{<rawhtml>}}
|
||||
|
||||
<div id="timercontainer" style="display: flex; justify-content: center; align-items: center; padding: 1rem; font-family: Arial, sans-serif;">
|
||||
|
||||
<div class="timer" style="text-align: center; background: #fefefe; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);">
|
||||
<div class="countdown" id="countdown" style="font-size: 48px; margin: 20px 0; color: black">00:00</div>
|
||||
<button style="margin: 5px; padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; cursor: pointer; background-color: #007BFF; color: white;" onclick="setTime(0.1)">1 Minute</button>
|
||||
<button style="margin: 5px; padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; cursor: pointer; background-color: #007BFF; color: white;" onclick="setTime(5)">5 Minutes</button>
|
||||
<button style="margin: 5px; padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; cursor: pointer; background-color: #007BFF; color: white;" onclick="setTime(10)">10 Minutes</button>
|
||||
<button style="margin: 5px; padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; cursor: pointer; background-color: #007BFF; color: white;" id="startButton" onclick="startTimer()">Start Timer</button>
|
||||
</div>
|
||||
|
||||
<audio id="chime" src="https://www.soundjay.com/button/sounds/button-3.mp3"></audio>
|
||||
|
||||
<script>
|
||||
let countdown;
|
||||
let timeInSeconds = 0;
|
||||
|
||||
function setTime(minutes) {
|
||||
timeInSeconds = minutes * 60;
|
||||
updateDisplay();
|
||||
}
|
||||
|
||||
function updateDisplay() {
|
||||
const minutes = Math.floor(timeInSeconds / 60);
|
||||
const seconds = timeInSeconds % 60;
|
||||
document.getElementById('countdown').textContent =
|
||||
`${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
|
||||
function startTimer() {
|
||||
if (timeInSeconds > 0) {
|
||||
document.getElementById('startButton').disabled = true;
|
||||
countdownFromThree();
|
||||
}
|
||||
}
|
||||
|
||||
function countdownFromThree() {
|
||||
let count = 3;
|
||||
const countdownInterval = setInterval(() => {
|
||||
if (count > 0) {
|
||||
document.getElementById('countdown').textContent = "starting in " + count;
|
||||
count--;
|
||||
} else {
|
||||
playBeep(440);
|
||||
clearInterval(countdownInterval);
|
||||
startCountdown();
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function startCountdown() {
|
||||
const timerInterval = setInterval(() => {
|
||||
if (timeInSeconds > 0) {
|
||||
timeInSeconds--;
|
||||
updateDisplay();
|
||||
} else {
|
||||
playBeep(660);
|
||||
clearInterval(timerInterval);
|
||||
document.getElementById('startButton').disabled = false;
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function playBeep(freq) {
|
||||
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
|
||||
const oscillator = audioContext.createOscillator();
|
||||
oscillator.type = 'sine';
|
||||
oscillator.frequency.setValueAtTime(freq, audioContext.currentTime); // A4 note
|
||||
oscillator.connect(audioContext.destination);
|
||||
oscillator.start();
|
||||
oscillator.stop(audioContext.currentTime + 0.2); // Beep for 0.5 seconds
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
{{</rawhtml>}}
|
||||
|
||||
## Thought and Focus
|
||||
|
||||
As you are focusing on being present in time, it may be challenging to stay in the present moment.
|
||||
It's natural for the mind to wander.
|
||||
Each time you notice your thoughts drifting, gently bring your focus back to the present.
|
||||
Use your breath as an anchor, feeling the rise and fall of your chest, or the sensation of air entering and leaving your body.
|
||||
|
||||
As thoughts come up, approach them with kindness and nonjudgment. Some of these phrases may be helpful to you:
|
||||
- "Thank you, brain, for remembering that."
|
||||
- "Right now, I am focusing on this moment instead."
|
||||
- "This thought can be my focus at another time."
|
||||
- "I acknowledge this thought, but I choose to return to this moment."
|
||||
- "I am here, and I am safe in this present moment."
|
||||
- "I observe my thoughts, but they do not define my expderience."
|
||||
|
||||
With patience and practice, you can gain a deeper sense of presence in time, allowing you to appreciate the richness of each moment.
|
||||
Embrace this journey of awareness, knowing that every return to the present is a step toward greater clarity and peace.
|
||||
|
||||
## Adjustment and Learning
|
||||
|
||||
When the meditation ends, consider your estimation of time compared to the ground truth.
|
||||
Did you open your eyes early? Did the timer ding before you were finished?
|
||||
Approach this result with curiosity and nonjudgment. Use this opportunity to check in with
|
||||
your brain.
|
||||
|
||||
Perhaps if you were early, you may be feeling anxious or eager to move on to
|
||||
the next thing in your life. If the timer went off before you opened your eyes, maybe
|
||||
you are feeling bored or distracted.
|
||||
|
||||
Have a sincere conversation with yourself about your experience.
|
||||
What might bring your experience of time more into harmony with reality?
|
||||
|
||||
{{<rawhtml>}}
|
||||
<div style="font-size: 0.8rem;">
|
||||
<h2 style="font-size: 1.2rem;">Administrative Stuff</h2>
|
||||
|
||||
<p><strong>Liability.</strong> This material has not been written or reviewed by a medical or mental health professional. It does not give advice, and readers are urged to contact a licensed professional before doing anything that may impact their mental or physical health. While mindfulness exercises are generally considered safe, readers should report any adverse effects to a licensed professional. The content on this page is not to be used for diagnostic or therapeutic purposes. This content, including any text, audio, video, or interactive components, is provided as-is under absolutely no warranty.</p>
|
||||
|
||||
|
||||
<p xmlns:cc="http://creativecommons.org/ns#" ><strong>Copyright.</strong> This meditation © 2025 and licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC-SA 4.0<img style="display:inline;height:1.1rem!important;margin:0 0 0 3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="display:inline;height:1.1rem!important;margin:0 0 0 3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="display:inline;height:1.1rem!important;margin:0 0 0 3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1" alt=""><img style="display:inline;height:1.1rem!important;margin:0 0 0 3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""></a></p>
|
||||
|
||||
</div>
|
||||
{{</rawhtml>}}
|
8
content/moments/_index.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Mindful Moments"
|
||||
description: "Learn with us about tools, techniques, and strategies for gluten-free living."
|
||||
taxButtons: true
|
||||
layout: list
|
||||
url: "/posts/"
|
||||
ShowRssButtonInSectionTermList: true
|
||||
---
|
31
content/moments/nummycrumb.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
draft: true
|
||||
title: "Good news for Logan: our new favorite local gluten-free cafe"
|
||||
summary: "We paid a visit to The Nummy Crumb and were not disappointed."
|
||||
description: "We paid a visit to The Nummy Crumb and were not disappointed."
|
||||
date: 2023-12-07
|
||||
author: landon
|
||||
tags:
|
||||
- "Utah"
|
||||
- "Local Businesses"
|
||||
categories:
|
||||
- "Lifestyle"
|
||||
showReadingTime: false
|
||||
cover:
|
||||
image: "/posts/2023/12/nummycrumb.png"
|
||||
alt: "Nummy Crumb Logo"
|
||||
# caption: "<text>"
|
||||
relative: false # To use relative path for cover image, used in hugo Page-bundles
|
||||
---
|
||||
|
||||
One of the things Stefani has missed the most is going to a bakery and getting a pastry and a warm drink. She was understandably excited when The Nummy Crumb opened, since it's a dedicated gluten-free cafe right in Logan, Utah.
|
||||
|
||||
We visited on the day after the grand opening, and everything was excellent. We shared a ham and cheese croissant, a chocolate croissant, and an apple turnover. The pastries were all delicious, and service was excellent. The cafe was inviting, and the owner greeted customers and checked in to make sure everyone was happy.
|
||||
|
||||
They offered grab-and-go options (including cinnamon rolls, which we are very excited to try), which we thought would be perfect if someone wanted to take breakfast to work and accommodate dietary restrictions.
|
||||
|
||||
Everyone clearly took a lot of pride in what they did, and we were very impressed.
|
||||
|
||||
A menu is posted at [The Nummy Crumb Website](https://www.nummycrumb.com/).
|
||||
|
||||
**Disclaimer:** We do not presently accept sponsorship. We paid full price for our visit, and this post reflects our honest opinions.
|
39
content/resources.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
draft: false
|
||||
title: "Resources"
|
||||
description: "You deserve to eat well. Here are a few things to help with that."
|
||||
showReadingTime: false
|
||||
showTOC: true
|
||||
showPostNavLinks: false
|
||||
---
|
||||
|
||||
## New to Gluten-Free?
|
||||
|
||||
We are so excited to have just released our best resource yet. To learn the ropes of going gluten free, check out [Whisker's Going Gluten-Free Guide](/getting_started/).
|
||||
|
||||
## Gluten-Free Flours
|
||||
|
||||
Flour can get complicated. People use gluten-containing flour to do a lot of different things, so it's not realistic to have one all-purpose gluten-free flour blend. Here are a few of our favorites, sorted by what you'll be doing with them:
|
||||
|
||||
### Cooking Flours
|
||||
|
||||
Cooking with gluten-free flour is endlessly forgiving. Here are some of the best flour substitutes we've found for cooking projects:
|
||||
|
||||
- **Roux and Béchamel.** Use any 1-to-1 flour. In a bind, use potato or corn starch.
|
||||
- **Thickening agent.** Make a slurry with 1 part corn or potato starch and 1 part *cold* water. 1 tbsp of each can usually thicken a whole pot. Slowly whisk in and simmer until you reach the desired thickness.
|
||||
- **Breading.** You don't have to live without fried chicken. Individual recipes will tell you how to use flour (i.e., with or without an egg wash), but you can substitute:
|
||||
- **Corn starch** achieves a breading similar to Panda Express breaded chicken
|
||||
- **1-to-1 flour** of nearly any quality achives a breading similar to American fried chicken
|
||||
|
||||
In general, because cooking is so much more forgiving than baking, you can often use any starch or gluten-free flour you have on hand.
|
||||
|
||||
If you're new to gluten-free, find a cooking flour you like (we like Bob's 1-to-1 because it's relatively inexpensive and turns out reasonably well in cooking recipes) and use it in place of flour. Because cooking usually calls for smaller amounts of flour, we've decided it's not worth the savings of making your own blend to cook.
|
||||
|
||||
### Baking Flours
|
||||
|
||||
Baking is definitely the most complicated thing to handle gluten-free. We have a few tips and tricks that can make it easier and more enjoyable. Again, we've sorted these by what you'll be making:
|
||||
|
||||
- **Cookies, brownies, bars, quick breads.** Use Kim's 1-to-1 flour blend. You'll probably want to double a recipe's baking soda and add a small amount (usually 1 tsp) of psyllium husk.
|
||||
- **Breads.** Stay tuned -- we're working on a guide to make perfect gluten-free bread.
|
||||
|
||||
|
9
content/search.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Find Something" # in any language you want
|
||||
layout: "search" # is necessary
|
||||
# url: "/archive"
|
||||
description: "Find any moment, meditation, or affirmation in the history of this site."
|
||||
summary: "search"
|
||||
placeholder: "what do you want to find?"
|
||||
allButtons: true
|
||||
---
|
7
content/tags/_index.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Tags"
|
||||
description: "Looking for a specific topic? Find it here!"
|
||||
# layout: list
|
||||
url: "/tags/"
|
||||
# ShowRssButtonInSectionTermList: true
|
||||
---
|
43
content/whiskers.md
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
draft: false
|
||||
title: "About Whisker's Gluten-Free Kitchen"
|
||||
description: "We believe gluten-free food should be accessible."
|
||||
showReadingTime: false
|
||||
showPostNavLinks: false
|
||||
---
|
||||
|
||||
## About The Authors
|
||||
|
||||
We're Landon and Stefani. We learned a couple years ago (while we were both starving college students) that Stefani had to go gluten-free, and we have been figuring everything out the hard way. We're here to help you avoid the mistakes we made, and we want everyone to be able to eat well with any dietary restriction.
|
||||
|
||||
## Reach Out
|
||||
|
||||
**Email:**
|
||||
{{<rawhtml>}}
|
||||
<script>
|
||||
function getRandomInt(min, max) {
|
||||
min = Math.ceil(min);
|
||||
max = Math.floor(max);
|
||||
return Math.floor(Math.random() * (max - min) + min); // The maximum is exclusive and the minimum is inclusive
|
||||
}
|
||||
function delay(time) {
|
||||
return new Promise(resolve => setTimeout(resolve, time));
|
||||
}
|
||||
async function showEmail() {
|
||||
emailPart1="food@";
|
||||
emailPart2="whiskersgf.com";
|
||||
await delay(getRandomInt(20, 160));
|
||||
document.getElementById("mailtoEmail").innerHTML = "loading email...";
|
||||
await delay(getRandomInt(800, 2200));
|
||||
document.getElementById("mailtoEmail").innerHTML = emailPart1 + "<!--lalalalalala-->" + emailPart2;
|
||||
document.getElementById("mailtoEmail").href = "mailto:" + emailPart1 + emailPart2;
|
||||
await delay(getRandomInt(8900,18700));
|
||||
document.getElementById("mailtoEmail").innerHTML = "reveal email";
|
||||
document.getElementById("mailtoEmail").href = "javascript:void(0);";
|
||||
}
|
||||
</script>
|
||||
<a onclick="showEmail()" id="mailtoEmail" href="javascript:void(0);">reveal email</a>
|
||||
{{</rawhtml>}}
|
||||
|
||||
**Contact Policy:**
|
||||
As a rule, we try to respond to all genuine messages within one workday (8am-6pm Mountain Time). I am working on adapting my spam filters, but it is possible that unsolicited messages from unknown contacts end up being blocked. If you don't hear from me within a couple of workdays, please reach out again.
|
111
hugo.yaml
Normal file
@ -0,0 +1,111 @@
|
||||
baseURL: 'https://now.mossbiscuits.com/'
|
||||
languageCode: en-us
|
||||
title: Now Noticed
|
||||
theme: papermod
|
||||
enableRobotsTXT: true
|
||||
|
||||
taxonomies:
|
||||
# author: authors
|
||||
tag: tags
|
||||
category: categories
|
||||
|
||||
# PaperMod-specific settings
|
||||
params:
|
||||
mainSections:
|
||||
- "moments"
|
||||
- "meditations"
|
||||
- "affirmations"
|
||||
defaultTheme: light
|
||||
env: production
|
||||
label:
|
||||
icon: "logo_plain.svg" # optional
|
||||
homeInfoParams:
|
||||
title: Life can go by pretty fast.
|
||||
content: Being present is a beautiful gift you can give yourself. Mindfulness is an evidence-based way to connect with your brain, your body, and the world around you. This resource provides free, creative-commons or open-source resources to help you build the mindful life you deserve.
|
||||
buttons:
|
||||
- name: Moments
|
||||
url: "/moments/"
|
||||
- name: Meditations
|
||||
url: "/meditations/"
|
||||
- name: Affirmations
|
||||
url: "/affirmations/"
|
||||
# - name: Search
|
||||
# url: "/search/"
|
||||
|
||||
|
||||
# socialIcons: # optional
|
||||
# - name: "youtube"
|
||||
# url: "<link>"
|
||||
# - name: "facebook"
|
||||
# url: "<link2>"
|
||||
|
||||
|
||||
# profileMode:
|
||||
# enabled: true
|
||||
# title: "make " # optional default will be site title
|
||||
# subtitle: "a weird hub for everything i do"
|
||||
# imageUrl: "logo.png" # optional
|
||||
# imageTitle: "Elemental Epistles Logo" # optional
|
||||
# imageWidth: 180 # custom size
|
||||
# imageHeight: 180 # custom size
|
||||
# buttons:
|
||||
# - name: Blog
|
||||
# url: "/posts/"
|
||||
# - name: Links
|
||||
# url: "/links/"
|
||||
# - name: Search
|
||||
# url: "/search/"
|
||||
|
||||
# socialIcons: # optional
|
||||
# - name: "spotify"
|
||||
# url: "<link>"
|
||||
# - name: "tumblr"
|
||||
# url: "<link2>"
|
||||
# - name: "facebook"
|
||||
# url: "<link>"
|
||||
|
||||
|
||||
|
||||
ShowPostNavLinks: true
|
||||
ShowWordCount: false
|
||||
disableScrollToTop: false
|
||||
showtoc: false
|
||||
# cover.responsiveImages: true
|
||||
ShowReadingTime: true
|
||||
# ShowShareButtons: true
|
||||
# ShareButtons: ["facebook","twitter","reddit","whatsapp"]
|
||||
assets:
|
||||
disableFingerprinting: true
|
||||
|
||||
menu:
|
||||
main:
|
||||
# - identifier: about
|
||||
# name: about
|
||||
# url: /about/
|
||||
# weight: 10
|
||||
- identifier: moments
|
||||
name: moments
|
||||
url: /moments/
|
||||
weight: 10
|
||||
- identifier: meditations
|
||||
name: meditations
|
||||
url: /meditations/
|
||||
weight: 20
|
||||
- identifier: affirmations
|
||||
name: affirmations
|
||||
url: /affirmations/
|
||||
weight: 30
|
||||
- identifier: search
|
||||
name: search
|
||||
url: /search/
|
||||
weight: 40
|
||||
- identifier: about
|
||||
name: about
|
||||
url: /about/
|
||||
weight: 35
|
||||
|
||||
outputs:
|
||||
home:
|
||||
- HTML
|
||||
- RSS
|
||||
- JSON # is necessary
|
204
layouts/_default/list.html
Normal file
@ -0,0 +1,204 @@
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- partial "index_profile.html" . }}
|
||||
{{- else }} {{/* if not profileMode */}}
|
||||
|
||||
{{- if not .IsHome | and .Title }}
|
||||
<header class="page-header">
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
<!-- {{- if .Param "taxButtons" }}
|
||||
<div class="buttons" style="margin:1rem 0;justify-content:left;">
|
||||
<a class="button" href="/categories/" rel="noopener" title="categories" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Categories
|
||||
</span>
|
||||
</a>
|
||||
<a class="button" href="/tags/" rel="noopener" title="tags" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Tags
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if .Param "recipeButtons" }}
|
||||
<div class="buttons" style="margin:1rem 0;justify-content:left;">
|
||||
<a class="button" href="/meals/" rel="noopener" title="meals" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Find by Meal Type
|
||||
</span>
|
||||
</a>
|
||||
<a class="button" href="/diets/" rel="noopener" title="diets" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Find by Diet
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{{- end }} -->
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := union .RegularPages .Sections }}
|
||||
|
||||
{{- if .IsHome }}
|
||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
||||
{{- end }}
|
||||
|
||||
{{- $paginator := .Paginate $pages }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
|
||||
{{- $term := .Data.Term }}
|
||||
<h1 style="margin: calc(var(--gap)*2) 0;">Recently Added
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
</h1>
|
||||
|
||||
{{- range $index , $page := $paginator.Pages.ByDate.Reverse }}
|
||||
|
||||
{{- $class := "post-entry" }}
|
||||
|
||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
||||
{{- $class = "first-entry" }}
|
||||
{{- else if $term }}
|
||||
{{- $class = "post-entry tag-entry" }}
|
||||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
{{- end }}
|
||||
|
||||
{{- else }}
|
||||
<!-- i.e. if not ishome -->
|
||||
{{- range $pages.GroupByPublishDate "2006" }}
|
||||
{{- if ne .Key "0001" }}
|
||||
<div class="archive-year">
|
||||
<h2 class="archive-year-header">
|
||||
{{- replace .Key "0001" "" }}<sup class="archive-count"> {{ len .Pages }}</sup>
|
||||
</h2>
|
||||
{{- range .Pages.GroupByDate "January" }}
|
||||
<div class="archive-month">
|
||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3>
|
||||
<div class="archive-posts">
|
||||
{{- range .Pages }}
|
||||
{{- if eq .Kind "page" }}
|
||||
<div class="archive-entry">
|
||||
<!-- <h3 class="archive-entry-title">
|
||||
{{- .Title | markdownify }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h3>
|
||||
<div class="archive-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</div>
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a> -->
|
||||
<article class="post-entry">
|
||||
{{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2>
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</div>
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}{{/* end profileMode */}}
|
||||
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
204
layouts/_default/list_fw.html
Normal file
@ -0,0 +1,204 @@
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- partial "index_profile.html" . }}
|
||||
{{- else }} {{/* if not profileMode */}}
|
||||
|
||||
{{- if not .IsHome | and .Title }}
|
||||
<header class="page-header">
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
<!-- {{- if .Param "taxButtons" }}
|
||||
<div class="buttons" style="margin:1rem 0;justify-content:left;">
|
||||
<a class="button" href="/categories/" rel="noopener" title="categories" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Categories
|
||||
</span>
|
||||
</a>
|
||||
<a class="button" href="/tags/" rel="noopener" title="tags" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Tags
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if .Param "recipeButtons" }}
|
||||
<div class="buttons" style="margin:1rem 0;justify-content:left;">
|
||||
<a class="button" href="/meals/" rel="noopener" title="meals" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Find by Meal Type
|
||||
</span>
|
||||
</a>
|
||||
<a class="button" href="/diets/" rel="noopener" title="diets" style="margin: .5rem 1rem .5rem 0;">
|
||||
<span class="button-inner">
|
||||
Find by Diet
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{{- end }} -->
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := union .RegularPages .Sections }}
|
||||
|
||||
{{- if .IsHome }}
|
||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
||||
{{- end }}
|
||||
|
||||
{{- $paginator := .Paginate $pages }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
|
||||
{{- $term := .Data.Term }}
|
||||
<h1 style="margin: 2rem 0">Recently Added
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
</h1>
|
||||
|
||||
{{- range $index , $page := $paginator.Pages.ByDate.Reverse }}
|
||||
|
||||
{{- $class := "post-entry" }}
|
||||
|
||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
||||
{{- $class = "first-entry" }}
|
||||
{{- else if $term }}
|
||||
{{- $class = "post-entry tag-entry" }}
|
||||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
{{- end }}
|
||||
|
||||
{{- else }}
|
||||
<!-- i.e. if not ishome -->
|
||||
{{- range $pages.GroupByPublishDate "2006" }}
|
||||
{{- if ne .Key "0001" }}
|
||||
<div class="archive-year">
|
||||
<!-- <h2 class="archive-year-header">
|
||||
{{- replace .Key "0001" "" }}<sup class="archive-count"> {{ len .Pages }}</sup>
|
||||
</h2> -->
|
||||
{{- range .Pages.GroupByDate "January" }}
|
||||
<!-- <div class="archive-month"> -->
|
||||
<!-- <h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3> -->
|
||||
<div class="archive-posts">
|
||||
{{- range .Pages }}
|
||||
{{- if eq .Kind "page" }}
|
||||
<div class="archive-entry">
|
||||
<!-- <h3 class="archive-entry-title">
|
||||
{{- .Title | markdownify }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h3>
|
||||
<div class="archive-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</div>
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a> -->
|
||||
<article class="post-entry">
|
||||
{{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2>
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}{{/* end profileMode */}}
|
||||
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
165
layouts/partials/header.html
Normal file
@ -0,0 +1,165 @@
|
||||
{{- /* theme-toggle is enabled */}}
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
{{- /* theme is light */}}
|
||||
{{- if (eq site.Params.defaultTheme "light") }}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- /* theme is dark */}}
|
||||
{{- else if (eq site.Params.defaultTheme "dark") }}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- else }}
|
||||
{{- /* theme is auto */}}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
} else if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
{{- /* theme-toggle is disabled and theme is auto */}}
|
||||
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
|
||||
<script>
|
||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<!-- {{- $label_text := (site.Params.label.text | default site.Title) }} -->
|
||||
{{- $label_text := (site.Params.label.text | default " ") }}
|
||||
{{- if site.Title }}
|
||||
<a href="{{ "" | absLangURL }}" accesskey="h" title="{{ $label_text }} (Alt + H)">
|
||||
{{- if site.Params.label.icon }}
|
||||
{{- $img := resources.Get site.Params.label.icon }}
|
||||
{{- if $img }}
|
||||
<!-- <img src="{{ $img.Permalink }}" alt="" aria-label="logo"
|
||||
height="{{- site.Params.label.iconHeight | default "100" -}}"> -->
|
||||
<img src="{{ $img.Permalink }}" alt="" aria-label="logo">
|
||||
{{- else }}
|
||||
<img src="{{- site.Params.label.icon | absURL -}}" alt="" aria-label="logo" >
|
||||
<!-- height="{{- site.Params.label.iconHeight | default "100" -}}"> -->
|
||||
{{- end -}}
|
||||
{{- else if hasPrefix site.Params.label.iconSVG "<svg" }}
|
||||
{{ site.Params.label.iconSVG | safeHTML }}
|
||||
{{- end -}}
|
||||
{{- $label_text -}}
|
||||
</a>
|
||||
{{- end }}
|
||||
<!-- <div class="logo-switches">
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
{{- end }}
|
||||
|
||||
{{- $lang := .Lang}}
|
||||
{{- $separator := or $label_text (not site.Params.disableThemeToggle)}}
|
||||
{{- with site.Home.AllTranslations }}
|
||||
<ul class="lang-switch">
|
||||
{{- if $separator }}<li>|</li>{{ end }}
|
||||
{{- range . -}}
|
||||
{{- if ne $lang .Lang }}
|
||||
<li>
|
||||
<a href="{{- .Permalink -}}" title="{{ .Language.Params.languageAltTitle | default (.Language.LanguageName | emojify) | default (.Lang | title) }}"
|
||||
aria-label="{{ .Language.LanguageName | default (.Lang | title) }}">
|
||||
{{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }}
|
||||
{{- .Language.LanguageName | emojify -}}
|
||||
{{- else }}
|
||||
{{- .Lang | title -}}
|
||||
{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end}}
|
||||
</ul>
|
||||
{{- end }}
|
||||
</div> -->
|
||||
</div>
|
||||
{{- $currentPage := . }}
|
||||
|
||||
<ul id="menu">
|
||||
{{- range site.Menus.main }}
|
||||
{{- $menu_item_url := (cond (strings.HasSuffix .URL "/") .URL (printf "%s/" .URL) ) | absLangURL }}
|
||||
{{- $page_url:= $currentPage.Permalink | absLangURL }}
|
||||
{{- $is_search := eq (site.GetPage .KeyName).Layout `search` }}
|
||||
<li>
|
||||
<a href="{{ .URL | absLangURL }}" title="{{ .Title | default .Name }} {{- cond $is_search (" (Alt + /)" | safeHTMLAttr) ("" | safeHTMLAttr ) }}"
|
||||
{{- cond $is_search (" accesskey=/" | safeHTMLAttr) ("" | safeHTMLAttr ) }}>
|
||||
<span {{- if eq $menu_item_url $page_url }} class="active" {{- end }}>
|
||||
{{- .Pre }}
|
||||
{{- .Name -}}
|
||||
{{ .Post -}}
|
||||
</span>
|
||||
{{- if (findRE "://" .URL) }}
|
||||
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
|
||||
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
|
||||
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
|
||||
<path d="M15 3h6v6"></path>
|
||||
<path d="M10 14L21 3"></path>
|
||||
</svg>
|
||||
{{- end }}
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
<div class="logo-switches">
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
{{- end }}
|
||||
|
||||
</div>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 3.1 KiB |
BIN
static/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
static/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
static/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
static/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
static/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
static/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
static/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
static/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
static/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
static/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
static/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
static/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
static/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/apple-icon.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 914 B |
2
static/browserconfig.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
BIN
static/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
static/favicon-32x32.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
static/favicon-96x96.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
static/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
41
static/manifest.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
BIN
static/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
static/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
static/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
1
static/site.webmanifest
Normal file
@ -0,0 +1 @@
|
||||
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
@ -1 +1 @@
|
||||
Subproject commit 51d16dc44db19145ba1e2280304d150142d15ff7
|
||||
Subproject commit 01a665b3a6b4b31f63ff0e5dd62b887c1cff178c
|