From 5bb3087182542aefff2abf10058dc8b851d1dbbe Mon Sep 17 00:00:00 2001 From: KemoNine Date: Sat, 18 Mar 2023 12:15:46 -0400 Subject: [PATCH] import yihui/hugo-xmin theme from https://github.com/yihui/hugo-xmin with the following branches merged feature/github-edit feature/highlight.js feature/pagination feature/show-tags feature/show-toc --- themes/hugo-xmin/.gitignore | 5 + themes/hugo-xmin/LICENSE.md | 20 ++++ themes/hugo-xmin/README.md | 28 +++++ themes/hugo-xmin/archetypes/default.md | 4 + themes/hugo-xmin/exampleSite/config.yaml | 42 ++++++++ .../exampleSite/content/_index.Rmarkdown | 25 +++++ .../exampleSite/content/_index.markdown | 38 +++++++ themes/hugo-xmin/exampleSite/content/about.md | 101 ++++++++++++++++++ .../content/note/2017-06-13-a-quick-note.md | 15 +++ .../content/note/2017-06-14-another-note.md | 14 +++ .../content/post/2015-07-23-lorem-ipsum.md | 18 ++++ .../content/post/2016-02-14-hello-markdown.md | 92 ++++++++++++++++ ...2017-06-21-an-r-markdown-example.Rmarkdown | 19 ++++ .../2017-06-21-an-r-markdown-example.markdown | 31 ++++++ .../content/post/2017-06-22-rmd-toc.Rmd | 26 +++++ .../content/post/2017-06-22-rmd-toc.html | 40 +++++++ .../layouts/partials/foot_custom.html | 12 +++ .../layouts/partials/head_custom.html | 1 + themes/hugo-xmin/hugo-xmin.Rproj | 16 +++ themes/hugo-xmin/images/screenshot.png | Bin 0 -> 37151 bytes themes/hugo-xmin/images/tn.png | Bin 0 -> 21823 bytes themes/hugo-xmin/layouts/404.html | 5 + themes/hugo-xmin/layouts/_default/list.html | 22 ++++ themes/hugo-xmin/layouts/_default/single.html | 23 ++++ themes/hugo-xmin/layouts/_default/terms.html | 13 +++ .../layouts/partials/foot_custom.html} | 0 themes/hugo-xmin/layouts/partials/footer.html | 25 +++++ .../layouts/partials/head_custom.html | 0 themes/hugo-xmin/layouts/partials/header.html | 20 ++++ themes/hugo-xmin/static/css/fonts.css | 7 ++ themes/hugo-xmin/static/css/style.css | 61 +++++++++++ themes/hugo-xmin/theme.toml | 12 +++ 32 files changed, 735 insertions(+) create mode 100644 themes/hugo-xmin/.gitignore create mode 100644 themes/hugo-xmin/LICENSE.md create mode 100644 themes/hugo-xmin/README.md create mode 100644 themes/hugo-xmin/archetypes/default.md create mode 100644 themes/hugo-xmin/exampleSite/config.yaml create mode 100644 themes/hugo-xmin/exampleSite/content/_index.Rmarkdown create mode 100644 themes/hugo-xmin/exampleSite/content/_index.markdown create mode 100644 themes/hugo-xmin/exampleSite/content/about.md create mode 100644 themes/hugo-xmin/exampleSite/content/note/2017-06-13-a-quick-note.md create mode 100644 themes/hugo-xmin/exampleSite/content/note/2017-06-14-another-note.md create mode 100644 themes/hugo-xmin/exampleSite/content/post/2015-07-23-lorem-ipsum.md create mode 100644 themes/hugo-xmin/exampleSite/content/post/2016-02-14-hello-markdown.md create mode 100644 themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.Rmarkdown create mode 100644 themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.markdown create mode 100644 themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.Rmd create mode 100644 themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.html create mode 100644 themes/hugo-xmin/exampleSite/layouts/partials/foot_custom.html create mode 100644 themes/hugo-xmin/exampleSite/layouts/partials/head_custom.html create mode 100644 themes/hugo-xmin/hugo-xmin.Rproj create mode 100644 themes/hugo-xmin/images/screenshot.png create mode 100644 themes/hugo-xmin/images/tn.png create mode 100644 themes/hugo-xmin/layouts/404.html create mode 100644 themes/hugo-xmin/layouts/_default/list.html create mode 100644 themes/hugo-xmin/layouts/_default/single.html create mode 100644 themes/hugo-xmin/layouts/_default/terms.html rename themes/{.gitkeep => hugo-xmin/layouts/partials/foot_custom.html} (100%) create mode 100644 themes/hugo-xmin/layouts/partials/footer.html create mode 100644 themes/hugo-xmin/layouts/partials/head_custom.html create mode 100644 themes/hugo-xmin/layouts/partials/header.html create mode 100644 themes/hugo-xmin/static/css/fonts.css create mode 100644 themes/hugo-xmin/static/css/style.css create mode 100644 themes/hugo-xmin/theme.toml diff --git a/themes/hugo-xmin/.gitignore b/themes/hugo-xmin/.gitignore new file mode 100644 index 0000000..ce130a0 --- /dev/null +++ b/themes/hugo-xmin/.gitignore @@ -0,0 +1,5 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata +exampleSite/public diff --git a/themes/hugo-xmin/LICENSE.md b/themes/hugo-xmin/LICENSE.md new file mode 100644 index 0000000..259e3d6 --- /dev/null +++ b/themes/hugo-xmin/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2017-2022 Yihui Xie + +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/themes/hugo-xmin/README.md b/themes/hugo-xmin/README.md new file mode 100644 index 0000000..2cd5279 --- /dev/null +++ b/themes/hugo-xmin/README.md @@ -0,0 +1,28 @@ +# HUGO XMIN + +## _Keep it simple, but not simpler_ + +**XMin** is a Hugo theme written by [Yihui Xie](https://yihui.org) in about four hours: half an hour was spent on the Hugo templates, and 3.5 hours were spent on styling. The main motivation for writing this theme was to provide a really minimal example to beginners of Hugo templates. This XMin theme contains about 130 lines of code in total, including the code in HTML templates and CSS (also counting empty lines). + + +```bash +find . -not -path '*/exampleSite/*' \( -name '*.html' -o -name '*.css' \) | xargs wc -l +``` + +``` + 5 ./layouts/404.html + 12 ./layouts/_default/single.html + 20 ./layouts/_default/list.html + 13 ./layouts/_default/terms.html + 0 ./layouts/partials/foot_custom.html + 0 ./layouts/partials/head_custom.html + 9 ./layouts/partials/footer.html + 20 ./layouts/partials/header.html + 51 ./static/css/style.css + 7 ./static/css/fonts.css + 137 total +``` + +I can certainly further reduce the code, for example, by eliminating the CSS, but I believe a tiny bit of CSS can greatly improve readability. You cannot really find many CSS frameworks that only contain 50 lines of code. + +[![Screenshot](https://github.com/yihui/hugo-xmin/raw/master/images/screenshot.png)](https://xmin.yihui.org) diff --git a/themes/hugo-xmin/archetypes/default.md b/themes/hugo-xmin/archetypes/default.md new file mode 100644 index 0000000..fb98e92 --- /dev/null +++ b/themes/hugo-xmin/archetypes/default.md @@ -0,0 +1,4 @@ +--- +title: '' +date: '' +--- diff --git a/themes/hugo-xmin/exampleSite/config.yaml b/themes/hugo-xmin/exampleSite/config.yaml new file mode 100644 index 0000000..aaec0d1 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/config.yaml @@ -0,0 +1,42 @@ +baseurl: "/" +languageCode: "en-us" +title: "A minimal Hugo website" +theme: "hugo-xmin" +googleAnalytics: "" +disqusShortname: "" +ignoreFiles: ["\\.Rmd$", "\\.Rmarkdown$", "_cache$"] +footnotereturnlinkcontents: "↩" +paginate: 1 + +permalinks: + note: "/note/:year/:month/:day/:slug/" + post: "/post/:year/:month/:day/:slug/" + +menu: + main: + - name: Home + url: "" + weight: 1 + - name: About + url: "about/" + weight: 2 + - name: Categories + url: "categories/" + weight: 3 + - name: Tags + url: "tags/" + weight: 4 + - name: Subscribe + url: "index.xml" + +params: + description: "A website built through Hugo and blogdown." + footer: "© [Yihui Xie](https://yihui.org) 2017 -- {Year} | [Github](https://github.com/yihui) | [Twitter](https://twitter.com/xieyihui)" + GithubEdit: "https://github.com/yihui/hugo-xmin/edit/feature/github-edit/exampleSite/content/" + +markup: + highlight: + codeFences: false + goldmark: + renderer: + unsafe: true diff --git a/themes/hugo-xmin/exampleSite/content/_index.Rmarkdown b/themes/hugo-xmin/exampleSite/content/_index.Rmarkdown new file mode 100644 index 0000000..bae7bb6 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/_index.Rmarkdown @@ -0,0 +1,25 @@ +--- +title: Home +--- + +[Github repo](https://github.com/yihui/hugo-xmin) + +# HUGO XMIN + +## _Keep it simple, but not simpler_ + +**XMin** is a Hugo theme written by [Yihui Xie](https://yihui.org) in about four hours: half an hour was spent on the Hugo templates, and 3.5 hours were spent on styling. The main motivation for writing this theme was to provide a really minimal example to beginners of Hugo templates. This XMin theme contains about 130 lines of code in total, including the code in HTML templates and CSS (also counting empty lines). + +```{bash, comment='', echo=3, eval=Sys.which('bash') != '', message=FALSE} +cd ../..; +if [ ! -f 'theme.toml' ]; then exit 0; fi # only run find below within the theme example site +find . -not -path '*/exampleSite/*' \( -name '*.html' -o -name '*.css' \) | xargs wc -l +``` + +I can certainly further reduce the code, for example, by eliminating the CSS, but I believe a tiny bit of CSS can greatly improve readability. You cannot really find many CSS frameworks that only contain 50 lines of code. + +Although it is a minimal theme, it is actually fully functional. It supports pages (including the home page), blog posts, a navigation menu, categories, tags, and RSS. With [a little bit customization](https://github.com/yihui/hugo-xmin/blob/master/exampleSite/layouts/partials/foot_custom.html), it can easily support LaTeX math expressions, e.g., + +`$${\sqrt {n}}\left(\left({\frac {1}{n}}\sum _{i=1}^{n}X_{i}\right)-\mu \right)\ {\xrightarrow {d}}\ N\left(0,\sigma ^{2}\right)$$` + +All pages not under the root directory of the website are listed below. You can also visit the list page of a single section, e.g., [posts](/post/), or [notes](/note/). See the [About](/about/) page for the usage of this theme. diff --git a/themes/hugo-xmin/exampleSite/content/_index.markdown b/themes/hugo-xmin/exampleSite/content/_index.markdown new file mode 100644 index 0000000..5a92003 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/_index.markdown @@ -0,0 +1,38 @@ +--- +title: Home +--- + +[Github repo](https://github.com/yihui/hugo-xmin) + +# HUGO XMIN + +## _Keep it simple, but not simpler_ + +**XMin** is a Hugo theme written by [Yihui Xie](https://yihui.org) in about four hours: half an hour was spent on the Hugo templates, and 3.5 hours were spent on styling. The main motivation for writing this theme was to provide a really minimal example to beginners of Hugo templates. This XMin theme contains about 130 lines of code in total, including the code in HTML templates and CSS (also counting empty lines). + + +```bash +find . -not -path '*/exampleSite/*' \( -name '*.html' -o -name '*.css' \) | xargs wc -l +``` + +``` + 5 ./layouts/404.html + 12 ./layouts/_default/single.html + 20 ./layouts/_default/list.html + 13 ./layouts/_default/terms.html + 0 ./layouts/partials/foot_custom.html + 0 ./layouts/partials/head_custom.html + 9 ./layouts/partials/footer.html + 20 ./layouts/partials/header.html + 51 ./static/css/style.css + 7 ./static/css/fonts.css + 137 total +``` + +I can certainly further reduce the code, for example, by eliminating the CSS, but I believe a tiny bit of CSS can greatly improve readability. You cannot really find many CSS frameworks that only contain 50 lines of code. + +Although it is a minimal theme, it is actually fully functional. It supports pages (including the home page), blog posts, a navigation menu, categories, tags, and RSS. With [a little bit customization](https://github.com/yihui/hugo-xmin/blob/master/exampleSite/layouts/partials/foot_custom.html), it can easily support LaTeX math expressions, e.g., + +`$${\sqrt {n}}\left(\left({\frac {1}{n}}\sum _{i=1}^{n}X_{i}\right)-\mu \right)\ {\xrightarrow {d}}\ N\left(0,\sigma ^{2}\right)$$` + +All pages not under the root directory of the website are listed below. You can also visit the list page of a single section, e.g., [posts](/post/), or [notes](/note/). See the [About](/about/) page for the usage of this theme. diff --git a/themes/hugo-xmin/exampleSite/content/about.md b/themes/hugo-xmin/exampleSite/content/about.md new file mode 100644 index 0000000..e542443 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/about.md @@ -0,0 +1,101 @@ +--- +title: About Hugo XMin +author: Yihui Xie +toc: true +--- + +**XMin** is the first Hugo theme I have designed. The original reason that I wrote it was I needed a minimal example of Hugo themes when I was writing the [**blogdown**](https://github.com/rstudio/blogdown) book. Basically I wanted a simple theme that supports a navigation menu, a home page, other single pages, lists of pages, blog posts, categories, tags, and RSS. That is all. Nothing fancy. In terms of CSS and JavaScript, I really want to keep them minimal. In fact, this theme does not contain any JavaScript code at all, although on this example website I did introduce some JavaScript code (still relatively simple anyway). The theme does not contain any images, either, and is pretty much a plain-text theme. + +The theme name "XMin" can be interpreted as "**X**ie's **Min**imal theme" (Xie is my last name) or "e**X**tremely **Min**imal theme". + +# config.yaml + +For this example site, I defined permalinks for two sections, `post` and `note`, so that the links to pages under these directories will contain the date info, e.g., `https://xmin.yihui.org/post/2016/02/14/a-plain-markdown-post/`. This is optional, and it is up to your personal taste of URLs. + +```yaml +permalinks: + note: "/note/:year/:month/:day/:slug/" + post: "/post/:year/:month/:day/:slug/" +``` + +You can define the menu through `menu.main`, e.g., + +```yaml +menu: + main: + - name: Home + url: "" + weight: 1 + - name: About + url: "about/" + weight: 2 + - name: Categories + url: "categories/" + weight: 3 + - name: Tags + url: "tags/" + weight: 4 + - name: Subscribe + url: "index.xml" +``` + +Alternatively, you can add `menu: main` to the YAML metadata of any of your pages, so that these pages will appear in the menu. + +The page footer can be defined in `.Params.footer`, and the text is treated as Markdown, e.g., + +``` +params: + footer: "© [Yihui Xie](https://yihui.org) 2017 -- {Year}" +``` + +Here `{Year}` means the year in which the site is built (usually the current year). + +# Custom layouts + +There are two layout files under `layouts/partials/` that you may want to override: `head_custom.html` and `foot_custom.html`. This is how you inject arbitrary HTML code to the head and foot areas. For example, this site has a file `layouts/partials/foot_custom.html` to support LaTeX math via MathJax and center images automatically: + +```html + + + + +``` + +You can certainly enable highlight.js for syntax highlighting by yourself through `head_custom.html` and `foot_custom.html` if you want. + +If you do not like the default fonts (e.g., `Palatino`), you may provide your own `static/css/fonts.css` under the root directory of your website to override the `fonts.css` in the theme. + +# Other features + +I could have added more features to this theme, but I decided not to, since I have no intention to make this theme feature-rich. However, I will teach you how. I have prepared several examples via pull requests at https://github.com/yihui/hugo-xmin/pulls, so that you can see the implementations of these features when you check out the diffs in the pull requests. For example, you can: + +- [Enable Google Analytics](https://github.com/yihui/hugo-xmin/pull/3) + +- [Enable Disqus comments](https://github.com/yihui/hugo-xmin/pull/4) + +- [Enable highlight.js for syntax highlighting of code blocks](https://github.com/yihui/hugo-xmin/pull/5) + +- [Display categories and tags on a page](https://github.com/yihui/hugo-xmin/pull/2) + +- [Add a table of contents](https://github.com/yihui/hugo-xmin/pull/7) + +- [Add a link in the footer of each page to "Edit this page" on Github](https://github.com/yihui/hugo-xmin/pull/6) + +To fully understand these examples, you have to read [the section on Hugo templates](https://bookdown.org/yihui/blogdown/templates.html) in the **blogdown** book. + +# Design philosophy + +Lastly, a few words about my design philosophy for this theme: I have been relying on existing frameworks like Bootstrap for years since I'm not really a designer, and I was always scared by the complexity of CSS. + +When I started writing this theme, I asked myself, "_What if I just write from scratch?_" No Bootstrap. No Normalize.css. I don't care about IE (life could be so much easier without IE) or inconsistencies among browsers (for personal websites). As long as the theme looks okay in Chrome, Firefox, and Safari, I'm done. Thanks to the simplicity of Markdown, you cannot really produce very complicated HTML, and I think styling the HTML output from Markdown is much simpler than general HTML documents. For example, I do not need to care much about form elements like textareas or buttons. + +After I finished this theme, I started to wonder why I'd need `normalize.css` at all (it sounds like a religious belief). The default appearance of modern browsers actually looks pretty good in my eyes, after I tweak the typeface a little bit. + +Compared to inconsistencies across browsers, I care much more about these properties of HTML elements: + +- Tables should always be centered, and striped tables are easier to read especially when they are wide. Tables should not have vertical borders. +- An image should be centered if it is the only child element of a paragraph. +- The `max-width` of images, videos, and iframes should be `100%`. + +I hope you can enjoy this theme. The source code is [on Github](https://github.com/yihui/hugo-xmin). Happy hacking! diff --git a/themes/hugo-xmin/exampleSite/content/note/2017-06-13-a-quick-note.md b/themes/hugo-xmin/exampleSite/content/note/2017-06-13-a-quick-note.md new file mode 100644 index 0000000..9d855a4 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/note/2017-06-13-a-quick-note.md @@ -0,0 +1,15 @@ +--- +title: A Quick Note on Two Beautiful Websites +author: Yihui Xie +date: '2017-06-13' +categories: + - Example +slug: a-quick-note +--- + +To me, the two most impressive websites based on **blogdown** are: + +1. [Rob J Hyndman](https://robjhyndman.com)'s personal website. +1. [Live Free or Dichotomize](http://livefreeordichotomize.com) by Lucy and Nick _et al_. + +I'm sure there will be more. diff --git a/themes/hugo-xmin/exampleSite/content/note/2017-06-14-another-note.md b/themes/hugo-xmin/exampleSite/content/note/2017-06-14-another-note.md new file mode 100644 index 0000000..c0f3a94 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/note/2017-06-14-another-note.md @@ -0,0 +1,14 @@ +--- +title: Another Note on A blogdown Tutorial +author: Yihui Xie +date: '2017-06-14' +categories: + - Example +tags: + - Tutorial +slug: another-note +--- + +I just discovered [an awesome tutorial](https://www.apreshill.com/blog/2020-12-new-year-new-blogdown/) on **blogdown** written by Alison. I have to admit this is _the_ best **blogdown** tutorial I have seen so far. + +![Alison's blogdown tutorial](https://www.apreshill.com/blog/2020-12-new-year-new-blogdown/03-blogdown-2021.png) diff --git a/themes/hugo-xmin/exampleSite/content/post/2015-07-23-lorem-ipsum.md b/themes/hugo-xmin/exampleSite/content/post/2015-07-23-lorem-ipsum.md new file mode 100644 index 0000000..ef58622 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2015-07-23-lorem-ipsum.md @@ -0,0 +1,18 @@ +--- +title: Lorem Ipsum +date: '2015-07-23' +categories: + - Example +tags: + - Markdown +--- + +**Lorem ipsum** dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore _magna aliqua_. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +Quisque mattis volutpat lorem vitae feugiat. Praesent porta est quis porta imperdiet. Aenean porta, mi non cursus volutpat, mi est mollis libero, id suscipit orci urna a augue. In fringilla euismod lacus, vitae tristique massa ultricies vitae. Mauris accumsan ligula tristique, viverra nulla sed, porta sapien. Vestibulum facilisis nec nisl blandit convallis. Maecenas venenatis porta malesuada. Ut ac erat tortor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla sodales quam sit amet tincidunt egestas. In et turpis at orci vestibulum ullamcorper. Aliquam sed ante libero. Sed hendrerit arcu lacus. + +> Sed luctus volutpat sem in dapibus. Ut pellentesque vitae magna ac mattis. Sed vestibulum, nulla at condimentum semper, magna quam posuere dui, quis sagittis enim nisi eget ex. Vivamus tempor erat a sem dapibus porta. Fusce varius dapibus tempus. Nam bibendum dignissim fringilla. Phasellus eu justo facilisis, ullamcorper urna in, feugiat mauris. Quisque dignissim purus vitae ullamcorper scelerisque. Sed at magna at nisi consequat euismod. Curabitur justo ex, efficitur in fermentum luctus, tincidunt nec lectus. Aliquam a neque metus. Etiam nulla nunc, tristique vitae accumsan ullamcorper, placerat eget nunc. Cras porta eleifend dolor maximus molestie. Etiam vitae pellentesque turpis, quis accumsan ligula. Mauris auctor, nisi nec ullamcorper pulvinar, libero magna sagittis enim, sollicitudin dignissim urna justo et tortor. + +Morbi non sem euismod, suscipit purus id, gravida velit. Quisque mollis luctus ligula non suscipit. Curabitur massa arcu, aliquam ac dolor a, pellentesque dignissim dui. Donec at vestibulum magna. Quisque fermentum, tortor id sodales egestas, ligula ligula interdum ipsum, et volutpat elit massa vitae nibh. Morbi eleifend libero quis pretium viverra. Etiam congue, velit ac vestibulum finibus, velit nibh fringilla purus, eu semper dui est eu nunc. Etiam feugiat scelerisque diam vitae sodales. Etiam luctus in urna eu lobortis. Nam vestibulum eros et nibh elementum ullamcorper. Nam tristique porttitor orci, nec pretium est vestibulum at. Quisque posuere semper orci, vel semper justo commodo sed. Nullam accumsan risus rhoncus fringilla porta. Morbi interdum condimentum pharetra. Donec eu elit quam. Vivamus eleifend posuere mi, vel accumsan urna sollicitudin ut. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla nec nunc felis. Sed bibendum vel leo id semper. Maecenas vitae iaculis ante. Nam ut tempor est, eu molestie augue. Quisque tincidunt sagittis odio sed tristique. Aenean et felis quis mi viverra consequat. diff --git a/themes/hugo-xmin/exampleSite/content/post/2016-02-14-hello-markdown.md b/themes/hugo-xmin/exampleSite/content/post/2016-02-14-hello-markdown.md new file mode 100644 index 0000000..21ee28d --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2016-02-14-hello-markdown.md @@ -0,0 +1,92 @@ +--- +title: A Plain Markdown Post +author: Yihui Xie +date: '2016-02-14' +categories: + - Example + - Hugo +tags: + - blogdown + - Markdown + - MathJax + - Pandoc + - RStudio +--- + +This sample post is mainly for [**blogdown**](https://github.com/rstudio/blogdown) users. If you do not use **blogdown**, you can skip the first section. + +# 1. Markdown or R Markdown + +This is a post written in plain Markdown (`*.md`) instead of R Markdown (`*.Rmd`). The major differences are: + +1. You cannot run any R code in a plain Markdown document, whereas in an R Markdown document, you can embed R code chunks (```` ```{r} ````); +2. A plain Markdown post is rendered through [Blackfriday](https://gohugo.io/overview/configuration/), and an R Markdown document is compiled by [**rmarkdown**](http://rmarkdown.rstudio.com) and [Pandoc](http://pandoc.org). + +There are many differences in syntax between Blackfriday's Markdown and Pandoc's Markdown. For example, you can write a task list with Blackfriday but not with Pandoc: + +- [x] Write an R package. +- [ ] Write a book. +- [ ] ... +- [ ] Profit! + +Similarly, Blackfriday does not support LaTeX math and Pandoc does. I have added the MathJax support to this theme ([hugo-xmin](https://github.com/yihui/hugo-xmin)) but there is a caveat for plain Markdown posts: you have to include math expressions in a pair of backticks (inline: `` `$ $` ``; display style: `` `$$ $$` ``), e.g., `$S_n = \sum_{i=1}^n X_i$`.^[This is because we have to protect the math expressions from being interpreted as Markdown.] For R Markdown posts, you do not need the backticks, because Pandoc can identify and process math expressions. + +When creating a new post, you have to decide whether the post format is Markdown or R Markdown, and this can be done via the `rmd` argument of the function `blogdown::new_post()`, e.g. + +```r +blogdown::new_post("Post Title", rmd = FALSE) +``` + +Actually I recommend you to use the RStudio addin "New Post" instead: + +![RStudio addin New Post](https://bookdown.org/yihui/blogdown/images/new-post.png) + +# 2. Sample Text + +## Second-level header + +### Third-level header + +#### Fourth-level header + +A paragraph (with a footnote): + +**Lorem ipsum** dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore _magna aliqua_. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.^[I'm sure you are bored by the text here.] + +A blockquote (a gray bar at the left and lightgray background): + +> Quisque mattis volutpat lorem vitae feugiat. Praesent porta est quis porta imperdiet. Aenean porta, mi non cursus volutpat, mi est mollis libero, id suscipit orci urna a augue. In fringilla euismod lacus, vitae tristique massa ultricies vitae. Mauris accumsan ligula tristique, viverra nulla sed, porta sapien. Vestibulum facilisis nec nisl blandit convallis. Maecenas venenatis porta malesuada. Ut ac erat tortor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla sodales quam sit amet tincidunt egestas. In et turpis at orci vestibulum ullamcorper. Aliquam sed ante libero. Sed hendrerit arcu lacus. + +Some code (with a drop-shadow effect): + +```js +(function() { + var quotes = document.getElementsByTagName('blockquote'), i, quote; + for (i = 0; i < quotes.length; i++) { + quote = quotes[i]; + var n = quote.children.length; + if (n === 0) continue; + var el = quote.children[n - 1]; + if (!el || el.nodeName !== 'P') continue; + // right-align a quote footer if it starts with --- + if (/^—/.test(el.textContent)) el.style.textAlign = 'right'; + } +})(); +``` + +A table (centered by default): + +| Sepal.Length| Sepal.Width| Petal.Length| Petal.Width|Species | +|------------:|-----------:|------------:|-----------:|:-------| +| 5.1| 3.5| 1.4| 0.2|setosa | +| 4.9| 3.0| 1.4| 0.2|setosa | +| 4.7| 3.2| 1.3| 0.2|setosa | +| 4.6| 3.1| 1.5| 0.2|setosa | +| 5.0| 3.6| 1.4| 0.2|setosa | +| 5.4| 3.9| 1.7| 0.4|setosa | + +An image (automatically centered when it is appropriate): + +![Happy Elmo](https://slides.yihui.org/gif/happy-elmo.gif) + +Looks good? diff --git a/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.Rmarkdown b/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.Rmarkdown new file mode 100644 index 0000000..9678235 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.Rmarkdown @@ -0,0 +1,19 @@ +--- +title: An R Markdown Example +author: Yihui Xie +date: '2017-06-21' +categories: + - Example + - R +tags: + - blogdown +slug: an-r-markdown-example +--- + +This is a simple R Markdown example, with a single R code chunk below. + +```{r} +knitr::kable(head(mtcars)) +``` + +The table shows the first 6 rows of the `mtcars` dataset in base R. diff --git a/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.markdown b/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.markdown new file mode 100644 index 0000000..84577e1 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2017-06-21-an-r-markdown-example.markdown @@ -0,0 +1,31 @@ +--- +title: An R Markdown Example +author: Yihui Xie +date: '2017-06-21' +categories: + - Example + - R +tags: + - blogdown +slug: an-r-markdown-example +--- + +This is a simple R Markdown example, with a single R code chunk below. + + +```r +knitr::kable(head(mtcars)) +``` + + + +| | mpg| cyl| disp| hp| drat| wt| qsec| vs| am| gear| carb| +|:-----------------|----:|---:|----:|---:|----:|-----:|-----:|--:|--:|----:|----:| +|Mazda RX4 | 21.0| 6| 160| 110| 3.90| 2.620| 16.46| 0| 1| 4| 4| +|Mazda RX4 Wag | 21.0| 6| 160| 110| 3.90| 2.875| 17.02| 0| 1| 4| 4| +|Datsun 710 | 22.8| 4| 108| 93| 3.85| 2.320| 18.61| 1| 1| 4| 1| +|Hornet 4 Drive | 21.4| 6| 258| 110| 3.08| 3.215| 19.44| 1| 0| 3| 1| +|Hornet Sportabout | 18.7| 8| 360| 175| 3.15| 3.440| 17.02| 0| 0| 3| 2| +|Valiant | 18.1| 6| 225| 105| 2.76| 3.460| 20.22| 1| 0| 3| 1| + +The table shows the first 6 rows of the `mtcars` dataset in base R. diff --git a/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.Rmd b/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.Rmd new file mode 100644 index 0000000..d5440c5 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.Rmd @@ -0,0 +1,26 @@ +--- +title: Show Table of Contents for R Markdown Posts +date: '2017-06-22' +slug: rmd-toc +output: + blogdown::html_page: + toc: true +--- + +# One Section + +A quick fox jumped over the lazy dog. + +![quick fox](https://slides.yihui.name/gif/quick-fox.gif) + +# Another Section + +A quick fox jumped over the lazy dog. + +## A subsection + +A quick fox jumped over the lazy dog. + +## Another subsection + +A quick fox jumped over the lazy dog. diff --git a/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.html b/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.html new file mode 100644 index 0000000..00e4500 --- /dev/null +++ b/themes/hugo-xmin/exampleSite/content/post/2017-06-22-rmd-toc.html @@ -0,0 +1,40 @@ +--- +title: Show Table of Contents for R Markdown Posts +date: '2017-06-22' +slug: rmd-toc +output: + blogdown::html_page: + toc: true +--- + + +
+ +
+ +
+

