.github/ISSUE_TEMPLATE/bug_report.md
@@ -4,7 +4,6 @@ title: '' labels: bug assignees: lxndrblz --- **Describe the bug** @@ -12,6 +11,7 @@ **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -24,17 +24,19 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version of the Theme - Version of Hugo (run a `hugo version` if unsure) - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version of the Theme - Version of Hugo (run a `hugo version` if unsure) **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version of the Theme - Version of Hugo (run a `hugo version` if unsure) - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version of the Theme - Version of Hugo (run a `hugo version` if unsure) **Additional context** Add any other context about the problem here. .github/ISSUE_TEMPLATE/feature_request.md
@@ -4,7 +4,6 @@ title: '' labels: enhancement assignees: lxndrblz --- **Is your feature request related to a problem? Please describe.** .gitignore
@@ -1,4 +1,5 @@ **/themes/ demo/ .hugo/* !.hugo/version !.hugo/version /node_modules README.md
@@ -513,8 +513,9 @@ mainSections = ["post", "docs"] ``` ### _index.md and post section header You can place custom content, by creating `_index.md` markdown file within the content directory. An example can be found [here](https://github.com/lxndrblz/anatole/blob/exampleSite/content/english/_index.md). Uncomment the section as needed. This file `_index.md` also has a parameter called `mainSectionsTitle`, which lets you specify a header for the posts on the main page. This header will be styled and placed always after the content of the `_index.md` it self. ### \_index.md and post section header You can place custom content, by creating `_index.md` markdown file within the content directory. An example can be found [here](https://github.com/lxndrblz/anatole/blob/exampleSite/content/english/_index.md). Uncomment the section as needed. This file `_index.md` also has a parameter called `mainSectionsTitle`, which lets you specify a header for the posts on the main page. This header will be styled and placed always after the content of the `_index.md` it self. ### Robots.txt @@ -603,11 +604,12 @@ ``` ### External Redirect URLs You can create pages, which redirect to another (external) URL with a short delay. This can be useful for migrating previously indexed URLs, which no longer exist, or for communicating complex external URLs to your readers. You will have to define a `redirectUrl` in the markdown header of the post or page, which you want to forward. An example can be found in the [redirect.md](https://github.com/lxndrblz/anatole/blob/master/exampleSite/content/english/post/redirect.md). The page will be automatically redirected with a delay of one second. Additionally, you can include the `{{% loading %}}` shortcode, which will display a spinner on the page that will be redirected. If it does not display, make sure that unsafe mode is enabled for `markup.goldmark.renderer`. Additionally, you can include the `{{% loading %}}` shortcode, which will display a spinner on the page that will be redirected. If it does not display, make sure that unsafe mode is enabled for `markup.goldmark.renderer`. ## License assets/css/markupHighlight.css
@@ -132,85 +132,336 @@ --chr-gu-color: #75715e; } /* Background */ .chroma { color: var(--chr-def-color); background-color: var(--chr-def-bg-color) } /* Other */ .chroma .x { } /* Error */ .chroma .err { color: var(--chr-err-color); background-color: var(--chr-err-bg-color) } /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: var(--chr-hl-bg-color) } /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: var(--chr-lnt-color) } /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: var(--chr-ln-color) } /* Keyword */ .chroma .k { color: var(--chr-k-color) } /* KeywordConstant */ .chroma .kc { color: var(--chr-kc-color) } /* KeywordDeclaration */ .chroma .kd { color: var(--chr-kd-color) } /* KeywordNamespace */ .chroma .kn { color: var(--chr-kn-color) } /* KeywordPseudo */ .chroma .kp { color: var(--chr-kp-color) } /* KeywordReserved */ .chroma .kr { color: var(--chr-kr-color) } /* KeywordType */ .chroma .kt { color: var(--chr-kt-color) } /* Name */ .chroma .n { color: var(--chr-n-color) } /* NameAttribute */ .chroma .na { color: var(--chr-na-color) } /* NameBuiltin */ .chroma .nb { color: var(--chr-nb-color) } /* NameBuiltinPseudo */ .chroma .bp { color: var(--chr-bp-color) } /* NameClass */ .chroma .nc { color: var(--chr-nc-color) } /* NameConstant */ .chroma .no { color: var(--chr-no-color) } /* NameDecorator */ .chroma .nd { color: var(--chr-nd-color) } /* NameEntity */ .chroma .ni { color: var(--chr-ni-color) } /* NameException */ .chroma .ne { color: var(--chr-ne-color) } /* NameFunction */ .chroma .nf { color: var(--chr-nf-color) } /* NameFunctionMagic */ .chroma .fm { color: var(--chr-fm-color) } /* NameLabel */ .chroma .nl { color: var(--chr-nl-color) } /* NameNamespace */ .chroma .nn { color: var(--chr-nn-color) } /* NameOther */ .chroma .nx { color: var(--chr-nx-color) } /* NameProperty */ .chroma .py { color: var(--chr-py-color) } /* NameTag */ .chroma .nt { color: var(--chr-nt-color) } /* NameVariable */ .chroma .nv { color: var(--chr-nv-color) } /* NameVariableClass */ .chroma .vc { color: var(--chr-vc-color) } /* NameVariableGlobal */ .chroma .vg { color: var(--chr-vg-color) } /* NameVariableInstance */ .chroma .vi { color: var(--chr-vi-color) } /* NameVariableMagic */ .chroma .vm { color: var(--chr-vm-color) } /* Literal */ .chroma .l { color: var(--chr-l-color) } /* LiteralDate */ .chroma .ld { color: var(--chr-ld-color) } /* LiteralString */ .chroma .s { color: var(--chr-s-color) } /* LiteralStringAffix */ .chroma .sa { color: var(--chr-sa-color) } /* LiteralStringBacktick */ .chroma .sb { color: var(--chr-sb-color) } /* LiteralStringChar */ .chroma .sc { color: var(--chr-sc-color) } /* LiteralStringDelimiter */ .chroma .dl { color: var(--chr-dl-color) } /* LiteralStringDoc */ .chroma .sd { color: var(--chr-sd-color) } /* LiteralStringDouble */ .chroma .s2 { color: var(--chr-s2-color) } /* LiteralStringEscape */ .chroma .se { color: var(--chr-se-color) } /* LiteralStringHeredoc */ .chroma .sh { color: var(--chr-sh-color) } /* LiteralStringInterpol */ .chroma .si { color: var(--chr-si-color) } /* LiteralStringOther */ .chroma .sx { color: var(--chr-sx-color) } /* LiteralStringRegex */ .chroma .sr { color: var(--chr-sr-color) } /* LiteralStringSingle */ .chroma .s1 { color: var(--chr-s1-color) } /* LiteralStringSymbol */ .chroma .ss { color: var(--chr-ss-color) } /* LiteralNumber */ .chroma .m { color: var(--chr-m-color) } /* LiteralNumberBin */ .chroma .mb { color: var(--chr-mb-color) } /* LiteralNumberFloat */ .chroma .mf { color: var(--chr-mf-color) } /* LiteralNumberHex */ .chroma .mh { color: var(--chr-mh-color) } /* LiteralNumberInteger */ .chroma .mi { color: var(--chr-mi-color) } /* LiteralNumberIntegerLong */ .chroma .il { color: var(--chr-il-color) } /* LiteralNumberOct */ .chroma .mo { color: var(--chr-mo-color) } /* Operator */ .chroma .o { color: var(--chr-o-color) } /* OperatorWord */ .chroma .ow { color: var(--chr-ow-color) } /* Punctuation */ .chroma .p { color: var(--chr-p-color) } /* Comment */ .chroma .c { color: var(--chr-c-color) } /* CommentHashbang */ .chroma .ch { color: var(--chr-ch-color) } /* CommentMultiline */ .chroma .cm { color: var(--chr-cm-color) } /* CommentSingle */ .chroma .c1 { color: var(--chr-c1-color) } /* CommentSpecial */ .chroma .cs { color: var(--chr-cs-color) } /* CommentPreproc */ .chroma .cp { color: var(--chr-cp-color) } /* CommentPreprocFile */ .chroma .cpf { color: var(--chr-cpf-color) } /* Generic */ .chroma .g { } /* GenericDeleted */ .chroma .gd { } /* GenericEmph */ .chroma .ge { font-style: italic } /* GenericError */ .chroma .gr { } /* GenericHeading */ .chroma .gh { } /* GenericInserted */ .chroma .gi { } /* GenericOutput */ .chroma .go { } /* GenericPrompt */ .chroma .gp { } /* GenericStrong */ .chroma .gs { font-weight: bold } /* GenericSubheading */ .chroma .gu { } /* GenericTraceback */ .chroma .gt { } /* GenericUnderline */ .chroma .gl { } /* TextWhitespace */ .chroma .w { } /* Background */ .chroma { color: var(--chr-def-color); background-color: var(--chr-def-bg-color); } /* Other */ .chroma .x { } /* Error */ .chroma .err { color: var(--chr-err-color); background-color: var(--chr-err-bg-color); } /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } /* LineHighlight */ .chroma .hl { display: block; width: 100%; background-color: var(--chr-hl-bg-color); } /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: var(--chr-lnt-color); } /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: var(--chr-ln-color); } /* Keyword */ .chroma .k { color: var(--chr-k-color); } /* KeywordConstant */ .chroma .kc { color: var(--chr-kc-color); } /* KeywordDeclaration */ .chroma .kd { color: var(--chr-kd-color); } /* KeywordNamespace */ .chroma .kn { color: var(--chr-kn-color); } /* KeywordPseudo */ .chroma .kp { color: var(--chr-kp-color); } /* KeywordReserved */ .chroma .kr { color: var(--chr-kr-color); } /* KeywordType */ .chroma .kt { color: var(--chr-kt-color); } /* Name */ .chroma .n { color: var(--chr-n-color); } /* NameAttribute */ .chroma .na { color: var(--chr-na-color); } /* NameBuiltin */ .chroma .nb { color: var(--chr-nb-color); } /* NameBuiltinPseudo */ .chroma .bp { color: var(--chr-bp-color); } /* NameClass */ .chroma .nc { color: var(--chr-nc-color); } /* NameConstant */ .chroma .no { color: var(--chr-no-color); } /* NameDecorator */ .chroma .nd { color: var(--chr-nd-color); } /* NameEntity */ .chroma .ni { color: var(--chr-ni-color); } /* NameException */ .chroma .ne { color: var(--chr-ne-color); } /* NameFunction */ .chroma .nf { color: var(--chr-nf-color); } /* NameFunctionMagic */ .chroma .fm { color: var(--chr-fm-color); } /* NameLabel */ .chroma .nl { color: var(--chr-nl-color); } /* NameNamespace */ .chroma .nn { color: var(--chr-nn-color); } /* NameOther */ .chroma .nx { color: var(--chr-nx-color); } /* NameProperty */ .chroma .py { color: var(--chr-py-color); } /* NameTag */ .chroma .nt { color: var(--chr-nt-color); } /* NameVariable */ .chroma .nv { color: var(--chr-nv-color); } /* NameVariableClass */ .chroma .vc { color: var(--chr-vc-color); } /* NameVariableGlobal */ .chroma .vg { color: var(--chr-vg-color); } /* NameVariableInstance */ .chroma .vi { color: var(--chr-vi-color); } /* NameVariableMagic */ .chroma .vm { color: var(--chr-vm-color); } /* Literal */ .chroma .l { color: var(--chr-l-color); } /* LiteralDate */ .chroma .ld { color: var(--chr-ld-color); } /* LiteralString */ .chroma .s { color: var(--chr-s-color); } /* LiteralStringAffix */ .chroma .sa { color: var(--chr-sa-color); } /* LiteralStringBacktick */ .chroma .sb { color: var(--chr-sb-color); } /* LiteralStringChar */ .chroma .sc { color: var(--chr-sc-color); } /* LiteralStringDelimiter */ .chroma .dl { color: var(--chr-dl-color); } /* LiteralStringDoc */ .chroma .sd { color: var(--chr-sd-color); } /* LiteralStringDouble */ .chroma .s2 { color: var(--chr-s2-color); } /* LiteralStringEscape */ .chroma .se { color: var(--chr-se-color); } /* LiteralStringHeredoc */ .chroma .sh { color: var(--chr-sh-color); } /* LiteralStringInterpol */ .chroma .si { color: var(--chr-si-color); } /* LiteralStringOther */ .chroma .sx { color: var(--chr-sx-color); } /* LiteralStringRegex */ .chroma .sr { color: var(--chr-sr-color); } /* LiteralStringSingle */ .chroma .s1 { color: var(--chr-s1-color); } /* LiteralStringSymbol */ .chroma .ss { color: var(--chr-ss-color); } /* LiteralNumber */ .chroma .m { color: var(--chr-m-color); } /* LiteralNumberBin */ .chroma .mb { color: var(--chr-mb-color); } /* LiteralNumberFloat */ .chroma .mf { color: var(--chr-mf-color); } /* LiteralNumberHex */ .chroma .mh { color: var(--chr-mh-color); } /* LiteralNumberInteger */ .chroma .mi { color: var(--chr-mi-color); } /* LiteralNumberIntegerLong */ .chroma .il { color: var(--chr-il-color); } /* LiteralNumberOct */ .chroma .mo { color: var(--chr-mo-color); } /* Operator */ .chroma .o { color: var(--chr-o-color); } /* OperatorWord */ .chroma .ow { color: var(--chr-ow-color); } /* Punctuation */ .chroma .p { color: var(--chr-p-color); } /* Comment */ .chroma .c { color: var(--chr-c-color); } /* CommentHashbang */ .chroma .ch { color: var(--chr-ch-color); } /* CommentMultiline */ .chroma .cm { color: var(--chr-cm-color); } /* CommentSingle */ .chroma .c1 { color: var(--chr-c1-color); } /* CommentSpecial */ .chroma .cs { color: var(--chr-cs-color); } /* CommentPreproc */ .chroma .cp { color: var(--chr-cp-color); } /* CommentPreprocFile */ .chroma .cpf { color: var(--chr-cpf-color); } /* Generic */ .chroma .g { } /* GenericDeleted */ .chroma .gd { } /* GenericEmph */ .chroma .ge { font-style: italic; } /* GenericError */ .chroma .gr { } /* GenericHeading */ .chroma .gh { } /* GenericInserted */ .chroma .gi { } /* GenericOutput */ .chroma .go { } /* GenericPrompt */ .chroma .gp { } /* GenericStrong */ .chroma .gs { font-weight: bold; } /* GenericSubheading */ .chroma .gu { } /* GenericTraceback */ .chroma .gt { } /* GenericUnderline */ .chroma .gl { } /* TextWhitespace */ .chroma .w { } assets/css/spinner.css
@@ -4,7 +4,7 @@ } html[data-theme='dark'] { --sk-color: rgb(169, 169, 179) --sk-color: rgb(169, 169, 179); } .sk-wrapper { @@ -29,7 +29,7 @@ } .sk-fold-cube:before { content: ""; content: ''; position: absolute; top: 0; left: 0; @@ -82,6 +82,4 @@ transform: perspective(140px) rotateY(180deg); opacity: 0; } } assets/css/style.css
@@ -1,617 +1,617 @@ @charset "UTF-8"; :root { --bg-color: #fff; --secondary-bg-color: #eeeeee; --heading-color: #464646; --body-color: rgba(0, 0, 0, 0.7); --post-color: rgba(0, 0, 0, 0.44); --border-color: rgba(0, 0, 0, 0.15); --form-border-color: #9f9f9f; --form-button-hover-border-color: #000; --pre-bg-color: #f9f9fd; --nav-text-color: #5a5a5a; --tag-color: #424242; --blockquote-text-color: #858585; --blockquote-border-color: #dfe2e5; --link-color: #0366d7; --thumbnail-height: 15em; scroll-padding-top: 100px; --body-max-width: 1920px; --content-ratio: {{ .Site.Params.contentratio | default 0.6 }}; --sidebar-ratio: calc(1 - var(--content-ratio)); --content-max-width: calc(var(--body-max-width) * var(--content-ratio)); --sidebar-max-width: calc(var(--body-max-width) - var(--content-max-width)); --content-width: calc(var(--content-ratio) * 100%); --sidebar-width: calc(var(--sidebar-ratio) * 100%); --bg-color: #fff; --secondary-bg-color: #eeeeee; --heading-color: #464646; --body-color: rgba(0, 0, 0, 0.7); --post-color: rgba(0, 0, 0, 0.44); --border-color: rgba(0, 0, 0, 0.15); --form-border-color: #9f9f9f; --form-button-hover-border-color: #000; --pre-bg-color: #f9f9fd; --nav-text-color: #5a5a5a; --tag-color: #424242; --blockquote-text-color: #858585; --blockquote-border-color: #dfe2e5; --link-color: #0366d7; --thumbnail-height: 15em; scroll-padding-top: 100px; --body-max-width: 1920px; --sidebar-ratio: calc(1 - var(--content-ratio)); --content-max-width: calc(var(--body-max-width) * var(--content-ratio)); --sidebar-max-width: calc(var(--body-max-width) - var(--content-max-width)); --content-width: calc(var(--content-ratio) * 100%); --sidebar-width: calc(var(--sidebar-ratio) * 100%); /* prettier-ignore */ --content-ratio: {{ .Site.Params.contentratio | default 0.6 }} } html[data-theme='dark'] { --bg-color: #010408; --secondary-bg-color: rgb(56, 56, 56); --heading-color: #c9d1d9; --body-color: rgb(169, 169, 179); --post-color: rgba(0, 0, 0, 0.44); --border-color: #30363d; --form-border-color: rgb(169, 169, 179); --form-button-hover-border-color: #fff; --pre-bg-color: rgb(33, 33, 45); --nav-text-color: rgb(191, 191, 191); --tag-color: rgb(191, 191, 191); --blockquote-text-color: #808080; --blockquote-border-color: #424242; --link-color: #58a6fe; --bg-color: #010408; --secondary-bg-color: rgb(56, 56, 56); --heading-color: #c9d1d9; --body-color: rgb(169, 169, 179); --post-color: rgba(0, 0, 0, 0.44); --border-color: #30363d; --form-border-color: rgb(169, 169, 179); --form-button-hover-border-color: #fff; --pre-bg-color: rgb(33, 33, 45); --nav-text-color: rgb(191, 191, 191); --tag-color: rgb(191, 191, 191); --blockquote-text-color: #808080; --blockquote-border-color: #424242; --link-color: #58a6fe; } html { background-color: var(--bg-color); -webkit-font-smoothing: antialiased; background-color: var(--bg-color); -webkit-font-smoothing: antialiased; } body { color: var(--body-color); font-family: 'PingHei', 'PingFang SC', 'Helvetica Neue', 'Work Sans', 'Hiragino Sans GB', sans-serif; font-size: 15px; width: 100%; margin: 0 auto; background-color: var(--bg-color); color: var(--body-color); font-family: 'PingHei', 'PingFang SC', 'Helvetica Neue', 'Work Sans', 'Hiragino Sans GB', sans-serif; font-size: 15px; width: 100%; margin: 0 auto; background-color: var(--bg-color); } p { line-height: 1.9em; font-weight: 400; font-size: 14px; line-height: 1.9em; font-weight: 400; font-size: 14px; } a { text-decoration: none; color: var(--link-color); text-decoration: none; color: var(--link-color); } blockquote { padding: 0 1em; border-left: .25em solid var(--blockquote-border-color); color: var(--blockquote-text-color); padding: 0 1em; border-left: 0.25em solid var(--blockquote-border-color); color: var(--blockquote-text-color); } .category { padding: 4px 6px; border-radius: 3px; color: var(--tag-color) !important; background-color: var(--secondary-bg-color); border: 1px solid var(--border-color); padding: 4px 6px; border-radius: 3px; color: var(--tag-color) !important; background-color: var(--secondary-bg-color); border: 1px solid var(--border-color); } .tag::before { content: "#"; opacity: .5; content: '#'; opacity: 0.5; } .tag, .category { display: inline-block; font-size: 15px; line-height: 1; margin: 5px 8px 5px 0; display: inline-block; font-size: 15px; line-height: 1; margin: 5px 8px 5px 0; } pre { background-color: var(--pre-bg-color); padding: 5px; display: block; overflow-x: auto; background-color: var(--pre-bg-color); padding: 5px; display: block; overflow-x: auto; } .info i { opacity: 0.5; margin-right: 5px; opacity: 0.5; margin-right: 5px; } a:link, a:visited { opacity: 1; opacity: 1; } a:hover, a:active { color: var(--link-color); color: var(--link-color); } /*basic styles ends*/ /*animation starts*/ .animated { transition: top .8s linear; -webkit-animation-duration: 1s; -moz-animation-duration: 1s; -ms-animation-duration: 1s; -o-animation-duration: 1s; animation-duration: 1s; transition: top 0.8s linear; -webkit-animation-duration: 1s; -moz-animation-duration: 1s; -ms-animation-duration: 1s; -o-animation-duration: 1s; animation-duration: 1s; } .animated.hinge { -webkit-animation-duration: 1s; -moz-animation-duration: 1s; -ms-animation-duration: 1s; -o-animation-duration: 1s; animation-duration: 1s; -webkit-animation-duration: 1s; -moz-animation-duration: 1s; -ms-animation-duration: 1s; -o-animation-duration: 1s; animation-duration: 1s; } @-webkit-keyframes fadeInDown { 0% { -webkit-transform: translateY(-20px); } 0% { -webkit-transform: translateY(-20px); } 100% { -webkit-transform: translateY(0); } 100% { -webkit-transform: translateY(0); } } @-moz-keyframes fadeInDown { 0% { -moz-transform: translateY(-20px); } 0% { -moz-transform: translateY(-20px); } 100% { -moz-transform: translateY(0); } 100% { -moz-transform: translateY(0); } } @-o-keyframes fadeInDown { 0% { -o-transform: translateY(-20px); } 0% { -o-transform: translateY(-20px); } 100% { -o-transform: translateY(0); } 100% { -o-transform: translateY(0); } } @keyframes fadeInDown { 0% { transform: translateY(-20px); } 0% { transform: translateY(-20px); } 100% { transform: translateY(0); } 100% { transform: translateY(0); } } .fadeInDown { -webkit-animation-name: fadeInDown; -moz-animation-name: fadeInDown; -o-animation-name: fadeInDown; animation-name: fadeInDown; -webkit-animation-name: fadeInDown; -moz-animation-name: fadeInDown; -o-animation-name: fadeInDown; animation-name: fadeInDown; } /*animation ends*/ .nav__list { margin: 0; margin: 0; } main { width: var(--content-width); width: var(--content-width); } .content { height: auto; margin-top: 80px; height: auto; margin-top: 80px; } header { width: var(--content-width); position: fixed; right: 0; z-index: 3; background-color: var(--bg-color); width: var(--content-width); position: fixed; right: 0; z-index: 3; background-color: var(--bg-color); } header .nav__list { list-style: none; padding: 20px 30px; font-size: 12px; list-style: none; padding: 20px 30px; font-size: 12px; } header .nav__list li { position: relative; display: initial; position: relative; display: initial; } header .nav__list a { color: var(--nav-text-color); color: var(--nav-text-color); } header .nav__list a:hover { color: #2660ab; color: #2660ab; } header .nav__list a.current { color: var(--nav-text-color); padding-bottom: 22px; border-bottom: 1px solid var(--nav-text-color); color: var(--nav-text-color); padding-bottom: 22px; border-bottom: 1px solid var(--nav-text-color); } .theme-switch { margin-top: -5px; color: var(--nav-text-color); font-size: 1rem; margin-top: -5px; color: var(--nav-text-color); font-size: 1rem; } header .information { float: right; padding-top: 12px; padding-right: 20px; float: right; padding-top: 12px; padding-right: 20px; } header .information .avatar { float: right; float: right; } header .information .avatar img { width: 32px; height: 32px; border-radius: 300px; width: 32px; height: 32px; border-radius: 300px; } header .information .back_btn { float: left; padding-top: 5px; margin-right: -10px; float: left; padding-top: 5px; margin-right: -10px; } header .information .back_btn li { display: initial; padding-right: 40px; display: initial; padding-right: 40px; } aside { width: var(--sidebar-width); width: var(--sidebar-width); } .sidebar { -webkit-background-size: cover; background-size: cover; background-color: var(--bg-color); height: 100%; left: 0; z-index: 4; border-right: 1px solid var(--border-color); -webkit-background-size: cover; background-size: cover; background-color: var(--bg-color); height: 100%; left: 0; z-index: 4; border-right: 1px solid var(--border-color); } .sidebar .logo-title { top: 40%; text-align: center; top: 40%; text-align: center; } .sidebar .logo-title .description { font-size: 14px; margin: 0 1em; font-size: 14px; margin: 0 1em; } .sidebar .logo-title .logo { margin: 0 auto; margin: 0 auto; } .sidebar .logo-title .title img { width: 127px; height: 127px; border-radius: 50%; width: 127px; height: 127px; border-radius: 50%; } .sidebar .logo-title .title h3 { text-transform: uppercase; font-size: 2rem; font-weight: bold; letter-spacing: 2px; line-height: 1; margin: 1em; text-transform: uppercase; font-size: 2rem; font-weight: bold; letter-spacing: 2px; line-height: 1; margin: 1em; } .sidebar .logo-title .title a { text-decoration: none; color: var(--heading-color); font-size: 2rem; font-weight: bold; text-decoration: none; color: var(--heading-color); font-size: 2rem; font-weight: bold; } .sidebar .social-links { list-style: none; padding: 0; font-size: 14px; text-align: center; list-style: none; padding: 0; font-size: 14px; text-align: center; } .sidebar .social-links i { margin-right: 3px; margin-right: 3px; } .sidebar .social-links li { display: inline; padding: 0 4px; line-height: 0; display: inline; padding: 0 4px; line-height: 0; } .sidebar .social-links a { color: var(--heading-color); color: var(--heading-color); } .sidebar .social-links a:hover { color: #2660ab; color: #2660ab; } .post { background-color: var(--bg-color); margin: 30px; background-color: var(--bg-color); margin: 30px; } .post .post-title h1 { text-transform: uppercase; font-size: 30px; letter-spacing: 1px; line-height: 1; text-transform: uppercase; font-size: 30px; letter-spacing: 1px; line-height: 1; } .post .post-title h2 { text-transform: uppercase; letter-spacing: 1px; font-size: 28px; line-height: 1; font-weight: 600; color: var(--heading-color); text-transform: uppercase; letter-spacing: 1px; font-size: 28px; line-height: 1; font-weight: 600; color: var(--heading-color); } .post .post-title h3 { text-transform: uppercase; letter-spacing: 1px; line-height: 1; font-weight: 600; /* color: #464646; */ color: var(--heading-color); font-size: 22px; margin: 0; text-transform: uppercase; letter-spacing: 1px; line-height: 1; font-weight: 600; /* color: #464646; */ color: var(--heading-color); font-size: 22px; margin: 0; } .post .post-title a { text-decoration: none; letter-spacing: 1px; color: var(--heading-color); text-decoration: none; letter-spacing: 1px; color: var(--heading-color); } .post .post-title a:hover { text-decoration: underline; text-decoration: underline; } .post .post-content a { text-decoration: none; letter-spacing: 1px; color: #2660ab; overflow-wrap: break-word; word-wrap: break-word; text-decoration: none; letter-spacing: 1px; color: #2660ab; overflow-wrap: break-word; word-wrap: break-word; } .post .post-content a:hover { color: #2F69B3; color: #2f69b3; } .post .post-content h3 { font-size: 22px; font-weight: 600; font-size: 22px; font-weight: 600; } .post .post-content h4 { /* color: var(--heading-color); */ font-size: 16px; /* color: var(--heading-color); */ font-size: 16px; } .post .post-content img { max-width: 100%; max-width: 100%; } .post .post-content ul { line-height: 1.9em; font-weight: 400; font-size: 14px; line-height: 1.9em; font-weight: 400; font-size: 14px; } .post .post-content ol { line-height: 1.9em; font-weight: 400; font-size: 14px; line-height: 1.9em; font-weight: 400; font-size: 14px; } .post .post-footer { padding: 0 0 10px 0; border-bottom: 1px solid var(--border-color); padding: 0 0 10px 0; border-bottom: 1px solid var(--border-color); } .post .post-footer .meta { max-width: 100%; display: flex; color: #bbbbbb; max-width: 100%; display: flex; color: #bbbbbb; } .post .post-footer .meta .info { float: left; font-size: 12px; margin-bottom: 1em; color: var(--body-color); float: left; font-size: 12px; margin-bottom: 1em; color: var(--body-color); } .post .post-footer .info .separator a { margin-right: 0.2em; margin-right: 0.2em; } .post .post-footer .meta .info .date { margin-right: 10px; margin-left: 5px margin-right: 10px; margin-left: 5px; } .post figure { max-width: 100%; height: auto; margin: 0; text-align: center; max-width: 100%; height: auto; margin: 0; text-align: center; } .post figure.right { float: right; margin-left: 1.5em; max-width: 50%; float: right; margin-left: 1.5em; max-width: 50%; } .post figure.left { float: left; margin-right: 1.5em; max-width: 50%; float: left; margin-right: 1.5em; max-width: 50%; } .post figure.big { max-width: 100vw; max-width: 100vw; } .info { margin: 1em; margin: 1em; } .info span { margin-right: 0.5em; margin-right: 0.5em; } .post .post-footer .meta a { text-decoration: none; color: var(--body-color); text-decoration: none; color: var(--body-color); } .post .post-footer .meta a:hover { color: #2660ab; color: #2660ab; } .post .post-footer .meta i { margin-right: 6px; margin-right: 6px; } .post .post-footer .tags { padding-bottom: 15px; font-size: 13px; padding-bottom: 15px; font-size: 13px; } .post .post-footer .tags ul { list-style-type: none; display: inline; margin: 0; padding: 0; list-style-type: none; display: inline; margin: 0; padding: 0; } .post .post-footer .tags ul li { list-style-type: none; margin: 0; padding-right: 5px; display: inline; list-style-type: none; margin: 0; padding-right: 5px; display: inline; } .post .post-footer .tags a { text-decoration: none; color: var(--post-color); font-weight: 400; text-decoration: none; color: var(--post-color); font-weight: 400; } .post .post-footer .tags a:hover { text-decoration: none; text-decoration: none; } .post .post-thumbnail { width: 100%; padding-bottom: 1em; box-shadow: #000; border-radius: 0.5em; overflow: hidden; transition: box-shadow .3s ease; width: 100%; padding-bottom: 1em; box-shadow: #000; border-radius: 0.5em; overflow: hidden; transition: box-shadow 0.3s ease; } .post .post-thumbnail img { width: 100%; height: var(--thumbnail-height); object-fit: cover; border: 1px solid var(--border-color); border-bottom: 0px; width: 100%; height: var(--thumbnail-height); object-fit: cover; border: 1px solid var(--border-color); border-bottom: 0px; } .pagination { margin: 30px; padding: 0px 0 56px 0; text-align: center; margin: 30px; padding: 0px 0 56px 0; text-align: center; } .pagination ul { list-style: none; margin: 0; padding: 0; height: 13px; list-style: none; margin: 0; padding: 0; height: 13px; } .pagination ul li { margin: 0 2px 0 2px; display: inline; line-height: 1; margin: 0 2px 0 2px; display: inline; line-height: 1; } .pagination ul li a { text-decoration: none; color: var(--body-color); text-decoration: none; color: var(--body-color); } .pagination .pre { float: left; float: left; } .pagination .next { float: right; float: right; } .like-reblog-buttons { float: right; float: right; } .like-button { float: right; padding: 0 0 0 10px; float: right; padding: 0 0 0 10px; } .reblog-button { float: right; padding: 0; float: right; padding: 0; } #install-btn { position: fixed; bottom: 0px; right: 6px; position: fixed; bottom: 0px; right: 6px; } #disqus_thread { margin: 30px; border-bottom: 1px solid var(--border-color); margin: 30px; border-bottom: 1px solid var(--border-color); } .footer { clear: both; text-align: center; font-size: 10px; margin: 0 auto; bottom: 0; width: 100%; padding-bottom: 20px; flex: 0; position: relative; clear: both; text-align: center; font-size: 10px; margin: 0 auto; bottom: 0; width: 100%; padding-bottom: 20px; flex: 0; position: relative; } .footer a { color: #A6A6A6; color: #a6a6a6; } .footer a:hover { color: #2660ab; color: #2660ab; } .footer__list { @@ -622,611 +622,610 @@ } .footer__item:not(:first-of-type)::before { content: "\00B7"; content: '\00B7'; padding: 4px; } /*for archive*/ .archive { width: 100%; width: 100%; } .list-with-title { font-size: 14px; margin: 30px; padding: 0; font-size: 14px; margin: 30px; padding: 0; } .list-with-title li { list-style-type: none; padding: 0; list-style-type: none; padding: 0; } .list-with-title .listing-title { font-size: 24px; color: #666666; font-weight: 600; line-height: 2.2em; font-size: 24px; color: #666666; font-weight: 600; line-height: 2.2em; } .list-with-title .listing { padding: 0; padding: 0; } .list-with-title .listing .listing-post { padding-bottom: 5px; padding-bottom: 5px; } .list-with-title .listing .listing-post .post-time { float: right; display: inline-block; max-width: 10%; text-align: right; color: #C5C5C5; float: right; display: inline-block; max-width: 10%; text-align: right; color: #c5c5c5; } .list-with-title .listing .listing-post a { color: #8F8F8F; width: 90%; display: inline-block; color: #8f8f8f; width: 90%; display: inline-block; } .list-with-title .listing .listing-post a:hover { color: #2660ab; color: #2660ab; } /* share */ .share { margin: 0px 30px; display: inline-flex; margin: 0px 30px; display: inline-flex; } .evernote { width: 32px; height: 32px; border-radius: 300px; background-color: #3E3E3E; margin-right: 5px; width: 32px; height: 32px; border-radius: 300px; background-color: #3e3e3e; margin-right: 5px; } .evernote a { color: #fff; padding: 11px; font-size: 12px; color: #fff; padding: 11px; font-size: 12px; } .evernote a:hover { color: #ED6243; padding: 11px; color: #ed6243; padding: 11px; } .weibo { width: 32px; height: 32px; border-radius: 300px; background-color: #ED6243; margin-right: 5px; width: 32px; height: 32px; border-radius: 300px; background-color: #ed6243; margin-right: 5px; } .weibo a { color: #fff; padding: 9px; color: #fff; padding: 9px; } .weibo a:hover { color: #BD4226; color: #bd4226; } .twitter { width: 32px; height: 32px; border-radius: 300px; background-color: #59C0FD; margin-right: 5px; width: 32px; height: 32px; border-radius: 300px; background-color: #59c0fd; margin-right: 5px; } .twitter a { color: #fff; padding: 9px; color: #fff; padding: 9px; } .twitter a:hover { color: #4B9ECE; color: #4b9ece; } /* about */ .about { margin: 30px; margin: 30px; } .about h3 { font-size: 22px; font-size: 22px; } /* links*/ .links { margin: 30px; margin: 30px; } .links h3 { font-size: 22px; font-size: 22px; } .links a { cursor: pointer; cursor: pointer; } /* Comments */ .comment-count { color: #666; color: #666; } .tab-community { color: #666; color: #666; } .read_more { font-size: 14px; font-size: 14px; } .back-button { padding-top: 30px; max-width: 100px; padding-left: 40px; float: left; padding-top: 30px; max-width: 100px; padding-left: 40px; float: left; } /* Facebook Comments */ #fb_comments_container { margin: 30px; margin: 30px; } .utterances { max-width: unset; max-width: unset; } /* Buttons */ a.btn { color: #868686; font-weight: 400; color: #868686; font-weight: 400; } .btn { display: inline-block; position: relative; outline: 0; color: var(--post-color); background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid var(--border-color); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; display: inline-block; position: relative; outline: 0; color: var(--post-color); background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid var(--border-color); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; } .btn:hover { display: inline-block; position: relative; outline: 0px; color: #464545; background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid #464545; white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; display: inline-block; position: relative; outline: 0px; color: #464545; background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid #464545; white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; } [role="back"] { padding: 0.5em 1.25em; line-height: 1.666em; [role='back'] { padding: 0.5em 1.25em; line-height: 1.666em; } [role="home"] { padding: 0.5em 1.25em; line-height: 1.666em; [role='home'] { padding: 0.5em 1.25em; line-height: 1.666em; } [role="navigation"] { padding: 0.5em 1.25em; line-height: 1.666em; [role='navigation'] { padding: 0.5em 1.25em; line-height: 1.666em; } [role="tags"] { padding: 6px 12px; [role='tags'] { padding: 6px 12px; } /* Menu */ .menu { float: right; padding-top: 30px; float: right; padding-top: 30px; } .menu .btn-down { margin: 0px; margin: 0px; } .menu .btn-down li { list-style: none; width: 100px; list-style: none; width: 100px; } .menu .btn-down li a { display: inline-block; position: relative; padding: 0.5em 1.25em; outline: 0; color: var(--post-color); background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid var(--border-color); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; margin-top: 5px; display: inline-block; position: relative; padding: 0.5em 1.25em; outline: 0; color: var(--post-color); background: transparent; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid var(--border-color); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; margin-top: 5px; } .menu .btn-down li a:hover { position: relative; padding: 0.5em 1.25em; outline: 0; color: #fff; background: #3CBD10; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid rgba(0, 0, 0, 0.15); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; margin-top: 5px; position: relative; padding: 0.5em 1.25em; outline: 0; color: #fff; background: #3cbd10; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; border: 1px solid rgba(0, 0, 0, 0.15); white-space: nowrap; font-weight: 400; font-style: normal; border-radius: 999em; margin-top: 5px; } .menu .btn-down div { position: absolute; visibility: hidden; width: 100px; float: right; position: absolute; visibility: hidden; width: 100px; float: right; } .page_404 { text-align: center; padding-top: 50px; text-align: center; padding-top: 50px; } .navbar-burger { display: none; display: none; } @media screen and (min-width: 960px), print { header { border-bottom: 1px solid var(--border-color); } .nav__links li:not(:last-of-type) { padding-right: 20px; } header { border-bottom: 1px solid var(--border-color); } .sidebar { height: 100vh; display: flex; flex-direction: column; position: fixed; width: var(--sidebar-width); } .nav__links li:not(:last-of-type) { padding-right: 20px; } .sidebar__content { display: flex; flex-direction: column; justify-content: center; flex-grow: 1; } .sidebar { height: 100vh; display: flex; flex-direction: column; position: fixed; width: var(--sidebar-width); } .navbar { display: flex; flex-direction: column; justify-content: space-between; } .sidebar__content { display: flex; flex-direction: column; justify-content: center; flex-grow: 1; } .nav__list { display: flex; flex: 1; justify-content: space-between; align-items: center; min-height: 0; } .navbar { display: flex; flex-direction: column; justify-content: space-between; } .wrapper { display: flex; } .nav__list { display: flex; flex: 1; justify-content: space-between; align-items: center; min-height: 0; } .footer--base { display: none; } .wrapper { display: flex; } .footer--base { display: none; } } @media screen and (max-width: 960px) { aside { width: 100%; } aside { width: 100%; } .sidebar { width: 100%; border-right: none; z-index: 1; height: auto; min-height: auto; } .sidebar { width: 100%; border-right: none; z-index: 1; height: auto; min-height: auto; } .sidebar .logo-title { padding-top: 120px; } .sidebar .logo-title { padding-top: 120px; } .sidebar .logo-title .title img { width: 100px; height: 100px; } .sidebar .logo-title .title img { width: 100px; height: 100px; } .sidebar .logo-title .title h3 { font-size: 20px; } .sidebar .logo-title .title h3 { font-size: 20px; } header { width: 100%; } header { width: 100%; } .post-title h3 { line-height: 1.6; } .post-title h3 { line-height: 1.6; } main { width: 100%; } main { width: 100%; } .content { z-index: 2; } .content { z-index: 2; } .post figure.right { float: unset; max-width: 100%; margin: 0; } .post figure.left { float: unset; max-width: 100%; margin: 0; } .post figure.right { float: unset; max-width: 100%; margin: 0; } .footer--sidebar { display: none; } .post figure.left { float: unset; max-width: 100%; margin: 0; } .share { display: grid; } .footer--sidebar { display: none; } nav { display: none; } .share { display: grid; } header .nav__list { background-color: var(--secondary-bg-color); box-shadow: 0 8px 16px rgba(10, 10, 10, .1); padding: .5rem 0; width: 100%; margin-top: 0px; } nav { display: none; } header nav.is-active { display: block; } header .nav__list { background-color: var(--secondary-bg-color); box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); padding: 0.5rem 0; width: 100%; margin-top: 0px; } header .nav__list li { display: block; flex-grow: 0; flex-shrink: 0; line-height: 2.5; padding: .5rem .75rem; position: relative; text-transform: uppercase; text-align: center; font-size: 1.3em; } header nav.is-active { display: block; } header .nav__list a.current { border-bottom: none; } header .nav__list li { display: block; flex-grow: 0; flex-shrink: 0; line-height: 2.5; padding: 0.5rem 0.75rem; position: relative; text-transform: uppercase; text-align: center; font-size: 1.3em; } .navbar-burger { cursor: pointer; display: block; height: 3.25rem; position: relative; width: 3.25rem; margin-left: auto; } header .nav__list a.current { border-bottom: none; } .navbar-burger span { background-color: var(--heading-color); display: block; height: 1px; left: calc(50% - 8px); position: absolute; transform-origin: center; transition-duration: 86ms; transition-property: background-color, opacity, transform; transition-timing-function: ease-out; width: 16px; } .navbar-burger { cursor: pointer; display: block; height: 3.25rem; position: relative; width: 3.25rem; margin-left: auto; } .navbar-burger span:nth-child(1) { top: calc(50% - 6px); } .navbar-burger span { background-color: var(--heading-color); display: block; height: 1px; left: calc(50% - 8px); position: absolute; transform-origin: center; transition-duration: 86ms; transition-property: background-color, opacity, transform; transition-timing-function: ease-out; width: 16px; } .navbar-burger span:nth-child(2) { top: calc(50% - 1px); } .navbar-burger span:nth-child(1) { top: calc(50% - 6px); } .navbar-burger span:nth-child(3) { top: calc(50% + 4px); } .navbar-burger span:nth-child(2) { top: calc(50% - 1px); } .list-with-title .listing .listing-post .post-time { max-width: 20%; } .list-with-title .listing .listing-post a { width: 80%; } .navbar-burger span:nth-child(3) { top: calc(50% + 4px); } .list-with-title .listing .listing-post .post-time { max-width: 20%; } .list-with-title .listing .listing-post a { width: 80%; } } /* Medium zoom */ .medium-zoom-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; opacity: 0; transition: opacity 300ms; will-change: opacity; background: var(--bg-color); position: fixed; top: 0; right: 0; bottom: 0; left: 0; opacity: 0; transition: opacity 300ms; will-change: opacity; background: var(--bg-color); } .medium-zoom--opened .medium-zoom-overlay { cursor: pointer; cursor: zoom-out; opacity: 1; cursor: pointer; cursor: zoom-out; opacity: 1; } .medium-zoom-image { cursor: pointer; cursor: zoom-in; /* cursor: pointer; cursor: zoom-in; /* The `transition` is marked as "!important" for the animation to happen even though it's overriden by another inline `transition` style attribute. This is problematic with frameworks that generate inline styles on their images (e.g. Gatsby). See https://github.com/francoischalifour/medium-zoom/issues/110 */ transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) !important; z-index: 100; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) !important; z-index: 100; } .medium-zoom-image--hidden { visibility: hidden; visibility: hidden; } .medium-zoom-image--opened { position: relative; cursor: pointer; cursor: zoom-out; will-change: transform; position: relative; cursor: pointer; cursor: zoom-out; will-change: transform; } @media print { header { display: none; } header { display: none; } } @media (min-width: 1921px){ .sidebar { padding-left: 17%; padding-right: 3%; width: calc(var(--sidebar-width) - 20%); } .content { padding-right: 20%; } header{ position: fixed; width: var(--content-width); } @media (min-width: 1921px) { .sidebar { padding-left: 17%; padding-right: 3%; width: calc(var(--sidebar-width) - 20%); } .content { padding-right: 20%; } header { position: fixed; width: var(--content-width); } } /* (CONTACT) FORM */ .contact-form { margin-top: 30px; margin-top: 30px; } .form-style{ width: 100%; .form-style { width: 100%; } .form-style ul { padding: 0; margin: 0; list-style: none; padding: 0; margin: 0; list-style: none; } .form-style ul li { display: block; margin-bottom: 10px; min-height: 35px; display: block; margin-bottom: 10px; min-height: 35px; } .form-style ul li .field-style { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; font-size: 14px; padding: 8px; outline: none; background-color: var(--bg-color); border: 1px solid var(--form-border-color); color: var(--body-color); box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; font-size: 14px; padding: 8px; outline: none; background-color: var(--bg-color); border: 1px solid var(--form-border-color); color: var(--body-color); } .form-style ul li .field-style:focus { box-shadow: 0 0 5px; border:1px solid; .form-style ul li .field-style:focus { box-shadow: 0 0 5px; border: 1px solid; } .form-style ul li .field-split { width: 49%; width: 49%; } .form-style ul li .field-full { width: 100%; width: 100%; } .form-style ul li input.align-left { float:left; float: left; } .form-style ul li input.align-right { float:right; float: right; } .form-style ul li textarea { background-color: var(--bg-color); border: 1px solid var(--form-border-color); color: var(--body-color); width: 100%; height: auto; background-color: var(--bg-color); border: 1px solid var(--form-border-color); color: var(--body-color); width: 100%; height: auto; } .form-style ul li input[type="button"], .form-style ul li input[type="submit"] { background-color: var(--bg-color); border: 1px solid var(--form-border-color); display: inline-block; cursor: pointer; color: var(--body-color); text-decoration: none; width: 100%; .form-style ul li input[type='button'], .form-style ul li input[type='submit'] { background-color: var(--bg-color); border: 1px solid var(--form-border-color); display: inline-block; cursor: pointer; color: var(--body-color); text-decoration: none; width: 100%; } .form-style ul li input[type="button"]:hover, .form-style ul li input[type="submit"]:hover { background-color: var(--bg-color); border: 1px solid var(--form-button-hover-border-color); .form-style ul li input[type='button']:hover, .form-style ul li input[type='submit']:hover { background-color: var(--bg-color); border: 1px solid var(--form-button-hover-border-color); } /* (CONTACT) FORM END */ assets/css/style.rtl.css
@@ -1,103 +1,99 @@ @charset "UTF-8"; blockquote { border-right: .25em solid var(--blockquote-border-color); border-left: inherit; border-right: 0.25em solid var(--blockquote-border-color); border-left: inherit; } .tag, .category { margin: 5px 0 5px 8px; margin: 5px 0 5px 8px; } .info i { margin-left: 5px; margin-right: inherit; margin-left: 5px; margin-right: inherit; } .sidebar { right: 0; border-left: 1px solid var(--border-color); border-right: inherit; right: 0; border-left: 1px solid var(--border-color); border-right: inherit; } .sidebar .social-links i { margin-left: 3px; margin-right: inherit; margin-left: 3px; margin-right: inherit; } .post .post-footer .info .separator a { margin-left: 0.2em; margin-right: inherit; margin-left: 0.2em; margin-right: inherit; } .post .post-footer .meta .info .date { margin-left: 10px; margin-right: 5px margin-left: 10px; margin-right: 5px; } .post figure.right { float: left; margin-right: 1.5em; margin-left: inherit; float: left; margin-right: 1.5em; margin-left: inherit; } .post figure.left { float: right; margin-left: 1.5em; margin-right: inherit; float: right; margin-left: 1.5em; margin-right: inherit; } .info span { margin-left: 0.5em; margin-right: inherit; margin-left: 0.5em; margin-right: inherit; } .post .post-footer .meta i { margin-left: 6px; margin-right: inherit; margin-left: 6px; margin-right: inherit; } .post .post-footer .tags ul li { padding-left: 5px; padding-right: inherit; padding-left: 5px; padding-right: inherit; } .pagination .pre { float: right; float: right; } .pagination .next { float: left; float: left; } .list-with-title .listing .listing-post .post-time { float: left; text-align: left; float: left; text-align: left; } @media screen and (min-width: 960px), print { header { position: fixed; left: 0; right: auto; } header .nav__list li { padding-left: 20px; } header .nav__list li:not(:last-of-type) { padding-right: inherit; } header { position: fixed; left: 0; right: auto; } header .nav__list li { padding-left: 20px; } header .nav__list li:not(:last-of-type) { padding-right: inherit; } } @media (min-width: 1921px){ .sidebar { padding-right: 17%; padding-left: 3%; } .content { padding-right: inherit; padding-left: 20%; } } @media (min-width: 1921px) { .sidebar { padding-right: 17%; padding-left: 3%; } .content { padding-right: inherit; padding-left: 20%; } } assets/js/anatole-header.js
@@ -1,18 +1,18 @@ document.addEventListener("DOMContentLoaded", function () { // Get all "navbar-burger" elements var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"), 0); var nav = document.querySelector("nav"); // Check if there are any navbar burgers if ($navbarBurgers.length > 0) { // Add a click event on each of them $navbarBurgers.forEach(function ($el) { $el.addEventListener("click", function () { var target = $el.dataset.target; var $target = document.getElementById(target); $el.classList.toggle("is-active"); $target.classList.toggle("is-active"); nav.classList.toggle("is-active"); }); }); } }); document.addEventListener('DOMContentLoaded', function () { // Get all "navbar-burger" elements var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0); var nav = document.querySelector('nav'); // Check if there are any navbar burgers if ($navbarBurgers.length > 0) { // Add a click event on each of them $navbarBurgers.forEach(function ($el) { $el.addEventListener('click', function () { var target = $el.dataset.target; var $target = document.getElementById(target); $el.classList.toggle('is-active'); $target.classList.toggle('is-active'); nav.classList.toggle('is-active'); }); }); } }); assets/js/anatole-theme-switcher.js
@@ -1,55 +1,58 @@ // initialize default value function getTheme() { return localStorage.getItem('theme') ? localStorage.getItem('theme') : null; return localStorage.getItem('theme') ? localStorage.getItem('theme') : null; } function setTheme(style) { document.documentElement.setAttribute('data-theme', style); localStorage.setItem('theme', style); document.documentElement.setAttribute('data-theme', style); localStorage.setItem('theme', style); } function init() { // initialize default value const theme = getTheme(); // initialize default value const theme = getTheme(); // check if a preferred color theme is set for users that have never been to our site const userPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; if (theme === null) { if (userPrefersDark) { setTheme('dark'); } else if (!document.documentElement.getAttribute('data-theme')) { setTheme('light'); } else { setTheme(document.documentElement.getAttribute('data-theme')); } // check if a preferred color theme is set for users that have never been to our site const userPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; if (theme === null) { if (userPrefersDark) { setTheme('dark'); } else if (!document.documentElement.getAttribute('data-theme')) { setTheme('light'); } else { // load a stored theme if (theme === 'light') { document.documentElement.setAttribute('data-theme', 'light'); } else { document.documentElement.setAttribute('data-theme', 'dark'); } setTheme(document.documentElement.getAttribute('data-theme')); } } else { // load a stored theme if (theme === 'light') { document.documentElement.setAttribute('data-theme', 'light'); } else { document.documentElement.setAttribute('data-theme', 'dark'); } } } // switch themes function switchTheme() { const theme = getTheme(); if (theme === 'light') { setTheme('dark'); } else { setTheme('light'); } const theme = getTheme(); if (theme === 'light') { setTheme('dark'); } else { setTheme('light'); } } // Manual Switch document.addEventListener('DOMContentLoaded', function () { document.addEventListener( 'DOMContentLoaded', function () { const themeSwitcher = document.querySelector('.theme-switch'); themeSwitcher.addEventListener('click', switchTheme, false); }, false); }, false, ); // Automatic Switching window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', switchTheme, false); init(); init(); assets/js/medium-zoom.js
@@ -1,458 +1,507 @@ /*!medium-zoom 1.0.5 | MIT License | https://github.com/francoischalifour/medium-zoom*/ (function (global, factory) { typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.mediumZoom = factory()); typeof exports === 'object' && typeof module !== 'undefined' ? (module.exports = factory()) : typeof define === 'function' && define.amd ? define(factory) : ((global = global || self), (global.mediumZoom = factory())); })(this, function () { "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } 'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } return target; } return target; }; var isSupported = function isSupported(node) { return node.tagName === "IMG"; }; var isNodeList = function isNodeList(selector) { return NodeList.prototype.isPrototypeOf(selector); }; var isNode = function isNode(selector) { return selector && selector.nodeType === 1; }; var isSvg = function isSvg(image) { var source = image.currentSrc || image.src; return source.substr(-4).toLowerCase() === ".svg"; }; var getImagesFromSelector = function getImagesFromSelector(selector) { try { if (Array.isArray(selector)) { return selector.filter(isSupported); } if (isNodeList(selector)) { return [].slice.call(selector).filter(isSupported); } if (isNode(selector)) { return [selector].filter(isSupported); } if (typeof selector === "string") { return [].slice.call(document.querySelectorAll(selector)).filter(isSupported); } return []; } catch (err) { throw new TypeError("The provided selector is invalid.\n" + "Expects a CSS selector, a Node element, a NodeList or an array.\n" + "See: https://github.com/francoischalifour/medium-zoom"); } }; var createOverlay = function createOverlay() { var overlay = document.createElement("div"); overlay.classList.add("medium-zoom-overlay"); return overlay; }; var cloneTarget = function cloneTarget(template) { var _template$getBounding = template.getBoundingClientRect(), top = _template$getBounding.top, left = _template$getBounding.left, width = _template$getBounding.width, height = _template$getBounding.height; var clone = template.cloneNode(); var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; clone.removeAttribute("id"); clone.style.position = "absolute"; clone.style.top = top + scrollTop + "px"; clone.style.left = left + scrollLeft + "px"; clone.style.width = width + "px"; clone.style.height = height + "px"; clone.style.transform = ""; return clone; }; var createCustomEvent = function createCustomEvent(type, params) { var eventParams = _extends({ bubbles: false, cancelable: false, detail: undefined }, params); if (typeof window.CustomEvent === "function") { return new CustomEvent(type, eventParams); } var customEvent = document.createEvent("CustomEvent"); customEvent.initCustomEvent(type, eventParams.bubbles, eventParams.cancelable, eventParams.detail); return customEvent; }; var mediumZoom = function mediumZoom(selector) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var Promise = window.Promise || function Promise(fn) { function noop() { } var isSupported = function isSupported(node) { return node.tagName === 'IMG'; }; var isNodeList = function isNodeList(selector) { return NodeList.prototype.isPrototypeOf(selector); }; var isNode = function isNode(selector) { return selector && selector.nodeType === 1; }; var isSvg = function isSvg(image) { var source = image.currentSrc || image.src; return source.substr(-4).toLowerCase() === '.svg'; }; var getImagesFromSelector = function getImagesFromSelector(selector) { try { if (Array.isArray(selector)) { return selector.filter(isSupported); } if (isNodeList(selector)) { return [].slice.call(selector).filter(isSupported); } if (isNode(selector)) { return [selector].filter(isSupported); } if (typeof selector === 'string') { return [].slice.call(document.querySelectorAll(selector)).filter(isSupported); } return []; } catch (err) { throw new TypeError( 'The provided selector is invalid.\n' + 'Expects a CSS selector, a Node element, a NodeList or an array.\n' + 'See: https://github.com/francoischalifour/medium-zoom', ); } }; var createOverlay = function createOverlay() { var overlay = document.createElement('div'); overlay.classList.add('medium-zoom-overlay'); return overlay; }; var cloneTarget = function cloneTarget(template) { var _template$getBounding = template.getBoundingClientRect(), top = _template$getBounding.top, left = _template$getBounding.left, width = _template$getBounding.width, height = _template$getBounding.height; var clone = template.cloneNode(); var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; clone.removeAttribute('id'); clone.style.position = 'absolute'; clone.style.top = top + scrollTop + 'px'; clone.style.left = left + scrollLeft + 'px'; clone.style.width = width + 'px'; clone.style.height = height + 'px'; clone.style.transform = ''; return clone; }; var createCustomEvent = function createCustomEvent(type, params) { var eventParams = _extends( { bubbles: false, cancelable: false, detail: undefined, }, params, ); if (typeof window.CustomEvent === 'function') { return new CustomEvent(type, eventParams); } var customEvent = document.createEvent('CustomEvent'); customEvent.initCustomEvent(type, eventParams.bubbles, eventParams.cancelable, eventParams.detail); return customEvent; }; var mediumZoom = function mediumZoom(selector) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var Promise = window.Promise || function Promise(fn) { function noop() {} fn(noop, noop); }; var _handleClick = function _handleClick(event) { var target = event.target; if (target === overlay) { close(); return; } if (images.indexOf(target) === -1) { return; } toggle({ target: target }); }; var _handleScroll = function _handleScroll() { if (isAnimating || !active.original) { return; } var currentScroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; if (Math.abs(scrollTop - currentScroll) > zoomOptions.scrollOffset) { setTimeout(close, 150); } }; var _handleKeyUp = function _handleKeyUp(event) { var key = event.key || event.keyCode; if (key === "Escape" || key === "Esc" || key === 27) { close(); } }; var update = function update() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newOptions = options; if (options.container && options.container instanceof Object) { newOptions.container = _extends({}, zoomOptions.container, options.container); } if (options.template) { var template = isNode(options.template) ? options.template : document.querySelector(options.template); newOptions.template = template; } zoomOptions = _extends({}, zoomOptions, newOptions); images.forEach(function (image) { image.dispatchEvent(createCustomEvent("medium-zoom:update", { detail: { zoom: zoom } })); }); return zoom; }; var clone = function clone() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return mediumZoom(_extends({}, zoomOptions, options)); }; var attach = function attach() { for (var _len = arguments.length, selectors = Array(_len), _key = 0; _key < _len; _key++) { selectors[_key] = arguments[_key]; } var newImages = selectors.reduce(function (imagesAccumulator, currentSelector) { return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector)); }, []); newImages.filter(function (newImage) { return images.indexOf(newImage) === -1; }).forEach(function (newImage) { images.push(newImage); newImage.classList.add("medium-zoom-image"); }); eventListeners.forEach(function (_ref) { var type = _ref.type, listener = _ref.listener, options = _ref.options; newImages.forEach(function (image) { image.addEventListener(type, listener, options); }); }); return zoom; }; var detach = function detach() { for (var _len2 = arguments.length, selectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { selectors[_key2] = arguments[_key2]; } if (active.zoomed) { close(); } var imagesToDetach = selectors.length > 0 ? selectors.reduce(function (imagesAccumulator, currentSelector) { return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector)); }, []) : images; imagesToDetach.forEach(function (image) { image.classList.remove("medium-zoom-image"); image.dispatchEvent(createCustomEvent("medium-zoom:detach", { detail: { zoom: zoom } })); }); images = images.filter(function (image) { return imagesToDetach.indexOf(image) === -1; }); return zoom; }; var on = function on(type, listener) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; images.forEach(function (image) { image.addEventListener("medium-zoom:" + type, listener, options); }); eventListeners.push({ type: "medium-zoom:" + type, listener: listener, options: options }); return zoom; }; var off = function off(type, listener) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; images.forEach(function (image) { image.removeEventListener("medium-zoom:" + type, listener, options); }); eventListeners = eventListeners.filter(function (eventListener) { return !(eventListener.type === "medium-zoom:" + type && eventListener.listener.toString() === listener.toString()); }); return zoom; }; var open = function open() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, target = _ref2.target; var _animate = function _animate() { var container = { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, left: 0, top: 0, right: 0, bottom: 0 }; var viewportWidth = void 0; var viewportHeight = void 0; if (zoomOptions.container) { if (zoomOptions.container instanceof Object) { container = _extends({}, container, zoomOptions.container); viewportWidth = container.width - container.left - container.right - zoomOptions.margin * 2; viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2; } else { var zoomContainer = isNode(zoomOptions.container) ? zoomOptions.container : document.querySelector(zoomOptions.container); var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(), _width = _zoomContainer$getBou.width, _height = _zoomContainer$getBou.height, _left = _zoomContainer$getBou.left, _top = _zoomContainer$getBou.top; container = _extends({}, container, { width: _width, height: _height, left: _left, top: _top }); } } viewportWidth = viewportWidth || container.width - zoomOptions.margin * 2; viewportHeight = viewportHeight || container.height - zoomOptions.margin * 2; var zoomTarget = active.zoomedHd || active.original; var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth; var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight; var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(), top = _zoomTarget$getBoundi.top, left = _zoomTarget$getBoundi.left, width = _zoomTarget$getBoundi.width, height = _zoomTarget$getBoundi.height; var scaleX = Math.min(naturalWidth, viewportWidth) / width; var scaleY = Math.min(naturalHeight, viewportHeight) / height; var scale = Math.min(scaleX, scaleY); var translateX = (-left + (viewportWidth - width) / 2 + zoomOptions.margin + container.left) / scale; var translateY = (-top + (viewportHeight - height) / 2 + zoomOptions.margin + container.top) / scale; var transform = "scale(" + scale + ") translate3d(" + translateX + "px, " + translateY + "px, 0)"; active.zoomed.style.transform = transform; if (active.zoomedHd) { active.zoomedHd.style.transform = transform; } }; return new Promise(function (resolve) { if (target && images.indexOf(target) === -1) { resolve(zoom); return; } var _handleOpenEnd = function _handleOpenEnd() { isAnimating = false; active.zoomed.removeEventListener("transitionend", _handleOpenEnd); active.original.dispatchEvent(createCustomEvent("medium-zoom:opened", { detail: { zoom: zoom } })); resolve(zoom); }; if (active.zoomed) { resolve(zoom); return; } if (target) { active.original = target; } else if (images.length > 0) { var _images = images; active.original = _images[0]; } else { resolve(zoom); return; } active.original.dispatchEvent(createCustomEvent("medium-zoom:open", { detail: { zoom: zoom } })); scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; isAnimating = true; active.zoomed = cloneTarget(active.original); document.body.appendChild(overlay); if (zoomOptions.template) { var template = isNode(zoomOptions.template) ? zoomOptions.template : document.querySelector(zoomOptions.template); active.template = document.createElement("div"); active.template.appendChild(template.content.cloneNode(true)); document.body.appendChild(active.template); } document.body.appendChild(active.zoomed); window.requestAnimationFrame(function () { document.body.classList.add("medium-zoom--opened"); }); active.original.classList.add("medium-zoom-image--hidden"); active.zoomed.classList.add("medium-zoom-image--opened"); active.zoomed.addEventListener("click", close); active.zoomed.addEventListener("transitionend", _handleOpenEnd); if (active.original.getAttribute("data-zoom-src")) { active.zoomedHd = active.zoomed.cloneNode(); active.zoomedHd.removeAttribute("srcset"); active.zoomedHd.removeAttribute("sizes"); active.zoomedHd.src = active.zoomed.getAttribute("data-zoom-src"); active.zoomedHd.onerror = function () { clearInterval(getZoomTargetSize); console.warn("Unable to reach the zoom image target " + active.zoomedHd.src); active.zoomedHd = null; _animate(); }; var getZoomTargetSize = setInterval(function () { if (active.zoomedHd.complete) { clearInterval(getZoomTargetSize); active.zoomedHd.classList.add("medium-zoom-image--opened"); active.zoomedHd.addEventListener("click", close); document.body.appendChild(active.zoomedHd); _animate(); } }, 10); } else if (active.original.hasAttribute("srcset")) { active.zoomedHd = active.zoomed.cloneNode(); active.zoomedHd.removeAttribute("sizes"); var loadEventListener = active.zoomedHd.addEventListener("load", function () { active.zoomedHd.removeEventListener("load", loadEventListener); active.zoomedHd.classList.add("medium-zoom-image--opened"); active.zoomedHd.addEventListener("click", close); document.body.appendChild(active.zoomedHd); _animate(); }); } else { _animate(); } }); }; var close = function close() { return new Promise(function (resolve) { if (isAnimating || !active.original) { resolve(zoom); return; } var _handleCloseEnd = function _handleCloseEnd() { active.original.classList.remove("medium-zoom-image--hidden"); document.body.removeChild(active.zoomed); if (active.zoomedHd) { document.body.removeChild(active.zoomedHd); } document.body.removeChild(overlay); active.zoomed.classList.remove("medium-zoom-image--opened"); if (active.template) { document.body.removeChild(active.template); } isAnimating = false; active.zoomed.removeEventListener("transitionend", _handleCloseEnd); active.original.dispatchEvent(createCustomEvent("medium-zoom:closed", { detail: { zoom: zoom } })); active.original = null; active.zoomed = null; active.zoomedHd = null; active.template = null; resolve(zoom); }; isAnimating = true; document.body.classList.remove("medium-zoom--opened"); active.zoomed.style.transform = ""; if (active.zoomedHd) { active.zoomedHd.style.transform = ""; } if (active.template) { active.template.style.transition = "opacity 150ms"; active.template.style.opacity = 0; } active.original.dispatchEvent(createCustomEvent("medium-zoom:close", { detail: { zoom: zoom } })); active.zoomed.addEventListener("transitionend", _handleCloseEnd); }); }; var toggle = function toggle() { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, target = _ref3.target; if (active.original) { return close(); } return open({ target: target }); }; var getOptions = function getOptions() { return zoomOptions; }; var getImages = function getImages() { return images; }; var getZoomedImage = function getZoomedImage() { return active.original; }; var images = []; var eventListeners = []; var isAnimating = false; var scrollTop = 0; var zoomOptions = options; var active = { original: null, zoomed: null, zoomedHd: null, template: null }; if (Object.prototype.toString.call(selector) === "[object Object]") { zoomOptions = selector; } else if (selector || typeof selector === "string") { attach(selector); } zoomOptions = _extends({ margin: 0, scrollOffset: 40, container: null, template: null }, zoomOptions); var overlay = createOverlay(); document.addEventListener("click", _handleClick); document.addEventListener("keyup", _handleKeyUp); document.addEventListener("scroll", _handleScroll); window.addEventListener("resize", close); var zoom = { open: open, close: close, toggle: toggle, update: update, clone: clone, attach: attach, detach: detach, on: on, off: off, getOptions: getOptions, getImages: getImages, getZoomedImage: getZoomedImage }; return zoom; fn(noop, noop); }; var _handleClick = function _handleClick(event) { var target = event.target; if (target === overlay) { close(); return; } if (images.indexOf(target) === -1) { return; } toggle({ target: target, }); }; return mediumZoom; var _handleScroll = function _handleScroll() { if (isAnimating || !active.original) { return; } var currentScroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; if (Math.abs(scrollTop - currentScroll) > zoomOptions.scrollOffset) { setTimeout(close, 150); } }; var _handleKeyUp = function _handleKeyUp(event) { var key = event.key || event.keyCode; if (key === 'Escape' || key === 'Esc' || key === 27) { close(); } }; var update = function update() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newOptions = options; if (options.container && options.container instanceof Object) { newOptions.container = _extends({}, zoomOptions.container, options.container); } if (options.template) { var template = isNode(options.template) ? options.template : document.querySelector(options.template); newOptions.template = template; } zoomOptions = _extends({}, zoomOptions, newOptions); images.forEach(function (image) { image.dispatchEvent( createCustomEvent('medium-zoom:update', { detail: { zoom: zoom, }, }), ); }); return zoom; }; var clone = function clone() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return mediumZoom(_extends({}, zoomOptions, options)); }; var attach = function attach() { for (var _len = arguments.length, selectors = Array(_len), _key = 0; _key < _len; _key++) { selectors[_key] = arguments[_key]; } var newImages = selectors.reduce(function (imagesAccumulator, currentSelector) { return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector)); }, []); newImages .filter(function (newImage) { return images.indexOf(newImage) === -1; }) .forEach(function (newImage) { images.push(newImage); newImage.classList.add('medium-zoom-image'); }); eventListeners.forEach(function (_ref) { var type = _ref.type, listener = _ref.listener, options = _ref.options; newImages.forEach(function (image) { image.addEventListener(type, listener, options); }); }); return zoom; }; var detach = function detach() { for (var _len2 = arguments.length, selectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { selectors[_key2] = arguments[_key2]; } if (active.zoomed) { close(); } var imagesToDetach = selectors.length > 0 ? selectors.reduce(function (imagesAccumulator, currentSelector) { return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector)); }, []) : images; imagesToDetach.forEach(function (image) { image.classList.remove('medium-zoom-image'); image.dispatchEvent( createCustomEvent('medium-zoom:detach', { detail: { zoom: zoom, }, }), ); }); images = images.filter(function (image) { return imagesToDetach.indexOf(image) === -1; }); return zoom; }; var on = function on(type, listener) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; images.forEach(function (image) { image.addEventListener('medium-zoom:' + type, listener, options); }); eventListeners.push({ type: 'medium-zoom:' + type, listener: listener, options: options, }); return zoom; }; var off = function off(type, listener) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; images.forEach(function (image) { image.removeEventListener('medium-zoom:' + type, listener, options); }); eventListeners = eventListeners.filter(function (eventListener) { return !( eventListener.type === 'medium-zoom:' + type && eventListener.listener.toString() === listener.toString() ); }); return zoom; }; var open = function open() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, target = _ref2.target; var _animate = function _animate() { var container = { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, left: 0, top: 0, right: 0, bottom: 0, }; var viewportWidth = void 0; var viewportHeight = void 0; if (zoomOptions.container) { if (zoomOptions.container instanceof Object) { container = _extends({}, container, zoomOptions.container); viewportWidth = container.width - container.left - container.right - zoomOptions.margin * 2; viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2; } else { var zoomContainer = isNode(zoomOptions.container) ? zoomOptions.container : document.querySelector(zoomOptions.container); var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(), _width = _zoomContainer$getBou.width, _height = _zoomContainer$getBou.height, _left = _zoomContainer$getBou.left, _top = _zoomContainer$getBou.top; container = _extends({}, container, { width: _width, height: _height, left: _left, top: _top, }); } } viewportWidth = viewportWidth || container.width - zoomOptions.margin * 2; viewportHeight = viewportHeight || container.height - zoomOptions.margin * 2; var zoomTarget = active.zoomedHd || active.original; var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth; var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight; var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(), top = _zoomTarget$getBoundi.top, left = _zoomTarget$getBoundi.left, width = _zoomTarget$getBoundi.width, height = _zoomTarget$getBoundi.height; var scaleX = Math.min(naturalWidth, viewportWidth) / width; var scaleY = Math.min(naturalHeight, viewportHeight) / height; var scale = Math.min(scaleX, scaleY); var translateX = (-left + (viewportWidth - width) / 2 + zoomOptions.margin + container.left) / scale; var translateY = (-top + (viewportHeight - height) / 2 + zoomOptions.margin + container.top) / scale; var transform = 'scale(' + scale + ') translate3d(' + translateX + 'px, ' + translateY + 'px, 0)'; active.zoomed.style.transform = transform; if (active.zoomedHd) { active.zoomedHd.style.transform = transform; } }; return new Promise(function (resolve) { if (target && images.indexOf(target) === -1) { resolve(zoom); return; } var _handleOpenEnd = function _handleOpenEnd() { isAnimating = false; active.zoomed.removeEventListener('transitionend', _handleOpenEnd); active.original.dispatchEvent( createCustomEvent('medium-zoom:opened', { detail: { zoom: zoom, }, }), ); resolve(zoom); }; if (active.zoomed) { resolve(zoom); return; } if (target) { active.original = target; } else if (images.length > 0) { var _images = images; active.original = _images[0]; } else { resolve(zoom); return; } active.original.dispatchEvent( createCustomEvent('medium-zoom:open', { detail: { zoom: zoom, }, }), ); scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; isAnimating = true; active.zoomed = cloneTarget(active.original); document.body.appendChild(overlay); if (zoomOptions.template) { var template = isNode(zoomOptions.template) ? zoomOptions.template : document.querySelector(zoomOptions.template); active.template = document.createElement('div'); active.template.appendChild(template.content.cloneNode(true)); document.body.appendChild(active.template); } document.body.appendChild(active.zoomed); window.requestAnimationFrame(function () { document.body.classList.add('medium-zoom--opened'); }); active.original.classList.add('medium-zoom-image--hidden'); active.zoomed.classList.add('medium-zoom-image--opened'); active.zoomed.addEventListener('click', close); active.zoomed.addEventListener('transitionend', _handleOpenEnd); if (active.original.getAttribute('data-zoom-src')) { active.zoomedHd = active.zoomed.cloneNode(); active.zoomedHd.removeAttribute('srcset'); active.zoomedHd.removeAttribute('sizes'); active.zoomedHd.src = active.zoomed.getAttribute('data-zoom-src'); active.zoomedHd.onerror = function () { clearInterval(getZoomTargetSize); console.warn('Unable to reach the zoom image target ' + active.zoomedHd.src); active.zoomedHd = null; _animate(); }; var getZoomTargetSize = setInterval(function () { if (active.zoomedHd.complete) { clearInterval(getZoomTargetSize); active.zoomedHd.classList.add('medium-zoom-image--opened'); active.zoomedHd.addEventListener('click', close); document.body.appendChild(active.zoomedHd); _animate(); } }, 10); } else if (active.original.hasAttribute('srcset')) { active.zoomedHd = active.zoomed.cloneNode(); active.zoomedHd.removeAttribute('sizes'); var loadEventListener = active.zoomedHd.addEventListener('load', function () { active.zoomedHd.removeEventListener('load', loadEventListener); active.zoomedHd.classList.add('medium-zoom-image--opened'); active.zoomedHd.addEventListener('click', close); document.body.appendChild(active.zoomedHd); _animate(); }); } else { _animate(); } }); }; var close = function close() { return new Promise(function (resolve) { if (isAnimating || !active.original) { resolve(zoom); return; } var _handleCloseEnd = function _handleCloseEnd() { active.original.classList.remove('medium-zoom-image--hidden'); document.body.removeChild(active.zoomed); if (active.zoomedHd) { document.body.removeChild(active.zoomedHd); } document.body.removeChild(overlay); active.zoomed.classList.remove('medium-zoom-image--opened'); if (active.template) { document.body.removeChild(active.template); } isAnimating = false; active.zoomed.removeEventListener('transitionend', _handleCloseEnd); active.original.dispatchEvent( createCustomEvent('medium-zoom:closed', { detail: { zoom: zoom, }, }), ); active.original = null; active.zoomed = null; active.zoomedHd = null; active.template = null; resolve(zoom); }; isAnimating = true; document.body.classList.remove('medium-zoom--opened'); active.zoomed.style.transform = ''; if (active.zoomedHd) { active.zoomedHd.style.transform = ''; } if (active.template) { active.template.style.transition = 'opacity 150ms'; active.template.style.opacity = 0; } active.original.dispatchEvent( createCustomEvent('medium-zoom:close', { detail: { zoom: zoom, }, }), ); active.zoomed.addEventListener('transitionend', _handleCloseEnd); }); }; var toggle = function toggle() { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, target = _ref3.target; if (active.original) { return close(); } return open({ target: target, }); }; var getOptions = function getOptions() { return zoomOptions; }; var getImages = function getImages() { return images; }; var getZoomedImage = function getZoomedImage() { return active.original; }; var images = []; var eventListeners = []; var isAnimating = false; var scrollTop = 0; var zoomOptions = options; var active = { original: null, zoomed: null, zoomedHd: null, template: null, }; if (Object.prototype.toString.call(selector) === '[object Object]') { zoomOptions = selector; } else if (selector || typeof selector === 'string') { attach(selector); } zoomOptions = _extends( { margin: 0, scrollOffset: 40, container: null, template: null, }, zoomOptions, ); var overlay = createOverlay(); document.addEventListener('click', _handleClick); document.addEventListener('keyup', _handleKeyUp); document.addEventListener('scroll', _handleScroll); window.addEventListener('resize', close); var zoom = { open: open, close: close, toggle: toggle, update: update, clone: clone, attach: attach, detach: detach, on: on, off: off, getOptions: getOptions, getImages: getImages, getZoomedImage: getZoomedImage, }; return zoom; }; return mediumZoom; }); mediumZoom(document.querySelectorAll('div.post-content img')); exampleSite/content/arabic/about.md
@@ -9,4 +9,4 @@ هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً،دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق. هذا النص يمكن أن يتم تركيبه على أي تصميم دون مشكلة فلن يبدو وكأنه نص منسوخ، غير منظم، غير منسق، أو حتى غير مفهوم. لأنه مازال نصاً بديلاً ومؤقتاً. هذا النص يمكن أن يتم تركيبه على أي تصميم دون مشكلة فلن يبدو وكأنه نص منسوخ، غير منظم، غير منسق، أو حتى غير مفهوم. لأنه مازال نصاً بديلاً ومؤقتاً. exampleSite/content/arabic/archives.md
@@ -1,5 +1,5 @@ --- date: 2019-05-28 type: section layout: "archives" layout: 'archives' --- exampleSite/content/arabic/post/arabic_example.md
@@ -7,7 +7,8 @@ "عربي", ] +++ من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً،دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق. هذا النص يمكن أن يتم تركيبه على أي تصميم دون مشكلة فلن يبدو وكأنه نص منسوخ، غير منظم، غير منسق، أو حتى غير مفهوم. لأنه مازال نصاً بديلاً ومؤقتاً. @@ -15,4 +16,4 @@ هذا النص هو مثال لنص يمكن أن يستبدل في نفس المساحة، لقد تم توليد هذا النص من مولد النص العربى، حيث يمكنك أن تولد مثل هذا النص أو العديد من النصوص الأخرى إضافة إلى زيادة عدد الحروف التى يولدها التطبيق. إذا كنت تحتاج إلى عدد أكبر من الفقرات يتيح لك مولد النص العربى زيادة عدد الفقرات كما تريد، النص لن يبدو مقسما ولا يحوي أخطاء لغوية، مولد النص العربى مفيد لمصممي المواقع على وجه الخصوص، حيث يحتاج العميل فى كثير من الأحيان أن يطلع على صورة حقيقية لتصميم الموقع. ومن هنا وجب على المصمم أن يضع نصوصا مؤقتة على التصميم ليظهر للعميل الشكل كاملاً،دور مولد النص العربى أن يوفر على المصمم عناء البحث عن نص بديل لا علاقة له بالموضوع الذى يتحدث عنه التصميم فيظهر بشكل لا يليق. هذا النص يمكن أن يتم تركيبه على أي تصميم دون مشكلة فلن يبدو وكأنه نص منسوخ، غير منظم، غير منسق، أو حتى غير مفهوم. لأنه مازال نصاً بديلاً ومؤقتاً. هذا النص يمكن أن يتم تركيبه على أي تصميم دون مشكلة فلن يبدو وكأنه نص منسوخ، غير منظم، غير منسق، أو حتى غير مفهوم. لأنه مازال نصاً بديلاً ومؤقتاً. exampleSite/content/english/about.md
@@ -10,11 +10,11 @@ Hugo makes use of a variety of open source projects including: * https://github.com/yuin/goldmark * https://github.com/alecthomas/chroma * https://github.com/muesli/smartcrop * https://github.com/spf13/cobra * https://github.com/spf13/viper - https://github.com/yuin/goldmark - https://github.com/alecthomas/chroma - https://github.com/muesli/smartcrop - https://github.com/spf13/cobra - https://github.com/spf13/viper Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages. exampleSite/content/english/archives.md
@@ -1,5 +1,5 @@ --- date: 2019-05-28 type: section layout: "archives" layout: 'archives' --- exampleSite/content/english/post/emoji-support.md
@@ -8,9 +8,11 @@ ] +++ Emoji can be enabled in a Hugo project in a number of ways. Emoji can be enabled in a Hugo project in a number of ways. <!--more--> The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes). The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes). To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g. @@ -19,17 +21,18 @@ The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes. *** --- **N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g. {{< highlight html >}} .emoji { font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; } {{< /highlight >}} {{< css.inline >}} <style> .emojify { font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; @@ -43,4 +46,5 @@ } } </style> {{< /css.inline >}} exampleSite/content/english/post/figure-shortcode.md
@@ -2,7 +2,7 @@ title: 'The Figure Shortcode' date: 2021-03-13T21:47:41+00:00 draft: false tags: tags: - demo - shortcode --- @@ -13,9 +13,9 @@ This theme has 3 CSS classes made for figure elements: * `big`: images will break the width limit of main content area. * `left`: images will float to the left. * `right`: images will float to the right. - `big`: images will break the width limit of main content area. - `left`: images will float to the left. - `right`: images will float to the right. If a figure has no class set, the image will behave just like a normal markdown image: `![]()`. @@ -37,4 +37,4 @@ Pellentesque eu consequat nunc. Vivamus eu eros ut nulla dapibus molestie in id tortor. Cras viverra ligula erat, tincidunt hendrerit diam blandit nec. Cras id urna vel dolor dictum mattis. Vestibulum congue erat ac eros molestie accumsan. Maecenas lorem nibh, maximus vel justo eget, facilisis egestas lectus. Mauris eu est ut odio blandit consequat id feugiat eros. Fusce id suscipit mi, et lacinia lectus. Mauris a arcu placerat dolor iaculis feugiat nec non mi. Ut porttitor elit tortor, eget tempus velit mollis eu. Aliquam sem nulla, dictum cursus mauris ac, semper ullamcorper leo. Donec nec tincidunt est. Sed id metus in erat fringilla mattis at id turpis. Aliquam tempor vehicula faucibus. Phasellus consequat aliquam odio. Morbi a ex vitae sapien porta auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec sit amet nulla arcu. Praesent ut tortor purus. Praesent id eros diam. Pellentesque vitae dolor at nibh ultrices accumsan eu id urna. Aliquam finibus interdum orci in varius. Pellentesque a enim condimentum, condimentum felis id, vehicula augue. Vivamus cursus commodo eros nec lacinia. Donec nec tincidunt est. Sed id metus in erat fringilla mattis at id turpis. Aliquam tempor vehicula faucibus. Phasellus consequat aliquam odio. Morbi a ex vitae sapien porta auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec sit amet nulla arcu. Praesent ut tortor purus. Praesent id eros diam. Pellentesque vitae dolor at nibh ultrices accumsan eu id urna. Aliquam finibus interdum orci in varius. Pellentesque a enim condimentum, condimentum felis id, vehicula augue. Vivamus cursus commodo eros nec lacinia. exampleSite/content/english/post/image-test.md
@@ -8,7 +8,8 @@ ] thumbnail= "images/landscape.jpg" +++ Thumbnails can be enabled easily by setting the `thumbnail` parameter in the frontmatter to an image such as `"images/landscape.jpg"`. Thumbnails can be enabled easily by setting the `thumbnail` parameter in the frontmatter to an image such as `"images/landscape.jpg"`. Make sure to copy the image the `static/images/` directory. @@ -26,5 +27,3 @@ thumbnail= "images/landscape.jpg" +++ ``` exampleSite/content/english/post/markdown-syntax.md
@@ -17,6 +17,7 @@ +++ This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. <!--more--> ## Headings @@ -24,10 +25,15 @@ The following HTML `<h1>`—`<h6>` elements represent six levels of section headings. `<h1>` is the highest section level while `<h6>` is the lowest. # H1 ## H2 ### H3 #### H4 ##### H5 ###### H6 ## Paragraph @@ -43,7 +49,7 @@ #### Blockquote without attribution > Tiam, ad mint andaepu dandae nostion secatur sequo quae. > **Note** that you can use *Markdown syntax* within a blockquote. > **Note** that you can use _Markdown syntax_ within a blockquote. #### Blockquote with attribution @@ -56,31 +62,31 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box. Name | Age --------|------ Bob | 27 Alice | 23 | Name | Age | | ----- | --- | | Bob | 27 | | Alice | 23 | #### Inline Markdown within tables | Italics | Bold | Code | | -------- | -------- | ------ | | *italics* | **bold** | `code` | | --------- | -------- | ------ | | _italics_ | **bold** | `code` | ## Code Blocks #### Code block with backticks ```html <!doctype html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Example HTML5 Document</title> </head> <body> <p>Test</p> </body> <head> <meta charset="utf-8" /> <title>Example HTML5 Document</title> </head> <body> <p>Test</p> </body> </html> ``` @@ -98,7 +104,9 @@ </html> #### Code block with Hugo's internal highlight shortcode {{< highlight html >}} <!doctype html> <html lang="en"> <head> @@ -121,19 +129,19 @@ #### Unordered List * List item * Another item * And another item - List item - Another item - And another item #### Nested list * Fruit * Apple * Orange * Banana * Dairy * Milk * Cheese - Fruit - Apple - Orange - Banana - Dairy - Milk - Cheese ## Other Elements — abbr, sub, sup, kbd, mark exampleSite/content/english/post/math-typesetting.md
@@ -7,13 +7,14 @@ --- Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries. <!--more--> In this example we will be using [KaTeX](https://katex.org/) - Create a partial under `/layouts/partials/math.html` - Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally. - Include the partial in your templates like so: - Include the partial in your templates like so: ```bash {{ if or .Params.math .Site.Params.math }} @@ -28,6 +29,7 @@ {{< math.inline >}} {{ if or .Page.Params.math .Site.Params.math }} <!-- KaTeX --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous"> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script> @@ -37,10 +39,10 @@ ### Examples Inline math: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\) Block math: $$ \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } $$ \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } $$ exampleSite/content/english/post/placeholder-text.md
@@ -36,10 +36,12 @@ Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et. Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**. Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, _oculos nomen_ non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**. {{< css.inline >}} <style> .canon { background: white; width: 100%; height: auto; } </style> {{< /css.inline >}} exampleSite/content/english/post/redirect.md
@@ -11,4 +11,4 @@ Forwarding to [gohugo](https://gohugo.io) using `redirectUrl` {{% loading %}} {{% loading %}} exampleSite/content/english/post/rich-content.md
@@ -10,8 +10,8 @@ +++ Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds. <!--more--> --- ## <!--more--> ## YouTube Privacy Enhanced Shortcode layouts/404.html
@@ -1,8 +1,9 @@ {{ define "main" }} <div class="page_404"> <h1>404</h1> <h2>{{ i18n "page_not_found" }}</h2> <p>{{ i18n "page_does_not_exist" }}</p> <p>{{ i18n "head_back" .Site.BaseURL | safeHTML }}</p> </div> <div class="page_404"> <h1>404</h1> <h2>{{ i18n "page_not_found" }}</h2> <p>{{ i18n "page_does_not_exist" }}</p> <p>{{ i18n "head_back" .Site.BaseURL | safeHTML }}</p> </div> {{ end }} layouts/_default/baseof.html
@@ -1,26 +1,31 @@ <!DOCTYPE html> <html dir="{{ .Site.Language.LanguageDirection | default "ltr" }}" lang="{{- site.Language.Lang -}}" data-theme="{{- .Site.Params.displayMode -}}"> {{- partial "head.html" . -}} <body> <header>{{ partial "navbar.html" . }}</header> <div class="wrapper"> <aside> <html dir="{{ .Site.Language.LanguageDirection | default "ltr" }}" lang="{{- site.Language.Lang -}}" data-theme="{{- .Site.Params.displayMode -}}" > {{- partial "head.html" . -}} <body> <header>{{ partial "navbar.html" . }}</header> <div class="wrapper"> <aside> {{- partial "sidebar.html" . -}} </aside> <main> </aside> <main> <div class="autopagerize_page_element"> <div class="content"> {{- block "main" . }}{{- end }} </div> <div class="content"> {{- block "main" . }}{{- end }} </div> </div> </main> </div> </main> </div> {{- partial "footer.html" (dict "context" . "footerClassModifier" "base") -}} {{- partial "footer.html" (dict "context" . "footerClassModifier" "base") -}} {{- if (eq .Site.Params.simpleAnalytics.enable true) -}} {{- partial "analytics/simpleanalytics.html" . -}} {{- end -}} </body> {{- if (eq .Site.Params.simpleAnalytics.enable true) -}} {{- partial "analytics/simpleanalytics.html" . -}} {{- end -}} </body> </html> layouts/_default/list.html
@@ -1,21 +1,43 @@ {{ define "main" }} <div class="archive {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> <ul class="list-with-title"> {{ range .Data.Pages.GroupByDate "2006" }} <div class="listing-title">{{ .Key }}</div> {{ range .Pages }} <ul class="listing"> <div class="listing-item"> <div class="listing-post"><a href="{{ .RelPermalink }}" title="{{ .Title }}">{{ .Title }}</a> <div class="post-time"><span class="date">{{ if isset .Site.Params "listdateformat" }} {{ .Date.Format .Site.Params.listDateFormat }} {{ else }} {{.Date.Format "Jan 2"}} {{ end }}</span></div> </div> </div> </ul> {{ end }} {{ end }} </ul> </div> <div class="archive {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}" > <ul class="list-with-title"> {{ range .Data.Pages.GroupByDate "2006" }} <div class="listing-title">{{ .Key }}</div> {{ range .Pages }} <ul class="listing"> <div class="listing-item"> <div class="listing-post"> <a href="{{ .RelPermalink }}" title="{{ .Title }}">{{ .Title }}</a> <div class="post-time"> <span class="date" >{{ if isset .Site.Params "listdateformat" }} {{ .Date.Format .Site.Params.listDateFormat }} {{ else }} {{ .Date.Format "Jan 2" }} {{ end }}</span > </div> </div> </div> </ul> {{ end }} {{ end }} </ul> </div> {{ end }} layouts/_default/single.html
@@ -1,58 +1,90 @@ {{ define "main" }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> <div class="post-content"> {{ if .Params.thumbnail }} <img class="post-thumbnail" src="{{ .Params.thumbnail | relURL }}" alt="Thumbnail image"> {{ end }} <div class="post-title"> <h1>{{ .Title }}</h1> {{ if or (eq .Type "post") (eq .Type .Site.Params.postSectionName) }} <div class="info"> <em class="fas fa-calendar-day"></em> <span class="date">{{ if isset .Site.Params "singledateformat" }} {{ .Date.Format .Site.Params.singleDateFormat }} {{ else }} {{.Date.Format "Mon, Jan 2, 2006"}} {{ end }}</span> <em class="fas fa-stopwatch"></em> <span class="reading-time">{{ i18n "reading_time" .ReadingTime }}</span> </div> {{ end }} </div> <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ .Content }} {{ else }} animated fadeInDown {{- if (eq .Params.contact true) -}} {{- partial "contact.html" . -}} {{- end -}} {{ end }}" > <div class="post-content"> {{ if .Params.thumbnail }} <img class="post-thumbnail" src="{{ .Params.thumbnail | relURL }}" alt="Thumbnail image" /> </div> <div class="post-footer"> <div class="info"> {{ with .Page.Params.Categories }}{{ partial "taxonomy/categories.html" . }}{{ end }} {{ with .Page.Params.Tags }}{{ partial "taxonomy/tags.html" . }}{{ end }} </div> </div> {{ end }} <div class="post-title"> <h1>{{ .Title }}</h1> {{ if or (eq .Type "post") (eq .Type .Site.Params.postSectionName) }} <div class="info"> <em class="fas fa-calendar-day"></em> <span class="date" >{{ if isset .Site.Params "singledateformat" }} {{ .Date.Format .Site.Params.singleDateFormat }} {{ if and (or (eq .Type "post") (eq .Type .Site.Params.postSectionName)) (ne .Page.Params.disableComments true) }} {{- if .Site.DisqusShortname -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ template "_internal/disqus.html" . }} </div> {{- end -}} {{- if .Site.Params.utterances.repo -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ partial "comments/utterances.html" . }} </div> {{- end -}} {{- if .Site.Params.CommentoURL -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ partial "comments/commento.html" . }} </div> {{- end -}} {{ else }} {{ .Date.Format "Mon, Jan 2, 2006" }} {{ end }}</span > <em class="fas fa-stopwatch"></em> <span class="reading-time">{{ i18n "reading_time" .ReadingTime }}</span> </div> {{ end }} </div> {{ .Content }} {{- if (eq .Params.contact true) -}} {{- partial "contact.html" . -}} {{- end -}} </div> <div class="post-footer"> <div class="info"> {{ with .Page.Params.Categories }} {{ partial "taxonomy/categories.html" . }} {{ end }} {{ with .Page.Params.Tags }} {{ partial "taxonomy/tags.html" . }} {{ end }} </div> </div> {{ if and (or (eq .Type "post") (eq .Type .Site.Params.postSectionName)) (ne .Page.Params.disableComments true) }} {{- if .Site.DisqusShortname -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ template "_internal/disqus.html" . }} </div> {{- end -}} {{- if .Site.Params.utterances.repo -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ partial "comments/utterances.html" . }} </div> {{- end -}} {{- if .Site.Params.CommentoURL -}} <div id="fb_comments_container"> <h2>{{ i18n "comments" }}</h2> {{ partial "comments/commento.html" . }} </div> {{- end -}} {{ end }} </div> {{ end }} layouts/index.html
@@ -1,67 +1,120 @@ {{ define "main" }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> <div class="post-title post-content"> {{ .Content }} </div> <div class="post {{ with .Site.Params.doNotLoadAnimations }} . <!-- (Optional) Home {{ else }} animated fadeInDown {{ end }}" > <div class="post-title post-content"> {{ .Content }} </div> <!-- (Optional) Home -- on top of `mainSections` content (aka posts) ; -- as declared in content/_index.md One can set `mainSections = [""]` and have the content/_index.md specified here --> </div> {{ if .Params.mainSectionsTitle }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}" > <div class="post-title post-content"> <h2>{{ .Params.mainSectionsTitle }}</h2> </div> </div> {{ if .Params.mainSectionsTitle }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> <div class="post-title post-content"> <h2>{{ .Params.mainSectionsTitle }}</h2> {{ end }} {{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }} {{ range $paginator.Pages }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}" > {{ if .Params.thumbnail }} <div class="post-thumbnail"> <a href="{{ .RelPermalink }}"> <img src="{{ .Params.thumbnail | relURL }}" alt="Thumbnail image" loading="lazy" /> </a> </div> </div> {{ end }} {{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }} {{ range $paginator.Pages }} {{ end }} <div class="post-title"> <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3> </div> <div class="post-content"> <div class="p_part"> <p> {{ if .Site.Params.fullPostContent }} {{ .Content }} <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> {{ if .Params.thumbnail }} <div class="post-thumbnail"> <a href="{{ .RelPermalink }}"> <img src="{{ .Params.thumbnail | relURL }}" alt="Thumbnail image" loading="lazy"> </a> </div> {{ else }} {{ .Summary }} {{ end }} <div class="post-title"> <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a> </h3> </div> <div class="post-content"> <div class="p_part"> <p>{{ if .Site.Params.fullPostContent }}{{ .Content }}{{ else }}{{ .Summary }}{{ end }}</p> <!-- add read more --> {{- if and (.Truncated) (.Site.Params.readMore) -}} <a href='{{ .RelPermalink }}' class="read_more">{{ i18n "read_more" }}</a> {{- end -}} </div> </div> </p> <!-- add read more --> {{- if and (.Truncated) (.Site.Params.readMore) -}} <a href="{{ .RelPermalink }}" class="read_more">{{ i18n "read_more" }}</a> <!-- --> <div class="post-footer"> <div class="meta"> <div class="info"> <em class="fas fa-calendar-day"></em> <span class="date">{{ if isset .Site.Params "indexdateformat" }} {{ .Date.Format .Site.Params.indexDateFormat }} {{ else }} {{.Date.Format "Mon, Jan 2, 2006"}} {{ end }}</span> {{ with .Page.Params.Categories }}{{ partial "taxonomy/categories.html" . }}{{ end }} {{ with .Page.Params.Tags }}{{ partial "taxonomy/tags.html" . }}{{ end }} </div> </div> </div> {{- end -}} </div> {{ end }} <div class="pagination"> {{ template "_internal/pagination.html" . }} </div> <!-- --> <div class="post-footer"> <div class="meta"> <div class="info"> <em class="fas fa-calendar-day"></em> <span class="date" >{{ if isset .Site.Params "indexdateformat" }} {{ .Date.Format .Site.Params.indexDateFormat }} {{ else }} {{ .Date.Format "Mon, Jan 2, 2006" }} {{ end }}</span > {{ with .Page.Params.Categories }} {{ partial "taxonomy/categories.html" . }} {{ end }} {{ with .Page.Params.Tags }} {{ partial "taxonomy/tags.html" . }} {{ end }} </div> </div> </div> </div> {{ end }} <div class="pagination"> {{ template "_internal/pagination.html" . }} </div> {{ end }} layouts/partials/analytics/simpleanalytics.html
@@ -1,7 +1,9 @@ {{ with .Site.Params.simpleAnalytics.customUrl }} <script async defer src="{{ . | relURL }}/latest.js"></script> <noscript><img src="{{ . | relURL }}/noscript.gif" alt=""/></noscript> <script async defer src="{{ . | relURL }}/latest.js"></script> <noscript><img src="{{ . | relURL }}/noscript.gif" alt="" /></noscript> {{ else }} <script async defer src=" https://scripts.simpleanalyticscdn.com/latest.js"></script> <noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt=""/></noscript> <script async defer src=" https://scripts.simpleanalyticscdn.com/latest.js"></script> <noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt="" /></noscript> {{ end }} layouts/partials/comments/commento.html
@@ -1,4 +1,3 @@ <div id="commento"></div> <script defer src="{{ .Site.Params.CommentoURL }}"> </script> <noscript>Please enable JavaScript to load the comments.</noscript> <script defer src="{{ .Site.Params.CommentoURL }}"></script> <noscript>Please enable JavaScript to load the comments.</noscript> layouts/partials/comments/utterances.html
@@ -1,10 +1,12 @@ <script src="https://utteranc.es/client.js" repo="{{ .Site.Params.utterances.repo }}" issue-term="{{ .Site.Params.utterances.issueTerm }}" theme="{{ .Site.Params.utterances.theme }}" {{ with .Site.Params.utterances.label }} label="{{ . }}" {{ end }} crossorigin="anonymous" async> </script> <script src="https://utteranc.es/client.js" repo="{{ .Site.Params.utterances.repo }}" issue-term="{{ .Site.Params.utterances.issueTerm }}" theme="{{ .Site.Params.utterances.theme }}" {{ with .Site.Params.utterances.label }} label="{{ . }}" {{ end }} crossorigin="anonymous" async ></script> layouts/partials/footer.html
@@ -1,26 +1,41 @@ <footer class="footer footer--{{ .footerClassModifier }}"> <div class="by_farbox"> <ul class="footer__list"> <li class="footer__item">© {{ if isset .context.Site.Params "copyright" }} {{ replace .context.Site.Params.copyright "{{ YEAR }}" (now.Format "2006") | markdownify }} {{ else }} {{ .context.Site.Params.author }} {{ now.Format "2006"}} {{end}} </li> {{ range .context.Site.Menus.footer }} <li class="footer__item"> <a href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }} target="_blank" rel="noopener noreferrer" {{ end }} title="{{ .Title }}"> {{ .Name }} </a> </li> <footer class="footer footer--{{ .footerClassModifier }}"> <div class="by_farbox"> <ul class="footer__list"> <li class="footer__item"> © {{ if isset .context.Site.Params "copyright" }} {{ replace .context.Site.Params.copyright "{{ YEAR }}" (now.Format "2006") | markdownify }} {{ else }} {{ .context.Site.Params.author }} {{ now.Format "2006" }} {{ end }} </li> {{ range .context.Site.Menus.footer }} <li class="footer__item"> <a href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }} target="_blank" rel="noopener noreferrer" {{ end }} </ul> </div> title="{{ .Title }}" > {{ .Name }} </a> </li> {{ end }} </ul> </div> </footer> {{- partial "medium-zoom.html" .context -}} {{- partial "math.html" .context -}} {{- template "_internal/google_analytics_async.html" .context -}} {{- if and (hugo.IsProduction) (.Site.Params.gtagId) -}} {{ partial "google-analytics-gtag-async.html" .context }} {{- end -}} {{ partial "google-analytics-gtag-async.html" .context }} {{- end -}} layouts/partials/google-analytics-gtag-async.html
@@ -1,8 +1,10 @@ <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id={{ .Site.Params.gtagId }}"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '{{ .Site.Params.gtagId }}'); </script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', '{{ .Site.Params.gtagId }}'); </script> layouts/partials/head.html
@@ -1,125 +1,188 @@ <head> <title> {{.Site.Params.author}}{{ with .Title }} | {{ . }}{{ end }} </title> <title> {{ .Site.Params.author }}{{ with .Title }} | {{ . }} <!-- Meta --> <meta charset="utf-8"> {{- hugo.Generator -}} <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> <meta name="description" content="{{ if .Params.description }}{{ .Params.description }}{{ else }}{{ .Site.Params.description }}{{ end }}"> {{ if .Params.redirectUrl }} <meta http-equiv="refresh" content="1; url={{ .Params.redirectUrl }}" /> {{ end }} {{- if .Site.Params.googleSiteVerify }} <meta name="google-site-verification" content="{{ .Site.Params.googleSiteVerify }}"> {{- end -}} <!-- CSS --> {{ $templateStyle := resources.Get "css/style.css" }} {{ $style := $templateStyle | resources.ExecuteAsTemplate "css/main.css" . | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css"> {{ if eq .Site.Language.LanguageDirection "rtl"}} </title> <!-- Meta --> <meta charset="utf-8" /> {{- hugo.Generator -}} <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover" /> <meta name="description" content="{{ if .Params.description }} {{ .Params.description }} {{ else }} {{ .Site.Params.description }} {{ end }}" /> {{ if .Params.redirectUrl }} <meta http-equiv="refresh" content="1; url={{ .Params.redirectUrl }}" /> {{ end }} {{- if .Site.Params.googleSiteVerify }} <meta name="google-site-verification" content="{{ .Site.Params.googleSiteVerify }}" /> {{- end -}} <!-- CSS --> {{ $templateStyle := resources.Get "css/style.css" }} {{ $style := $templateStyle | resources.ExecuteAsTemplate "css/main.css" . | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css" /> {{ if eq .Site.Language.LanguageDirection "rtl" }} {{ $templateStyle := resources.Get "css/style.rtl.css" }} {{ $style := $templateStyle | resources.ExecuteAsTemplate "css/main.rtl.css" . | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css"> {{end}} {{ $markupHighlightStyle := resources.Get "css/markupHighlight.css" | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $markupHighlightStyle.RelPermalink }}" integrity="{{ $markupHighlightStyle.Data.Integrity }}" crossorigin="anonymous" type="text/css"> {{ range .Site.Params.customCss }} {{ $minstyles := resources.Get . }} {{ $styles := $minstyles | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" /> {{ end }} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous" /> {{ if .Params.redirectUrl }} <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css" /> {{ end }} {{ $markupHighlightStyle := resources.Get "css/markupHighlight.css" | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $markupHighlightStyle.RelPermalink }}" integrity="{{ $markupHighlightStyle.Data.Integrity }}" crossorigin="anonymous" type="text/css" /> {{ range .Site.Params.customCss }} {{ $minstyles := resources.Get . }} {{ $styles := $minstyles | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" /> {{ end }} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous" /> {{ if .Params.redirectUrl }} {{ $style := resources.Get "css/spinner.css" | resources.Minify | resources.Fingerprint }} <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css"> {{- end -}} <!-- Favicons --> <link rel="shortcut icon" href="{{ .Site.Params.favicon | relURL }}favicon.ico" type="image/x-icon"> <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon | relURL }}apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.favicon | relURL }}favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="{{ .Site.Params.favicon | relURL }}favicon-16x16.png"> <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css" /> <link rel="canonical" href="{{ .RelPermalink }}"> {{- end -}} <!-- Favicons --> <link rel="shortcut icon" href="{{ .Site.Params.favicon | relURL }}favicon.ico" type="image/x-icon" /> <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon | relURL }}apple-touch-icon.png" /> <link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.favicon | relURL }}favicon-32x32.png" /> <link rel="icon" type="image/png" sizes="16x16" href="{{ .Site.Params.favicon | relURL }}favicon-16x16.png" /> <!-- RSS --> {{ with .OutputFormats.Get "rss" -}} {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }} {{ end -}} <link rel="canonical" href="{{ .RelPermalink }}" /> <!-- JavaScript --> {{ $anatoleHeader := resources.Get "js/anatole-header.js" }} {{ $secureHeaderJS := $anatoleHeader | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureHeaderJS.RelPermalink }}" integrity="{{ $secureHeaderJS.Data.Integrity }}" crossorigin="anonymous"></script> <!-- RSS --> {{ with .OutputFormats.Get "rss" -}} {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }} {{ if not .Site.Params.disableThemeSwitcher }} {{ $anatoleThemeSwitcher := resources.Get "js/anatole-theme-switcher.js" }} {{ $secureThemeSwitcherJS := $anatoleThemeSwitcher | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureThemeSwitcherJS.RelPermalink }}" integrity="{{ $secureThemeSwitcherJS.Data.Integrity }}" crossorigin="anonymous"></script> {{ end }} {{ end -}} {{- $js := "" -}} {{- range .Site.Params.customJs -}} {{- if or (in . "http://") (in . "https://") -}} <script src="{{ . | relURL }}"></script> <!-- JavaScript --> {{ $anatoleHeader := resources.Get "js/anatole-header.js" }} {{ $secureHeaderJS := $anatoleHeader | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureHeaderJS.RelPermalink }}" integrity="{{ $secureHeaderJS.Data.Integrity }}" crossorigin="anonymous" ></script> {{ if not .Site.Params.disableThemeSwitcher }} {{ $anatoleThemeSwitcher := resources.Get "js/anatole-theme-switcher.js" }} {{ $secureThemeSwitcherJS := $anatoleThemeSwitcher | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureThemeSwitcherJS.RelPermalink }}" integrity="{{ $secureThemeSwitcherJS.Data.Integrity }}" crossorigin="anonymous" ></script> {{ end }} {{- $js := "" -}} {{- range .Site.Params.customJs -}} {{- if or (in . "http://") (in . "https://") -}} <script src="{{ . | relURL }}"></script> {{- else -}} {{- $customJS := resources.Get . -}} {{- if $customJS -}} {{- if eq $js "" -}} {{- $js = $customJS -}} {{- else -}} {{- $customJS := resources.Get . -}} {{- if $customJS -}} {{- if eq $js "" -}} {{- $js = $customJS -}} {{- else -}} {{- $js = slice $js $customJS | resources.Concat "js/custom.js" -}} {{- end -}} {{- end -}} {{- $js = slice $js $customJS | resources.Concat "js/custom.js" -}} {{- end -}} {{- end -}} {{- end -}} {{- if ne $js "" -}} {{- end -}} {{- if ne $js "" -}} {{- $secureJS := $js | resources.Minify | resources.Fingerprint -}} <script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script> {{- end -}} <script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous" ></script> <!-- Twitter Cards --> {{ template "_internal/twitter_cards.html" . }} {{- end -}} <!-- Open Graph --> {{- if isset .Site.Taxonomies "series" }} <!-- Twitter Cards --> {{ template "_internal/twitter_cards.html" . }} <!-- Open Graph --> {{- if isset .Site.Taxonomies "series" }} {{- if not (eq (len .Site.Taxonomies.series) 0) -}} {{ template "_internal/opengraph.html" . }} {{- end -}} {{- end }} {{ template "_internal/opengraph.html" . }} {{- end -}} {{- end }} </head> layouts/partials/math.html
@@ -1,44 +1,44 @@ {{- if or (eq site.Params.math.enable true) (eq .Params.math true) -}} {{- $use := "katex" -}} {{- $use := "katex" -}} {{- with site.Params.math -}} {{- if and (isset . "use") (eq (.use | lower) "mathjax") -}} {{- $use = "mathjax" -}} {{- end -}} {{- with site.Params.math -}} {{- if and (isset . "use") (eq (.use | lower) "mathjax") -}} {{- $use = "mathjax" -}} {{- end -}} {{- if eq $use "mathjax" -}} {{- $url := "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML" -}} {{- $hash := "sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" -}} <script defer type="text/javascript" src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } }); </script> {{- else -}} {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/katex.min.css" -}} {{- $hash := "sha384-t5CR+zwDAROtph0PXGte6ia8heboACF9R5l/DiY+WZ3P2lxNgvJkQk5n7GPvLMYw" -}} <link rel="stylesheet" href="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"> {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/katex.min.js" -}} {{- $hash := "sha384-FaFLTlohFghEIZkw6VGwmf9ISTubWAVYW8tG8+w2LAIftJEULZABrF9PPFv+tVkH" -}} <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script> {{- end -}} {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/contrib/auto-render.min.js" -}} {{- $hash := "sha384-bHBqxz8fokvgoJ/sc17HODNxa42TlaEhB+w8ZJXTc2nZf1VgEaFZeZvT4Mznfz0v" -}} <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script> {{- end -}} {{- if eq $use "mathjax" -}} {{- $url := "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML" -}} {{- $hash := "sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" -}} <script defer type="text/javascript" src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } }); </script> {{- else -}} {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/katex.min.css" -}} {{- $hash := "sha384-t5CR+zwDAROtph0PXGte6ia8heboACF9R5l/DiY+WZ3P2lxNgvJkQk5n7GPvLMYw" -}} <link rel="stylesheet" href="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous" /> {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/katex.min.js" -}} {{- $hash := "sha384-FaFLTlohFghEIZkw6VGwmf9ISTubWAVYW8tG8+w2LAIftJEULZABrF9PPFv+tVkH" -}} <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script> {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.13.0/dist/contrib/auto-render.min.js" -}} {{- $hash := "sha384-bHBqxz8fokvgoJ/sc17HODNxa42TlaEhB+w8ZJXTc2nZf1VgEaFZeZvT4Mznfz0v" -}} <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous" onload="renderMathInElement(document.body);" ></script> {{- end -}} {{- end -}} layouts/partials/medium-zoom.html
@@ -1,9 +1,12 @@ {{ $enableMediumZoom := default true (.Site.Params.enableMediumZoom) }} {{- if eq $enableMediumZoom true -}} {{ $js := resources.Get "js/medium-zoom.js" }} {{ $secureJS := $js | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script> {{- end -}} {{ $js := resources.Get "js/medium-zoom.js" }} {{ $secureJS := $js | resources.Minify | resources.Fingerprint }} <script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous" ></script> {{- end -}} layouts/partials/navbar.html
@@ -1,38 +1,57 @@ <div class="page-top {{ with .Site.Params.doNotLoadAnimations }} . {{ else }}animated fadeInDown{{ end }}"> <a role="button" class="navbar-burger" data-target="navMenu" aria-label="menu" aria-expanded="false"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span aria-hidden="true"></span> </a> <nav> <ul class="nav__list" id="navMenu"> <div class="nav__links"> {{ $url := .RelPermalink }} {{ range .Site.Menus.main }} {{ $active := eq $url .URL }} <li><a {{if $active }}class="current"{{end}} href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }} target="_blank" rel="noopener noreferrer" {{ end }} title="{{ .Title }}">{{ .Name }}</a></li> {{ end }} {{ if .Site.IsMultiLingual }} {{ range $.Site.Home.AllTranslations }} <li><a href="{{ .RelPermalink }}" title="{{ .Language.LanguageName }}">{{ .Language.LanguageName }}</a> </li> {{ end }} {{ end }} </div> <li> {{ if not .Site.Params.disableThemeSwitcher }} <a class="theme-switch" title="Switch Theme"> <i class="fas fa-adjust fa-fw" aria-hidden="true"></i> </a> {{ end }} </li> </ul> </nav> <div class="page-top {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}" > <a role="button" class="navbar-burger" data-target="navMenu" aria-label="menu" aria-expanded="false"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span aria-hidden="true"></span> </a> <nav> <ul class="nav__list" id="navMenu"> <div class="nav__links"> {{ $url := .RelPermalink }} {{ range .Site.Menus.main }} {{ $active := eq $url .URL }} <li> <a {{ if $active }} class="current" {{ end }} href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }} target="_blank" rel="noopener noreferrer" {{ end }} title="{{ .Title }}" >{{ .Name }}</a > </li> {{ end }} {{ if .Site.IsMultiLingual }} {{ range $.Site.Home.AllTranslations }} <li><a href="{{ .RelPermalink }}" title="{{ .Language.LanguageName }}">{{ .Language.LanguageName }}</a></li> {{ end }} {{ end }} </div> <li> {{ if not .Site.Params.disableThemeSwitcher }} <a class="theme-switch" title="Switch Theme"> <i class="fas fa-adjust fa-fw" aria-hidden="true"></i> </a> {{ end }} </li> </ul> </nav> </div> layouts/partials/sidebar.html
@@ -1,23 +1,32 @@ <div class="sidebar{{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}"> <div class="sidebar__content"> <div class="logo-title"> <div class="title"> <img src="{{ .Site.Params.profilePicture | relURL }}" alt="profile picture"> <h3 title=""><a href="/">{{ .Site.Params.Title }}</a></h3> <div class="description"> <p>{{ replace .Site.Params.description "\n" "<br>" | safeHTML }}</p> </div> </div> <div class="sidebar{{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}" > <div class="sidebar__content"> <div class="logo-title"> <div class="title"> <img src="{{ .Site.Params.profilePicture | relURL }}" alt="profile picture" /> <h3 title=""><a href="/">{{ .Site.Params.Title }}</a></h3> <div class="description"> <p>{{ replace .Site.Params.description "\n" "<br />" | safeHTML }}</p> </div> <ul class="social-links"> {{ range $item := .Site.Params.socialIcons }} <li> <a href="{{ $item.url }}" rel="me" aria-label="{{ $item.title }}"> <i class="{{ $item.icon }} fa-2x" aria-hidden="true"></i> </a> </li> {{ end }} </ul> </div> </div> {{- partial "footer.html" (dict "context" . "footerClassModifier" "sidebar") -}} <ul class="social-links"> {{ range $item := .Site.Params.socialIcons }} <li> <a href="{{ $item.url }}" rel="me" aria-label="{{ $item.title }}"> <i class="{{ $item.icon }} fa-2x" aria-hidden="true"></i> </a> </li> {{ end }} </ul> </div> {{- partial "footer.html" (dict "context" . "footerClassModifier" "sidebar") -}} </div> layouts/partials/taxonomy/categories.html
@@ -1 +1 @@ {{ partial "taxonomy/template.html" (dict "items" . "linkClass" "category" "linkBase" "categories") }} {{ partial "taxonomy/template.html" (dict "items" . "linkClass" "category" "linkBase" "categories") }} layouts/partials/taxonomy/tags.html
@@ -1 +1 @@ {{ partial "taxonomy/template.html" (dict "items" . "linkClass" "tag" "linkBase" "tags") }} {{ partial "taxonomy/template.html" (dict "items" . "linkClass" "tag" "linkBase" "tags") }} layouts/partials/taxonomy/template.html
@@ -1,12 +1,14 @@ {{- $linkClass := .linkClass -}} {{- $linkBase := .linkBase -}} <span class="separator"> {{- range $index, $el := .items -}} <!-- Replace certain special characters with their URL encoded counterparts --> {{- $item := replace . "#" "%23" -}} {{- $item = replace $item "." "%2e" -}} {{- $link := ( printf "%s/%s/" $linkBase ( $item | urlize ) ) | relLangURL -}} <a class="{{$linkClass}}" href="{{$link}}">{{- . -}}</a> {{- end -}} </span> {{- range $index, $el := .items -}} <!-- Replace certain special characters with their URL encoded counterparts --> {{- $item := replace . "#" "%23" -}} {{- $item = replace $item "." "%2e" -}} {{- $link := ( printf "%s/%s/" $linkBase ( $item | urlize ) ) | relLangURL -}} <a class="{{ $linkClass }}" href="{{ $link }}">{{- . -}}</a> {{- end -}} </span> layouts/shortcodes/loading.html
@@ -6,4 +6,4 @@ <div class="sk-fold-cube"></div> <div class="sk-fold-cube"></div> </div> </div> </div>