{{ .Site.Params.Description | markdownify }}
++ + {{ .Title }} + +
+{{ .Summary }}
commit 53f2ace0f4f7b7c68818816f5462f393bed2574a Author: kimcc <15278020+kimcc@users.noreply.github.com> Date: Sun Feb 2 11:13:02 2020 -0600 Initial commit diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..25440e5 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2020 kimcc + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e20c889 --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +# Noteworthy + +Noteworthy is a minimalist Hugo theme for writers and bloggers. + +![Noteworthy desktop screenshot](https://github.com/kimcc/hugo-theme-noteworthy/blob/master/images/screenshot.png) + + +## Features + +* Fully responsive +* Google Analytics and Disqus integration +* Syntax highlighting +* Mathematical notations with KaTex +* About, Tags, and Archives pages +* RSS feeds +* Social media links +* SCSS for styling + + +## Installation + +Navigate to the root directory of your Hugo site and clone this repository. + +``` +git clone https://github.com/kimcc/hugo-theme-noteworthy.git themes/noteworthy +``` + +Refer to the [Hugo docs](https://gohugo.io/getting-started/quick-start/) for more information. + + +## Social media accounts + +In the `params` section of the `config.toml` file, you can add links to your social media accounts. Simply remove the ones that you don't want to include, and their icons will disappear from the site. + +``` +# Main +email = "" +facebook = "" +twitter = "" +instagram = "" +tumblr = "" +reddit = "" +pinterest = "" +youtube = "" +weibo = "" +vk = "" +linkedin = "" + +# Writing +medium = "" +blogger = "" +wordpress = "" + +# Creative & Visual +dribbble = "" +behance = "" +deviantart = "" +flickr = "" + +# Programming +github = "" +stackoverflow = "" +gitlab = "" +codepen = "" +``` + + +## Disqus and Google Analytics + +Add your Disqus shortname and Google Analytics identifier in the `config.toml` file. + +``` +# Add your Disqus shortname here. +disqusShortname = "" + +# Add your Google Analytics identifier: UA-XXXXXXXX-X +googleAnalytics = "" +``` + + +## License + +Released under the [MIT License](https://github.com/kimcc/hugo-theme-noteworthy/blob/master/LICENSE.md). \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..03855e3 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,4 @@ ++++ +title = "" +date = "" ++++ \ No newline at end of file diff --git a/assets/css/custom.scss b/assets/css/custom.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 0000000..4c81008 --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,495 @@ +/* VARIABLES ========================================================================== */ + +// COLORS +$teal: #63BDA2; +$teal-darker: #359377; +$gray-background: #F7F7F7; +$gray-table-border: #EEEEEE; +$gray-lightest: #D2D2D2; +$gray-light: #ABABAB; +$gray-medium: #898989; +$gray-dark: #5F5F5F; +$highlight: #FFEC5C; + +// FONTS +$serif: "Noto Serif","Segoe UI","Helvetica Neue",Helvetica,Roboto,FreeSans,serif; +$sans-serif: "Noto Sans","Segoe UI","Helvetica Neue",Helvetica,Roboto,FreeSans,sans-serif; +$code: Menlo,Monaco,"Courier New",monospace; + +/* SASS IMPORT ========================================================================== */ + +// CUSTOM FONTS +@import "partials/_fonts"; + +// THRID PARTY +@import "vendor/normalize"; +@import "vendor/syntax"; + +/* STYLES ========================================================================== */ + +html, +body { + height: 100%; +} + +html { + margin: 0; + line-height: 170%; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +body { + color: $gray-dark; + font-family: $sans-serif; + margin: 0; + font-size: 1.1rem; +} + +// TEXT +article p { + a { + text-decoration: underline; + text-decoration-skip-ink: auto; + color: $gray-dark; + } +} + +article .post-footer>a { + text-decoration: none; +} + +h1 { + font-size: 1.9em; + padding-top: 0.2em; + margin: 0.5em 0em 0.75em 0em; + font-family: $serif; + font-weight: 600; + line-height: 1.3em; +} + +h2, +h3, +h4, +h5, +h6 { + margin: 1.25em 0em 0.75em 0em; + font-family: $serif; + font-weight: 600; +} + +h2 { + font-size: 1.25em; + line-height: 1.4em; + + a { + text-decoration: none; + position: relative; + text-shadow: 0px -2px 0 white, 0px -1px 0 white, 0px 0px 0 white, 2px -2px 0 white, 2px -1px 0 white, 2px 0px 0 white, -2px -2px 0 white, -2px -1px 0 white, -2px 0px 0 white, 1px -2px 0 white, 1px -1px 0 white, 1px 0px 0 white, -1px -2px 0 white, -1px -1px 0 white, -1px 0px 0 white, 0px -2px 0 white, 0px -1px 0 white, 0px 0px 0 white; + box-shadow: 0 -1px 0 0 white inset, 0 -2px 0 0 transparent inset; + background-size: 1px 1em; + position: relative; + transition: all 0.6s cubic-bezier(0.075, 0.82, 0.165, 1); + + &:hover { + box-shadow: 0 -1px 0 0 white inset, 0 -2px 0 0 $gray-dark inset; + transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1); + } + } +} + +h5, +h6 { + font-weight: 700; + line-height: 1.3em; +} + +h4 { + line-height: 1.3em; +} + +h3 { + font-size: 1.1em; + line-height: 1.3em; +} + +p { + margin: 0em 0 1em 0; +} + +// LINKS AND TAGS +a { + text-decoration: underline; + text-decoration-skip-ink: auto; + color: $gray-dark; +} + +a, +a>svg { + transition: 0.1s cubic-bezier(0.075, 0.82, 0.165, 1); +} + +a:visited { + color: $gray-dark; +} + +.color-link { + text-decoration: none; + color: $teal; + font-family: $sans-serif; + margin-right: 1.5em; +} + +.color-link:visited { + color: $teal; +} + +.color-link:hover { + color: $teal-darker; + + .color-arrow { + fill: $teal-darker; + } +} + +.tag { + margin-right: 0.75em; + margin-bottom: 1em; + line-height: 1.75em; + color: $gray-light; +} + +.tag:visited { + color: $gray-light; +} + +.tag:hover { + color: $gray-medium; +} + +// ARTICLE FORMATTING +time { + margin-right: 1.5em; + color: $gray-light; +} + +hr { + border: 0; + height: 0; + border-bottom: 1px solid $gray-lightest; +} + +ul, +ol { + margin: 1em 0em; + padding-left: 2em; +} + +li { + line-height: 150%; +} + +mark { + background-color: $highlight; +} + +blockquote { + border-left: 4px solid $gray-lightest; + padding-left: 1.3em; + margin-left: 0em; + margin-top: 0em; + + p { + margin-bottom: 0em; + } +} + +cite { + font-size: 0.95em; +} + +pre { + padding: 1em; + background-color: $gray-background; + max-width: 100%; + overflow: scroll; +} + +p code, +kbd { + font-size: 0.95rem; + background: $gray-background; + padding: 0.2em; +} + +code, +pre, +kbd { + font-family: $code; + font-size: 0.95rem; + line-height: 154%; +} + +.table-wrapper { + overflow-x: auto; +} + +table { + max-width: 100%; + border-spacing: 0; + + thead { + background: $gray-background; + } + + th, + td { + padding: 0.5em 1em; + border: 1px double $gray-table-border; + } +} + +// TOP NAV +nav { + padding: 0.25em 1.5em 1em 1.5em; + max-width: 100%; +} + +.site-title { + margin: 1.5em 0em 1em 0em; + text-align: center; + line-height: 1.7em; + + a { + font-family: $serif; + font-size: 1.5em; + text-decoration: none; + margin-top: 0.75em; + } +} + +.nav-menu { + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; +} + +.nav-link { + margin-bottom: 0.5em; +} + +.description { + font-style: italic; + color: $gray-medium; + text-align: center; + margin-bottom: 3.7em; + margin-top: -0.75em; +} + +// CONTENT +.content-container { + padding: 0.5em 1.5em 0em 1.5em; + margin: 0em; + max-width: 100%; +} + +.paginator { + flex-shrink: 0; + display: flex; + justify-content: space-between; + align-items: flex-end; + margin-top: 1em; + padding-bottom: 1.5em; + align-items: center; + + .older { + margin-left: 1em; + } + + p { + font-size: 0.95rem; + margin: 0px; + } + + a { + text-decoration: none; + color: $teal; + font-size: 0.95rem; + } +} + +// ARTICLE CONTENT +.article-content { + flex: 1 0 auto; +} + +.canon { + width: 100%; + height: auto; +} + +.footnote-ref { + a { + margin-left: 0.3em; + } + + a::before { + content: "["; + } + + a::after { + content: "]"; + } +} + +.emojify { + font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; + font-size: 1.5rem; + vertical-align: middle; +} + +// SHORTCODE CONTENT +.twitter-tweet { + font-family: $sans-serif !important; + border-left: 4px solid $teal !important; + color: $gray-dark !important; + font-size: 1rem !important; + font-style: italic !important; + margin-left: 0em; + padding-left: 1.3em !important; + + p { + font-size: 1.1em; + font-style: normal; + margin-bottom: 1em; + line-height: 155%; + } + + a { + color: $gray-dark !important; + text-decoration: underline !important; + } + + a:hover, + a:focus { + text-decoration: underline !important; + } +} + +.__h_instagram.card { + font-family: $sans-serif !important; + font-size: 1.1em !important; + border: 1px solid $gray-light; + margin-top: 1.2em !important; +} + +// ARTICLE FOOTER +.post-footer { + font-size: 0.95rem; + color: $gray-light; + border-bottom: 1px solid $gray-lightest; + padding-bottom: 1.8em; +} + +.hidden { + visibility: hidden; + border-bottom: 0px solid; +} + +.page-footer { + padding: 1.5em 0em 2em 0em; + font-size: 0.95rem; + color: $gray-light; + + a { + text-decoration: none; + color: $gray-light; + } +} + +.footer-divider { + color: $gray-lightest; + margin-bottom: 1.5em; +} + +// ARCHIVES PAGE +.archives-list { + padding-left: 0em; +} + +.archives-list-item { + display: flex; + margin: 0.5em 0em; +} + +.archives-list-item-date { + width: 60px; + margin-right: 0.25em; + color: $gray-light; +} + +// 404 PAGE +.not-found-title { + margin-bottom: 0em; +} + +// MAIN FOOTER +.footer { + visibility: hidden; + height: 0; +} + +.footer-mobile { + margin-top: 2em; + max-width: 100%; + padding: 0em 1.5em 0.75em 1.5em; + overflow: hidden; + + .footer-mobile-links { + display: flex; + justify-content: center; + } + + .divider-bar { + color: $gray-light; + padding: 0em 0.25em; + } +} + +footer { + text-align: center; + + .social-icons { + margin: 0 0 1.25em -.5em; + } + + .social-icon { + padding: 0.3em 0.5em; + margin: 0.32em 0.1em; + display: inline-block; + height: 2em; + position: relative; + } + + .social-icon>svg:hover { + fill: $gray-medium; + } + + a { + text-decoration: none; + font-size: 0.95rem; + color: $gray-light; + } + + a:visited { + color: $gray-light; + } + + a:hover { + color: $gray-medium; + } +} + +// BREAKPOINTS +@import "partials/_breakpoints"; +@import "custom"; \ No newline at end of file diff --git a/assets/css/partials/_breakpoints.scss b/assets/css/partials/_breakpoints.scss new file mode 100644 index 0000000..0fe3302 --- /dev/null +++ b/assets/css/partials/_breakpoints.scss @@ -0,0 +1,96 @@ +@mixin media($for-tablet-up) { + @media only screen and (min-width: $for-tablet-up) { + @content; + } +} + +@include media(900px) { + // TOP NAV + nav { + position: fixed; + overflow-y: scroll; + height: 100%; + top: 0; + left: 36px; + width: 240px; + padding: 0px; + } + + .site-title { + margin: 3em 0em 1em 0em; + text-align: left; + } + + .nav-menu { + display: flex; + flex-direction: column; + align-items: flex-start; + } + + .nav-link { + margin-bottom: 0.5em; + } + + .description { + text-align: left; + padding: 1.55em 0 0.5em 0; + border-bottom: none; + margin-bottom: 1em; + margin-top: 0em; + } + + .article-content { + margin-top: 1.4em; + } + + // CONTENT + .paginator { + padding-bottom: 2em; + } + + .content-container { + max-width: 680px; + margin-left: 310px; + padding: 0 1.5em 0 0; + height: 100%; + display: flex; + flex-direction: column; + + h1 { + font-size: 1.9em; + border-top: none; + padding-top: 0em; + margin-top: 1.4em; + } + } + + .post-title { + border-top: none; + padding-top: 0em; + margin-top: 0.75em; + } + + // FOOTER + .page-footer { + border-bottom: none; + } + + .footer { + position: relative; + visibility: visible; + margin-top: 1em; + text-align: left; + } + + .footer-mobile { + visibility: hidden; + height: 0em; + padding: 0em; + margin: 0em; + overflow: hidden; + } + + .social-icons { + width: 100%; + } +} \ No newline at end of file diff --git a/assets/css/partials/_fonts.scss b/assets/css/partials/_fonts.scss new file mode 100644 index 0000000..1067615 --- /dev/null +++ b/assets/css/partials/_fonts.scss @@ -0,0 +1,32 @@ +@font-face { + font-family: Noto Sans; + src: url(../fonts/NotoSans-Regular.woff2) format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url(../fonts/NotoSans-Regular.woff) format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-weight: 400; + font-display: fallback; + } + +@font-face { + font-family: Noto Sans; + src: url(../fonts/NotoSans-Italic.woff2) format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url(../fonts/NotoSans-Italic.woff) format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-weight: 400; + font-style: italic; + font-display: fallback; +} + +@font-face { + font-family: Noto Serif; + src: url(../fonts/NotoSerif-SemiBold.woff2) format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url(../fonts/NotoSerif-SemiBold.woff) format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-weight: 600; + font-display: fallback; +} + +@font-face { + font-family: Noto Serif; + src: url(../fonts/NotoSerif-Bold.woff2) format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url(../fonts/NotoSerif-Bold.woff) format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-weight: 700; + font-display: fallback; +} \ No newline at end of file diff --git a/assets/css/vendor/normalize.scss b/assets/css/vendor/normalize.scss new file mode 100644 index 0000000..8c331ec --- /dev/null +++ b/assets/css/vendor/normalize.scss @@ -0,0 +1,350 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + + html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + } + + /* Sections + ========================================================================== */ + + /** + * Remove the margin in all browsers. + */ + + body { + margin: 0; + } + + /** + * Render the `main` element consistently in IE. + */ + + main { + display: block; + } + + /** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + + h1 { + font-size: 2em; + margin: 0.67em 0; + } + + /* Grouping content + ========================================================================== */ + + /** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + + hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + } + + /* Text-level semantics + ========================================================================== */ + + /** + * Remove the gray background on active links in IE 10. + */ + + a { + background-color: transparent; + } + + /** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + + abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ + } + + /** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + + b, + strong { + font-weight: bolder; + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + code, + kbd, + samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + } + + /** + * Add the correct font size in all browsers. + */ + + small { + font-size: 80%; + } + + /** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + + sub, + sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + + sub { + bottom: -0.25em; + } + + sup { + top: -0.5em; + } + + /* Embedded content + ========================================================================== */ + + /** + * Remove the border on images inside links in IE 10. + */ + + img { + border-style: none; + } + + /* Forms + ========================================================================== */ + + /** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + + button, + input, + optgroup, + select, + textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ + } + + /** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + + button, + input { /* 1 */ + overflow: visible; + } + + /** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + + button, + select { /* 1 */ + text-transform: none; + } + + /** + * Correct the inability to style clickable types in iOS and Safari. + */ + + button, + [type="button"], + [type="reset"], + [type="submit"] { + -webkit-appearance: button; + } + + /** + * Remove the inner border and padding in Firefox. + */ + + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; + } + + /** + * Restore the focus styles unset by the previous rule. + */ + + button:-moz-focusring, + [type="button"]:-moz-focusring, + [type="reset"]:-moz-focusring, + [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; + } + + /** + * Correct the padding in Firefox. + */ + + fieldset { + padding: 0.35em 0.75em 0.625em; + } + + /** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + + legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ + } + + /** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + + progress { + vertical-align: baseline; + } + + /** + * Remove the default vertical scrollbar in IE 10+. + */ + + textarea { + overflow: auto; + } + + /** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } + + /** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + + [type="number"]::-webkit-inner-spin-button, + [type="number"]::-webkit-outer-spin-button { + height: auto; + } + + /** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + + [type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ + } + + /** + * Remove the inner padding in Chrome and Safari on macOS. + */ + + [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + + /** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + + ::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ + } + + /* Interactive + ========================================================================== */ + + /* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + + details { + display: block; + } + + /* + * Add the correct display in all browsers. + */ + + summary { + display: list-item; + } + + /* Misc + ========================================================================== */ + + /** + * Add the correct display in IE 10+. + */ + + template { + display: none; + } + + /** + * Add the correct display in IE 10. + */ + + [hidden] { + display: none; + } + \ No newline at end of file diff --git a/assets/css/vendor/syntax.scss b/assets/css/vendor/syntax.scss new file mode 100644 index 0000000..350286e --- /dev/null +++ b/assets/css/vendor/syntax.scss @@ -0,0 +1,59 @@ +/* Background */ .chroma { color: #f8f8f2; background-color: #272822 } +/* Error */ .chroma .err { color: #960050; background-color: #1e0010 } +/* 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: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } +/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } +/* Keyword */ .chroma .k { color: #66d9ef } +/* KeywordConstant */ .chroma .kc { color: #66d9ef } +/* KeywordDeclaration */ .chroma .kd { color: #66d9ef } +/* KeywordNamespace */ .chroma .kn { color: #f92672 } +/* KeywordPseudo */ .chroma .kp { color: #66d9ef } +/* KeywordReserved */ .chroma .kr { color: #66d9ef } +/* KeywordType */ .chroma .kt { color: #66d9ef } +/* NameAttribute */ .chroma .na { color: #a6e22e } +/* NameClass */ .chroma .nc { color: #a6e22e } +/* NameConstant */ .chroma .no { color: #66d9ef } +/* NameDecorator */ .chroma .nd { color: #a6e22e } +/* NameException */ .chroma .ne { color: #a6e22e } +/* NameFunction */ .chroma .nf { color: #a6e22e } +/* NameOther */ .chroma .nx { color: #a6e22e } +/* NameTag */ .chroma .nt { color: #f92672 } +/* Literal */ .chroma .l { color: #ae81ff } +/* LiteralDate */ .chroma .ld { color: #e6db74 } +/* LiteralString */ .chroma .s { color: #e6db74 } +/* LiteralStringAffix */ .chroma .sa { color: #e6db74 } +/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } +/* LiteralStringChar */ .chroma .sc { color: #e6db74 } +/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } +/* LiteralStringDoc */ .chroma .sd { color: #e6db74 } +/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } +/* LiteralStringEscape */ .chroma .se { color: #ae81ff } +/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } +/* LiteralStringInterpol */ .chroma .si { color: #e6db74 } +/* LiteralStringOther */ .chroma .sx { color: #e6db74 } +/* LiteralStringRegex */ .chroma .sr { color: #e6db74 } +/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } +/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } +/* LiteralNumber */ .chroma .m { color: #ae81ff } +/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } +/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } +/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } +/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } +/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } +/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } +/* Operator */ .chroma .o { color: #f92672 } +/* OperatorWord */ .chroma .ow { color: #f92672 } +/* Comment */ .chroma .c { color: #75715e } +/* CommentHashbang */ .chroma .ch { color: #75715e } +/* CommentMultiline */ .chroma .cm { color: #75715e } +/* CommentSingle */ .chroma .c1 { color: #75715e } +/* CommentSpecial */ .chroma .cs { color: #75715e } +/* CommentPreproc */ .chroma .cp { color: #75715e } +/* CommentPreprocFile */ .chroma .cpf { color: #75715e } +/* GenericDeleted */ .chroma .gd { color: #f92672 } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericInserted */ .chroma .gi { color: #a6e22e } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #75715e } diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..bc6ab12 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,13 @@ +window.onload = wrapTable(); + +// Wrap tables in a div so that they scroll responsively. +function wrapTable() { + const tables = document.querySelectorAll('table'); + tables.forEach((table) => { + const tableWrapper = document.createElement('div'); + tableWrapper.className = 'table-wrapper'; + table.parentElement.replaceChild(tableWrapper, table); + tableWrapper.appendChild(table); + }); + }; + diff --git a/exampleSite/archetypes/default.md b/exampleSite/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/exampleSite/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/exampleSite/config.toml b/exampleSite/config.toml new file mode 100644 index 0000000..8323795 --- /dev/null +++ b/exampleSite/config.toml @@ -0,0 +1,95 @@ +baseURL = "https://example.com" +languageCode = "en-us" +title = "Noteworthy" +theme = "noteworthy" +enableRobotsTXT = true +paginate = 4 # Set the number of posts to show before overflowing to the next page. +summaryLength = 10 # Configure how long the post summary should be on the homepage. +disableKinds = ["taxonomyTerm"] + +[author] + name = "kimcc" + +[params] + math = true + # Blog description at the top of the homepage. Supports markdown. + description = "Noteworthy is a minimalist Hugo theme, perfect for writers and bloggers." + + # Add links to your accounts. Remove the ones you don't want to include. + # Main + email = "" + facebook = "" + twitter = "" + instagram = "" + tumblr = "" + reddit = "" + pinterest = "" + youtube = "" + weibo = "" + vk = "" + linkedin = "" + + # Writing + medium = "" + blogger = "" + wordpress = "" + + # Creative & Visual + dribbble = "" + behance = "" + deviantart = "" + flickr = "" + + # Programming + github = "" + stackoverflow = "" + gitlab = "" + codepen = "" + +# Add your Disqus shortname here. +disqusShortname = "" + +# Add your Google Analytics identifier: UA-XXXXXXXX-X +googleAnalytics = "" + +# Menu links along the sidebar navigation. +[[menu.main]] + identifier = "about" + name = "About" + url = "/about/" + weight = 1 # Weight is an integer used to sort the menu items. The sorting goes from smallest to largest numbers. If weight is not defined for each menu entry, Hugo will sort the entries alphabetically. + +[[menu.main]] + identifier = "tags" + name = "Tags" + url = "/tags/" + weight = 2 + +[[menu.main]] + name = "Archives" + identifier = "archives" + url = "/archives/" + weight = 3 + +# Privacy configurations: https://gohugo.io/about/hugo-and-gdpr/ +[privacy] + [privacy.disqus] + disable = false + [privacy.googleAnalytics] + anonymizeIP = true + disable = false + respectDoNotTrack = false + useSessionStorage = false + [privacy.instagram] + disable = false + simple = false + [privacy.twitter] + disable = false + enableDNT = false + simple = false + [privacy.vimeo] + disable = false + simple = false + [privacy.youtube] + disable = false + privacyEnhanced = true \ No newline at end of file diff --git a/exampleSite/content/about.md b/exampleSite/content/about.md new file mode 100644 index 0000000..ce6e637 --- /dev/null +++ b/exampleSite/content/about.md @@ -0,0 +1,24 @@ +--- +date: 2019-05-28 +type: section +title: "About" +--- + +Written in Go, Hugo is an open source static site generator available under the [Apache License 2.0](https://github.com/gohugoio/hugo/blob/master/LICENSE). Hugo supports TOML, YAML, and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows. + +Hugo makes use of a variety of open source projects including: + +* [Blackfriday](https://github.com/russross/blackfriday) +* [Chroma](https://github.com/alecthomas/chroma) +* [Smartcrop](https://github.com/muesli/smartcrop) +* [Cobra](https://github.com/spf13/cobra) +* [Viper](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. + +Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases. + +Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider. + +Learn more and contribute on [GitHub](https://github.com/gohugoio). + diff --git a/exampleSite/content/archives.md b/exampleSite/content/archives.md new file mode 100644 index 0000000..98a1ee9 --- /dev/null +++ b/exampleSite/content/archives.md @@ -0,0 +1,5 @@ +--- +date: 2019-05-28 +type: section +layout: "archives" +--- \ No newline at end of file diff --git a/exampleSite/content/posts/emoji-support.md b/exampleSite/content/posts/emoji-support.md new file mode 100755 index 0000000..dc9025b --- /dev/null +++ b/exampleSite/content/posts/emoji-support.md @@ -0,0 +1,30 @@ +--- +author: "Hugo Authors" +title: "Emoji Support" +date: "2019-12-03" +description: "Guide to emoji usage in Hugo" +tags: [ + "emoji", +] +--- +Emoji can be enabled in a Hugo project in a number of ways. + +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. + + +
π :see_no_evil:
π :hear_no_evil:
π :speak_no_evil:
Test
+ + +``` +#### Code block indented with four spaces + + + + + +Test
+ + + +#### Code block with Hugo's internal highlight shortcode +{{< highlight html >}} + + + + +Test
+ + +{{< /highlight >}} + +## List Types + +#### Ordered List + +1. First item +2. Second item +3. Third item + +#### Unordered List + +* List item +* Another item +* And another item + +#### Nested list + +* Item +1. First Sub-item +2. Second Sub-item + +## Other Elements β abbr, sub, sup, kbd, mark + +GIF is a bitmap image format. + +H2O + +Xn + Yn = Zn + +Press CTRL+ALT+Delete to end the session. + +Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. + diff --git a/exampleSite/content/posts/math-typesetting.mmark b/exampleSite/content/posts/math-typesetting.mmark new file mode 100755 index 0000000..471a858 --- /dev/null +++ b/exampleSite/content/posts/math-typesetting.mmark @@ -0,0 +1,38 @@ +--- +author: Hugo Authors +title: Math Typesetting +date: 2019-12-12 +description: A brief guide to setup KaTeX +markup: mmark +type: "post" +--- + +Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries. + +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: + +``` +{{ if or .Params.math .Site.Params.math }} +{{ partial "math.html" . }} +{{ end }} +``` +- To enable KaTex globally set the parameter `math` to `true` in a project's configuration +- To enable KaTex on a per page basis include the parameter `math: true` in content files. + +**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html) + + +### Examples + +Inline math: $$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887β¦ $$ + +Block math: + +$$ + \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } +$$ + diff --git a/exampleSite/content/posts/placeholder-text.md b/exampleSite/content/posts/placeholder-text.md new file mode 100755 index 0000000..16769e3 --- /dev/null +++ b/exampleSite/content/posts/placeholder-text.md @@ -0,0 +1,59 @@ +--- +author: "Hugo Authors" +title: "Placeholder Text" +date: "2019-12-17" +description: "Lorem Ipsum Dolor Si Amet" +tags: [ + "markdown", + "text", +] +type: "post" +--- + +Lorem est tota propiore conpellat pectoribus de pectora summo. +Redit teque digerit hominumque toris verebor lumina non cervice +subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc +caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis +lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum. + +1. Exierant elisi ambit vivere dedere +2. Duce pollice +3. Eris modo +4. Spargitque ferrea quos palude + +Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus +silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria +tractus malis. + +1. Comas hunc haec pietate fetum procerum dixit +2. Post torum vates letum Tiresia +3. Flumen querellas +4. Arcanaque montibus omnes +5. Quidem et + +# Vagus elidunt + + + +[The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon) + +## Mane refeci capiebant unda mulcebat + +Victa caducifer, malo vulnere contra +dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere +furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis. + +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**. + +{{< css.inline >}} + +{{< /css.inline >}} \ No newline at end of file diff --git a/exampleSite/content/posts/rich-content.md b/exampleSite/content/posts/rich-content.md new file mode 100755 index 0000000..5419f70 --- /dev/null +++ b/exampleSite/content/posts/rich-content.md @@ -0,0 +1,43 @@ +--- +author: "Hugo Authors" +title: "Rich Content" +date: "2020-01-02" +description: "A brief description of Hugo Shortcodes" +tags: [ + "shortcodes", + "privacy", +] +type: "post" +--- + +Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-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. + +--- + +## Instagram Simple Shortcode + +{{< instagram_simple BGvuInzyFAe hidecaption >}} + ++ {{ .Content }} +
++ {{ .Summary }} +
+{{ .Site.Params.Description | markdownify }}
+{{ .Summary }}
Page {{ $paginator.PageNumber}} of {{ $paginator.TotalPages }}
+0&&(e="."===(e=t)?null:e),e};Qt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,greediness:6,argTypes:["math","math","size","text","math","math"]},handler:function(t,e){var r=t.parser,a=e[4],n=e[5],i=Vt(e[0],"atom");i&&(i=Ut(e[0],"open"));var o=i?Lr(i.text):null,s=Vt(e[1],"atom");s&&(s=Ut(e[1],"close"));var h,l=s?Lr(s.text):null,m=Ft(e[2],"size"),c=null;h=!!m.isBlank||(c=m.value).number>0;var u="auto",p=Vt(e[3],"ordgroup");if(p){if(p.body.length>0){var d=Ft(p.body[0],"textord");u=Er[Number(d.text)]}}else p=Ft(e[3],"textord"),u=Er[Number(p.text)];return{type:"genfrac",mode:r.mode,numer:a,denom:n,continued:!1,hasBarLine:h,barSize:c,leftDelim:o,rightDelim:l,size:u}},htmlBuilder:Rr,mathmlBuilder:Or}),Qt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(t,e){var r=t.parser,a=(t.funcName,t.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ft(e[0],"size").value,token:a}}}),Qt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(t,e){var r=t.parser,a=(t.funcName,e[0]),n=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t}(Ft(e[1],"infix").size),i=e[2],o=n.number>0;return{type:"genfrac",mode:r.mode,numer:a,denom:i,continued:!1,hasBarLine:o,barSize:n,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Rr,mathmlBuilder:Or});var Hr=function(t,e){var r,a,n=e.style,i=Vt(t,"supsub");i?(r=i.sup?ue(i.sup,e.havingStyle(n.sup()),e):ue(i.sub,e.havingStyle(n.sub()),e),a=Ft(i.base,"horizBrace")):a=Ft(t,"horizBrace");var o,s=ue(a.base,e.havingBaseStyle(w.DISPLAY)),h=Oe(a,e);if(a.isOver?(o=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:h}]},e)).children[0].children[0].children[1].classes.push("svg-align"):(o=Dt.makeVList({positionType:"bottom",positionData:s.depth+.1+h.height,children:[{type:"elem",elem:h},{type:"kern",size:.1},{type:"elem",elem:s}]},e)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e);o=a.isOver?Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):Dt.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e)};Qt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:Hr,mathmlBuilder:function(t,e){var r=Re(t.label);return new ve.MathNode(t.isOver?"mover":"munder",[Me(t.base,e),r])}}),Qt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[1],n=Ft(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:ee(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(t,e){var r=se(t.body,e,!1);return Dt.makeAnchor(t.href,[],r,e)},mathmlBuilder:function(t,e){var r=Se(t.body,e);return r instanceof ge||(r=new ge("mrow",[r])),r.setAttribute("href",t.href),r}}),Qt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=Ft(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;i0&&(u+=M,p-=M)}var z=[{type:"elem",elem:n,shift:p,marginRight:b,marginLeft:y},{type:"elem",elem:a,shift:-u,marginRight:b}];x=Dt.makeVList({positionType:"individualShift",children:z},e)}else if(n){p=Math.max(p,m.sub1,n.height-.8*m.xHeight);var A=[{type:"elem",elem:n,marginLeft:y,marginRight:b}];x=Dt.makeVList({positionType:"shift",positionData:p,children:A},e)}else{if(!a)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,a.depth+.25*m.xHeight),x=Dt.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:a,marginRight:b}]},e)}var T=me(l,"right")||"mord";return Dt.makeSpan([T],[l,Dt.makeSpan(["msupsub"],[x])],e)},mathmlBuilder:function(t,e){var r,a=!1,n=Vt(t.base,"horizBrace");n&&!!t.sup===n.isOver&&(a=!0,r=n.isOver),!t.base||"op"!==t.base.type&&"operatorname"!==t.base.type||(t.base.parentIsSupSub=!0);var i,o=[Me(t.base,e)];if(t.sub&&o.push(Me(t.sub,e)),t.sup&&o.push(Me(t.sup,e)),a)i=r?"mover":"munder";else if(t.sub)if(t.sup){var s=t.base;i=s&&"op"===s.type&&s.limits&&e.style===w.DISPLAY?"munderover":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(e.style===w.DISPLAY||s.limits)?"munderover":"msubsup"}else{var h=t.base;i=h&&"op"===h.type&&h.limits&&(e.style===w.DISPLAY||h.alwaysHandleSupSub)?"munder":h&&"operatorname"===h.type&&h.alwaysHandleSupSub&&(h.limits||e.style===w.DISPLAY)?"munder":"msub"}else{var l=t.base;i=l&&"op"===l.type&&l.limits&&(e.style===w.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||e.style===w.DISPLAY)?"mover":"msup"}return new ve.MathNode(i,o)}}),te({type:"atom",htmlBuilder:function(t,e){return Dt.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[be(t.text,t.mode)]);if("bin"===t.family){var a=we(t,e);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===t.family?r.setAttribute("separator","true"):"open"!==t.family&&"close"!==t.family||r.setAttribute("stretchy","false");return r}});var Zr={mi:"italic",mn:"normal",mtext:"normal"};te({type:"mathord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"mathord")},mathmlBuilder:function(t,e){var r=new ve.MathNode("mi",[be(t.text,t.mode,e)]),a=we(t,e)||"italic";return a!==Zr[r.type]&&r.setAttribute("mathvariant",a),r}}),te({type:"textord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"textord")},mathmlBuilder:function(t,e){var r,a=be(t.text,t.mode,e),n=we(t,e)||"normal";return r="text"===t.mode?new ve.MathNode("mtext",[a]):/[0-9]/.test(t.text)?new ve.MathNode("mn",[a]):"\\prime"===t.text?new ve.MathNode("mo",[a]):new ve.MathNode("mi",[a]),n!==Zr[r.type]&&r.setAttribute("mathvariant",n),r}});var Kr={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Jr={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};te({type:"spacing",htmlBuilder:function(t,e){if(Jr.hasOwnProperty(t.text)){var r=Jr[t.text].className||"";if("text"===t.mode){var a=Dt.makeOrd(t,e,"textord");return a.classes.push(r),a}return Dt.makeSpan(["mspace",r],[Dt.mathsym(t.text,t.mode,e)],e)}if(Kr.hasOwnProperty(t.text))return Dt.makeSpan(["mspace",Kr[t.text]],[],e);throw new o('Unknown type of space "'+t.text+'"')},mathmlBuilder:function(t,e){if(!Jr.hasOwnProperty(t.text)){if(Kr.hasOwnProperty(t.text))return new ve.MathNode("mspace");throw new o('Unknown type of space "'+t.text+'"')}return new ve.MathNode("mtext",[new ve.TextNode("\xa0")])}});var Qr=function(){var t=new ve.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};te({type:"tag",mathmlBuilder:function(t,e){var r=new ve.MathNode("mtable",[new ve.MathNode("mtr",[Qr(),new ve.MathNode("mtd",[Se(t.body,e)]),Qr(),new ve.MathNode("mtd",[Se(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var ta={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},ea={"\\textbf":"textbf","\\textmd":"textmd"},ra={"\\textit":"textit","\\textup":"textup"},aa=function(t,e){var r=t.font;return r?ta[r]?e.withTextFontFamily(ta[r]):ea[r]?e.withTextFontWeight(ea[r]):e.withTextFontShape(ra[r]):e};Qt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],greediness:2,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"text",mode:r.mode,body:ee(n),font:a}},htmlBuilder:function(t,e){var r=aa(t,e),a=se(t.body,r,!0);return Dt.makeSpan(["mord","text"],Dt.tryCombineChars(a),r)},mathmlBuilder:function(t,e){var r=aa(t,e);return Se(t.body,r)}}),Qt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){return{type:"underline",mode:t.parser.mode,body:e[0]}},htmlBuilder:function(t,e){var r=ue(t.body,e),a=Dt.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,i=Dt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","underline"],[i],e)},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[new ve.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new ve.MathNode("munder",[Me(t.body,e),r]);return a.setAttribute("accentunder","true"),a}}),Qt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(t,e,r){throw new o("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(t,e){for(var r=na(t),a=[],n=e.havingStyle(e.style.text()),i=0;i
+
+
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..2febbdb
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,12 @@
+name = "Noteworthy"
+license = "MIT"
+licenselink = "https://github.com/kimcc/hugo-theme-noteworthy/blob/master/LICENSE.md"
+description = "A minimalist Hugo theme for writers and bloggers."
+homepage = "https://github.com/kimcc/hugo-theme-noteworthy"
+tags = ["blog", "minimalist", "minimal", "clean", "simple", "responsive", "light"]
+features = ["blog", "responsive", "social media"]
+min_version = "0.55.2"
+
+[author]
+ name = "kimcc"
+ homepage = "https://github.com/kimcc"