One Section

+

A quick fox jumped over the lazy dog.

+
+quick fox +

quick fox

+
+
+
+

Another Section

+

A quick fox jumped over the lazy dog.

+
+

A subsection

+

A quick fox jumped over the lazy dog.

+
+
+

Another subsection

+

A quick fox jumped over the lazy dog.

+
+
diff --git a/themes/hugo-xmin/exampleSite/layouts/partials/foot_custom.html b/themes/hugo-xmin/exampleSite/layouts/partials/foot_custom.html new file mode 100644 index 0000000..001ee4d --- /dev/null +++ b/themes/hugo-xmin/exampleSite/layouts/partials/foot_custom.html @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/themes/hugo-xmin/exampleSite/layouts/partials/head_custom.html b/themes/hugo-xmin/exampleSite/layouts/partials/head_custom.html new file mode 100644 index 0000000..871525c --- /dev/null +++ b/themes/hugo-xmin/exampleSite/layouts/partials/head_custom.html @@ -0,0 +1 @@ + diff --git a/themes/hugo-xmin/hugo-xmin.Rproj b/themes/hugo-xmin/hugo-xmin.Rproj new file mode 100644 index 0000000..d64e28b --- /dev/null +++ b/themes/hugo-xmin/hugo-xmin.Rproj @@ -0,0 +1,16 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: knitr +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes diff --git a/themes/hugo-xmin/images/screenshot.png b/themes/hugo-xmin/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3df0a14580aed16bb84261ddc11491a09535bb5e GIT binary patch literal 37151 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 literal 0 HcmV?d00001 diff --git a/themes/hugo-xmin/images/tn.png b/themes/hugo-xmin/images/tn.png new file mode 100644 index 0000000000000000000000000000000000000000..389a20cfd57aac03dd65831cebd331642590fb83 GIT binary patch literal 21823 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%0AFIA+PGsj5x4h-4z)=1&LlIZD|*dX=s? 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 .Title | markdownify }} +{{ end }} + +{{ .Content }} + +
    + {{ $pages := .Pages }} + {{ if .IsHome }}{{ $pages = .Site.RegularPages }}{{ end }} + {{ $paginator := .Paginate (where $pages "Section" "!=" "") }} + {{ range $paginator.Pages }} +
  • + {{ .Date.Format "2006/01/02" }} + {{ .Title | markdownify }} +
  • + {{ end }} +
