Browse Source

Bootstrap \o/

master
Wilfried OLLIVIER 2 years ago
commit
f5391008e6
78 changed files with 5134 additions and 0 deletions
  1. 3
    0
      .gitmodules
  2. 19
    0
      Readme.md
  3. 6
    0
      archetypes/default.md
  4. 1
    0
      beautifulhugo
  5. 35
    0
      config.toml
  6. 17
    0
      themes/beautifulhugo/.gitattributes
  7. 50
    0
      themes/beautifulhugo/.gitignore
  8. 22
    0
      themes/beautifulhugo/LICENSE
  9. 67
    0
      themes/beautifulhugo/README.md
  10. 6
    0
      themes/beautifulhugo/archetypes/default.md
  11. 1
    0
      themes/beautifulhugo/beautifulhugo
  12. 125
    0
      themes/beautifulhugo/data/beautifulhugo/social.toml
  13. 92
    0
      themes/beautifulhugo/exampleSite/config.toml
  14. 2
    0
      themes/beautifulhugo/exampleSite/content/_index.md
  15. 16
    0
      themes/beautifulhugo/exampleSite/content/page/about.md
  16. 6
    0
      themes/beautifulhugo/exampleSite/content/post/2015-01-04-first-post.md
  17. 6
    0
      themes/beautifulhugo/exampleSite/content/post/2015-01-15-pirates.md
  18. 11
    0
      themes/beautifulhugo/exampleSite/content/post/2015-01-19-soccer.md
  19. 6
    0
      themes/beautifulhugo/exampleSite/content/post/2015-01-27-dear-diary.md
  20. 41
    0
      themes/beautifulhugo/exampleSite/content/post/2015-02-13-hamlet-monologue.md
  21. 35
    0
      themes/beautifulhugo/exampleSite/content/post/2015-02-20-test-markdown.md
  22. 14
    0
      themes/beautifulhugo/exampleSite/content/post/2015-02-26-flake-it-till-you-make-it.md
  23. 42
    0
      themes/beautifulhugo/exampleSite/content/post/2016-03-08-code-sample.md
  24. 49
    0
      themes/beautifulhugo/exampleSite/content/post/2017-03-05-math-sample.md
  25. 40
    0
      themes/beautifulhugo/exampleSite/content/post/2017-03-07-bigimg-sample.md
  26. 37
    0
      themes/beautifulhugo/exampleSite/content/post/2017-03-20-photoswipe-gallery-sample.md
  27. 7
    0
      themes/beautifulhugo/exampleSite/layouts/partials/footer_custom.html
  28. 18
    0
      themes/beautifulhugo/exampleSite/layouts/partials/head_custom.html
  29. 0
    0
      themes/beautifulhugo/exampleSite/static/.gitkeep
  30. 39
    0
      themes/beautifulhugo/i18n/de.yaml
  31. 40
    0
      themes/beautifulhugo/i18n/en.yaml
  32. 38
    0
      themes/beautifulhugo/i18n/ja.yaml
  33. 40
    0
      themes/beautifulhugo/i18n/ru.yaml
  34. 40
    0
      themes/beautifulhugo/i18n/zh.yaml
  35. BIN
      themes/beautifulhugo/images/screenshot.png
  36. BIN
      themes/beautifulhugo/images/tn.png
  37. 11
    0
      themes/beautifulhugo/layouts/404.html
  38. 11
    0
      themes/beautifulhugo/layouts/_default/baseof.html
  39. 80
    0
      themes/beautifulhugo/layouts/_default/list.html
  40. 33
    0
      themes/beautifulhugo/layouts/_default/single.html
  41. 14
    0
      themes/beautifulhugo/layouts/_default/terms.html
  42. 63
    0
      themes/beautifulhugo/layouts/index.html
  43. 7
    0
      themes/beautifulhugo/layouts/partials/disqus.html
  44. 82
    0
      themes/beautifulhugo/layouts/partials/footer.html
  45. 4
    0
      themes/beautifulhugo/layouts/partials/footer_custom.html
  46. 52
    0
      themes/beautifulhugo/layouts/partials/head.html
  47. 4
    0
      themes/beautifulhugo/layouts/partials/head_custom.html
  48. 70
    0
      themes/beautifulhugo/layouts/partials/header.html
  49. 59
    0
      themes/beautifulhugo/layouts/partials/load-photoswipe-theme.html
  50. 96
    0
      themes/beautifulhugo/layouts/partials/nav.html
  51. 11
    0
      themes/beautifulhugo/layouts/partials/post_meta.html
  52. 2
    0
      themes/beautifulhugo/layouts/partials/translation_link.html
  53. 29
    0
      themes/beautifulhugo/layouts/shortcodes/figure.html
  54. 40
    0
      themes/beautifulhugo/layouts/shortcodes/gallery.html
  55. 1
    0
      themes/beautifulhugo/static/css/highlight.min.css
  56. 157
    0
      themes/beautifulhugo/static/css/hugo-easy-gallery.css
  57. 13
    0
      themes/beautifulhugo/static/css/main-minimal.css
  58. 709
    0
      themes/beautifulhugo/static/css/main.css
  59. 66
    0
      themes/beautifulhugo/static/css/pygment_highlights.css
  60. BIN
      themes/beautifulhugo/static/img/404-southpark.jpg
  61. BIN
      themes/beautifulhugo/static/img/avatar-favicon.png
  62. BIN
      themes/beautifulhugo/static/img/avatar-icon.png
  63. BIN
      themes/beautifulhugo/static/img/favicon.ico
  64. BIN
      themes/beautifulhugo/static/img/favicon.ico.zip
  65. BIN
      themes/beautifulhugo/static/img/hexagon-thumb.jpg
  66. BIN
      themes/beautifulhugo/static/img/hexagon.jpg
  67. BIN
      themes/beautifulhugo/static/img/path.jpg
  68. BIN
      themes/beautifulhugo/static/img/sphere-thumb.jpg
  69. BIN
      themes/beautifulhugo/static/img/sphere.jpg
  70. BIN
      themes/beautifulhugo/static/img/triangle-thumb.jpg
  71. BIN
      themes/beautifulhugo/static/img/triangle.jpg
  72. 2306
    0
      themes/beautifulhugo/static/js/bootstrap.js
  73. 7
    0
      themes/beautifulhugo/static/js/bootstrap.min.js
  74. 2
    0
      themes/beautifulhugo/static/js/highlight.min.js
  75. 4
    0
      themes/beautifulhugo/static/js/jquery-1.11.2.min.js
  76. 74
    0
      themes/beautifulhugo/static/js/load-photoswipe.js
  77. 138
    0
      themes/beautifulhugo/static/js/main.js
  78. 18
    0
      themes/beautifulhugo/theme.toml

+ 3
- 0
.gitmodules View File

@@ -0,0 +1,3 @@
1
+[submodule "beautifulhugo"]
2
+	path = beautifulhugo
3
+	url = https://github.com/halogenica/beautifulhugo.git

+ 19
- 0
Readme.md View File

@@ -0,0 +1,19 @@
1
+# Blog
2
+
3
+## Tools
4
+
5
+* Hugo : https://gohugo.io
6
+* Blog theme : https://github.com/halogenica/beautifulhugo
7
+* pygments (python package) for syntax coloration
8
+
9
+## Run, check
10
+
11
+    hugo server -D
12
+
13
+## Generate
14
+
15
+    # in order to add git commit on blog pages
16
+    EXPORT GIT_COMMIT_SHA=`git rev-parse --verify HEAD`
17
+    EXPORT GIT_COMMIT_SHA_SHORT=`git rev-parse --short HEAD`
18
+    # gen blog inside ./static folder
19
+    hugo

+ 6
- 0
archetypes/default.md View File

@@ -0,0 +1,6 @@
1
+---
2
+title: "{{ replace .TranslationBaseName "-" " " | title }}"
3
+date: {{ .Date }}
4
+draft: true
5
+---
6
+

+ 1
- 0
beautifulhugo

@@ -0,0 +1 @@
1
+Subproject commit b760205613cde1527fff49f8d1a3587fe9e6cedc

+ 35
- 0
config.toml View File

@@ -0,0 +1,35 @@
1
+baseurl = "https://blog.papey.fr"
2
+DefaultContentLanguage = "en"
3
+title = "import {} from 'blog';"
4
+theme = "beautifulhugo"
5
+metaDataFormat = "yaml"
6
+pygmentsUseClasses = true
7
+pygmentCodeFences = true
8
+
9
+[Params]
10
+  subtitle = "Articles about stuff I use or build…"
11
+  logo = "img/avatar-icon.png"
12
+  favicon = "img/favicon.ico"
13
+  commit = true
14
+  rss = true
15
+  comments = false
16
+
17
+[Author]
18
+  name = "Wilfried OLLIVIER"
19
+  website = "papey.fr"
20
+  email = "wollivier@fdn.fr"
21
+  github = "papey"
22
+  twitter = "MarcelMonfort"
23
+  stackoverflow = "users/7925197/papey"
24
+  spotify = "MarcelMonfort"
25
+  telegram = "@P4p3y"
26
+
27
+[[menu.main]]
28
+    name = "Blog"
29
+    url = ""
30
+    weight = 1
31
+
32
+[[menu.main]]
33
+    name = "Tags"
34
+    url = "tags"
35
+    weight = 3

+ 17
- 0
themes/beautifulhugo/.gitattributes View File

@@ -0,0 +1,17 @@
1
+# Auto detect text files and perform LF normalization
2
+* text=auto
3
+
4
+# Custom for Visual Studio
5
+*.cs     diff=csharp
6
+
7
+# Standard to msysgit
8
+*.doc	 diff=astextplain
9
+*.DOC	 diff=astextplain
10
+*.docx diff=astextplain
11
+*.DOCX diff=astextplain
12
+*.dot  diff=astextplain
13
+*.DOT  diff=astextplain
14
+*.pdf  diff=astextplain
15
+*.PDF	 diff=astextplain
16
+*.rtf	 diff=astextplain
17
+*.RTF	 diff=astextplain

+ 50
- 0
themes/beautifulhugo/.gitignore View File

@@ -0,0 +1,50 @@
1
+# Themes directory of example site; ignored so that we can clone the repo
2
+# inside the themes directory and test the example site with "hugo server".
3
+exampleSite/themes/
4
+
5
+# Windows image file caches
6
+Thumbs.db
7
+ehthumbs.db
8
+
9
+# Folder config file
10
+Desktop.ini
11
+
12
+# Recycle Bin used on file shares
13
+$RECYCLE.BIN/
14
+
15
+# Windows Installer files
16
+*.cab
17
+*.msi
18
+*.msm
19
+*.msp
20
+
21
+# Windows shortcuts
22
+*.lnk
23
+
24
+# Vim swap files
25
+*.swp
26
+
27
+# =========================
28
+# Operating System Files
29
+# =========================
30
+
31
+# OSX
32
+# =========================
33
+
34
+.DS_Store
35
+.AppleDouble
36
+.LSOverride
37
+
38
+# Thumbnails
39
+._*
40
+
41
+# Files that might appear on external disk
42
+.Spotlight-V100
43
+.Trashes
44
+
45
+# Directories potentially created on remote AFP share
46
+.AppleDB
47
+.AppleDesktop
48
+Network Trash Folder
49
+Temporary Items
50
+.apdisk

+ 22
- 0
themes/beautifulhugo/LICENSE View File

@@ -0,0 +1,22 @@
1
+The MIT License (MIT)
2
+
3
+Original work Copyright (c) 2015 Dean Attali
4
+Modified work Copyright (c) 2017 Michael Romero
5
+
6
+Permission is hereby granted, free of charge, to any person obtaining a copy
7
+of this software and associated documentation files (the "Software"), to deal
8
+in the Software without restriction, including without limitation the rights
9
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+copies of the Software, and to permit persons to whom the Software is
11
+furnished to do so, subject to the following conditions:
12
+
13
+The above copyright notice and this permission notice shall be included in all
14
+copies or substantial portions of the Software.
15
+
16
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+SOFTWARE.

+ 67
- 0
themes/beautifulhugo/README.md View File