+{{ template "_internal/pagination.html" . }} + +{{ partial "footer.html" . }} diff --git a/themes/hugo-xmin/layouts/_default/single.html b/themes/hugo-xmin/layouts/_default/single.html new file mode 100644 index 0000000..5c98e62 --- /dev/null +++ b/themes/hugo-xmin/layouts/_default/single.html @@ -0,0 +1,23 @@ +{{ partial "header.html" . }} + + +{{ if .Params.toc }} +{{ .TableOfContents }} +{{ end }} + +
+{{ .Content }} +
+ +{{ partial "footer.html" . }} diff --git a/themes/hugo-xmin/layouts/_default/terms.html b/themes/hugo-xmin/layouts/_default/terms.html new file mode 100644 index 0000000..71f47e7 --- /dev/null +++ b/themes/hugo-xmin/layouts/_default/terms.html @@ -0,0 +1,13 @@ +{{ partial "header.html" . }} + +

{{ .Title }}

+ + + +{{ partial "footer.html" . }} diff --git a/themes/.gitkeep b/themes/hugo-xmin/layouts/partials/foot_custom.html similarity index 100% rename from themes/.gitkeep rename to themes/hugo-xmin/layouts/partials/foot_custom.html diff --git a/themes/hugo-xmin/layouts/partials/footer.html b/themes/hugo-xmin/layouts/partials/footer.html new file mode 100644 index 0000000..0689dd3 --- /dev/null +++ b/themes/hugo-xmin/layouts/partials/footer.html @@ -0,0 +1,25 @@ +
+ {{ partial "foot_custom.html" . }} + {{ with .Site.Params.footer }} +
+ {{ replace . "{Year}" now.Year | markdownify}} + {{ end }} + {{ if .File.Path }} + {{ $.Scratch.Set "FilePath" .File.Path }} + {{ $RmdFile := (print .File.BaseFileName ".Rmd") }} + {{ $Files := readDir (print "content/" .File.Dir) }} + {{ if (where $Files "Name" $RmdFile) }} + {{ $.Scratch.Set "FilePath" (print .File.Dir $RmdFile) }} + {{ else }} + {{ $RmdFile := (print .File.BaseFileName ".Rmarkdown") }} + {{ if (where $Files "Name" $RmdFile) }} + {{ $.Scratch.Set "FilePath" (print .File.Dir $RmdFile) }} + {{ end }} + {{ end }} + {{ with .Site.Params.GithubEdit}} + | Edit this page + {{ end }} + {{ end }} +
+ + diff --git a/themes/hugo-xmin/layouts/partials/head_custom.html b/themes/hugo-xmin/layouts/partials/head_custom.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/hugo-xmin/layouts/partials/header.html b/themes/hugo-xmin/layouts/partials/header.html new file mode 100644 index 0000000..a88314b --- /dev/null +++ b/themes/hugo-xmin/layouts/partials/header.html @@ -0,0 +1,20 @@ + + + + + + {{ .Title }} | {{ .Site.Title }} + + + {{ partial "head_custom.html" . }} + + + + diff --git a/themes/hugo-xmin/static/css/fonts.css b/themes/hugo-xmin/static/css/fonts.css new file mode 100644 index 0000000..8ffcecd --- /dev/null +++ b/themes/hugo-xmin/static/css/fonts.css @@ -0,0 +1,7 @@ +body { + font-family: Optima, Candara, Calibri, Arial, sans-serif; +} +code { + font-family: "Lucida Console", Monaco, monospace; + font-size: 85%; +} diff --git a/themes/hugo-xmin/static/css/style.css b/themes/hugo-xmin/static/css/style.css new file mode 100644 index 0000000..30a98a4 --- /dev/null +++ b/themes/hugo-xmin/static/css/style.css @@ -0,0 +1,61 @@ +body { + max-width: 800px; + margin: auto; + padding: 1em; + line-height: 1.5; +} + +/* header and footer areas */ +.menu { padding: 0; } +.menu li { display: inline-block; } +.article-meta, .menu a { + text-decoration: none; + background: #eee; + padding: 5px; + border-radius: 5px; +} +.terms { font-size: .9em; } +.menu, .article-meta, footer { text-align: center; } +.title { font-size: 1.1em; } +footer a { text-decoration: none; } +hr { + border-style: dashed; + color: #ddd; +} +#TableOfContents, #TOC { + border: 1px solid #eee; + border-radius: 5px; +} + +/* pagination */ +.pagination { text-align: center; } +.pagination li { display: inline; } +.pagination a { padding: 0 .2em; } + +/* code */ +pre { + border: 1px solid #ddd; + box-shadow: 5px 5px 5px #eee; + padding: 1em; + overflow-x: auto; +} +code { background: #f9f9f9; } +pre code { background: none; } + +/* misc elements */ +img, iframe, video { max-width: 100%; } +main { hyphens: auto; } +blockquote { + background: #f9f9f9; + border-left: 5px solid #ccc; + padding: 3px 1em 3px; +} + +table { + margin: auto; + border-top: 1px solid #666; + border-bottom: 1px solid #666; +} +table thead th { border-bottom: 1px solid #ddd; } +th, td { padding: 5px; } +thead, tfoot, tr:nth-child(even) { background: #eee; } diff --git a/themes/hugo-xmin/theme.toml b/themes/hugo-xmin/theme.toml new file mode 100644 index 0000000..4233eb6 --- /dev/null +++ b/themes/hugo-xmin/theme.toml @@ -0,0 +1,12 @@ +name = "XMin" +license = "MIT" +licenselink = "https://github.com/yihui/hugo-xmin/blob/master/LICENSE.md" +description = "eXtremely Minimal Hugo theme: about 150 lines of code in total, including HTML and CSS" +homepage = "https://xmin.yihui.org" +tags = ["minimal", "blog", "personal", "clean", "simple", "starter", "minimalist"] +features = ["blog"] +min_version = "0.18" + +[author] + name = "Yihui Xie" + homepage = "https://yihui.org"