@@ -0,0 +1,67 @@
1
+# Beautiful Hugo - A port of Beautiful Jekyll Theme
2
+
3
+![Beautiful Hugo Theme Screenshot](https://github.com/halogenica/beautifulhugo/blob/master/images/screenshot.png)
4
+
5
+## Installation
6
+
7
+    $ mkdir themes
8
+    $ cd themes
9
+    $ git clone https://github.com/halogenica/beautifulhugo.git beautifulhugo
10
+
11
+See [the Hugo documentation](http://gohugo.io/themes/installing/) for more information.
12
+
13
+## Extra Features
14
+
15
+### Responsive
16
+
17
+This theme is designed to look great on both large-screen and small-screen (mobile) devices.
18
+
19
+### Syntax highlighting
20
+
21
+This theme has support for both server side and client side highlighting.
22
+
23
+#### Server side syntax highlighting
24
+
25
+Use the `highlight` shortcode (with Pygments),
26
+see [the Hugo documentation](http://gohugo.io/extras/highlighting/) for more information.
27
+
28
+To use this feature install Pygments (`pip install Pygments`) and add `pygmentsuseclasses = true` to your `config.toml`.
29
+
30
+#### Client side syntax highlighting
31
+
32
+Use triple backticks ( ``` ) or triple tilde ( ~~~ ) around code blocks.
33
+
34
+Client side highlighting does not require pygments to be installed.
35
+
36
+### Disqus support
37
+
38
+To use this feature, uncomment and fill out the `disqusShortname` parameter in `config.toml`.
39
+
40
+### Google Analytics
41
+
42
+To add Google Analytics, simply sign up to [Google Analytics](http://www.google.com/analytics/) to obtain your Google Tracking ID, and add this tracking ID to the `googleAnalytics` parameter in `config.toml`.
43
+
44
+### Commit SHA on the footer
45
+
46
+If the source of your site is in a Git repo, the SHA corresponding to the commit the site is built from can be shown on the footer. To do so, two environment variables have to be set (`GIT_COMMIT_SHA` and `GIT_COMMIT_SHA_SHORT`) and parameter `commit` has to be defined in the config file:
47
+
48
+```
49
+[Params]
50
+  commit = "https://github.com/<username>/<siterepo>/tree/"
51
+```
52
+  
53
+This can be achieved by running the next command prior to calling Hugo:
54
+
55
+```
56
+  GIT_COMMIT_SHA=`git rev-parse --verify HEAD` GIT_COMMIT_SHA_SHORT=`git rev-parse --short HEAD`
57
+```
58
+  
59
+See at [xor-gate/xor-gate.org](https://github.com/xor-gate/xor-gate.org) an example of how to add it to a continuous integration system.
60
+  
61
+## About
62
+
63
+This is a port of the Jekyll theme [Beautiful Jekyll](http://deanattali.com/beautiful-jekyll/) by [Dean Attali](http://deanattali.com/aboutme#contact). It supports most of the features of the original theme.
64
+
65
+## License
66
+
67
+MIT Licensed, see [LICENSE](https://github.com/halogenica/Hugo-BeautifulHugo/blob/master/LICENSE).

+ 6
- 0
themes/beautifulhugo/archetypes/default.md View File

@@ -0,0 +1,6 @@
1
+---
2
+title: "{{ replace .TranslationBaseName "-" " " | title }}"
3
+date: {{ .Date }}
4
+subtitle: ""
5
+tags: []
6
+---

+ 1
- 0
themes/beautifulhugo/beautifulhugo View File

@@ -0,0 +1 @@
1
+./beautifulhugo

+ 125
- 0
themes/beautifulhugo/data/beautifulhugo/social.toml View File

@@ -0,0 +1,125 @@
1
+[[social_icons]]
2
+id = "email"
3
+url = "mailto:%s"
4
+title = "Email me"
5
+icon = "fa-envelope"
6
+
7
+[[social_icons]]
8
+id = "facebook"
9
+url = "https://www.facebook.com/%s"
10
+title = "Facebook"
11
+icon = "fa-facebook"
12
+
13
+[[social_icons]]
14
+id = "googleplus"
15
+url = "https://plus.google.com/%s"
16
+title = "Google+"
17
+icon = "fa-google-plus"
18
+
19
+[[social_icons]]
20
+id = "github"
21
+url = "https://github.com/%s"
22
+title = "GitHub"
23
+icon = "fa-github"
24
+
25
+[[social_icons]]
26
+id = "gitlab"
27
+url = "https://gitlab.com/%s"
28
+title = "GitLab"
29
+icon = "fa-gitlab"
30
+
31
+[[social_icons]]
32
+id = "twitter"
33
+url = "https://twitter.com/%s"
34
+title = "Twitter"
35
+icon = "fa-twitter"
36
+
37
+[[social_icons]]
38
+id = "reddit"
39
+url = "https://reddit.com/u/%s"
40
+title = "Reddit"
41
+icon = "fa-reddit-alien"
42
+
43
+[[social_icons]]
44
+id = "linkedin"
45
+url = "https://linkedin.com/in/%s"
46
+title = "LinkedIn"
47
+icon = "fa-linkedin"
48
+
49
+[[social_icons]]
50
+id = "xing"
51
+url = "https://www.xing.com/profile/%s"
52
+title = "Xing"
53
+icon = "fa-xing"
54
+
55
+[[social_icons]]
56
+id = "stackoverflow"
57
+url = "https://stackoverflow.com/%s"
58
+title = "StackOverflow"
59
+icon = "fa-stack-overflow"
60
+
61
+[[social_icons]]
62
+id = "snapchat"
63
+url = "https://www.snapchat.com/add/%s"
64
+title = "Snapchat"
65
+icon = "fa-snapchat-ghost"
66
+
67
+[[social_icons]]
68
+id = "instagram"
69
+url = "https://www.instagram.com/%s"
70
+title = "Instagram"
71
+icon = "fa-instagram"
72
+
73
+[[social_icons]]
74
+id = "youtube"
75
+url = "https://www.youtube.com/%s"
76
+title = "Youtube"
77
+icon = "fa-youtube"
78
+
79
+[[social_icons]]
80
+id = "soundcloud"
81
+url = "https://soundcloud.com/%s"
82
+title = "SoundCloud"
83
+icon = "fa-soundcloud"
84
+
85
+[[social_icons]]
86
+id = "spotify"
87
+url = "https://open.spotify.com/user/%s"
88
+title = "Spotify"
89
+icon = "fa-spotify"
90
+
91
+[[social_icons]]
92
+id = "bandcamp"
93
+url = "https://%s.bandcamp.com/"
94
+title = "Bandcamp"
95
+icon = "fa-bandcamp"
96
+
97
+[[social_icons]]
98
+id = "itchio"
99
+url = "https://itch.io/profile/%s"
100
+title = "Itch.io"
101
+icon = "fa-gamepad"
102
+
103
+[[social_icons]]
104
+id = "keybase"
105
+url = "https://keybase.io/%s"
106
+title = "Keybase"
107
+icon = "fa-key"
108
+
109
+[[social_icons]]
110
+id = "vk"
111
+url = "https://vk.com/%s"
112
+title = "VK"
113
+icon = "fa-vk"
114
+
115
+[[social_icons]]
116
+id = "paypal"
117
+url = "https://paypal.me/%s"
118
+title = "PayPal"
119
+icon = "fa-paypal"
120
+
121
+[[social_icons]]
122
+id = "telegram"
123
+url = "https://telegram.me/%s"
124
+title = "Telegram"
125
+icon = "fa-telegram"

+ 92
- 0
themes/beautifulhugo/exampleSite/config.toml View File

@@ -0,0 +1,92 @@
1
+baseurl = "https://username.github.io"
2
+DefaultContentLanguage = "en"
3
+#DefaultContentLanguage = "ja"
4
+title = "Beautiful Hugo"
5
+theme = "beautifulhugo"
6
+metaDataFormat = "yaml"
7
+pygmentsUseClasses = true
8
+pygmentCodeFences = true
9
+#disqusShortname = "XXX"
10
+#googleAnalytics = "XXX"
11
+
12
+[Params]
13
+  subtitle = "Build a beautiful and simple website in minutes"
14
+  logo = "img/avatar-icon.png"
15
+  favicon = "img/favicon.ico"
16
+  dateFormat = "January 2, 2006"
17
+  commit = false
18
+  rss = true
19
+  comments = true
20
+#  gcse = "012345678901234567890:abcdefghijk" # Get your code from google.com/cse. Make sure to go to "Look and Feel" and change Layout to "Full Width" and Theme to "Classic"
21
+
22
+#[[Params.bigimg]]
23
+#  src = "img/triangle.jpg"
24
+#  desc = "Triangle"
25
+#[[Params.bigimg]]
26
+#  src = "img/sphere.jpg"
27
+#  desc = "Sphere"
28
+#[[Params.bigimg]]
29
+#  src = "img/hexagon.jpg"
30
+#  desc = "Hexagon"
31
+
32
+[Author]
33
+  name = "Some Person"
34
+  website = "yourwebsite.com"
35
+  email = "youremail@domain.com"
36
+  facebook = "username"
37
+  googleplus = "+username" # or xxxxxxxxxxxxxxxxxxxxx
38
+  github = "username"
39
+  gitlab = "username"
40
+  twitter = "username"
41
+  reddit = "username"
42
+  linkedin = "username"
43
+  xing = "username"
44
+  stackoverflow = "users/XXXXXXX/username"
45
+  snapchat = "username"
46
+  instagram = "username"
47
+  youtube = "user/username" # or channel/channelname
48
+  soundcloud = "username"
49
+  spotify = "username"
50
+  bandcamp = "username"
51
+  itchio = "username"
52
+  vk = "username"
53
+  paypal = "username"
54
+  telegram = "username"
55
+
56
+[[menu.main]]
57
+    name = "Blog"
58
+    url = ""
59
+    weight = 1
60
+
61
+[[menu.main]]
62
+    name = "About"
63
+    url = "page/about/"
64
+    weight = 3
65
+
66
+[[menu.main]]
67
+    identifier = "samples"
68
+    name = "Samples"
69
+    weight = 2
70
+
71
+[[menu.main]]
72
+    parent = "samples"
73
+    name = "Big Image Sample"
74
+    url = "post/2017-03-07-bigimg-sample"
75
+    weight = 1
76
+
77
+[[menu.main]]
78
+    parent = "samples"
79
+    name = "Math Sample"
80
+    url = "post/2017-03-05-math-sample"
81
+    weight = 2
82
+
83
+[[menu.main]]
84
+    parent = "samples"
85
+    name = "Code Sample"
86
+    url = "post/2016-03-08-code-sample"
87
+    weight = 3
88
+
89
+[[menu.main]]
90
+    name = "Tags"
91
+    url = "tags"
92
+    weight = 3

+ 2
- 0
themes/beautifulhugo/exampleSite/content/_index.md View File

@@ -0,0 +1,2 @@
1
+## Front Page Content
2
+`beautifulhugo` supports content on your front page. Edit `/content/_index.md` to change what appears here. Delete `/content/_index.md` if you don't want any content here.

+ 16
- 0
themes/beautifulhugo/exampleSite/content/page/about.md View File

@@ -0,0 +1,16 @@
1
+---
2
+title: About me
3
+subtitle: Why you'd want to go on a date with me
4
+comments: false
5
+---
6
+
7
+My name is Inigo Montoya. I have the following qualities:
8
+
9
+- I rock a great mustache
10
+- I'm extremely loyal to my family
11
+
12
+What else do you need?
13
+
14
+### my history
15
+
16
+To be honest, I'm having some trouble remembering right now, so why don't you just watch [my movie](http://en.wikipedia.org/wiki/The_Princess_Bride_%28film%29) and it will answer **all** your questions.

+ 6
- 0
themes/beautifulhugo/exampleSite/content/post/2015-01-04-first-post.md View File

@@ -0,0 +1,6 @@
1
+---
2
+title: First post!
3
+date: 2015-01-05
4
+---
5
+
6
+This is my first post, how exciting!

+ 6
- 0
themes/beautifulhugo/exampleSite/content/post/2015-01-15-pirates.md View File

@@ -0,0 +1,6 @@
1
+---
2
+title: Pirates arrrr
3
+date: 2015-01-15
4
+---
5
+
6
+Piracy is typically an act of robbery or criminal violence at sea. The term can include acts committed on land, in the air, or in other major bodies of water or on a shore. It does not normally include crimes committed against persons traveling on the same vessel as the perpetrator (e.g. one passenger stealing from others on the same vessel). The term has been used throughout history to refer to raids across land borders by non-state agents.

+ 11
- 0
themes/beautifulhugo/exampleSite/content/post/2015-01-19-soccer.md View File

@@ -0,0 +1,11 @@
1
+---
2
+title: Soccer
3
+subtitle: Best sport ever!
4
+date: 2015-01-19
5
+---
6
+
7
+From Wikipedia:
8
+
9
+Association football, more commonly known as football or soccer,[2] is a sport played between two teams of eleven players with a spherical ball. It is played by 250 million players in over 200 countries, making it the world's most popular sport.[3][4][5][6] The game is played on a rectangular field with a goal at each end. The object of the game is to score by getting the ball into the opposing goal.
10
+
11
+The goalkeepers are the only players allowed to touch the ball with their hands or arms while it is in play and then only in their penalty area. Outfield players mostly use their feet to strike or pass the ball, but may use their head or torso to strike the ball instead. The team that scores the most goals by the end of the match wins. If the score is level at the end of the game, either a draw is declared or the game goes into extra time and/or a penalty shootout depending on the format of the competition. The Laws of the Game were originally codified in England by The Football Association in 1863. Association football is governed internationally by the International Federation of Association Football (FIFA; French: Fédération Internationale de Football Association) which organises a World Cup every four years.[7]

+ 6
- 0
themes/beautifulhugo/exampleSite/content/post/2015-01-27-dear-diary.md View File

@@ -0,0 +1,6 @@
1
+---
2
+title: Dear diary
3
+date: 2015-01-27
4
+---
5
+
6
+What is it with that Mary girl?  Dragging me to school every day. As if I had a choice.  What you don't hear in those nursery rhymes is that she starves me if I don't go to school with her; it's the only way I can stay alive!  I'm thinking about being adopted by Little Bo Peep, sure I may get lost, but anything is better than being with Mary and those little brats at school (shudder, shudder).

+ 41
- 0
themes/beautifulhugo/exampleSite/content/post/2015-02-13-hamlet-monologue.md View File

@@ -0,0 +1,41 @@
1
+---
2
+title: To be
3
+subtitle: ... or not to be?
4
+date: 2015-02-13
5
+---
6
+
7
+To be, or not to be--that is the question:
8
+Whether 'tis nobler in the mind to suffer
9
+The slings and arrows of outrageous fortune
10
+Or to take arms against a sea of troubles
11
+And by opposing end them. To die, to sleep--
12
+No more--and by a sleep to say we end
13
+The heartache, and the thousand natural shocks
14
+That flesh is heir to. 'Tis a consummation
15
+Devoutly to be wished. To die, to sleep--
16
+To sleep--perchance to dream: ay, there's the rub,
17
+For in that sleep of death what dreams may come
18
+When we have shuffled off this mortal coil,
19
+Must give us pause. There's the respect
20
+That makes calamity of so long life.
21
+For who would bear the whips and scorns of time,
22
+Th' oppressor's wrong, the proud man's contumely
23
+The pangs of despised love, the law's delay,
24
+The insolence of office, and the spurns
25
+That patient merit of th' unworthy takes,
26
+When he himself might his quietus make
27
+With a bare bodkin? Who would fardels bear,
28
+To grunt and sweat under a weary life,
29
+But that the dread of something after death,
30
+The undiscovered country, from whose bourn
31
+No traveller returns, puzzles the will,
32
+And makes us rather bear those ills we have
33
+Than fly to others that we know not of?
34
+Thus conscience does make cowards of us all,
35
+And thus the native hue of resolution
36
+Is sicklied o'er with the pale cast of thought,
37
+And enterprise of great pitch and moment
38
+With this regard their currents turn awry
39
+And lose the name of action. -- Soft you now,
40
+The fair Ophelia! -- Nymph, in thy orisons
41
+Be all my sins remembered.

+ 35
- 0
themes/beautifulhugo/exampleSite/content/post/2015-02-20-test-markdown.md View File

@@ -0,0 +1,35 @@
1
+---
2
+title: Test markdown
3
+subtitle: Each post also has a subtitle
4
+date: 2015-02-20
5
+tags: ["example", "markdown"]
6
+---
7
+
8
+You can write regular [markdown](http://markdowntutorial.com/) here and Jekyll will automatically convert it to a nice webpage.  I strongly encourage you to [take 5 minutes to learn how to write in markdown](http://markdowntutorial.com/) - it'll teach you how to transform regular text into bold/italics/headings/tables/etc.
9
+
10
+**Here is some bold text**
11
+
12
+## Here is a secondary heading
13
+
14
+Here's a useless table:
15
+ 
16
+| Number | Next number | Previous number |
17
+| :------ |:--- | :--- |
18
+| Five | Six | Four |
19
+| Ten | Eleven | Nine |
20
+| Seven | Eight | Six |
21
+| Two | Three | One |
22
+ 
23
+
24
+How about a yummy crepe?
25
+
26
+![Crepe](http://s3-media3.fl.yelpcdn.com/bphoto/cQ1Yoa75m2yUFFbY2xwuqw/348s.jpg)
27
+
28
+Here's a code chunk with syntax highlighting:
29
+
30
+```javascript
31
+var foo = function(x) {
32
+  return(x + 5);
33
+}
34
+foo(3)
35
+```

+ 14
- 0
themes/beautifulhugo/exampleSite/content/post/2015-02-26-flake-it-till-you-make-it.md View File

@@ -0,0 +1,14 @@
1
+---
2
+title: Flake it till you make it
3
+subtitle: Excerpt from Soulshaping by Jeff Brown
4
+date: 2015-02-26
5
+bigimg: [{src: "/img/path.jpg", desc: "Path"}]
6
+---
7
+
8
+Under what circumstances should we step off a path? When is it essential that we finish what we start? If I bought a bag of peanuts and had an allergic reaction, no one would fault me if I threw it out. If I ended a relationship with a woman who hit me, no one would say that I had a commitment problem. But if I walk away from a seemingly secure route because my soul has other ideas, I am a flake?  
9
+
10
+The truth is that no one else can definitively know the path we are here to walk. It’s tempting to listen—many of us long for the omnipotent other—but unless they are genuine psychic intuitives, they can’t know. All others can know is their own truth, and if they’ve actually done the work to excavate it, they will have the good sense to know that they cannot genuinely know anyone else’s. Only soul knows the path it is here to walk. Since you are the only one living in your temple, only you can know its scriptures and interpretive structure.  
11
+
12
+At the heart of the struggle are two very different ideas of success—survival-driven and soul-driven. For survivalists, success is security, pragmatism, power over others. Success is the absence of material suffering, the nourishing of the soul be damned. It is an odd and ironic thing that most of the material power in our world often resides in the hands of younger souls. Still working in the egoic and material realms, they love the sensations of power and focus most of their energy on accumulation. Older souls tend not to be as materially driven. They have already played the worldly game in previous lives and they search for more subtle shades of meaning in this one—authentication rather than accumulation. They are often ignored by the culture at large, although they really are the truest warriors.  
13
+
14
+A soulful notion of success rests on the actualization of our innate image. Success is simply the completion of a soul step, however unsightly it may be. We have finished what we started when the lesson is learned. What a fear-based culture calls a wonderful opportunity may be fruitless and misguided for the soul. Staying in a passionless relationship may satisfy our need for comfort, but it may stifle the soul. Becoming a famous lawyer is only worthwhile if the soul demands it. It is an essential failure if you are called to be a monastic this time around. If you need to explore and abandon ten careers in order to stretch your soul toward its innate image, then so be it. Flake it till you make it.

+ 42
- 0
themes/beautifulhugo/exampleSite/content/post/2016-03-08-code-sample.md View File

@@ -0,0 +1,42 @@
1
+---
2
+title: Code Sample
3
+subtitle: Using Hugo or Pygments
4
+date: 2016-03-08
5
+tags: ["example", "code"]
6
+---
7
+
8
+The following are two code samples using syntax highlighting.
9
+
10
+<!--more-->
11
+
12
+The following is a code sample using triple backticks ( ``` ) code fencing provided in Hugo. This is client side highlighting and does not require any special installation.
13
+
14
+```javascript
15
+    var num1, num2, sum
16
+    num1 = prompt("Enter first number")
17
+    num2 = prompt("Enter second number")
18
+    sum = parseInt(num1) + parseInt(num2) // "+" means "add"
19
+    alert("Sum = " + sum)  // "+" means combine into a string
20
+```
21
+
22
+
23
+The following is a code sample using the "highlight" shortcode provided in Hugo. This is server side highlighting and requires Python and Pygments to be installed.
24
+
25
+{{< highlight javascript >}}
26
+    var num1, num2, sum
27
+    num1 = prompt("Enter first number")
28
+    num2 = prompt("Enter second number")
29
+    sum = parseInt(num1) + parseInt(num2) // "+" means "add"
30
+    alert("Sum = " + sum)  // "+" means combine into a string
31
+{{</ highlight >}}
32
+
33
+
34
+And here is the same code with line numbers:
35
+
36
+{{< highlight javascript "linenos=inline">}}
37
+    var num1, num2, sum
38
+    num1 = prompt("Enter first number")
39
+    num2 = prompt("Enter second number")
40
+    sum = parseInt(num1) + parseInt(num2) // "+" means "add"
41
+    alert("Sum = " + sum)  // "+" means combine into a string
42
+{{</ highlight >}}

+ 49
- 0
themes/beautifulhugo/exampleSite/content/post/2017-03-05-math-sample.md View File

@@ -0,0 +1,49 @@
1
+---
2
+title: Math Sample
3
+subtitle: Using KaTeX
4
+date: 2017-03-05
5
+tags: ["example", "math"]
6
+---
7
+
8
+KaTeX can be used to generate complex math formulas server-side. 
9
+
10
+$$
11
+\phi = \frac{(1+\sqrt{5})}{2} = 1.6180339887\cdots
12
+$$
13
+
14
+Additional details can be found on [GitHub](https://github.com/Khan/KaTeX) or on the [Wiki](http://tiddlywiki.com/plugins/tiddlywiki/katex/).
15
+<!--more-->
16
+
17
+### Example 1
18
+
19
+If the text between $$ contains newlines it will rendered in display mode:
20
+```
21
+$$
22
+f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
23
+$$
24
+```
25
+$$
26
+f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
27
+$$
28
+
29
+
30
+### Example 2
31
+```
32
+$$
33
+\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
34
+$$
35
+```
36
+​​$$
37
+\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
38
+$$
39
+​​ 
40
+
41
+### Example 3
42
+```
43
+$$
44
+1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
45
+$$
46
+```
47
+$$
48
+1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
49
+$$

+ 40
- 0
themes/beautifulhugo/exampleSite/content/post/2017-03-07-bigimg-sample.md View File

@@ -0,0 +1,40 @@
1
+---
2
+title: Big Image Sample
3
+subtitle: Using Multiple Images
4
+date: 2017-03-07
5
+tags: ["example", "bigimg"]
6
+bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}, {src: "/img/sphere.jpg", desc: "Sphere"}, {src: "/img/hexagon.jpg", desc: "Hexagon"}]
7
+---
8
+
9
+The image banners at the top of the page are refered to as "bigimg" in this theme. They are optional, and one more more can be specified. If more than one is specified, the images rotate every 10 seconds. In the front matter, bigimgs are specified using an array of hashes.
10
+
11
+<!--more-->
12
+
13
+A single bigimg can be specified in the front matter by the following YAML:
14
+```
15
+bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}]
16
+```
17
+
18
+Multiple bigimgs can be specified in the front matter by the following YAML:
19
+```
20
+bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}, 
21
+         {src: "/img/sphere.jpg", desc: "Sphere"}, 
22
+         {src: "/img/hexagon.jpg", desc: "Hexagon"}]
23
+```
24
+
25
+Also note that the description field is optional, and images could instead be specified by:
26
+```
27
+bigimg: [{src: "/img/triangle.jpg"}, 
28
+         {src: "/img/sphere.jpg"}, 
29
+         {src: "/img/hexagon.jpg"}]
30
+```
31
+
32
+The above YAML array of hashes were written in "flow" style. However when generating a new page or post with `hugo new post/mypost.md`, hugo may interpret the archetype for bigimg in the default YAML style. Defining multiple bigimg's complete with descriptions in this style would be specified by:
33
+```
34
+bigimg: 
35
+- {src: "/img/triangle.jpg", desc: "Triangle"}
36
+- {src: "/img/sphere.jpg", desc: "Sphere"}
37
+- {src: "/img/hexagon.jpg", desc: "Hexagon"}
38
+```
39
+
40
+Additional information can be found [in this YAML tutorial](https://rhnh.net/2011/01/31/yaml-tutorial/).

+ 37
- 0
themes/beautifulhugo/exampleSite/content/post/2017-03-20-photoswipe-gallery-sample.md View File

@@ -0,0 +1,37 @@
1
+---
2
+title: Photoswipe Gallery Sample
3
+subtitle: Making a Gallery
4
+date: 2017-03-20
5
+tags: ["example", "photoswipe"]
6
+---
7
+
8
+Beautiful Hugo adds a few custom shortcodes created by [Li-Wen Yip](https://www.liwen.id.au/heg/) and [Gert-Jan van den Berg](https://github.com/GjjvdBurg/HugoPhotoSwipe) for making galleries with [PhotoSwipe](http://photoswipe.com) . 
9
+
10
+{{< gallery caption-effect="fade" >}}
11
+  {{< figure thumb="-thumb" link="/img/hexagon.jpg" >}}
12
+  {{< figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" >}}
13
+  {{< figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" >}}
14
+{{< /gallery >}}
15
+
16
+<!--more-->
17
+## Example
18
+The above gallery was created using the following shortcodes:
19
+```
20
+{{</* gallery caption-effect="fade" */>}}
21
+  {{</* figure thumb="-thumb" link="/img/hexagon.jpg" */>}}
22
+  {{</* figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" */>}}
23
+  {{</* figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" */>}}
24
+{{</* /gallery */>}}
25
+```
26
+
27
+## Usage
28
+For full details please see the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) page. Basic usages from above are:
29
+
30
+- Create a gallery with open and close tags `{{</* gallery */>}}` and `{{</* /gallery */>}}`
31
+- `{{</* figure src="image.jpg" */>}}` will use `image.jpg` for thumbnail and lightbox
32
+- `{{</* figure src="thumb.jpg" link="image.jpg" */>}}` will use `thumb.jpg` for thumbnail and `image.jpg` for lightbox
33
+- `{{</* figure thumb="-small" link="image.jpg" */>}}` will use `image-small.jpg` for thumbnail and `image.jpg` for lightbox
34
+- All the [features/parameters](https://gohugo.io/extras/shortcodes) of Hugo's built-in `figure` shortcode work as normal, i.e. src, link, title, caption, class, attr (attribution), attrlink, alt
35
+- `{{</* gallery caption-effect="fade" */>}}` will fade in captions for all figures in this gallery instead of the default slide-up behavior
36
+- Many gallery styles for captions and hover effects exist; view the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) for all options
37
+- Note that this theme will load the photoswipe gallery theme and scripts by default, no need to load photoswipe on your individual pages

+ 7
- 0
themes/beautifulhugo/exampleSite/layouts/partials/footer_custom.html View File

@@ -0,0 +1,7 @@
1
+<!--
2
+If you want to include any custom html just before </body>, put it in this file.
3
+Or you can delete these file if you don't need it.
4
+-->
5
+<!-- for example, you could include some js libraries:
6
+<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.js" integrity="sha256-HdIuWBZj4eftihsoDCJoMYjZi6aNVaw7YlUpzKT3ZxI=" crossorigin="anonymous"></script>
7
+-->

+ 18
- 0
themes/beautifulhugo/exampleSite/layouts/partials/head_custom.html View File

@@ -0,0 +1,18 @@
1
+<!--
2
+If you want to include any custom html just before </head>, put it in this file.
3
+Or you can delete these file if you don't need it.
4
+-->
5
+<!-- for example, you could insert this custom css, which makes the bigimg not stretch:
6
+<style>
7
+.intro-header.big-img, .intro-header.big-img  .big-img-transition {
8
+  -webkit-background-size: contain !important;
9
+  -moz-background-size: contain !important;
10
+  background-size: contain !important;
11
+  -o-background-size: contain !important;
12
+  background-color: lightgrey;
13
+}
14
+</style>
15
+-->
16
+<!-- or you could include some additional css libraries:
17
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.css" integrity="sha256-I1UoFd33KHIydu88R9owFaQWzwkiZV4hXXug5aYaM28=" crossorigin="anonymous" />
18
+-->

+ 0
- 0
themes/beautifulhugo/exampleSite/static/.gitkeep View File


+ 39
- 0
themes/beautifulhugo/i18n/de.yaml View File

@@ -0,0 +1,39 @@
1
+# Content
2
+- id: dateFormat
3
+  translation: "02.01.2006"
4
+- id: postedOnDate
5
+  translation: "Gepostet am {{ .Count }}"
6
+- id: translationsLabel
7
+  translation: "Andere Sprachen: "
8
+- id: translationsSeparator
9
+  translation: ", "
10
+- id: readMore
11
+  translation: "Mehr"
12
+- id: olderPosts
13
+  translation: "Ältere Posts"
14
+- id: newerPosts
15
+  translation: "Neuere Posts"
16
+- id: previousPost
17
+  translation: "Letzter Post"
18
+- id: nextPost
19
+  translation: "Nächster Post"
20
+
21
+# 404 page
22
+- id: pageNotFound
23
+  translation: "Ups, diese Seite existiert nicht. (404 Error)"
24
+
25
+# Footer
26
+- id: poweredBy # Accepts HTML
27
+  translation: '<a href="http://gohugo.io">Hugo v{{ .Hugo.Version }}</a> powered &nbsp;&bull;&nbsp; Theme by <a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a> adapted to <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>'
28
+
29
+# Navigation
30
+- id: toggleNavigation
31
+  translation: "Navigation"
32
+- id: languageSwitcherLabel
33
+  translation: "Sprache"
34
+- id: gcseLabelShort
35
+  translation: "Suche"
36
+- id: gcseLabelLong
37
+  translation: "Suche {{ .Site.Title }}"
38
+- id: gcseClose
39
+  translation: "Schließen"

+ 40
- 0
themes/beautifulhugo/i18n/en.yaml View File

@@ -0,0 +1,40 @@
1
+# Content
2
+- id: dateFormat
3
+  translation: "January 2, 2006"
4
+- id: postedOnDate
5
+  translation: "Posted on {{ .Count }}"
6
+- id: translationsLabel
7
+  translation: "Other languages: "
8
+- id: translationsSeparator
9
+  translation: ", "
10
+- id: readMore
11
+  translation: "Read More"
12
+- id: olderPosts
13
+  translation: "Older Posts"
14
+- id: newerPosts
15
+  translation: "Newer Posts"
16
+- id: previousPost
17
+  translation: "Previous Post"
18
+- id: nextPost
19
+  translation: "Next Post"
20
+
21
+# 404 page
22
+- id: pageNotFound
23
+  translation: "Whoops, this page doesn't exist. Move along. (404 error)"
24
+
25
+# Footer
26
+- id: poweredBy # Accepts HTML
27
+  translation: '<a href="http://gohugo.io">Hugo v{{ .Hugo.Version }}</a> powered &nbsp;&bull;&nbsp; Theme by <a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a> adapted to <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>'
28
+
29
+# Navigation
30
+- id: toggleNavigation
31
+  translation: "Toggle navigation"
32
+- id: languageSwitcherLabel
33
+  translation: "Language"
34
+- id: gcseLabelShort
35
+  translation: "Search"
36
+- id: gcseLabelLong
37
+  translation: "Search {{ .Site.Title }}"
38
+- id: gcseClose
39
+  translation: "Close"
40
+

+ 38
- 0
themes/beautifulhugo/i18n/ja.yaml View File

@@ -0,0 +1,38 @@
1
+# Content
2
+- id: dateFormat
3
+  translation: "2006年1月2日"
4
+- id: postedOnDate
5
+  translation: "{{ .Count }}に投稿"
6
+- id: translationsLabel
7
+  translation: "翻訳:"
8
+- id: translationsSeparator
9
+  translation: "・"
10
+- id: readMore
11
+  translation: "続きを読む"
12
+- id: olderPosts
13
+  translation: "古いページ"
14
+- id: newerPosts
15
+  translation: "新しいページ"
16
+- id: previousPost
17
+  translation: "前ページ"
18
+- id: nextPost
19
+  translation: "次ページ"
20
+
21
+# 404 page
22
+- id: pageNotFound
23
+  translation: "おっと、このページが存在しない。他にあたってください。(404エラー)"
24
+
25
+# Footer
26
+- id: poweredBy # Accepts HTML
27
+  translation: '起動力に<a href="http://gohugo.io">Hugo v{{ .Hugo.Version }}</a> &nbsp;&bull;&nbsp; テーマに<a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>に基づいている<a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>'
28
+
29
+# Navigation
30
+- id: toggleNavigation
31
+  translation: "メニューを切り替え"
32
+- id: gcseLabelShort
33
+  translation: "検索"
34
+- id: gcseLabelLong
35
+  translation: "{{ .Site.Title }}を検索"
36
+- id: gcseClose
37
+  translation: "閉じる"
38
+

+ 40
- 0
themes/beautifulhugo/i18n/ru.yaml View File

@@ -0,0 +1,40 @@
1
+# Content
2
+- id: dateFormat
3
+  translation: "Январь 2, 2006"
4
+- id: postedOnDate
5
+  translation: "Опубликовано {{ .Count }}"
6
+- id: translationsLabel
7
+  translation: "Другие языки: "
8
+- id: translationsSeparator
9
+  translation: ", "
10
+- id: readMore
11
+  translation: "Далее"
12
+- id: olderPosts
13
+  translation: "Предыдущие записи"
14
+- id: newerPosts
15
+  translation: "Новые записи"
16
+- id: previousPost
17
+  translation: "Предыдущий"
18
+- id: nextPost
19
+  translation: "Следующий"
20
+
21
+# 404 page
22
+- id: pageNotFound
23
+  translation: "Уууупс, страница не найдена. Поищите ещё. (ошибка 404)"
24
+
25
+# Footer
26
+- id: poweredBy # Accepts HTML
27
+  translation: 'На базе <a href="http://gohugo.io">Hugo v{{ .Hugo.Version }}</a> &nbsp;&bull;&nbsp; Тема <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> на базе <a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
28
+
29
+# Navigation
30
+- id: toggleNavigation
31
+  translation: "Навигация"
32
+- id: languageSwitcherLabel
33
+  translation: "Язык"
34
+- id: gcseLabelShort
35
+  translation: "Поиск"
36
+- id: gcseLabelLong
37
+  translation: "Поиск по {{ .Site.Title }}"
38
+- id: gcseClose
39
+  translation: "Закрыть"
40
+

+ 40
- 0
themes/beautifulhugo/i18n/zh.yaml View File

@@ -0,0 +1,40 @@
1
+# Content
2
+- id: dateFormat
3
+  translation: "January 2, 2006"
4
+- id: postedOnDate
5
+  translation: "发表于 {{ .Count }}"
6
+- id: translationsLabel
7
+  translation: "其它语言: "
8
+- id: translationsSeparator
9
+  translation: ", "
10
+- id: readMore
11
+  translation: "阅读全文"
12
+- id: olderPosts
13
+  translation: "下一页"
14
+- id: newerPosts
15
+  translation: "上一页"
16
+- id: previousPost
17
+  translation: "前一篇"
18
+- id: nextPost
19
+  translation: "后一篇"
20
+
21
+# 404 page
22
+- id: pageNotFound
23
+  translation: "啊哦,这篇文章不存在。 (404 错误)"
24
+
25
+# Footer
26
+- id: poweredBy # Accepts HTML
27
+  translation: '由 <a href="http://gohugo.io">Hugo v{{ .Hugo.Version }}</a> 强力驱动 &nbsp;&bull;&nbsp; 主题 <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> 移植自 <a href="http://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
28
+
29
+# Navigation
30
+- id: toggleNavigation
31
+  translation: "切换导航"
32
+- id: languageSwitcherLabel
33
+  translation: "语言"
34
+- id: gcseLabelShort
35
+  translation: "搜索"
36
+- id: gcseLabelLong
37
+  translation: "搜索 {{ .Site.Title }}"
38
+- id: gcseClose
39
+  translation: "关闭"
40
+

BIN
themes/beautifulhugo/images/screenshot.png View File


BIN
themes/beautifulhugo/images/tn.png View File


+ 11
- 0
themes/beautifulhugo/layouts/404.html View File

@@ -0,0 +1,11 @@
1
+{{ define "header" }}<!-- No header on 404 pages -->{{ end }}
2
+{{ define "main" }}
3
+  <div role="main" class="container main-content">
4
+    <div class="text-center">
5
+      <h1>{{ i18n "pageNotFound" }}</h1>
6
+      <br/>
7
+      <img src="{{ .Site.BaseURL }}/img/404-southpark.jpg" />
8
+    </div>
9
+  </div>
10
+{{ end }}
11
+

+ 11
- 0
themes/beautifulhugo/layouts/_default/baseof.html View File

@@ -0,0 +1,11 @@
1
+<!DOCTYPE html>
2
+<html lang="{{ .Lang }}">
3
+  {{ partial "head.html" . }}
4
+  <body>
5
+    {{ partial "nav.html" . }}
6
+    {{ block "header" . }}{{ partial "header.html" . }}{{ end }}
7
+    {{ block "main" . }}{{ end }}
8
+    {{ partial "footer.html" . }}
9
+  </body>
10
+</html>
11
+

+ 80
- 0
themes/beautifulhugo/layouts/_default/list.html View File

@@ -0,0 +1,80 @@
1
+{{ define "header" }}
2
+  <header class="header-section ">
3
+    <div class="intro-header no-img">
4
+      <div class="container">
5
+        <div class="row">
6
+          <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
7
+            <div class="page-heading">
8
+              <h1>{{ if .Data.Singular }}#{{ end }}{{ .Title }}</h1>
9
+              <hr class="small">
10
+            </div>
11
+          </div>
12
+        </div>
13
+      </div>
14
+    </div>
15
+  </header>
16
+{{ end }}
17
+{{ define "main" }}
18
+  <div class="container" role="main">
19
+    <div class="row">
20
+      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
21
+        {{ with .Content }}
22
+          <div class="well">
23
+            {{.}}
24
+          </div>
25
+        {{ end }}
26
+        <div class="posts-list">
27
+          {{ range .Paginator.Pages }}
28
+            <article class="post-preview">
29
+              <a href="{{ .Permalink }}">
30
+                <h2 class="post-title">{{ .Title }}</h2>
31
+
32
+                {{ if .Params.subtitle }}
33
+                  <h3 class="post-subtitle">
34
+                    {{ .Params.subtitle }}
35
+                  </h3>
36
+                {{ end }}
37
+              </a>
38
+
39
+              <p class="post-meta">
40
+                {{ default (i18n "dateFormat") .Site.Params.dateformat | .Date.Format | i18n "postedOnDate" }}
41
+              </p>
42
+              <div class="post-entry">
43
+                {{ if .Truncated }}
44
+                  {{ .Summary }}
45
+                  <a href="{{ .Permalink }}" class="post-read-more">[{{ i18n "readMore" }}]</a>
46
+                {{ else }}
47
+                  {{ .Content }}
48
+                {{ end }}
49
+              </div>
50
+
51
+              {{ if .Params.tags }}
52
+                <span class="post-meta">
53
+                  {{ range .Params.tags }}
54
+                    #<a href="{{ $.Site.LanguagePrefix | absURL }}tags/{{ . | urlize }}/">{{ . }}</a>&nbsp;
55
+                  {{ end }}
56
+                </span>
57
+              {{ end }}
58
+
59
+            </article>
60
+          {{ end }}
61
+        </div>
62
+        {{ if or (.Paginator.HasPrev) (.Paginator.HasNext) }}
63
+          <ul class="pager main-pager">
64
+            {{ if .Paginator.HasPrev }}
65
+              <li class="previous">
66
+                <a href="{{ .URL }}page/{{ .Paginator.Prev.PageNumber }}">&larr; {{ i18n "newerPosts" }}</a>
67
+              </li>
68
+            {{ end }}
69
+            {{ if .Paginator.HasNext }}
70
+              <li class="next">
71
+                <a href="{{ .URL }}page/{{ .Paginator.Next.PageNumber }}">{{ i18n "olderPosts" }} &rarr;</a>
72
+              </li>
73
+            {{ end }}
74
+          </ul>
75
+        {{ end }}
76
+      </div>
77
+    </div>
78
+  </div>
79
+{{ end }}
80
+

+ 33
- 0
themes/beautifulhugo/layouts/_default/single.html View File

@@ -0,0 +1,33 @@
1
+{{ define "main" }}
2
+<div class="container" role="main">
3
+  <div class="row">
4
+    <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
5
+      <article role="main" class="blog-post">
6
+        {{ .Content }}
7
+      </article>
8
+
9
+      <ul class="pager blog-pager">
10
+        {{ if .PrevInSection }}
11
+          <li class="previous">
12
+            <a href="{{ .PrevInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .PrevInSection.Title }}">&larr; {{ i18n "previousPost" }}</a>
13
+          </li>
14
+        {{ end }}
15
+        {{ if .NextInSection }}
16
+          <li class="next">
17
+            <a href="{{ .NextInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .NextInSection.Title }}">{{ i18n "nextPost" }} &rarr;</a>
18
+          </li>
19
+        {{ end }}
20
+      </ul>
21
+
22
+      {{ if (.Params.comments) | or (and (or (not (isset .Params "comments")) (eq .Params.comments nil)) (.Site.Params.comments)) }}
23
+        {{ if .Site.DisqusShortname }}
24
+          <div class="disqus-comments">
25
+            {{ template "_internal/disqus.html" . }}
26
+          </div>
27
+        {{ end }}
28
+      {{ end }}
29
+
30
+    </div>
31
+  </div>
32
+</div>
33
+{{ end }}

+ 14
- 0
themes/beautifulhugo/layouts/_default/terms.html View File

@@ -0,0 +1,14 @@
1
+{{ define "main" }}
2
+  {{ $data := .Data }}
3
+  <div class="container" role="main">
4
+    <article class="post-preview">
5
+      <div class="list-group col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3">
6
+      {{ range $key, $value := .Data.Terms.ByCount }}
7
+      <a href="{{ $.Site.LanguagePrefix | absURL }}{{ $data.Plural }}/{{ $value.Name | urlize }}/" class="list-group-item">
8
+          {{ $value.Name }}<span class="badge">{{ $value.Count }}</span></a>
9
+      {{ end }}
10
+      </div>
11
+    </article>
12
+  </div>
13
+{{ end }}
14
+

+ 63
- 0
themes/beautifulhugo/layouts/index.html View File

@@ -0,0 +1,63 @@
1
+{{ define "main" }}
2
+  <div role="main" class="container">
3
+    <div class="row">
4
+      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
5
+        {{ with .Content }}
6
+          <div class="well">
7
+            {{.}}
8
+          </div>
9
+        {{ end }}
10
+
11
+        <div class="posts-list">
12
+          {{ $pag := .Paginate (where .Data.Pages "Type" "post") }}
13
+          {{ range $pag.Pages }}
14
+            <article class="post-preview">
15
+              <a href="{{ .Permalink }}">
16
+                <h2 class="post-title">{{ .Title }}</h2>
17
+                {{ if .Params.subtitle }}
18
+                  <h3 class="post-subtitle">
19
+                  {{ .Params.subtitle }}
20
+                  </h3>
21
+                {{ end }}
22
+              </a>
23
+
24
+              {{ partial "post_meta.html" . }}
25
+              <div class="post-entry">
26
+                {{ if .Truncated }}
27
+                  {{ .Summary }}
28
+                  <a href="{{ .Permalink }}" class="post-read-more">[{{ i18n "readMore" }}]</a>
29
+                {{ else }}
30
+                  {{ .Content }}
31
+                {{ end }}
32
+              </div>
33
+
34
+              {{ if .Params.tags }}
35
+                <span class="post-meta">
36
+                {{ range .Params.tags }}
37
+                  #<a href="{{ $.Site.LanguagePrefix | absURL }}tags/{{ . | urlize }}/">{{ . }}</a>&nbsp;
38
+                {{ end }}
39
+                </span>
40
+              {{ end }}
41
+            </article>
42
+          {{ end }}
43
+        </div>
44
+
45
+        {{ if or (.Paginator.HasPrev) (.Paginator.HasNext) }}
46
+          <ul class="pager main-pager">
47
+            {{ if .Paginator.HasPrev }}
48
+              <li class="previous">
49
+                <a href="{{ .URL }}page/{{ .Paginator.Prev.PageNumber }}">&larr; {{ i18n "newerPosts" }}</a>
50
+              </li>
51
+            {{ end }}
52
+            {{ if .Paginator.HasNext }}
53
+              <li class="next">
54
+                <a href="{{ .URL }}page/{{ .Paginator.Next.PageNumber }}">{{ i18n "olderPosts" }} &rarr;</a>
55
+              </li>
56
+            {{ end }}
57
+          </ul>
58
+        {{ end }}
59
+      </div>
60
+    </div>
61
+  </div>
62
+{{ end }}
63
+

+ 7
- 0
themes/beautifulhugo/layouts/partials/disqus.html View File

@@ -0,0 +1,7 @@
1
+{{ if (.Params.comments) | or (and (or (not (isset .Params "comments")) (eq .Params.comments nil)) (.Site.Params.comments)) }}
2
+  {{ if .Site.DisqusShortname }}
3
+    <div class="comments">
4
+      {{ template "_internal/disqus.html" . }}
5
+    </div>
6
+  {{ end }}
7
+{{ end }}

+ 82
- 0
themes/beautifulhugo/layouts/partials/footer.html View File

@@ -0,0 +1,82 @@
1
+<footer>
2
+  <div class="container">
3
+    <div class="row">
4
+      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
5
+        <ul class="list-inline text-center footer-links">
6
+          {{ range .Site.Data.beautifulhugo.social.social_icons }}
7
+            {{- if isset $.Site.Author .id }}
8
+              <li>
9
+                <a href="{{ printf .url (index $.Site.Author .id) }}" title="{{ .title }}">
10
+                  <span class="fa-stack fa-lg">
11
+                    <i class="fa fa-circle fa-stack-2x"></i>
12
+                    <i class="fa {{ .icon }} fa-stack-1x fa-inverse"></i>
13
+                  </span>
14
+                </a>
15
+              </li>
16
+            {{- end -}}
17
+          {{ end }}
18
+          {{ if .Site.Params.rss }}
19
+          <li>
20
+            <a href="{{ "index.xml" | absLangURL }}" title="RSS">
21
+              <span class="fa-stack fa-lg">
22
+                <i class="fa fa-circle fa-stack-2x"></i>
23
+                <i class="fa fa-rss fa-stack-1x fa-inverse"></i>
24
+              </span>
25
+            </a>
26
+          </li>
27
+          {{ end }}
28
+        </ul>
29
+        <p class="credits copyright text-muted">
30
+          {{ if .Site.Author.name }}
31
+            {{ if .Site.Author.website }}
32
+              <a href="{{ .Site.Author.website }}">{{ .Site.Author.name }}</a>
33
+            {{ else }}
34
+              {{ .Site.Author.name }}
35
+            {{ end }}          
36
+          {{ end }}
37
+          
38
+          &nbsp;&bull;&nbsp;
39
+          {{ .Site.LastChange.Format "2006" }}
40
+
41
+          {{ if .Site.Title }}
42
+            &nbsp;&bull;&nbsp;
43
+            <a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a>
44
+          {{ end }}
45
+        </p>
46
+        <!-- Please don't remove this, keep my open source work credited :) -->
47
+        <p class="credits theme-by text-muted">
48
+          {{ i18n "poweredBy" . | safeHTML }}
49
+          {{ with .Site.Params.commit }}&nbsp;&bull;&nbsp;[<a href="{{.}}{{ getenv "GIT_COMMIT_SHA" }}">{{ getenv "GIT_COMMIT_SHA_SHORT" }}</a>]{{ end }}
50
+        </p>
51
+      </div>
52
+    </div>
53
+  </div>
54
+</footer>
55
+
56
+<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js" integrity="sha384-/y1Nn9+QQAipbNQWU65krzJralCnuOasHncUFXGkdwntGeSvQicrYkiUBwsgUqc1" crossorigin="anonymous"></script>
57
+<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/contrib/auto-render.min.js" integrity="sha384-dq1/gEHSxPZQ7DdrM82ID4YVol9BYyU7GbWlIwnwyPzotpoc57wDw/guX8EaYGPx" crossorigin="anonymous"></script>
58
+<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
59
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
60
+<script src="{{ "js/main.js" | absURL }}"></script>
61
+<script src="{{ "js/highlight.min.js" | absURL }}"></script>
62
+<script> hljs.initHighlightingOnLoad(); </script>
63
+<script> renderMathInElement(document.body); </script>
64
+<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.js" integrity="sha256-UplRCs9v4KXVJvVY+p+RSo5Q4ilAUXh7kpjyIP5odyc=" crossorigin="anonymous"></script>
65
+<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe-ui-default.min.js" integrity="sha256-PWHOlUzc96pMc8ThwRIXPn8yH4NOLu42RQ0b9SpnpFk=" crossorigin="anonymous"></script>
66
+<script src="{{ "js/load-photoswipe.js" | absURL }}"></script>
67
+<!-- Google Custom Search Engine -->
68
+{{ if .Site.Params.gcse }}
69
+<script>
70
+  (function() {
71
+    var cx = '{{ .Site.Params.gcse }}';
72
+    var gcse = document.createElement('script');
73
+    gcse.type = 'text/javascript';
74
+    gcse.async = true;
75
+    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
76
+    var s = document.getElementsByTagName('script')[0];
77
+    s.parentNode.insertBefore(gcse, s);
78
+  })();
79
+</script>
80
+{{ end }}
81
+
82
+{{- partial "footer_custom.html" . }}

+ 4
- 0
themes/beautifulhugo/layouts/partials/footer_custom.html View File

@@ -0,0 +1,4 @@
1
+<!--
2
+If you want to include any custom html just before </body>, put it in /layouts/footer_custom.html
3
+Do not put anything in this file - it's only here so that hugo won't throw an error if /layouts/footer_custom.html doesn't exist.
4
+-->

+ 52
- 0
themes/beautifulhugo/layouts/partials/head.html View File

@@ -0,0 +1,52 @@
1
+<head>
2
+  <meta charset="utf-8" />
3
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
5
+<!-- Site Title, Description, Author, and Favicon -->
6
+{{- with .Title | default .Site.Title }}
7
+  <title>{{ . }}</title>
8
+  <meta property="og:title" content="{{ . }}" />
9
+  <meta name="twitter:title" content="{{ . | truncate 70 }}" />
10
+{{- end }}
11
+{{- with .Description | default .Params.subtitle | default .Summary }}
12
+  <meta name="description" content="{{ . }}">
13
+  <meta property="og:description" content="{{ . }}">
14
+  <meta name="twitter:description" content="{{ . | truncate 200 }}">
15
+{{- end }}
16
+  <meta name="author" content="{{ .Site.Author.name }}"/>
17
+{{- with .Site.Params.favicon }}
18
+  <link href='{{ . | absURL }}' rel='icon' type='image/x-icon'/>
19
+{{- end -}}
20
+<!-- Social Media Tags -->
21
+{{- with .Params.share_img | default .Params.image | default .Site.Params.logo }}
22
+  <meta property="og:image" content="{{ . | absURL }}" />
23
+  <meta name="twitter:image" content="{{ . | absURL }}" />
24
+{{- end }}
25
+  <meta name="twitter:card" content="summary" />
26
+{{- with .Site.Author.twitter }}
27
+  <meta name="twitter:site" content="@{{ . }}" />
28
+  <meta name="twitter:creator" content="@{{ . }}" />
29
+{{- end }}
30
+{{- with .Site.Params.fb_app_id }}
31
+  <meta property="fb:app_id" content="{{ . }}" />
32
+{{- end }}
33
+  <meta property="og:url" content="{{ .URL | absLangURL }}" />
34
+  <meta property="og:type" content="website" />
35
+  <meta property="og:site_name" content="{{ .Site.Title }}" />
36
+<!-- Hugo Version number -->
37
+  {{ .Hugo.Generator -}}
38
+<!-- Links and stylesheets -->
39
+  <link rel="canonical" href="{{ .URL | absLangURL }}" />
40
+  <link rel="alternate" href="{{ "index.xml" | absLangURL }}" type="application/rss+xml" title="{{ .Site.Title }}">
41
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css" integrity="sha384-wITovz90syo1dJWVh32uuETPVEtGigN07tkttEqPv+uR2SE/mbQcG7ATL28aI9H0" crossorigin="anonymous">
42
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
43
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
44
+  <link rel="stylesheet" href="{{ "css/main.css" | absURL }}" />
45
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" />
46
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" />
47
+  <link rel="stylesheet" href="{{ "css/pygment_highlights.css" | absURL }}" />
48
+  <link rel="stylesheet" href="{{ "css/highlight.min.css" | absURL }}" />
49
+{{- partial "head_custom.html" . }}
50
+{{- partial "load-photoswipe-theme.html" . }}
51
+{{ template "_internal/google_analytics_async.html" . }}
52
+</head>

+ 4
- 0
themes/beautifulhugo/layouts/partials/head_custom.html View File

@@ -0,0 +1,4 @@
1
+<!--
2
+If you want to include any custom html just before </head>, put it in /layouts/head_custom.html
3
+Do not put anything in this file - it's only here so that hugo won't throw an error if /layouts/head_custom.html doesn't exist.
4
+-->

+ 70
- 0
themes/beautifulhugo/layouts/partials/header.html View File

@@ -0,0 +1,70 @@
1
+{{ if .IsHome }}
2
+  {{ $.Scratch.Set "title" .Site.Title }}
3
+  {{ if .Site.Params.subtitle }}{{ $.Scratch.Set "subtitle" .Site.Params.subtitle }}{{ end }}
4
+  {{ if .Site.Params.bigimg }}{{ $.Scratch.Set "bigimg" .Site.Params.bigimg }}{{ end }}
5
+{{ else }}
6
+  {{ $.Scratch.Set "title" .Title }}
7
+  {{ if .Params.subtitle }}{{ $.Scratch.Set "subtitle" .Params.subtitle }}{{ end }}
8
+  {{ if .Params.bigimg }}{{ $.Scratch.Set "bigimg" .Params.bigimg }}{{ end }}
9
+{{ end }}
10
+{{ $bigimg := $.Scratch.Get "bigimg" }}
11
+
12
+{{ if or $bigimg ($.Scratch.Get "title") }}
13
+  {{ if $bigimg }}
14
+    <div id="header-big-imgs" data-num-img={{len $bigimg}} {{range $i, $img := $bigimg}}data-img-src-{{add $i 1}}="{{$img.src | absURL }}" {{ if $img.desc}}data-img-desc-{{add $i 1}}="{{$img.desc}}"{{end}}{{end}}></div>
15
+  {{ end }}
16
+
17
+  <header class="header-section {{ if $bigimg }}has-img{{ end }}">
18
+    {{ if $bigimg }}
19
+      <div class="intro-header big-img">
20
+        {{ $subtitle := $.Scratch.Get "subtitle" }}
21
+        <div class="container">
22
+          <div class="row">
23
+            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
24
+              <div class="{{ .Type }}-heading">
25
+                <h1>{{ with $.Scratch.Get "title" }}{{.}}{{ else }}<br/>{{ end }}</h1>
26
+                  {{ if $subtitle }}
27
+                    {{ if eq .Type "page" }}
28
+                      <hr class="small">
29
+                      <span class="{{ .Type }}-subheading">{{ $subtitle }}</span>
30
+                    {{ else }}
31
+                      <h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2>
32
+                    {{ end }}
33
+                  {{ end }}
34
+                  {{ if eq .Type "post" }}
35
+                    {{ partial "post_meta.html" . }}
36
+                  {{ end }}
37
+              </div>
38
+            </div>
39
+          </div>
40
+        </div>
41
+        <span class="img-desc" style="display: inline;"></span>
42
+      </div>
43
+    {{end}}
44
+    <div class="intro-header no-img">
45
+      {{ $subtitle := $.Scratch.Get "subtitle" }}
46
+      <div class="container">
47
+        <div class="row">
48
+          <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
49
+            <div class="{{ .Type }}-heading">
50
+              <h1>{{ with $.Scratch.Get "title" }}{{.}}{{ else }}<br/>{{ end }}</h1>
51
+                {{ if $subtitle }}
52
+                  {{ if eq .Type "page" }}
53
+                    <hr class="small">
54
+                    <span class="{{ .Type }}-subheading">{{ $subtitle }}</span>
55
+                  {{ else }}
56
+                    <h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2>
57
+                  {{ end }}
58
+                {{ end }}
59
+                {{ if eq .Type "post" }}
60
+                  {{ partial "post_meta.html" . }}
61
+                {{ end }}
62
+            </div>
63
+          </div>
64
+        </div>
65
+      </div>
66
+    </div>
67
+  </header>
68
+{{ else }}
69
+  <div class="intro-header"></div>
70
+{{ end }}

+ 59
- 0
themes/beautifulhugo/layouts/partials/load-photoswipe-theme.html View File

@@ -0,0 +1,59 @@
1
+<!--
2
+Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
3
+-->
4
+
5
+<!-- Photoswipe css/js libraries -->
6
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.css" integrity="sha256-sCl5PUOGMLfFYctzDW3MtRib0ctyUvI9Qsmq2wXOeBY=" crossorigin="anonymous" />
7
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/default-skin/default-skin.min.css" integrity="sha256-BFeI1V+Vh1Rk37wswuOYn5lsTcaU96hGaI7OUVCLjPc=" crossorigin="anonymous" />
8
+<!-- these files are loaded in the theme footer
9
+<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.js" integrity="sha256-UplRCs9v4KXVJvVY+p+RSo5Q4ilAUXh7kpjyIP5odyc=" crossorigin="anonymous"></script>
10
+<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe-ui-default.min.js" integrity="sha256-PWHOlUzc96pMc8ThwRIXPn8yH4NOLu42RQ0b9SpnpFk=" crossorigin="anonymous"></script>
11
+-->
12
+
13
+<!-- Root element of PhotoSwipe. Must have class pswp. -->
14
+<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
15
+<!-- Background of PhotoSwipe.
16
+     It's a separate element, as animating opacity is faster than rgba(). -->
17
+<div class="pswp__bg"></div>
18
+<!-- Slides wrapper with overflow:hidden. -->
19
+<div class="pswp__scroll-wrap">
20
+    <!-- Container that holds slides.
21
+      PhotoSwipe keeps only 3 of them in DOM to save memory.
22
+      Don't modify these 3 pswp__item elements, data is added later on. -->
23
+    <div class="pswp__container">
24
+      <div class="pswp__item"></div>
25
+      <div class="pswp__item"></div>
26
+      <div class="pswp__item"></div>
27
+    </div>
28
+    <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
29
+    <div class="pswp__ui pswp__ui--hidden">
30
+    <div class="pswp__top-bar">
31
+      <!--  Controls are self-explanatory. Order can be changed. -->
32
+      <div class="pswp__counter"></div>
33
+      <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
34
+      <button class="pswp__button pswp__button--share" title="Share"></button>
35
+      <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
36
+      <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
37
+      <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
38
+      <!-- element will get class pswp__preloader--active when preloader is running -->
39
+      <div class="pswp__preloader">
40
+        <div class="pswp__preloader__icn">
41
+          <div class="pswp__preloader__cut">
42
+            <div class="pswp__preloader__donut"></div>
43
+          </div>
44
+        </div>
45
+      </div>
46
+    </div>
47
+    <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
48
+      <div class="pswp__share-tooltip"></div>
49
+    </div>
50
+    <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
51
+    </button>
52
+    <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
53
+    </button>
54
+    <div class="pswp__caption">
55
+      <div class="pswp__caption__center"></div>
56
+    </div>
57
+    </div>
58
+    </div>
59
+</div>

+ 96
- 0
themes/beautifulhugo/layouts/partials/nav.html View File

@@ -0,0 +1,96 @@
1
+<nav class="navbar navbar-default navbar-fixed-top navbar-custom">
2
+  <div class="container-fluid">
3
+    <div class="navbar-header">
4
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
5
+        <span class="sr-only">{{ i18n "toggleNavigation" }}</span>
6
+        <span class="icon-bar"></span>
7
+        <span class="icon-bar"></span>
8
+        <span class="icon-bar"></span>
9
+      </button>
10
+      <a class="navbar-brand" href="{{ "" | absLangURL }}">{{ .Site.Title }}</a>
11
+    </div>
12
+
13
+    <div class="collapse navbar-collapse" id="main-navbar">
14
+      <ul class="nav navbar-nav navbar-right">
15
+        {{ range .Site.Menus.main.ByWeight }}
16
+          {{ if .HasChildren }}
17
+            <li class="navlinks-container">
18
+              <a class="navlinks-parent" href="javascript:void(0)">{{ .Name }}</a>
19
+              <div class="navlinks-children">
20
+                {{ range .Children }}
21
+                  <a href="{{ .URL | relLangURL }}">{{ .Name }}</a>
22
+                {{ end }}
23
+              </div>
24
+            </li>
25
+          {{ else }}
26
+            <li>
27
+              <a title="{{ .Name }}" href="{{ .URL  | relLangURL }}">{{ .Name }}</a>
28
+            </li>
29
+          {{ end }}
30
+        {{ end }}
31
+
32
+        {{ if .Site.IsMultiLingual }}
33
+          {{ if ge (len .Site.Languages) 3 }}
34
+            <li class="navlinks-container">
35
+              <a class="navlinks-parent" href="javascript:void(0)">{{ i18n "languageSwitcherLabel" }}</a>
36
+              <div class="navlinks-children">
37
+                {{ range .Site.Languages }}
38
+                  {{ if not (eq .Lang $.Site.Language.Lang) }}
39
+                  <a href="/{{ .Lang }}" lang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a>
40
+                  {{ end }}
41
+                {{ end }}
42
+              </div>
43
+            </li>
44
+          {{ else }}
45
+            <li>
46
+              {{ range .Site.Languages }}
47
+                {{ if not (eq .Lang $.Site.Language.Lang) }}
48
+                  <a href="/{{ .Lang }}" lang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a>
49
+                {{ end }}
50
+              {{ end }}
51
+            </li>
52
+          {{ end }}
53
+        {{ end }}
54
+
55
+        {{ if isset .Site.Params "gcse" }}
56
+          <li>
57
+            <a href="#modalSearch" data-toggle="modal" data-target="#modalSearch" style="outline: none;">
58
+              <span class="hidden-sm hidden-md hidden-lg">{{ i18n "gcseLabelShort" }}</span> <span id="searchGlyph" class="glyphicon glyphicon-search"></span>
59
+            </a>
60
+          </li>
61
+        {{ end }}
62
+      </ul>
63
+    </div>
64
+
65
+    <div class="avatar-container">
66
+      <div class="avatar-img-border">
67
+        {{ if isset .Site.Params "logo" }}
68
+          <a title="{{ .Site.Title }}" href="{{ "" | absLangURL }}">
69
+            <img class="avatar-img" src="{{ .Site.Params.logo | absURL }}" alt="{{ .Site.Title }}" />
70
+          </a>
71
+        {{ end }}
72
+      </div>
73
+    </div>
74
+
75
+  </div>
76
+</nav>
77
+
78
+<!-- Search Modal -->
79
+{{ if isset .Site.Params "gcse" }}
80
+  <div id="modalSearch" class="modal fade" role="dialog">
81
+    <div class="modal-dialog">
82
+      <div class="modal-content">
83
+        <div class="modal-header">
84
+          <button type="button" class="close" data-dismiss="modal">&times;</button>
85
+          <h4 class="modal-title">{{ i18n "gcseLabelLong" . }}</h4>
86
+        </div>
87
+        <div class="modal-body">
88
+          <gcse:search></gcse:search>
89
+        </div>
90
+        <div class="modal-footer">
91
+          <button type="button" class="btn btn-default" data-dismiss="modal">{{ i18n "gcseClose" }}</button>
92
+        </div>
93
+      </div>
94
+    </div>
95
+  </div>
96
+{{ end }}

+ 11
- 0
themes/beautifulhugo/layouts/partials/post_meta.html View File

@@ -0,0 +1,11 @@
1
+<span class="post-meta">
2
+  {{ default (i18n "dateFormat") .Site.Params.dateformat | .Date.Format | i18n "postedOnDate" }}
3
+  {{ if .IsTranslated -}}
4
+    {{- $sortedTranslations := sort .Translations "Site.Language.Weight" -}}
5
+    {{- $links := apply $sortedTranslations "partial" "translation_link.html" "." -}}
6
+    {{- $cleanLinks := apply $links "chomp" "." -}}
7
+    {{- $linksOutput := delimit $cleanLinks (i18n "translationsSeparator") -}}
8
+    &nbsp;&bull;&nbsp; {{ i18n "translationsLabel" }}{{ $linksOutput }}
9
+  {{- end }}
10
+</span>
11
+

+ 2
- 0
themes/beautifulhugo/layouts/partials/translation_link.html View File

@@ -0,0 +1,2 @@
1
+<a href="{{ .Permalink }}" lang="{{ .Lang }}">{{ default .Lang .Site.Language.LanguageName }}</a>
2
+

+ 29
- 0
themes/beautifulhugo/layouts/shortcodes/figure.html View File

@@ -0,0 +1,29 @@
1
+<!--
2
+Put this file in /layouts/shortcodes/figure.html
3
+NB this overrides Hugo's built-in "figure" shortcode but is backwards compatible
4
+Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
5
+-->
6
+<!-- count how many times we've called this shortcode; load the css if it's the first time -->
7
+{{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href="/css/hugo-easy-gallery.css" />{{ end }}
8
+{{- $.Page.Scratch.Add "figurecount" 1 -}}
9
+<!-- use either src or link-thumb for thumbnail image -->
10
+{{- $thumb := .Get "src" | default (printf "%s." (.Get "thumb") | replace (.Get "link") ".") }}
11
+<div class="box{{ with .Get "caption-position" }} fancy-figure caption-position-{{.}}{{end}}{{ with .Get "caption-effect" }} caption-effect-{{.}}{{end}}" {{ with .Get "width" }}style="max-width:{{.}}"{{end}}>
12
+  <figure {{ with .Get "class" }}class="{{.}}"{{ end }} itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
13
+    <div class="img"{{ if .Parent }} style="background-image: url('{{ $thumb }}');"{{ end }}{{ with .Get "size" }} data-size="{{.}}"{{ end }}>
14
+      <img itemprop="thumbnail" src="{{ $thumb }}" {{ with .Get "alt" | default (.Get "caption") }}alt="{{.}}"{{ end }}/><!-- <img> hidden if in .gallery -->
15
+    </div>
16
+    {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr")}}
17
+      <figcaption>
18
+        {{- with .Get "title" }}<h4>{{.}}</h4>{{ end }}
19
+        {{- if or (.Get "caption") (.Get "attr")}}
20
+          <p>
21
+            {{- .Get "caption" -}}
22
+            {{- with .Get "attrlink"}}<a href="{{.}}">{{ .Get "attr" }}</a>{{ else }}{{ .Get "attr"}}{{ end -}}
23
+          </p>
24
+        {{- end }}
25
+      </figcaption>
26
+    {{- end }}
27
+    {{ with .Get "link" | default (.Get "src") }}<a href="{{.}}" itemprop="contentUrl"></a>{{ end }}<!-- put <a> last so it is stacked on top -->
28
+  </figure>
29
+</div>

+ 40
- 0
themes/beautifulhugo/layouts/shortcodes/gallery.html View File

@@ -0,0 +1,40 @@
1
+<!--
2
+Put this file in /layouts/shortcodes/gallery.html
3
+Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
4
+-->
5
+<!-- count how many times we've called this shortcode; load the css if it's the first time -->
6
+{{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href="/css/hugo-easy-gallery.css" />{{ end }}
7
+{{- $.Page.Scratch.Add "figurecount" 1 }}
8
+<div class="gallery caption-position-{{ with .Get "caption-position" | default "bottom" }}{{.}}{{end}} caption-effect-{{ with .Get "caption-effect" | default "slide" }}{{.}}{{end}} hover-effect-{{ with .Get "hover-effect" | default "zoom" }}{{.}}{{end}} {{ if ne (.Get "hover-transition") "none" }}hover-transition{{end}}" itemscope itemtype="http://schema.org/ImageGallery">
9
+	{{- with (.Get "dir") -}}
10
+		<!-- If a directory was specified, generate figures for all of the images in the directory -->
11
+		{{- $files := readDir (print "/static/" .) }}
12
+		{{- range $files -}}
13
+			<!-- skip files that aren't images, or that inlcude the thumb suffix in their name -->
14
+			{{- $thumbext := $.Get "thumb" | default "-thumb" }}
15
+			{{- $isthumb := .Name | findRE ($thumbext | printf "%s\\.") }}<!-- is the current file a thumbnail image? -->
16
+			{{- $isimg := lower .Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp)" }}<!-- is the current file an image? -->
17
+			{{- if and $isimg (not $isthumb) }}
18
+				{{- $caption :=  .Name | replaceRE "\\..*" "" | humanize }}<!-- humanized filename without extension -->
19
+				{{- $linkURL := print ($.Get "dir") "/" .Name | absURL }}<!-- absolute URL to hi-res image -->
20
+				{{- $thumb := .Name | replaceRE "(\\.)" ($thumbext | printf "%s.") }}<!-- filename of thumbnail image -->
21
+				{{- $thumbexists := where $files "Name" $thumb }}<!-- does a thumbnail image exist? --> 
22
+				{{- $thumbURL := print ($.Get "dir") "/" $thumb | absURL }}<!-- absolute URL to thumbnail image -->
23
+				<div class="box">
24
+				  <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
25
+				    <div class="img" style="background-image: url('{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}');" >
26
+				      <img itemprop="thumbnail" src="{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}" alt="{{ $caption }}" /><!-- <img> hidden if in .gallery -->
27
+				    </div>
28
+			      <figcaption>
29
+		          <p>{{ $caption }}</p>
30
+			      </figcaption>
31
+				    <a href="{{ $linkURL }}" itemprop="contentUrl"></a><!-- put <a> last so it is stacked on top -->
32
+				  </figure>
33
+				</div>
34
+			{{- end }}
35
+		{{- end }}
36
+	{{- else -}}
37
+		<!-- If no directory was specified, include any figure shortcodes called within the gallery -->
38
+	  {{ .Inner }}
39
+	{{- end }}
40
+</div>

+ 1
- 0
themes/beautifulhugo/static/css/highlight.min.css View File

@@ -0,0 +1 @@
1
+.hljs{display:block;overflow-x:auto;padding:0.5em;background:#f9f9f9;-webkit-text-size-adjust:none}.hljs,.hljs-subst,.hljs-tag .hljs-title,.nginx .hljs-title{color:black}.hljs-string,.hljs-title,.hljs-constant,.hljs-parent,.hljs-tag .hljs-value,.hljs-rule .hljs-value,.hljs-preprocessor,.hljs-pragma,.hljs-name,.haml .hljs-symbol,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.hljs-template_tag,.django .hljs-variable,.smalltalk .hljs-class,.hljs-addition,.hljs-flow,.hljs-stream,.bash .hljs-variable,.pf .hljs-variable,.apache .hljs-tag,.apache .hljs-cbracket,.tex .hljs-command,.tex .hljs-special,.erlang_repl .hljs-function_or_atom,.asciidoc .hljs-header,.markdown .hljs-header,.coffeescript .hljs-attribute{color:#800}.smartquote,.hljs-comment,.hljs-annotation,.diff .hljs-header,.hljs-chunk,.asciidoc .hljs-blockquote,.markdown .hljs-blockquote{color:#888}.hljs-number,.hljs-date,.hljs-regexp,.hljs-literal,.hljs-hexcolor,.smalltalk .hljs-symbol,.smalltalk .hljs-char,.go .hljs-constant,.hljs-change,.lasso .hljs-variable,.makefile .hljs-variable,.asciidoc .hljs-bullet,.markdown .hljs-bullet,.asciidoc .hljs-link_url,.markdown .hljs-link_url{color:#080}.hljs-label,.hljs-javadoc,.ruby .hljs-string,.hljs-decorator,.hljs-filter .hljs-argument,.hljs-localvars,.hljs-array,.hljs-attr_selector,.hljs-important,.hljs-pseudo,.hljs-pi,.haml .hljs-bullet,.hljs-doctype,.hljs-deletion,.hljs-envvar,.hljs-shebang,.apache .hljs-sqbracket,.nginx .hljs-built_in,.tex .hljs-formula,.erlang_repl .hljs-reserved,.hljs-prompt,.asciidoc .hljs-link_label,.markdown .hljs-link_label,.vhdl .hljs-attribute,.clojure .hljs-attribute,.asciidoc .hljs-attribute,.lasso .hljs-attribute,.coffeescript .hljs-property,.hljs-phony{color:#88f}.hljs-keyword,.hljs-id,.hljs-title,.hljs-built_in,.css .hljs-tag,.hljs-javadoctag,.hljs-phpdoc,.hljs-dartdoc,.hljs-yardoctag,.smalltalk .hljs-class,.hljs-winutils,.bash .hljs-variable,.pf .hljs-variable,.apache .hljs-tag,.hljs-type,.hljs-typename,.tex .hljs-command,.asciidoc .hljs-strong,.markdown .hljs-strong,.hljs-request,.hljs-status{font-weight:bold}.asciidoc .hljs-emphasis,.markdown .hljs-emphasis{font-style:italic}.nginx .hljs-built_in{font-weight:normal}.coffeescript .javascript,.javascript .xml,.lasso .markup,.tex .hljs-formula,.xml .javascript,.xml .vbscript,.xml .css,.xml .hljs-cdata{opacity:0.5}

+ 157
- 0
themes/beautifulhugo/static/css/hugo-easy-gallery.css View File

@@ -0,0 +1,157 @@
1
+/*
2
+Put this file in /static/css/hugo-easy-gallery.css
3
+Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
4
+*/
5
+
6
+
7
+/*
8
+Grid Layout Styles
9
+*/
10
+.gallery {
11
+    overflow: hidden;
12
+    margin: 10px;
13
+    max-width: 768px;
14
+}
15
+.gallery .box {
16
+    float: left;
17
+    position: relative;
18
+    /* Default: 1 tile wide */
19
+    width: 100%;
20
+    padding-bottom: 100%; 
21
+}
22
+@media only screen and (min-width : 365px) {
23
+    /* Tablet view: 2 tiles */
24
+    .gallery .box {
25
+        width: 50%;
26
+        padding-bottom: 50%;
27
+    }
28
+}
29
+@media only screen and (min-width : 480px) {
30
+    /* Small desktop / ipad view: 3 tiles */
31
+    .gallery .box {
32
+        width: 33.3%;
33
+        padding-bottom: 33.3%; /*  */
34
+    }
35
+}
36
+@media only screen and (min-width : 9999px) {
37
+   /* Medium desktop: 4 tiles */
38
+   .box {
39
+      width: 25%;
40
+      padding-bottom: 25%;
41
+   }
42
+}
43
+
44
+/*
45
+Transition styles
46
+*/
47
+.gallery.hover-transition figure,
48
+.gallery.hover-effect-zoom .img, 
49
+.gallery:not(.caption-effect-appear) figcaption,
50
+.fancy-figure:not(.caption-effect-appear) figcaption {
51
+    -webkit-transition: all 0.3s ease-in-out;
52
+    -moz-transition: all 0.3s ease-in-out;
53
+    -o-transition: all 0.3s ease-in-out;
54
+    transition: all 0.3s ease-in-out;
55
+}
56
+/*
57
+figure styles
58
+*/
59
+figure {
60
+    position:relative; /* purely to allow absolution positioning of figcaption */
61
+    overflow: hidden;
62
+}
63
+.gallery figure {
64
+    position: absolute;
65
+    left: 5px;
66
+    right: 5px;
67
+    top: 5px;
68
+    bottom: 5px;
69
+}
70
+.gallery.hover-effect-grow figure:hover {
71
+    transform: scale(1.05);
72
+}
73
+.gallery.hover-effect-shrink figure:hover {
74
+    transform: scale(0.95);
75
+}
76
+.gallery.hover-effect-slidedown figure:hover {
77
+    transform: translateY(5px);
78
+}
79
+.gallery.hover-effect-slideup figure:hover {
80
+    transform: translateY(-5px);
81
+}
82
+
83
+/*
84
+img / a styles
85
+*/
86
+
87
+.gallery .img {
88
+    position: absolute;
89
+    left: 0;
90
+    right: 0;
91
+    top: 0;
92
+    bottom: 0;
93
+    background-size: cover;
94
+    background-position: 50% 50%;
95
+    background-repeat: no-repeat;
96
+}
97
+.gallery.hover-effect-zoom figure:hover .img {
98
+    transform: scale(1.05);
99
+}
100
+.gallery img {
101
+    display: none; /* only show the img if not inside a gallery */
102
+}
103
+figure a {
104
+    position: absolute;
105
+    left: 0;
106
+    right: 0;
107
+    top: 0;
108
+    bottom: 0;
109
+}
110
+
111
+/*
112
+figcaption styles
113
+*/
114
+.gallery figcaption,
115
+.fancy-figure figcaption {
116
+    position: absolute;
117
+    bottom: 0;
118
+    left: 0;
119
+    right: 0;
120
+    background: #000;
121
+    color: #FFF;
122
+    text-align: center;
123
+    font-size: 75%; /* change this if you want bigger text */
124
+    background: rgba(0, 0, 0, 0.5);
125
+    opacity: 1;
126
+}
127
+.gallery.caption-position-none figcaption,
128
+.fancy-figure.caption-position-none figcaption  {
129
+    display: none;
130
+}
131
+.gallery.caption-position-center figcaption,
132
+.fancy-figure.caption-position-center figcaption {
133
+    top: 0;
134
+    padding: 40% 5px;
135
+}
136
+.gallery.caption-position-bottom figcaption,
137
+.fancy-figure.caption-position-bottom figcaption {
138
+    padding: 5px;
139
+}
140
+.gallery.caption-effect-fade figure:not(:hover) figcaption,
141
+.gallery.caption-effect-appear figure:not(:hover) figcaption,
142
+.fancy-figure.caption-effect-fade figure:not(:hover) figcaption,
143
+.fancy-figure.caption-effect-appear figure:not(:hover) figcaption {
144
+    background: rgba(0, 0, 0, 0);
145
+    opacity: 0;
146
+}
147
+.gallery.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption,
148
+.fancy-figure.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption {
149
+    margin-bottom: -100%;
150
+}
151
+.gallery.caption-effect-slide.caption-position-center figure:not(:hover) figcaption,
152
+.fancy-figure.caption-effect-slide.caption-position-center figure:not(:hover) figcaption  {
153
+    top: 100%;
154
+}
155
+figcaption p {
156
+    margin: auto; /* override style in theme */
157
+}

+ 13
- 0
themes/beautifulhugo/static/css/main-minimal.css View File

@@ -0,0 +1,13 @@
1
+.main-content {
2
+  padding-bottom: 50px;
3
+}
4
+
5
+footer.footer-min {
6
+  position: fixed;
7
+  bottom: 0;
8
+  width: 100%;
9
+  padding: 3px;
10
+  background-color: #f5f5f5;
11
+  border-top: 1px solid #eeeeee;
12
+  text-align: center;
13
+}

+ 709
- 0
themes/beautifulhugo/static/css/main.css View File

@@ -0,0 +1,709 @@
1
+/* --- General --- */
2
+
3
+body {
4
+  font-family: 'Lora', 'Times New Roman', serif;
5
+  font-size: 18px;
6
+  color: #404040;
7
+  position: relative;
8
+  background: #FFF;
9
+  display: flex;
10
+  flex-flow: column;
11
+  height: 100vh;
12
+}
13
+.container[role=main] {
14
+  margin-bottom:50px;
15
+  flex: 1 0 auto;
16
+}
17
+p {
18
+  line-height: 1.5;
19
+  margin: 30px 0;
20
+}
21
+p a {
22
+  /* text-decoration: underline */
23
+  color: #008AFF;
24
+}
25
+h1,h2,h3,h4,h5,h6 {
26
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
27
+  font-weight: 800;
28
+}
29
+a {
30
+  color: #008AFF;
31
+}
32
+a:hover,
33
+a:focus {
34
+  color: #0085a1;
35
+}
36
+blockquote {
37
+  color: #808080;
38
+  font-style: italic;
39
+}
40
+blockquote p:first-child {
41
+  margin-top: 0;
42
+}
43
+hr.small {
44
+  max-width: 100px;
45
+  margin: 15px auto;
46
+  border-width: 4px;
47
+  border-color: inherit;
48
+  border-radius: 3px;
49
+}
50
+
51
+.main-content {
52
+  padding-top: 80px;
53
+}
54
+@media only screen and (min-width: 768px) {
55
+  .main-content {
56
+    padding-top: 130px;
57
+  }
58
+}
59
+
60
+.main-explain-area {
61
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
62
+  padding: 15px inherit;
63
+}
64
+
65
+.hideme {
66
+  display: none;
67
+}
68
+
69
+::-moz-selection {
70
+  color: white;
71
+  text-shadow: none;
72
+  background: #0085a1;
73
+}
74
+::selection {
75
+  color: white;
76
+  text-shadow: none;
77
+  background: #0085a1;
78
+}
79
+img::selection {
80
+  color: white;
81
+  background: transparent;
82
+}
83
+img::-moz-selection {
84
+  color: white;
85
+  background: transparent;
86
+}
87
+
88
+img {
89
+  display: block;
90
+  margin: auto;
91
+  max-width: 100%;
92
+}
93
+
94
+.disqus-comments {
95
+  margin-top: 30px;
96
+}
97
+
98
+@media only screen and (min-width: 768px) {
99
+  .disqus-comments {
100
+    margin-top: 40px;
101
+  }
102
+}
103
+
104
+/* --- Navbar --- */
105
+
106
+.navbar-custom {
107
+  background: #F5F5F5;
108
+  border-bottom: 1px solid #EAEAEA;
109
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
110
+}
111
+
112
+.navbar-custom .nav li a {
113
+  text-transform: uppercase;
114
+  font-size: 12px;
115
+  letter-spacing: 1px;
116
+}
117
+
118
+.navbar-custom .navbar-brand,
119
+.navbar-custom .nav li a {
120
+  font-weight: 800;
121
+  color: #404040;
122
+}
123
+
124
+.navbar-custom .navbar-brand:hover,
125
+.navbar-custom .navbar-brand:focus ,
126
+.navbar-custom .nav li a:hover,
127
+.navbar-custom .nav li a:focus {
128
+  color: #0085a1;
129
+}
130
+
131
+.navbar-custom .navbar-brand-logo {
132
+  padding-top: 0;
133
+  -webkit-transition: padding .5s ease-in-out;
134
+  -moz-transition: padding .5s ease-in-out;
135
+  transition: padding .5s ease-in-out;
136
+}
137
+.navbar-custom .navbar-brand-logo img {
138
+  height: 50px;
139
+  -webkit-transition: height .5s ease-in-out;
140
+  -moz-transition: height .5s ease-in-out;
141
+  transition: height .5s ease-in-out;
142
+}
143
+.navbar-custom.top-nav-short .navbar-brand-logo {
144
+  padding-top: 5px;
145
+}
146
+.navbar-custom.top-nav-short .navbar-brand-logo img {
147
+  height: 40px;
148
+}
149
+
150
+@media only screen and (min-width: 768px) {
151
+  .navbar-custom {
152
+    padding: 20px 0;
153
+    -webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
154
+    -moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
155
+    transition: background .5s ease-in-out,padding .5s ease-in-out;
156
+  }
157
+
158
+  .navbar-custom.top-nav-short {
159
+    padding: 0;
160
+  }
161
+}
162
+
163
+.navbar-custom .avatar-container {
164
+  opacity: 1;
165
+  position: absolute;
166
+  -webkit-transition: opacity 0.5s ease-in-out;
167
+  -moz-transition: opacity 0.5s ease-in-out;
168
+  transition: opacity 0.5s ease-in-out;
169
+  left: 50%;
170
+  width: 50px;
171
+  margin-top: -25px;
172
+}
173
+.navbar-custom .avatar-container  .avatar-img-border {
174
+  width: 100%;
175
+  border-radius: 50%;
176
+  margin-left: -50%;
177
+  display: inline-block;
178
+  box-shadow: 0 0 8px rgba(0, 0, 0, .8);
179
+  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .8);
180
+  -moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
181
+}
182
+.navbar-custom .avatar-container  .avatar-img {
183
+  width: 100%;
184
+  border-radius: 50%;
185
+  display: block;
186
+}
187
+
188
+.navbar-custom.top-nav-short .avatar-container{
189
+  opacity: 0;
190
+}
191
+
192
+.navbar-custom.top-nav-expanded .avatar-container  {
193
+  display: none;
194
+}
195
+
196
+@media only screen and (min-width: 768px) {
197
+  .navbar-custom .avatar-container {
198
+    width: 100px;
199
+    margin-top: -50px;
200
+  }
201
+
202
+  .navbar-custom .avatar-container  .avatar-img-border {
203
+    width: 100%;
204
+    box-shadow: 1px 1px 2px rgba(0, 0, 0, .8);
205
+    -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, .8);
206
+    -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, .8);
207
+  }
208
+
209
+  .navbar-custom .avatar-container  .avatar-img {
210
+    width: 100%;
211
+  }
212
+}
213
+
214
+/* Multi-level navigation links */
215
+.navbar-custom .nav .navlinks-container {
216
+  position: relative;
217
+}
218
+.navbar-custom .nav .navlinks-parent:after {
219
+  content: " \25BC";
220
+}
221
+.navbar-custom .nav .navlinks-children {
222
+  width: 100%;
223
+  display: none;
224
+  word-break: break-word;
225
+}
226
+.navbar-custom .nav .navlinks-container .navlinks-children a {
227
+  display: block;
228
+  padding: 10px;
229
+  padding-left: 30px;
230
+  background: #f5f5f5;
231
+  text-decoration: none !important;
232
+  border-width: 0 1px 1px 1px;
233
+  font-weight: normal;
234
+}
235
+@media only screen and (max-width: 767px) {
236
+  .navbar-custom .nav .navlinks-container.show-children {
237
+    background: #eee;
238
+  }
239
+  .navbar-custom .nav .navlinks-container.show-children .navlinks-children {
240
+    display: block;
241
+  }
242
+}
243
+@media only screen and (min-width: 768px) {
244
+  .navbar-custom .nav .navlinks-container {
245
+    text-align: center;
246
+  }
247
+  .navbar-custom .nav .navlinks-container:hover {
248
+    background: #eee;
249
+  }
250
+  .navbar-custom .nav .navlinks-container:hover .navlinks-children {
251
+    display: block;
252
+  }
253
+  .navbar-custom .nav .navlinks-children {
254
+    position: absolute;
255
+  }
256
+  .navbar-custom .nav .navlinks-container .navlinks-children a {
257
+    padding-left: 10px;
258
+    border: 1px solid #eaeaea;
259
+    border-width: 0 1px 1px;
260
+  }
261
+}
262
+
263
+/* --- Footer --- */
264
+
265
+footer {
266
+  padding: 30px 0;
267
+  background: #F5F5F5;
268
+  border-top: 1px #EAEAEA solid;
269
+  margin-top: auto;
270
+  font-size: 14px;
271
+}
272
+
273
+footer a {
274
+  color: #404040;
275
+}
276
+
277
+footer .list-inline {
278
+  margin: 0;
279
+  padding: 0;
280
+}
281
+footer .copyright {
282
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
283
+  text-align: center;
284
+  margin-bottom: 0;
285
+}
286
+footer .theme-by {
287
+  text-align: center;
288
+  margin: 10px 0 0;
289
+}
290
+
291
+@media only screen and (min-width: 768px) {
292
+  footer {
293
+    padding: 50px 0;
294
+  }
295
+  footer .footer-links {
296
+    font-size: 18px;
297
+  }
298
+  footer .copyright {
299
+    font-size: 16px;
300
+  }
301
+}
302
+
303
+/* --- Post preview --- */
304
+
305
+.post-preview {
306
+  padding: 20px 0;
307
+  border-bottom: 1px solid #eee;
308
+}
309
+
310
+@media only screen and (min-width: 768px) {
311
+  .post-preview {
312
+    padding: 35px 0;
313
+  }
314
+}
315
+
316
+.post-preview:last-child {
317
+  border-bottom: 0;
318
+}
319
+
320
+.post-preview a {
321
+  text-decoration: none;
322
+  color: #404040;
323
+}
324
+
325
+.post-preview a:focus,
326
+.post-preview a:hover {
327
+  text-decoration: none;
328
+  color: #0085a1;
329
+}
330
+
331
+.post-preview .post-title {
332
+  font-size: 30px;
333
+  margin-top: 0;
334
+}
335
+.post-preview .post-subtitle {
336
+  margin: 0;
337
+  font-weight: 300;
338
+  margin-bottom: 10px;
339
+}
340
+.post-preview .post-meta,
341
+.post-heading .post-meta {
342
+  color: #808080;
343
+  font-size: 18px;
344
+  font-style: italic;
345
+  margin: 0 0 10px;
346
+}
347
+.post-preview .post-meta a,
348
+.post-heading .post-meta a {
349
+  color: #404040;
350
+  text-decoration: none;
351
+}
352
+.post-preview .post-entry {
353
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
354
+}
355
+.post-entry-container {
356
+  display: inline-block;
357
+  width: 100%;
358
+}
359
+.post-entry {
360
+  width: 100%;
361
+}
362
+.post-image {
363
+  float: right;
364
+  height: 192px;
365
+  width: 192px;
366
+  margin-top: -35px;
367
+  filter: grayscale(90%);
368
+}
369
+.post-image:hover {
370
+  filter: grayscale(0%);
371
+}
372
+.post-image img {
373
+  border-radius: 100px;
374
+  height: 192px;
375
+  width: 192px;
376
+}
377
+.post-preview .post-read-more {
378
+  font-weight: 800;
379
+  float: right;
380
+}
381
+
382
+@media only screen and (min-width: 768px) {
383
+  .post-preview .post-title {
384
+    font-size: 36px;
385
+  }
386
+}
387
+
388
+/* --- Tags --- */
389
+
390
+.blog-tags {
391
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
392
+  color: #999;
393
+  font-size: 15px;
394
+  margin-bottom: 30px;
395
+}
396
+
397
+.blog-tags a {
398
+  color: #008AFF;
399
+  text-decoration: none;
400
+  padding: 0px 5px;
401
+}
402
+
403
+.blog-tags a:hover {
404
+  border-radius: 2px;
405
+  color: #008AFF;
406
+  background-color: #CCC;
407
+}
408
+
409
+.post-preview .blog-tags {
410
+  margin-top: 5px;
411
+  margin-bottom: 0;
412
+}
413
+
414
+@media only screen and (min-width: 768px) {
415
+  .post-preview .blog-tags {
416
+    margin-top: 10px;
417
+  }
418
+}
419
+
420
+@media only screen and (max-width: 500px) {
421
+  .post-image, .post-image img {
422
+    height: 100px;
423
+    width: 100px;
424
+  }
425
+
426
+  .post-image {
427
+    width: 100%;
428
+    text-align: center;
429
+    margin-top: 0;
430
+    float: left;
431
+  }
432
+}
433
+/* --- Post and page headers --- */
434
+
435
+.intro-header {
436
+  margin: 80px 0 20px;
437
+  position: relative;
438
+}
439
+.intro-header.big-img {
440
+  background: no-repeat center center;
441
+  -webkit-background-size: cover;
442
+  -moz-background-size: cover;
443
+  background-size: cover;
444
+  -o-background-size: cover;
445
+  margin-top: 51px; /* The small navbar is 50px tall + 1px border */
446
+  margin-bottom: 35px;
447
+}
448
+.intro-header.big-img  .big-img-transition {
449
+  position: absolute;
450
+  width: 100%;
451
+  height: 100%;
452
+  opacity: 0;
453
+  background: no-repeat center center;
454
+  -webkit-background-size: cover;
455
+  -moz-background-size: cover;
456
+  background-size: cover;
457
+  -o-background-size: cover;
458
+  -webkit-transition: opacity 1s linear;
459
+  -moz-transition: opacity 1s linear;
460
+  transition: opacity 1s linear;
461
+}
462
+.intro-header .page-heading {
463
+  text-align: center;
464
+}
465
+.intro-header.big-img .page-heading,
466
+.intro-header.big-img .post-heading {
467
+  padding: 100px 0;
468
+  color: #FFF;
469
+  text-shadow: 1px 1px 3px #000;
470
+}
471
+.intro-header .page-heading h1 {
472
+  margin-top: 0;
473
+  font-size: 50px;
474
+}
475
+.intro-header .post-heading h1 {
476
+  margin-top: 0;
477
+  font-size: 35px;
478
+}
479
+.intro-header .page-heading .page-subheading,
480
+.intro-header .post-heading .post-subheading {
481
+  font-size: 27px;
482
+  line-height: 1.1;
483
+  display: block;
484
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
485
+  font-weight: 300;
486
+  margin: 10px 0 0;
487
+}
488
+.intro-header .post-heading .post-subheading {
489
+  margin-bottom: 20px;
490
+}
491
+.intro-header.big-img .page-heading .page-subheading,
492
+.intro-header.big-img .post-heading .post-subheading {
493
+  font-weight: 400;
494
+}
495
+.intro-header.big-img .page-heading hr {
496
+  box-shadow: 1px 1px 3px #000;
497
+  -webkit-box-shadow: 1px 1px 3px #000;
498
+  -moz-box-shadow: 1px 1px 3px #000;
499
+}
500
+.intro-header.big-img .post-heading .post-meta {
501
+  color: #EEE;
502
+}
503
+.intro-header.big-img .img-desc {
504
+  background: rgba(30, 30, 30, 0.6);
505
+  position: absolute;
506
+  padding: 5px 10px;
507
+  font-size: 11px;
508
+  color: #EEE;
509
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
510
+  right: 0;
511
+  bottom: 0;
512
+  display: none;
513
+}
514
+@media only screen and (min-width: 768px) {
515
+  .intro-header {
516
+    margin-top: 130px;
517
+  }
518
+  .intro-header.big-img {
519
+    margin-top: 91px;  /* Full navbar is small navbar + 20px padding on each side when expanded */
520
+  }
521
+  .intro-header.big-img .page-heading,
522
+  .intro-header.big-img .post-heading  {
523
+    padding: 150px 0;
524
+  }
525
+  .intro-header .page-heading h1 {
526
+    font-size: 80px;
527
+  }
528
+  .intro-header .post-heading h1 {
529
+    font-size: 50px;
530
+  }
531
+  .intro-header.big-img .img-desc {
532
+    font-size: 14px;
533
+  }
534
+}
535
+
536
+.header-section.has-img .no-img {
537
+  margin-top: 0;
538
+  background: #FCFCFC;
539
+  margin: 0 0 40px;
540
+  padding: 20px 0;
541
+  box-shadow: 0 0 5px #AAA;
542
+}
543
+/* Many phones are 320 or 360px, so make sure images are a proper aspect ratio in those cases */
544
+.header-section.has-img .intro-header.no-img {
545
+  display: none;
546
+}
547
+@media only screen and (max-width: 365px) {
548
+  .header-section.has-img .intro-header.no-img {
549
+    display: block;
550
+  }
551
+  .intro-header.big-img {
552
+    width: 100%;
553
+    height: 220px;
554
+  }
555
+  .intro-header.big-img .page-heading,
556
+  .intro-header.big-img .post-heading {
557
+    display: none;
558
+  }
559
+  .header-section.has-img .big-img {
560
+    margin-bottom: 0;
561
+  }
562
+}
563
+@media only screen and (max-width: 325px) {
564
+  .intro-header.big-img {