mirror of
				https://github.com/BBaoVanC/bobatheme.git
				synced 2025-10-28 16:53:30 -05:00 
			
		
		
		
	Compare commits
	
		
			137 Commits
		
	
	
		
			image-resi
			...
			e97d4f921d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e97d4f921d | |||
| 5ffca36b84 | |||
| f4c056b99c | |||
| 3713fdae5b | |||
| 1127795717 | |||
| 1db48c3101 | |||
| 430139d292 | |||
| ac9ca6f97e | |||
| 8cadf8e735 | |||
| 42a7e27d09 | |||
| 2371f1de13 | |||
| 81e141cef9 | |||
| 2113c7a4e9 | |||
| b14e0e90fd | |||
| 2742bac9ff | |||
| e8f9d1c5df | |||
| dff23045a8 | |||
| 4f450374cf | |||
| a3a7f50a5b | |||
| 2cc4f45d4f | |||
| 33d0f81444 | |||
| 5668feed1d | |||
| 586bea37d5 | |||
| 37c04460b5 | |||
| 11599e01d7 | |||
| 80e96736cd | |||
| 6bedf987d6 | |||
| ebcbccb3bb | |||
| 43d406c4fe | |||
| 1380558384 | |||
| e9d8efce44 | |||
| 40f6ed20fe | |||
| e982824031 | |||
| 55bbfa90e4 | |||
| 161c68d16c | |||
| 0e1559f2a2 | |||
| d387f29d7d | |||
| 15d58effcf | |||
| 2fdc78050a | |||
| f9e7eeeaa6 | |||
| 502fc36b0d | |||
| ead88d5e16 | |||
| e1e211a42a | |||
| f77c61b561 | |||
| 8067173f0c | |||
| b745f87462 | |||
| a11cc777bf | |||
| f77efb1843 | |||
| 28cf50d3d8 | |||
| 8edbfd3077 | |||
| aa3974c186 | |||
| 7c877e7781 | |||
| d9776d29c4 | |||
| a01a70fc91 | |||
| 919ecde4ac | |||
| 7a0757cef7 | |||
| b83e20274f | |||
| 0893c99f97 | |||
| f5c9e6926a | |||
| 5104a6f57d | |||
| 1f080d9092 | |||
| 7a73432238 | |||
| 15d9ad52e9 | |||
| b45551639c | |||
| 217e54c1b5 | |||
| d0c216165e | |||
| 6d456768fa | |||
| b2036d3bfe | |||
| 37c5a970c4 | |||
| 8f36ba7368 | |||
| ef8559d923 | |||
| e67bd58ceb | |||
| f6140abc26 | |||
| 179eda3450 | |||
| 240476061b | |||
| 96893d7de6 | |||
| 21180991c0 | |||
| b87f6dd884 | |||
| fb43b41d64 | |||
| 17604ca75d | |||
| 05100679e2 | |||
| 145f23f22f | |||
| b03fc6c7b1 | |||
| 57be090b6a | |||
| 98c9438779 | |||
| efebe2a5de | |||
| 1e72637a33 | |||
| 943fb83324 | |||
| a75d49e8bc | |||
| e21c27b9e6 | |||
| e5e3d62fc4 | |||
| 21ecc630df | |||
| f16f2b6d8a | |||
| 4eec2d8c4d | |||
| c337596635 | |||
| 8ada21c609 | |||
| 4e27a6ce8a | |||
| 42f0046747 | |||
| b9879729bf | |||
| f86aa30100 | |||
| 60f5ccc1be | |||
| 88c1d14fa2 | |||
| 13db8825a4 | |||
| 99f53a386e | |||
| 8ad0690d00 | |||
| 11d98f8c92 | |||
| 163965f3e6 | |||
| 8af0ad6d16 | |||
| 3f98073aea | |||
| 5f40b6742b | |||
| 91c554ef83 | |||
| 14121f2269 | |||
| 906b6213fd | |||
| 550bfb6367 | |||
| 33fbcac9d5 | |||
| 9873f62d08 | |||
| d6876a17b9 | |||
| 203f1eb53f | |||
| be257afef3 | |||
| 8e83209898 | |||
| 24979c3c37 | |||
| ae37e587a3 | |||
| 168c9d93ad | |||
| fe4d0979d6 | |||
| 7ffa6c068c | |||
| 0cfecdab18 | |||
| a1fae8aa60 | |||
| 43202259c8 | |||
| fc5f408831 | |||
| 9e5a8e6785 | |||
| d393d9eef9 | |||
| e0f04cb279 | |||
| cb68e3cffd | |||
| 4e9ce6df46 | |||
| edff1f416d | |||
| ff2e87fd9e | |||
| 7749ff39fa | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | .hugo_build.lock | ||||||
							
								
								
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| [submodule "assets/feather"] | [submodule "assets/jam"] | ||||||
| 	path = assets/feather | 	path = assets/jam | ||||||
| 	url = https://github.com/feathericons/feather.git | 	url = https://github.com/michaelampr/jam.git | ||||||
| 	branch = master | 	branch = master | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								archetypes/authors/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								archetypes/authors/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | title: {{ replace .Name "-" " " | title }} | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | A short description about the author. | ||||||
|  |  | ||||||
|  | <!--more--> | ||||||
|  |  | ||||||
|  | Optionally provide more information about the author here. This part will only | ||||||
|  | show on the author page, not on the authors list page. | ||||||
|  |  | ||||||
|  | If you delete this section, DO NOT delete the summary separator (`<!--more-->`) | ||||||
|  | or else the summary won't be shown. | ||||||
| @@ -1,13 +1,21 @@ | |||||||
| --- | --- | ||||||
|  |  | ||||||
| title: {{ replace .Name "-" " " | title }} | title: {{ replace .Name "-" " " | humanize }} | ||||||
| date: {{ .Date | time.Format "2006-01-02" }} | date: {{ .Date }} | ||||||
|  | lastmod: {{ .Date }} | ||||||
| toc: true | toc: true | ||||||
|  | comments: true | ||||||
| draft: true | draft: true | ||||||
|  |  | ||||||
|  | authors: | ||||||
|  |   - {{ with .Site.Author.name }}{{ . }}{{ else }}John Doe{{ end }} | ||||||
|  |  | ||||||
| tags: | tags: | ||||||
|   - awesome |   - awesome | ||||||
|  |  | ||||||
|  | series: | ||||||
|  |   - Archetype | ||||||
|  |  | ||||||
| # this will be shown for the article in list pages and in the page metadata | # this will be shown for the article in list pages and in the page metadata | ||||||
| # it can be either an image or video (this might change in the future, however) | # it can be either an image or video (this might change in the future, however) | ||||||
| resources: | resources: | ||||||
|   | |||||||
| @@ -1,8 +1,12 @@ | |||||||
| --- | --- | ||||||
|  |  | ||||||
| title: {{ replace .Name "-" " " | title }} | title: {{ replace .Name "-" " " | humanize }} | ||||||
| menu: main | menu: main | ||||||
| toc: true | toc: true | ||||||
|  | comments: false | ||||||
|  |  | ||||||
|  | authors: | ||||||
|  |   - {{ with .Site.Author.name }}{{ . }}{{ else }}John Doe{{ end }} | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								archetypes/series/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								archetypes/series/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | title: {{ replace .Name "-" " " | title }} | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | Some information about the series. | ||||||
|  |  | ||||||
|  | <!--more--> | ||||||
|  |  | ||||||
|  | Optionally provide more information about the series here. This part will only | ||||||
|  | show on the series page, not on the series list page. | ||||||
|  |  | ||||||
|  | If you delete this section, DO NOT delete the summary separator (`<!--more-->`) | ||||||
|  | or else the summary won't be shown. | ||||||
							
								
								
									
										15
									
								
								archetypes/tags/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								archetypes/tags/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | title: {{ replace .Name "-" " " | title }} | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | A short summary of what the tag is. | ||||||
|  |  | ||||||
|  | <!--more--> | ||||||
|  |  | ||||||
|  | Optionally provide more information about the tag here. This part will only show | ||||||
|  | on the tag page, not on the tags list page. | ||||||
|  |  | ||||||
|  | If you delete this section, DO NOT delete the summary separator (`<!--more-->`) | ||||||
|  | or else the summary won't be shown. | ||||||
| @@ -2,36 +2,129 @@ | |||||||
|  * https://github.com/BBaoVanC/bobatheme. |  * https://github.com/BBaoVanC/bobatheme. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  | :root { | ||||||
|  |   --background: #111; | ||||||
|  |   --background-2: #222; | ||||||
|  |   --background-3: #282828; | ||||||
|  |   --background-4: #333; | ||||||
|  |   --background-5: #444; | ||||||
|  |   --background-accent: #111d2f; | ||||||
|  |   --text-normal: #d3d3d3; | ||||||
|  |   --link-color: #4da6ff; | ||||||
|  |   --figure-border: #1b5b9b; | ||||||
|  |  | ||||||
| /* Post layout (in list pages) */ |   --pagination-active-hover-text: black; | ||||||
| .post { |   --pagination-active-background: #163b64; | ||||||
|   margin-bottom: 40px; |   --pagination-active-hover-background: #286ab2; | ||||||
| } | } | ||||||
|  |  | ||||||
| .post-title { | @media (prefers-color-scheme: light) { | ||||||
|  |   :root { | ||||||
|  |     --background: #eee; | ||||||
|  |     --background-2: #ddd; | ||||||
|  |     --background-3: #d8d8d8; | ||||||
|  |     --background-4: #bbb; | ||||||
|  |     --background-5: #aaa; | ||||||
|  |     --background-accent: #aec9ee; | ||||||
|  |     --text-normal: #000; | ||||||
|  |     --link-color: #0057bf; | ||||||
|  |     --figure-border: #2e7bc9; | ||||||
|  |  | ||||||
|  |     --pagination-active-hover-text: white; | ||||||
|  |     --pagination-active-background: #3977bd; | ||||||
|  |     --pagination-active-hover-background: #154172; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media print { | ||||||
|  |   :root { | ||||||
|  |     --background: #fff; | ||||||
|  |     --background-2: #ddd; | ||||||
|  |     --background-3: #d8d8d8; | ||||||
|  |     --background-4: #bbb; | ||||||
|  |     --background-5: #aaa; | ||||||
|  |     --text-normal: #000; | ||||||
|  |     --link-color: #0057bf; | ||||||
|  |     --figure-border: #2e7bc9; | ||||||
|  |  | ||||||
|  |     --pagination-active-hover-text: white; | ||||||
|  |     --pagination-active-background: #3977bd; | ||||||
|  |     --pagination-active-hover-background: #154172; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Post layout (in list pages) */ | ||||||
|  | .list-page-content { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   gap: 40px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-list ul, | ||||||
|  | .series-taxonomy ul { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   list-style: none; | ||||||
|  |   padding: 0; | ||||||
|  |   gap: 40px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .series-taxonomy ul { | ||||||
|  |   gap: 80px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-list li, | ||||||
|  | .series-taxonomy li, | ||||||
|  | .related-posts .post { | ||||||
|  |   padding-top: 8px; | ||||||
|  |   padding-left: 24px; | ||||||
|  |   padding-right: 24px; | ||||||
|  |   padding-bottom: 24px; | ||||||
|  |   border-radius: 12px; | ||||||
|  |   background-color: var(--background-2); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .post-series-position { | ||||||
|  |   position: relative; | ||||||
|  |   float: right; | ||||||
|  |   opacity: .75; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .post-title, | ||||||
|  | .author-name { | ||||||
|   margin-bottom: 10px; |   margin-bottom: 10px; | ||||||
| } | } | ||||||
|  |  | ||||||
| .post-title a { | .post-title a, | ||||||
|  | .author-name a { | ||||||
|   color: inherit; |   color: inherit; | ||||||
|   text-decoration: inherit; |   text-decoration: inherit; | ||||||
| } | } | ||||||
|  |  | ||||||
| .post-meta-item { | .post-meta-item, | ||||||
|  | .author-meta-item { | ||||||
|   margin-right: 10px; |   margin-right: 10px; | ||||||
|   white-space: nowrap; |   display: inline-block; | ||||||
| } | } | ||||||
|  |  | ||||||
| .post-metadata { | .post-metadata, | ||||||
|  | .author-metadata { | ||||||
|   margin-bottom: 15px; |   margin-bottom: 15px; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .tags, | ||||||
|  | .series { | ||||||
|  |   margin-top: 10px; | ||||||
|  | } | ||||||
|  |  | ||||||
| .post-media { | .post-media { | ||||||
|   margin-top: 15px; |   margin-top: 15px; | ||||||
|   display: inline-block; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| .post-description { | .post-description, | ||||||
|  | .author-description { | ||||||
|   margin-top: 10px; |   margin-top: 10px; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -41,12 +134,88 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Header formatting (website title and article section headers) */ | /* Tags list format */ | ||||||
| .top { | .tag-list ul { | ||||||
|   margin: 20px; |   display: flex; | ||||||
|  |   list-style: none; | ||||||
|  |   gap: 10px; | ||||||
|  |   flex-flow: row wrap; | ||||||
|  |   padding: 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| .header a, .section-header a { | .tag-list a { | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   padding: 8px 12px; | ||||||
|  |   border-radius: 12px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .tag-list a:hover { | ||||||
|  |   text-decoration: none; | ||||||
|  |   background-color: var(--background-4); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Series list format */ | ||||||
|  | .series-pages ul { | ||||||
|  |   display: flex; | ||||||
|  |   gap: 10px; | ||||||
|  |   flex-flow: row wrap; | ||||||
|  |   list-style: none; | ||||||
|  |   background-color: var(--background); | ||||||
|  |   padding: 8px; | ||||||
|  |   border-radius: 16px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .series-pages li { | ||||||
|  |   flex: 1; | ||||||
|  |   min-width: 49%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Subsection formatting */ | ||||||
|  | .sections { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   gap: 40px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section { | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   border-radius: 12px; | ||||||
|  |   padding: 1px 25px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section:hover { | ||||||
|  |   background-color: var(--background-4); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section-title { | ||||||
|  |   margin: 10px 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section-anchor { | ||||||
|  |   color: inherit; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section-anchor:hover { | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .section-description { | ||||||
|  |   margin-bottom: 5px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .view-section { | ||||||
|  |   margin-top: 5px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Header formatting (website title and article section headers) */ | ||||||
|  | .header a, | ||||||
|  | .section-header a { | ||||||
|   color: inherit; |   color: inherit; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -58,57 +227,184 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| /* Content formatting */ | /* Content formatting */ | ||||||
| #table-of-contents h2 { | .series-box { | ||||||
|   font-size: 20px; |   background-color: var(--background-2); | ||||||
|  |   padding: 8px 16px; | ||||||
|  |   border-radius: 8px; | ||||||
|  |   margin: 15px 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| .content, footer { | .table-of-contents { | ||||||
|   margin: 20px; |   background-color: var(--background-2); | ||||||
|  |   padding: 8px 20px; | ||||||
|  |   border-radius: 8px; | ||||||
|  |   margin: 10px 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .table-of-contents summary { | ||||||
|  |   cursor: pointer; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .table-of-contents.print { | ||||||
|  |   display: none; | ||||||
|  |   padding: 8px 15px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Related posts */ | ||||||
|  | .related hr { | ||||||
|  |   margin: 25px 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (min-width: 720px) { | ||||||
|  |   .related { | ||||||
|  |     /* this makes it full width -- 720px max-width on body | ||||||
|  |      * add an extra 40px to give a 20px margin on left and right */ | ||||||
|  |     margin-left: calc(-100vw / 2 + 760px / 2); | ||||||
|  |     margin-right: calc(-100vw / 2 + 760px / 2); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .related-posts { | ||||||
|  |   display: grid; | ||||||
|  |   gap: 20px; | ||||||
|  |   grid-auto-flow: column; | ||||||
|  |   grid-auto-columns: 300px; | ||||||
|  |   overflow-x: auto; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Back to top */ | ||||||
|  | #back-to-top { | ||||||
|  |   position: fixed; | ||||||
|  |   float: right; | ||||||
|  |   bottom: 25px; | ||||||
|  |   right: 25px; | ||||||
|  |   background-color: var(--background-3); | ||||||
|  |   border-radius: 100%; | ||||||
|  |   padding: 12px; | ||||||
|  |   display: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Navbar formatting */ | ||||||
|  | .topbar { | ||||||
|  |   display: flex; | ||||||
|  |   flex-wrap: nowrap; | ||||||
|  |   flex-direction: row; | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   border-radius: 8px; | ||||||
|  |   margin-top: 5px; | ||||||
|  |   padding: 4px; | ||||||
|  |   align-items: flex-start; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .navbar { | ||||||
|  |   display: flex; | ||||||
|  |   flex-grow: 1; | ||||||
|  |   overflow: auto; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .navbar a { | ||||||
|  |   padding: 8px 12px; | ||||||
|  |   border-radius: 12px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .navbar-item:hover, | ||||||
|  | .langpicker summary:hover, | ||||||
|  | .langpicker[open] summary { | ||||||
|  |   background-color: var(--background-5); | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .topbar .active { | ||||||
|  |   font-weight: bold; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .langpicker { | ||||||
|  |   position: relative; | ||||||
|  |   white-space: nowrap; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .langpicker summary { | ||||||
|  |   cursor: pointer; | ||||||
|  |   margin-left: 24px; | ||||||
|  |   padding: 8px 12px; | ||||||
|  |   border-radius: 12px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .langpicker .languages { | ||||||
|  |   position: absolute; | ||||||
|  |   margin-top: 8px; | ||||||
|  |   right: 0; | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   border: 2px solid var(--background-4); | ||||||
|  |   padding: 8px 12px; | ||||||
|  |   border-radius: 8px; | ||||||
|  |   list-style: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .langpicker .unavailable { | ||||||
|  |   color: inherit; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .langpicker .unavailable:hover { | ||||||
|  |   cursor: not-allowed; | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Basic elements */ | ||||||
|  | html { | ||||||
|  |   scroll-behavior: smooth; | ||||||
|  |   margin: 0 20px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media screen and (prefers-reduced-motion: reduce) { | ||||||
|  |     html { | ||||||
|  |         scroll-behavior: auto; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |   background-color: var(--background); | ||||||
|  |   color: var(--text-normal); | ||||||
|  |   font-family: "Open Sans", "Noto Sans", sans-serif; | ||||||
|  |   margin: 0 auto 20px; | ||||||
|  |   max-width: 720px; | ||||||
|  |   overflow-wrap: break-word; | ||||||
| } | } | ||||||
|  |  | ||||||
| footer { | footer { | ||||||
|   text-align: center; |   text-align: center; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | footer p { | ||||||
|  |   margin: 0; | ||||||
| /* Navbar formatting */ |  | ||||||
| .navbar, .langbar { |  | ||||||
|   margin: 5px 0px; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| (.navbar, .langbar) h2 { | img, | ||||||
|   color: inherit; | video { | ||||||
|   text-decoration: inherit; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .navbar-item, .langbar-item { |  | ||||||
|   margin-right: 5px; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Basic elements */ |  | ||||||
| body { |  | ||||||
|   background-color: #111; |  | ||||||
|   color: lightgray; |  | ||||||
|   font-family: "Open Sans", "Noto Sans", sans-serif; |  | ||||||
|   margin: auto; |  | ||||||
|   max-width: 720px; |  | ||||||
|   overflow-wrap: break-word; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| img, video { |  | ||||||
|   max-width: 100%; |   max-width: 100%; | ||||||
| } | } | ||||||
|  |  | ||||||
| img:not(.noborder), video:not(.noborder) { | .post-media > figure.border img, | ||||||
|  | .post-media > figure.border video { | ||||||
|   padding: 5px; |   padding: 5px; | ||||||
|   border: 5px solid #1b5b9b; |   border: 7px solid var(--figure-border); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | figure.border img, | ||||||
|  | figure.border video { | ||||||
|  |   padding: 5px; | ||||||
|  |   border: 2px solid var(--figure-border); | ||||||
| } | } | ||||||
|  |  | ||||||
| figure { | figure { | ||||||
|   margin: auto; |   margin: auto; | ||||||
|  |   display: inline-block; | ||||||
| } | } | ||||||
|  |  | ||||||
| figcaption { | figcaption { | ||||||
| @@ -117,8 +413,15 @@ figcaption { | |||||||
|   text-align: center; |   text-align: center; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | aside { | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   padding: 12px 16px; | ||||||
|  |   margin: 16px 0; | ||||||
|  |   border-radius: 8px; | ||||||
|  | } | ||||||
|  |  | ||||||
| a { | a { | ||||||
|   color: #4da6ff; |   color: var(--link-color); | ||||||
|   text-decoration: inherit; |   text-decoration: inherit; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -127,15 +430,33 @@ a:hover { | |||||||
| } | } | ||||||
|  |  | ||||||
| blockquote { | blockquote { | ||||||
|   border-left: 5px solid #333; |   border-left: 5px solid var(--background-4); | ||||||
| } |  | ||||||
|  |  | ||||||
| blockquote p { |  | ||||||
|   padding-left: 15px; |   padding-left: 15px; | ||||||
| } | } | ||||||
|  |  | ||||||
| hr { | hr { | ||||||
|   border-color: #444; |   border-color: var(--background-5); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | table.markdown { | ||||||
|  |   border-collapse: collapse; | ||||||
|  |   border: 2px solid var(--text-normal); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .markdown thead { | ||||||
|  |   background-color: var(--background-4); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .markdown th, | ||||||
|  | .markdown td { | ||||||
|  |   padding: 8px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .markdown tbody tr:nth-child(odd) { | ||||||
|  |   background-color: var(--background); | ||||||
|  | } | ||||||
|  | .markdown tbody tr:nth-child(even) { | ||||||
|  |   background-color: var(--background-2); | ||||||
| } | } | ||||||
|  |  | ||||||
| * { | * { | ||||||
| @@ -145,13 +466,17 @@ hr { | |||||||
|  |  | ||||||
|  |  | ||||||
| /* Code blocks */ | /* Code blocks */ | ||||||
|  | .highlight { | ||||||
|  |   margin: 16px 0; | ||||||
|  | } | ||||||
|  |  | ||||||
| .highlight > pre { | .highlight > pre { | ||||||
|   padding: 12px 8px; |   padding: 12px 8px; | ||||||
|   overflow: auto; |   overflow: auto; | ||||||
| } | } | ||||||
|  |  | ||||||
| :not(pre) > code { | :not(pre) > code { | ||||||
|   background-color: #282828; |   background-color: var(--background-3); | ||||||
|   padding: 2px 4px; |   padding: 2px 4px; | ||||||
|   overflow-wrap: break-word; |   overflow-wrap: break-word; | ||||||
| } | } | ||||||
| @@ -170,7 +495,7 @@ code { | |||||||
| .icon { | .icon { | ||||||
|   width: 20px; |   width: 20px; | ||||||
|   height: 20px; |   height: 20px; | ||||||
|   color: lightgray; |   color: var(--text-normal); | ||||||
|   text-align: center; |   text-align: center; | ||||||
|   display: inline; |   display: inline; | ||||||
|   vertical-align: middle; |   vertical-align: middle; | ||||||
| @@ -187,6 +512,7 @@ h1 svg.icon { | |||||||
| .pagination { | .pagination { | ||||||
|   list-style: none; |   list-style: none; | ||||||
|   text-align: center; |   text-align: center; | ||||||
|  |   padding: 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| .page-item { | .page-item { | ||||||
| @@ -196,43 +522,153 @@ h1 svg.icon { | |||||||
| .page-link { | .page-link { | ||||||
|   padding: 8px 16px; |   padding: 8px 16px; | ||||||
|   border-radius: 5px; |   border-radius: 5px; | ||||||
|   color: lightgray; |   color: var(--text-normal); | ||||||
| } | } | ||||||
|  |  | ||||||
| .page-item.active .page-link { | .page-item.active .page-link { | ||||||
|   background-color: #163b64; |   background-color: var(--pagination-active-background); | ||||||
|   color: inherit; |   color: inherit; | ||||||
| } | } | ||||||
|  |  | ||||||
| .page-item.active .page-link:hover { | .page-item.active .page-link:hover { | ||||||
|   background-color: #2b72c0; |   background-color: var(--pagination-active-hover-background); | ||||||
|   color: white; |   color: var(--pagination-active-hover-text); | ||||||
| } | } | ||||||
|  |  | ||||||
| .page-link:hover { | .page-link:hover { | ||||||
|   background-color: #444; |  | ||||||
|   color: white; |  | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | :not(li.disabled) > .page-link:hover { | ||||||
|  |   background-color: var(--background-5); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | li.disabled { | ||||||
|  |   opacity: .5; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | li.disabled > .page-link:hover { | ||||||
|  |   cursor: not-allowed; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Breadcrumb navigation */ | ||||||
|  | .breadcrumb { | ||||||
|  |   margin: 30px 0 20px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .breadcrumb ul { | ||||||
|  |   padding: 0; | ||||||
|  |   list-style: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .breadcrumb li { | ||||||
|  |   display: inline; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .breadcrumb li+li:before { | ||||||
|  |   content: "»" | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Previous and next page */ | ||||||
|  | .prevnext { | ||||||
|  |   display: flex; | ||||||
|  |   margin: 20px 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext > * { | ||||||
|  |   flex: 1; | ||||||
|  |   white-space: nowrap; | ||||||
|  |   overflow: hidden; | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   color: inherit; | ||||||
|  |   background-color: var(--background-2); | ||||||
|  |   padding: 8px 16px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext > a:hover { | ||||||
|  |   background-color: var(--background-4); | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext > .prev { | ||||||
|  |   text-align: left; | ||||||
|  |   border-top-left-radius: 8px; | ||||||
|  |   border-bottom-left-radius: 8px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext > .next { | ||||||
|  |   text-align: right; | ||||||
|  |   border-top-right-radius: 8px; | ||||||
|  |   border-bottom-right-radius: 8px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext .prev-caption, | ||||||
|  | .prevnext .next-caption { | ||||||
|  |   opacity: 65%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prevnext .prev-post, | ||||||
|  | .prevnext .next-post { | ||||||
|  |   overflow: hidden; | ||||||
|  |   text-overflow: ellipsis; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* Light mode */ | ||||||
|  | @media print, | ||||||
|  | (prefers-color-scheme: light) { | ||||||
|  |   /* Basic elements */ | ||||||
|  |   .section:hover { | ||||||
|  |     color: inherit; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   li.disabled { | ||||||
|  |     opacity: .25; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* Print compatibility */ | /* Print compatibility */ | ||||||
| @media print { | @media print { | ||||||
|   .top, .section-header-link { |   .top, | ||||||
|  |   .breadcrumb, | ||||||
|  |   .section-header-link, | ||||||
|  |   .prevnext, | ||||||
|  |   .comments { | ||||||
|     display: none; |     display: none; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   .icon { |   * { | ||||||
|     color: black; |     -webkit-print-color-adjust: exact !important; | ||||||
|   } |     color-adjust: exact !important; | ||||||
|  |  | ||||||
|   :not(pre) > code { |  | ||||||
|     background-color: lightgray; |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   body { |   body { | ||||||
|     background-color: white; |     max-width: 100%; | ||||||
|     color: black; |   } | ||||||
|  |  | ||||||
|  |   pre { | ||||||
|  |     white-space: pre-wrap; | ||||||
|  |     overflow-wrap: anywhere; | ||||||
|  |     break-inside: avoid; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .table-of-contents { | ||||||
|  |     display: none; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .table-of-contents.print { | ||||||
|  |     display: block; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   #back-to-top { | ||||||
|  |     display: none !important; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,116 +0,0 @@ | |||||||
| @media screen and (max-width: 700px) { |  | ||||||
|   .row { |  | ||||||
|     flex-direction: column; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @media screen and (max-width: 400px) { |  | ||||||
|   .navbar a { |  | ||||||
|     float: none; |  | ||||||
|     width: 100%; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| body, html { |  | ||||||
|   height: 100%; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| body { |  | ||||||
|   font-family: sans-serif; |  | ||||||
|   margin: 0; |  | ||||||
|   display: flex; |  | ||||||
|   flex-direction: column; |  | ||||||
| } |  | ||||||
| a { |  | ||||||
|   color: blue; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .header { |  | ||||||
|   padding: 10px; |  | ||||||
|   text-align: center; |  | ||||||
|   background: url(../images/stars.png); |  | ||||||
|   background-size: cover; |  | ||||||
|   color: white; |  | ||||||
| } |  | ||||||
| .header h1 { |  | ||||||
|   font-size: 50px; |  | ||||||
|   font-weight: bold; |  | ||||||
|   transform-origin: 50% 100%; |  | ||||||
|   transform: perspective(350px) rotateX(25deg); |  | ||||||
|   color: yellow; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .navbar { |  | ||||||
|   overflow: hidden; |  | ||||||
|   background-color: #999; |  | ||||||
| } |  | ||||||
| .navbar a { |  | ||||||
|   float: left; |  | ||||||
|   display: block; |  | ||||||
|   color: white; |  | ||||||
|   text-align: center; |  | ||||||
|   padding: 14px 20px; |  | ||||||
|   text-decoration: none; |  | ||||||
| } |  | ||||||
| /* .navbar a.right { |  | ||||||
|   float: right; |  | ||||||
| } */ |  | ||||||
| .navbar a:hover { |  | ||||||
|   background-color: #ddd; |  | ||||||
|   color: black; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| * { |  | ||||||
|   box-sizing: border-box; |  | ||||||
| } |  | ||||||
| .row { |  | ||||||
|   flex: 1; |  | ||||||
|   display: flex; |  | ||||||
|   flex-wrap: wrap; |  | ||||||
| } |  | ||||||
| .side { |  | ||||||
|   width: 25%; |  | ||||||
|   background-color: lightgray; |  | ||||||
|   padding: 20px; |  | ||||||
| } |  | ||||||
| .main { |  | ||||||
|   width: 75%; |  | ||||||
|   background-color: white; |  | ||||||
|   padding: 20px; |  | ||||||
| } |  | ||||||
| .footer { |  | ||||||
|   padding: 20px; |  | ||||||
|   text-align: center; |  | ||||||
|   background: #ddd; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @media (prefers-color-scheme: dark) { |  | ||||||
|   body { |  | ||||||
|     background-color: black; |  | ||||||
|   } |  | ||||||
|   a { |  | ||||||
|     color: #4da6ff; |  | ||||||
|   } |  | ||||||
|   .navbar { |  | ||||||
|     background-color: #222; |  | ||||||
|   } |  | ||||||
|   .navbar a { |  | ||||||
|     color: lightgray; |  | ||||||
|   } |  | ||||||
|   .navbar a:hover { |  | ||||||
|     background-color: #444; |  | ||||||
|     color: white; |  | ||||||
|   } |  | ||||||
|   .side { |  | ||||||
|     background-color: #111; |  | ||||||
|     color: lightgray; |  | ||||||
|   } |  | ||||||
|   .main { |  | ||||||
|     background-color: black; |  | ||||||
|     color: lightgray; |  | ||||||
|   } |  | ||||||
|   .footer { |  | ||||||
|     background: #222; |  | ||||||
|     color: lightgray; |  | ||||||
|   } |  | ||||||
|   max-width: 650px; |  | ||||||
| } |  | ||||||
							
								
								
									
										96
									
								
								assets/css/syntax-light.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								assets/css/syntax-light.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | |||||||
|  | @media print, (prefers-color-scheme: light) { | ||||||
|  |   .chroma { | ||||||
|  |     color: black; | ||||||
|  |   } | ||||||
|  | /* Other */ .chroma .x { color: #000000 } | ||||||
|  | /* Error */ .chroma .err { color: #a40000 } | ||||||
|  | /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } | ||||||
|  | /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } | ||||||
|  | /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } | ||||||
|  | /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } | ||||||
|  | /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } | ||||||
|  | /* Keyword */ .chroma .k { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordConstant */ .chroma .kc { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordDeclaration */ .chroma .kd { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordNamespace */ .chroma .kn { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordPseudo */ .chroma .kp { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordReserved */ .chroma .kr { color: #204a87; font-weight: bold } | ||||||
|  | /* KeywordType */ .chroma .kt { color: #204a87; font-weight: bold } | ||||||
|  | /* Name */ .chroma .n { color: #000000 } | ||||||
|  | /* NameAttribute */ .chroma .na { color: #c4a000 } | ||||||
|  | /* NameBuiltin */ .chroma .nb { color: #204a87 } | ||||||
|  | /* NameBuiltinPseudo */ .chroma .bp { color: #3465a4 } | ||||||
|  | /* NameClass */ .chroma .nc { color: #000000 } | ||||||
|  | /* NameConstant */ .chroma .no { color: #000000 } | ||||||
|  | /* NameDecorator */ .chroma .nd { color: #5c35cc; font-weight: bold } | ||||||
|  | /* NameEntity */ .chroma .ni { color: #ce5c00 } | ||||||
|  | /* NameException */ .chroma .ne { color: #cc0000; font-weight: bold } | ||||||
|  | /* NameFunction */ .chroma .nf { color: #000000 } | ||||||
|  | /* NameFunctionMagic */ .chroma .fm { color: #000000 } | ||||||
|  | /* NameLabel */ .chroma .nl { color: #f57900 } | ||||||
|  | /* NameNamespace */ .chroma .nn { color: #000000 } | ||||||
|  | /* NameOther */ .chroma .nx { color: #000000 } | ||||||
|  | /* NameProperty */ .chroma .py { color: #000000 } | ||||||
|  | /* NameTag */ .chroma .nt { color: #204a87; font-weight: bold } | ||||||
|  | /* NameVariable */ .chroma .nv { color: #000000 } | ||||||
|  | /* NameVariableClass */ .chroma .vc { color: #000000 } | ||||||
|  | /* NameVariableGlobal */ .chroma .vg { color: #000000 } | ||||||
|  | /* NameVariableInstance */ .chroma .vi { color: #000000 } | ||||||
|  | /* NameVariableMagic */ .chroma .vm { color: #000000 } | ||||||
|  | /* Literal */ .chroma .l { color: #000000 } | ||||||
|  | /* LiteralDate */ .chroma .ld { color: #000000 } | ||||||
|  | /* LiteralString */ .chroma .s { color: #4e9a06 } | ||||||
|  | /* LiteralStringAffix */ .chroma .sa { color: #4e9a06 } | ||||||
|  | /* LiteralStringBacktick */ .chroma .sb { color: #4e9a06 } | ||||||
|  | /* LiteralStringChar */ .chroma .sc { color: #4e9a06 } | ||||||
|  | /* LiteralStringDelimiter */ .chroma .dl { color: #4e9a06 } | ||||||
|  | /* LiteralStringDoc */ .chroma .sd { color: #8f5902; font-style: italic } | ||||||
|  | /* LiteralStringDouble */ .chroma .s2 { color: #4e9a06 } | ||||||
|  | /* LiteralStringEscape */ .chroma .se { color: #4e9a06 } | ||||||
|  | /* LiteralStringHeredoc */ .chroma .sh { color: #4e9a06 } | ||||||
|  | /* LiteralStringInterpol */ .chroma .si { color: #4e9a06 } | ||||||
|  | /* LiteralStringOther */ .chroma .sx { color: #4e9a06 } | ||||||
|  | /* LiteralStringRegex */ .chroma .sr { color: #4e9a06 } | ||||||
|  | /* LiteralStringSingle */ .chroma .s1 { color: #4e9a06 } | ||||||
|  | /* LiteralStringSymbol */ .chroma .ss { color: #4e9a06 } | ||||||
|  | /* LiteralNumber */ .chroma .m { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberBin */ .chroma .mb { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberFloat */ .chroma .mf { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberHex */ .chroma .mh { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberInteger */ .chroma .mi { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberIntegerLong */ .chroma .il { color: #0000cf; font-weight: bold } | ||||||
|  | /* LiteralNumberOct */ .chroma .mo { color: #0000cf; font-weight: bold } | ||||||
|  | /* Operator */ .chroma .o { color: #ce5c00; font-weight: bold } | ||||||
|  | /* OperatorWord */ .chroma .ow { color: #204a87; font-weight: bold } | ||||||
|  | /* Punctuation */ .chroma .p { color: #000000; font-weight: bold } | ||||||
|  | /* Comment */ .chroma .c { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentHashbang */ .chroma .ch { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentMultiline */ .chroma .cm { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentSingle */ .chroma .c1 { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentSpecial */ .chroma .cs { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentPreproc */ .chroma .cp { color: #8f5902; font-style: italic } | ||||||
|  | /* CommentPreprocFile */ .chroma .cpf { color: #8f5902; font-style: italic } | ||||||
|  | /* Generic */ .chroma .g { color: #000000 } | ||||||
|  | /* GenericDeleted */ .chroma .gd { color: #a40000 } | ||||||
|  | /* GenericEmph */ .chroma .ge { color: #000000; font-style: italic } | ||||||
|  | /* GenericError */ .chroma .gr { color: #ef2929 } | ||||||
|  | /* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold } | ||||||
|  | /* GenericInserted */ .chroma .gi { color: #00a000 } | ||||||
|  | /* GenericOutput */ .chroma .go { color: #000000; font-style: italic } | ||||||
|  | /* GenericPrompt */ .chroma .gp { color: #8f5902 } | ||||||
|  | /* GenericStrong */ .chroma .gs { color: #000000; font-weight: bold } | ||||||
|  | /* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold } | ||||||
|  | /* GenericTraceback */ .chroma .gt { color: #a40000; font-weight: bold } | ||||||
|  | /* GenericUnderline */ .chroma .gl { color: #000000; text-decoration: underline } | ||||||
|  | /* TextWhitespace */ .chroma .w { color: #f8f8f8; text-decoration: underline } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (prefers-color-scheme: light) { | ||||||
|  |   /* Background */ .chroma { background-color: #f8f8f8 } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media print { | ||||||
|  |   .chroma { | ||||||
|  |     background-color: white; | ||||||
|  |   } | ||||||
|  | } | ||||||
 Submodule assets/feather deleted from 734f3f5114
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 20 KiB | 
							
								
								
									
										1
									
								
								assets/jam
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								assets/jam
									
									
									
									
									
										Submodule
									
								
							 Submodule assets/jam added at c8501b14e0
									
								
							
							
								
								
									
										8
									
								
								assets/js/back-to-top.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								assets/js/back-to-top.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | const backToTop = document.getElementById("back-to-top"); | ||||||
|  | window.onscroll = function() { | ||||||
|  |     if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) { | ||||||
|  |         backToTop.style.display = "block"; | ||||||
|  |     } else { | ||||||
|  |         backToTop.style.display = "none"; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | markup: | ||||||
|  |   highlight: | ||||||
|  |     noClasses: false | ||||||
|  |     lineNos: true | ||||||
|  |  | ||||||
|  | params: | ||||||
|  |   faviconICO: favicon.ico | ||||||
|  |   faviconPNG: favicon.png | ||||||
|  |   readingtime: true | ||||||
|  |  | ||||||
|  | taxonomies: | ||||||
|  |   tag: tags | ||||||
|  |   author: authors | ||||||
|  |   series: series | ||||||
|  |  | ||||||
|  | privacy: | ||||||
|  |   googleAnalytics: | ||||||
|  |     disable: true | ||||||
|  |  | ||||||
|  |   twitter: | ||||||
|  |     enableDNT: true | ||||||
|  |  | ||||||
|  |   vimeo: | ||||||
|  |     enableDNT: true | ||||||
|  |  | ||||||
|  |   youtube: | ||||||
|  |     privacyEnhanced: true | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| 1 = "enero" |  | ||||||
| 2 = "febrero" |  | ||||||
| 3 = "marzo" |  | ||||||
| 4 = "abril" |  | ||||||
| 5 = "mayo" |  | ||||||
| 6 = "julio" |  | ||||||
| 7 = "junio" |  | ||||||
| 8 = "agosto" |  | ||||||
| 9 = "septiembre" |  | ||||||
| 10 = "octubre" |  | ||||||
| 11 = "noviembre" |  | ||||||
| 12 = "diciembre" |  | ||||||
							
								
								
									
										12
									
								
								data/meses.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								data/meses.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | 1: "enero" | ||||||
|  | 2: "febrero" | ||||||
|  | 3: "marzo" | ||||||
|  | 4: "abril" | ||||||
|  | 5: "mayo" | ||||||
|  | 6: "julio" | ||||||
|  | 7: "junio" | ||||||
|  | 8: "agosto" | ||||||
|  | 9: "septiembre" | ||||||
|  | 10: "octubre" | ||||||
|  | 11: "noviembre" | ||||||
|  | 12: "diciembre" | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| baseURL = "https://example.com" |  | ||||||
| theme = "bobatheme" |  | ||||||
| defaultContentLanguage = "en" |  | ||||||
| author = "bbaovanc" |  | ||||||
| sectionPagesMenu = "main" |  | ||||||
| enableRobotsTXT = true |  | ||||||
| paginate = 5 |  | ||||||
| enableGitInfo = true |  | ||||||
|  |  | ||||||
| [markup] |  | ||||||
|   [markup.highlight] |  | ||||||
|     noClasses = false |  | ||||||
|     lineNos = true |  | ||||||
|  |  | ||||||
| [params] |  | ||||||
|   # these are for the OpenGraph/Twitter embeds in Hugo |  | ||||||
|   description = "Example website for bobatheme" |  | ||||||
|  |  | ||||||
|   # these are for favicons in bobatheme |  | ||||||
|   faviconICO = "/favicon.ico" |  | ||||||
|   faviconPNG = "/favicon.png" |  | ||||||
|  |  | ||||||
|   # show word count and/or reading time |  | ||||||
|   wordcount = true |  | ||||||
|   readingtime = true |  | ||||||
|  |  | ||||||
|   # used for last update |  | ||||||
|   repoURL = "https://github.com/BBaoVanC/bobatheme" |  | ||||||
|  |  | ||||||
| [languages] |  | ||||||
|   [languages.en] |  | ||||||
|     languageName = "English" |  | ||||||
|     title = "Example Website" |  | ||||||
|     weight = 1 |  | ||||||
|  |  | ||||||
|   [languages.es] |  | ||||||
|     languageName = "Español" |  | ||||||
|     title = "Sitio web ejemplo" |  | ||||||
|     weight = 2 |  | ||||||
|     [languages.es.params] |  | ||||||
|       description = "Sitio web ejemplo para bobatheme" |  | ||||||
							
								
								
									
										50
									
								
								exampleSite/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								exampleSite/config.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | baseURL: https://example.com | ||||||
|  | theme: bobatheme | ||||||
|  | defaultContentLanguage: en | ||||||
|  | copyright: '© 2021 bbaovanc <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>' | ||||||
|  | sectionPagesMenu: main | ||||||
|  | enableRobotsTXT: true | ||||||
|  | paginate: 5 | ||||||
|  | enableGitInfo: true | ||||||
|  |  | ||||||
|  | taxonomies: | ||||||
|  |   _merge: deep | ||||||
|  |  | ||||||
|  | author: | ||||||
|  |   name: bbaovanc | ||||||
|  |  | ||||||
|  | markup: # this just keeps the bobatheme markup styling | ||||||
|  |   _merge: deep | ||||||
|  |  | ||||||
|  | params: | ||||||
|  |   # these are for the OpenGraph/Twitter embeds in Hugo | ||||||
|  |   description: Example website for bobatheme | ||||||
|  |  | ||||||
|  |   # these are for favicons in bobatheme (defaults are shown here) | ||||||
|  |   # faviconICO: favicon.ico | ||||||
|  |   # faviconPNG: favicon.png | ||||||
|  |  | ||||||
|  |   # show reading time (enabled by default) | ||||||
|  |   # readingtime: true | ||||||
|  |  | ||||||
|  |   # used for "View source" (unset by default) | ||||||
|  |   # gitFileURL: https://github.com/BBaoVanC/bobatheme/blob/master | ||||||
|  |   # gitFileIcon: github-circle | ||||||
|  |  | ||||||
|  | # see https://gohugo.io/about/hugo-and-gdpr/#all-privacy-settings | ||||||
|  | # you probably want to keep this default | ||||||
|  | privacy: | ||||||
|  |   _merge: deep | ||||||
|  |  | ||||||
|  | languages: | ||||||
|  |   en: | ||||||
|  |     languageName: English | ||||||
|  |     title: Example Website | ||||||
|  |     weight: 1 | ||||||
|  |  | ||||||
|  |   es: | ||||||
|  |     languageName: Español | ||||||
|  |     title: Sitio web ejemplo | ||||||
|  |     weight: 2 | ||||||
|  |     params: | ||||||
|  |       description: Sitio web ejemplo para bobatheme | ||||||
							
								
								
									
										31
									
								
								i18n/en.toml
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								i18n/en.toml
									
									
									
									
									
								
							| @@ -1,31 +0,0 @@ | |||||||
| [credit_comment] |  | ||||||
|   other = "<!-- bobatheme is available under the MIT license at https://github.com/BBaoVanC/bobatheme. -->" |  | ||||||
|  |  | ||||||
| [long_date] |  | ||||||
|   other = "{{ .Date.Format `January 2, 2006` }}" |  | ||||||
|  |  | ||||||
| [wordcount] |  | ||||||
|   one = "{{ . }} word" |  | ||||||
|   other = "{{ . }} words" |  | ||||||
|  |  | ||||||
| [readingtime] |  | ||||||
|   one = "{{ . }} min" |  | ||||||
|   other = "{{ . }} mins" |  | ||||||
|  |  | ||||||
| [read_more] |  | ||||||
|   other = "Read more" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [browser_no_video_support] |  | ||||||
|   other = "Your browser does not support video." |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [filtering_for] |  | ||||||
|   other = "Filtering for \"{{ . }}\"" |  | ||||||
|  |  | ||||||
| [no_posts] |  | ||||||
|   other = "No posts here!" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [table_of_contents] |  | ||||||
|   other = "Table of Contents" |  | ||||||
							
								
								
									
										110
									
								
								i18n/en.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								i18n/en.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | |||||||
|  | # Misc | ||||||
|  | credit_comment: | ||||||
|  |   other: "<!-- bobatheme is available under the MIT license at https://github.com/BBaoVanC/bobatheme. -->" | ||||||
|  |  | ||||||
|  | table_of_contents: | ||||||
|  |   other: "Table of Contents" | ||||||
|  |  | ||||||
|  | browser_no_video_support: | ||||||
|  |   other: "Your browser does not support video." | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Meta items | ||||||
|  | long_date: | ||||||
|  |   other: "{{ .Date.Format `January 2, 2006` }}" | ||||||
|  |  | ||||||
|  | wordcount: | ||||||
|  |   one: "{{ . }} word" | ||||||
|  |   other: "{{ . }} words" | ||||||
|  |  | ||||||
|  | readingtime: | ||||||
|  |   one: "{{ . }} min" | ||||||
|  |   other: "{{ . }} mins" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Post count | ||||||
|  | no_posts: | ||||||
|  |   other: "No posts here!" | ||||||
|  |  | ||||||
|  | post_count: | ||||||
|  |   one: "{{ . }} post" | ||||||
|  |   other: "{{ . }} posts" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Navigation | ||||||
|  | read_more: | ||||||
|  |   other: "Read more" | ||||||
|  |  | ||||||
|  | related_posts: | ||||||
|  |   other: "Related posts" | ||||||
|  |  | ||||||
|  | older_post: | ||||||
|  |   other: "Older" | ||||||
|  |  | ||||||
|  | newer_post: | ||||||
|  |   other: "Newer" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # ARIA labels | ||||||
|  | aria_header_link: | ||||||
|  |   other: "header link" | ||||||
|  |  | ||||||
|  | aria_back_to_top_button: | ||||||
|  |   other: "back to top button" | ||||||
|  |  | ||||||
|  | aria_rss_link: | ||||||
|  |   other: "RSS feed link" | ||||||
|  |  | ||||||
|  | aria_post_meta_view_source: | ||||||
|  |   other: "link to page source" | ||||||
|  |  | ||||||
|  | aria_post_meta_translations: | ||||||
|  |   other: "translations" | ||||||
|  |  | ||||||
|  | aria_post_meta_tags: | ||||||
|  |   other: "tags" | ||||||
|  |  | ||||||
|  | aria_post_meta_reading_time: | ||||||
|  |   other: "reading time" | ||||||
|  |  | ||||||
|  | aria_post_meta_authors: | ||||||
|  |   other: "authors" | ||||||
|  |  | ||||||
|  | aria_post_meta_series: | ||||||
|  |   other: "series" | ||||||
|  |  | ||||||
|  | aria_breadcrumbnav: | ||||||
|  |   other: "breadcrumb navigation bar" | ||||||
|  |  | ||||||
|  | aria_post_metadata: | ||||||
|  |   other: "post metadata" | ||||||
|  |  | ||||||
|  | aria_author_metadata: | ||||||
|  |   other: "author metadata" | ||||||
|  |  | ||||||
|  | aria_post_meta_date: | ||||||
|  |   other: "date" | ||||||
|  |  | ||||||
|  | aria_post_meta_modified_date: | ||||||
|  |   other: "last modified date" | ||||||
|  |  | ||||||
|  | aria_author_post_count: | ||||||
|  |   other: "post count" | ||||||
|  |  | ||||||
|  | aria_author_word_count: | ||||||
|  |   other: "word count" | ||||||
|  |  | ||||||
|  | aria_series_metadata: | ||||||
|  |   other: "series metadata" | ||||||
|  |  | ||||||
|  | aria_navbar: | ||||||
|  |   other: "navigation bar" | ||||||
|  |  | ||||||
|  | aria_langpicker: | ||||||
|  |   other: "language picker" | ||||||
|  |  | ||||||
|  | aria_langpicker_list: | ||||||
|  |   other: "language list" | ||||||
|  |  | ||||||
|  | aria_table_of_contents: | ||||||
|  |   other: "table of contents" | ||||||
							
								
								
									
										31
									
								
								i18n/es.toml
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								i18n/es.toml
									
									
									
									
									
								
							| @@ -1,31 +0,0 @@ | |||||||
| [credit_comment] |  | ||||||
|   other = "<!-- bobatheme está disponible en GitHub basado en la licensia MIT: https://github.com/BBaoVanC/bobatheme. -->" |  | ||||||
|  |  | ||||||
| [long_date] |  | ||||||
|   other = "{{ .Date.Day }} de {{ index .Data.meses (printf `%d` .Date.Month) }} de {{ .Date.Year }}" |  | ||||||
|  |  | ||||||
| [wordcount] |  | ||||||
|   one = "{{ . }} palabra" |  | ||||||
|   other = "{{ . }} palabras" |  | ||||||
|  |  | ||||||
| [readingtime] |  | ||||||
|   one = "{{ . }} min" |  | ||||||
|   other = "{{ . }} mins" |  | ||||||
|  |  | ||||||
| [read_more] |  | ||||||
|   other = "Leer más" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [browser_no_video_support] |  | ||||||
|   other = "Tu navegador de internet no admite video." |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [filtering_for] |  | ||||||
|   other = "Filtrando por \"{{ . }}\"" |  | ||||||
|  |  | ||||||
| [no_posts] |  | ||||||
|   other = "¡No hay contenido para mostrar!" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [table_of_contents] |  | ||||||
|   other = "Índice" |  | ||||||
							
								
								
									
										110
									
								
								i18n/es.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								i18n/es.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | |||||||
|  | # Misc | ||||||
|  | credit_comment: | ||||||
|  |   other: "<!-- bobatheme está disponible en GitHub basado en la licensia MIT: https://github.com/BBaoVanC/bobatheme. -->" | ||||||
|  |  | ||||||
|  | table_of_contents: | ||||||
|  |   other: "Índice" | ||||||
|  |  | ||||||
|  | browser_no_video_support: | ||||||
|  |   other: "Tu navegador de internet no admite video." | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Meta items | ||||||
|  | long_date: | ||||||
|  |   other: "{{ .Date.Day }} de {{ index .Data.meses (printf `%d` .Date.Month) }} de {{ .Date.Year }}" | ||||||
|  |  | ||||||
|  | wordcount: | ||||||
|  |   one: "{{ . }} palabra" | ||||||
|  |   other: "{{ . }} palabras" | ||||||
|  |  | ||||||
|  | readingtime: | ||||||
|  |   one: "{{ . }} min" | ||||||
|  |   other: "{{ . }} mins" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Post count | ||||||
|  | no_posts: | ||||||
|  |   other: "¡No hay contenido para mostrar!" | ||||||
|  |  | ||||||
|  | # post_count: | ||||||
|  | #   one: "{{ . }} post" | ||||||
|  | #   other: "{{ . }} posts" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Navigation | ||||||
|  | read_more: | ||||||
|  |   other: "Leer más" | ||||||
|  |  | ||||||
|  | related_posts: | ||||||
|  |   other: "Publicaciones similares" | ||||||
|  |  | ||||||
|  | older_post: | ||||||
|  |   other: "Más antiguo" | ||||||
|  |  | ||||||
|  | newer_post: | ||||||
|  |   other: "Más nuevo" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # ARIA labels | ||||||
|  | # aria_header_link: | ||||||
|  | #   other: "header link" | ||||||
|  |  | ||||||
|  | # aria_back_to_top_button: | ||||||
|  | #   other: "back to top button" | ||||||
|  |  | ||||||
|  | # aria_rss_link: | ||||||
|  | #   other: "RSS feed link" | ||||||
|  |  | ||||||
|  | # aria_post_meta_view_source: | ||||||
|  | #   other: "link to page source" | ||||||
|  |  | ||||||
|  | # aria_post_meta_translations: | ||||||
|  | #   other: "translations" | ||||||
|  |  | ||||||
|  | # aria_post_meta_tags: | ||||||
|  | #   other: "tags" | ||||||
|  |  | ||||||
|  | # aria_post_meta_reading_time: | ||||||
|  | #   other: "reading time" | ||||||
|  |  | ||||||
|  | # aria_post_meta_authors: | ||||||
|  | #   other: "authors" | ||||||
|  |  | ||||||
|  | # aria_post_meta_series: | ||||||
|  | #   other: "series" | ||||||
|  |  | ||||||
|  | # aria_breadcrumbnav: | ||||||
|  | #   other: "breadcrumb navigation bar" | ||||||
|  |  | ||||||
|  | # aria_post_metadata: | ||||||
|  | #   other: "post metadata" | ||||||
|  |  | ||||||
|  | # aria_author_metadata: | ||||||
|  | #   other: "author metadata" | ||||||
|  |  | ||||||
|  | # aria_post_meta_date: | ||||||
|  | #   other: "date" | ||||||
|  |  | ||||||
|  | # aria_post_meta_modified_date: | ||||||
|  | #   other: "last modified date" | ||||||
|  |  | ||||||
|  | # aria_author_post_count: | ||||||
|  | #   other: "post count" | ||||||
|  |  | ||||||
|  | # aria_author_word_count: | ||||||
|  | #   other: "word count" | ||||||
|  |  | ||||||
|  | # aria_series_metadata: | ||||||
|  | #   other: "series metadata" | ||||||
|  |  | ||||||
|  | # aria_navbar: | ||||||
|  | #   other: "navigation bar" | ||||||
|  |  | ||||||
|  | # aria_langpicker: | ||||||
|  | #   other: "language picker" | ||||||
|  |  | ||||||
|  | # aria_langpicker_list: | ||||||
|  | #   other: "language list" | ||||||
|  |  | ||||||
|  | # aria_table_of_contents: | ||||||
|  | #   other: "table of contents" | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| <h{{ .Level }} id="{{ .Anchor | safeURL }}" class="section-header"> | <h{{ .Level }} id="{{ .Anchor | safeURL }}" class="section-header"> | ||||||
|     {{ .Text | safeHTML }} |     {{ .Text | safeHTML }} | ||||||
|     <a href="#{{ .Anchor | safeURL }}"> |     <a href="#{{ .Anchor | safeURL }}"> | ||||||
|         <span class="section-header-link"> |         <span class="section-header-link" aria-label="{{ i18n "aria_header_link" }}"> | ||||||
|             {{ partial "icon.html" "link" }} |             {{ partial "icon.html" "link" }} | ||||||
|         </span> |         </span> | ||||||
|     </a> |     </a> | ||||||
|   | |||||||
| @@ -1 +1,8 @@ | |||||||
| <a href="{{ .Destination | safeURL }}"{{ with .Title}}title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>{{/* DO NOT REMOVE THE TRAILING NEWLINE HERE -- it prevents there from being whitespace in between the link and the next word/element (for example: if there's a period right after a link) */}} | <a | ||||||
|  |     href="{{ .Destination | safeURL }}" | ||||||
|  |     {{ with .Title }}title="{{ . }}"{{ end }} | ||||||
|  |     {{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }} | ||||||
|  | > | ||||||
|  |     {{- .Text | safeHTML -}} | ||||||
|  | </a> | ||||||
|  | {{- /* This comment gets rid of the trailing newline. */ -}} | ||||||
|   | |||||||
| @@ -1,30 +1,50 @@ | |||||||
| {{ partial "credit.html" }} | {{ partial "credit.html" }} | ||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html lang="{{ .Language.Lang }}"> | <html lang="{{ .Language.Lang }}"> | ||||||
|     {{- partial "head.html" . -}} |     {{ partial "head.html" . }} | ||||||
|  |  | ||||||
|     <body> |     <body> | ||||||
|  |         <a id="top" name="top" aria-hidden="true"></a> | ||||||
|  |  | ||||||
|         <div class="top"> |         <div class="top"> | ||||||
|             {{ partial "top.html" . }} |             {{ partial "top.html" . }} | ||||||
|         </div> |         </div> | ||||||
|  |  | ||||||
|         <div class="content"> |         {{ if not .IsHome }} | ||||||
|         {{- block "main" . }} |             {{ partial "breadcrumb.html" . }} | ||||||
|         {{ .Content }} |         {{ end }} | ||||||
|         {{- end }} |  | ||||||
|         </div> |  | ||||||
|  |  | ||||||
|         {{ with .Site.Copyright }} |         <main> | ||||||
|         <footer> |             {{ block "main" . }} | ||||||
|  |                 {{ .Content }} | ||||||
|  |             {{ end }} | ||||||
|  |         </main> | ||||||
|  |  | ||||||
|  |         {{ if or .Site.Copyright .Site.Params.footer }} | ||||||
|             <hr> |             <hr> | ||||||
|  |             <footer> | ||||||
|                 <small> |                 <small> | ||||||
|                 © |                     {{ with .Site.Copyright }} | ||||||
|                 {{ now.Format "2006" }} |                         <p>{{ . | safeHTML }}</p> | ||||||
|                 {{ $.Site.Author.name }} |                     {{ end }} | ||||||
|                 {{ . | safeHTML }} |  | ||||||
|  |                     {{ with .Site.Params.footer }} | ||||||
|  |                         {{ . | $.RenderString (dict "display" "block") }} | ||||||
|  |                     {{ end }} | ||||||
|                 </small> |                 </small> | ||||||
|             </footer> |             </footer> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|  |  | ||||||
|  |         <a id="back-to-top" href="#top" aria-label="{{ i18n "aria_back_to_top_button" }}"> | ||||||
|  |             {{ partial "icon.html" "chevron-up" }} | ||||||
|  |         </a> | ||||||
|  |         <noscript> | ||||||
|  |             <style> | ||||||
|  |                 #back-to-top { | ||||||
|  |                     display: block; | ||||||
|  |                 } | ||||||
|  |             </style> | ||||||
|  |         </noscript> | ||||||
|     </body> |     </body> | ||||||
|  |  | ||||||
| </html> | </html> | ||||||
|   | |||||||
| @@ -1,27 +1,33 @@ | |||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
|  |  | ||||||
|     <h1> |     <h1> | ||||||
|         {{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }} |         {{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }} | ||||||
|         {{ .Title | markdownify }} |         {{ .Title | markdownify }} | ||||||
|     <span class="rss-link"> |         {{ partial "rss-link.html" . }} | ||||||
|         {{ with .OutputFormats.Get "rss" }} |  | ||||||
|         <a href="{{ .Permalink }}">{{ partial "icon.html" "rss" }}</a> |  | ||||||
|         {{ end }} |  | ||||||
|     </span> |  | ||||||
|     </h1> |     </h1> | ||||||
|  |  | ||||||
| <div class="posts"> |     <div class="list-page-content"> | ||||||
|     {{ range .Paginator.Pages }} |         {{ with .Sections }} | ||||||
|         {{ .Render "summary" }} |             <div class="sections"> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     {{ .Render "summary/section" }} | ||||||
|  |                 {{ end }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         <div class="page-list"> | ||||||
|  |             {{ with .Paginator.Pages }} | ||||||
|  |                 <ul> | ||||||
|  |                     {{ range . }} | ||||||
|  |                         <li>{{ .Render "summary/post" }}</li> | ||||||
|  |                     {{ end }} | ||||||
|  |                 </ul> | ||||||
|             {{ else }} |             {{ else }} | ||||||
|  |                 <div> | ||||||
|                     {{ i18n "no_posts" }} |                     {{ i18n "no_posts" }} | ||||||
|     {{ end }} |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| {{ if gt .Paginator.TotalPages 1 }} |  | ||||||
| <div class="pagination"> |  | ||||||
|     {{ template "_internal/pagination.html" . }} |  | ||||||
|                 </div> |                 </div> | ||||||
|             {{ end }} |             {{ end }} | ||||||
|  |         </div> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ partial "pagination.html" . }} | ||||||
| {{ end }} | {{ end }} | ||||||
|   | |||||||
| @@ -2,26 +2,85 @@ | |||||||
|     <div class="post-title"> |     <div class="post-title"> | ||||||
|         <h1> |         <h1> | ||||||
|             {{ .Title | markdownify }} |             {{ .Title | markdownify }} | ||||||
|         {{ if .Draft }}{{ partial "icon.html" "edit" }}{{ end }} |             {{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }} | ||||||
|         </h1> |         </h1> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
| {{ partial "post-metadata.html" . }} |     {{ partial "post-metadata/full.html" . }} | ||||||
|  |     {{ partial "series-box.html" . }} | ||||||
|  |  | ||||||
|     {{ if .Params.Toc }} |     {{ if .Params.Toc }} | ||||||
| <div id="table-of-contents"> |         <div class="table-of-contents" aria-label="{{ i18n "aria_table_of_contents" }}"> | ||||||
|     <h2>{{ i18n "table_of_contents" }}</h2> |             <details> | ||||||
|  |                 <summary>{{ i18n "table_of_contents" }}</summary> | ||||||
|  |                 {{ .TableOfContents }} | ||||||
|  |             </details> | ||||||
|  |         </div> | ||||||
|  |         <div class="table-of-contents print"> | ||||||
|  |             {{ i18n "table_of_contents" }} | ||||||
|             {{ .TableOfContents }} |             {{ .TableOfContents }} | ||||||
|         </div> |         </div> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
| <hr> |  | ||||||
|  |  | ||||||
|     {{ with .Resources.GetMatch "feature" }} |     {{ with .Resources.GetMatch "feature" }} | ||||||
|         <div class="post-media"> |         <div class="post-media"> | ||||||
|     {{ partial "figure.html" . }} |             {{ partial "figure.html" (dict "src" . "border" true) }} | ||||||
|         </div> |         </div> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="post-content"> | ||||||
|         {{ .Content }} |         {{ .Content }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ if or .NextInSection .PrevInSection }} | ||||||
|  |         <div class="prevnext"> | ||||||
|  |             {{ with .NextInSection }} | ||||||
|  |                 <a class="prev" href="{{ .Permalink }}"> | ||||||
|  |                     <div class="prev-caption"> | ||||||
|  |                         ← {{ i18n "newer_post" }} | ||||||
|  |                     </div> | ||||||
|  |                     <div class="prev-post"> | ||||||
|  |                         {{ .Title | markdownify }} | ||||||
|  |                     </div> | ||||||
|  |                 </a> | ||||||
|  |             {{ else }} | ||||||
|  |                 <div class="prev"></div> | ||||||
|  |             {{ end }} | ||||||
|  |  | ||||||
|  |             {{ with .PrevInSection }} | ||||||
|  |                 <a class="next" href="{{ .Permalink }}"> | ||||||
|  |                     <div class="next-caption"> | ||||||
|  |                         {{ i18n "older_post" }} → | ||||||
|  |                     </div> | ||||||
|  |                     <div class="next-post"> | ||||||
|  |                         {{ .Title | markdownify }} | ||||||
|  |                     </div> | ||||||
|  |                 </a> | ||||||
|  |             {{ else }} | ||||||
|  |                 <div class="next"></div> | ||||||
|  |             {{ end }} | ||||||
|  |         </div> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{ partial "series-box.html" . }} | ||||||
|  |  | ||||||
|  |     {{ $related := .Site.RegularPages.Related . | first 10 }} | ||||||
|  |     {{ with $related }} | ||||||
|  |         <div class="related"> | ||||||
|  |             <hr> | ||||||
|  |             <h2>{{ i18n "related_posts" }}</h2> | ||||||
|  |             <div class="related-posts"> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     {{ .Render "summary/post" }} | ||||||
|  |                 {{ end }} | ||||||
|  |             </div> | ||||||
|  |             <hr> | ||||||
|  |         </div> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{ if .Params.comments }} | ||||||
|  |         <div class="comments"> | ||||||
|  |             {{ partial "comments.html" . }} | ||||||
|  |         </div> | ||||||
|  |     {{ end }} | ||||||
| {{ end }} | {{ end }} | ||||||
|   | |||||||
| @@ -1,33 +0,0 @@ | |||||||
| <div class="post"> |  | ||||||
|     <h2 class="post-title"> |  | ||||||
|         {{ range .Params.categories }} |  | ||||||
|         <code>{{ . }}</code> |  | ||||||
|         {{ end }} |  | ||||||
|  |  | ||||||
|         {{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }} |  | ||||||
|         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> |  | ||||||
|         {{ if .Draft }}{{ partial "icon.html" "edit" }}{{ end }} |  | ||||||
|     </h2> |  | ||||||
|  |  | ||||||
|     {{ partial "post-metadata.html" . }} |  | ||||||
|  |  | ||||||
|     {{ with .Resources.GetMatch "feature" }} |  | ||||||
|     <div class="post-media"> |  | ||||||
|         {{ partial "figure.html" . }} |  | ||||||
|     </div> |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     <div class="post-description"> |  | ||||||
|         {{ if .Description }} |  | ||||||
|         <p> |  | ||||||
|             {{ .Description | markdownify }} |  | ||||||
|         </p> |  | ||||||
|         {{ else }} |  | ||||||
|         {{ .Summary }} |  | ||||||
|         {{ end }} |  | ||||||
|     </div> |  | ||||||
|  |  | ||||||
|     <div class="readmore"> |  | ||||||
|         <a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a> |  | ||||||
|     </div> |  | ||||||
| </div> |  | ||||||
							
								
								
									
										16
									
								
								layouts/_default/summary/author.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								layouts/_default/summary/author.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | <div class="author"> | ||||||
|  |     <h2 class="author-name"> | ||||||
|  |         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|  |         {{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }} | ||||||
|  |     </h2> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/author.html" . }} | ||||||
|  |  | ||||||
|  |     <div class="author-description"> | ||||||
|  |         {{ partial "description-or-summary.html" . }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="readmore"> | ||||||
|  |         <a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										23
									
								
								layouts/_default/summary/post.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								layouts/_default/summary/post.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | <div class="post"> | ||||||
|  |     <h2 class="post-title"> | ||||||
|  |         {{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }} | ||||||
|  |         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|  |         {{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }} | ||||||
|  |     </h2> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/short.html" . }} | ||||||
|  |  | ||||||
|  |     {{ with .Resources.GetMatch "feature" }} | ||||||
|  |         <div class="post-media"> | ||||||
|  |             {{ partial "figure.html" (dict "src" . "border" true) }} | ||||||
|  |         </div> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="post-description"> | ||||||
|  |         {{ partial "description-or-summary.html" . }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="readmore"> | ||||||
|  |         <a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										12
									
								
								layouts/_default/summary/section.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								layouts/_default/summary/section.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | <a class="section-anchor" href="{{ .Permalink }}"> | ||||||
|  |     <div class="section"> | ||||||
|  |         <h2 class="section-title"> | ||||||
|  |             {{ with .Params.icon }}{{ partial "icon.html" . }}{{ end }} | ||||||
|  |             {{ .Title | markdownify }} | ||||||
|  |         </h2> | ||||||
|  |  | ||||||
|  |         <div class="section-description"> | ||||||
|  |             {{ partial "description-or-summary.html" . }} | ||||||
|  |         </div> | ||||||
|  |     </div> | ||||||
|  | </a> | ||||||
							
								
								
									
										26
									
								
								layouts/_default/summary/series.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								layouts/_default/summary/series.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | <div class="post"> | ||||||
|  |     <h2 class="post-title"> | ||||||
|  |         {{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }} | ||||||
|  |         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|  |         {{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }} | ||||||
|  |     </h2> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/series.html" . }} | ||||||
|  |  | ||||||
|  |     <div class="post-description"> | ||||||
|  |         {{ partial "description-or-summary.html" . }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="series-pages"> | ||||||
|  |         <ul> | ||||||
|  |             {{ $i := 0 }} | ||||||
|  |             {{ $total := len .Data.Pages }} | ||||||
|  |             {{ range .Data.Pages.Reverse }} | ||||||
|  |                 {{ $i = add 1 $i }} | ||||||
|  |                 {{ .Scratch.Set "series_position" $i }} | ||||||
|  |                 {{ .Scratch.Set "series_total" $total }} | ||||||
|  |                 <li>{{ .Render "summary/series_post" }}</li> | ||||||
|  |             {{ end }} | ||||||
|  |         </ul> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										29
									
								
								layouts/_default/summary/series_post.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								layouts/_default/summary/series_post.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | <div class="post"> | ||||||
|  |     <div class="post-series-position"> | ||||||
|  |         {{ if .Scratch.Get "series_position" }} | ||||||
|  |             ({{ .Scratch.Get "series_position" }}/{{ .Scratch.Get "series_total" }}) | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <h2 class="post-title"> | ||||||
|  |         {{ with .Parent.Params.icon }}{{ partial "icon.html" . }}{{ end }} | ||||||
|  |         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|  |         {{ if .Draft }}{{ partial "icon.html" "write" }}{{ end }} | ||||||
|  |     </h2> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/short.html" . }} | ||||||
|  |  | ||||||
|  |     {{ with .Resources.GetMatch "feature" }} | ||||||
|  |         <div class="post-media"> | ||||||
|  |             {{ partial "figure.html" (dict "src" . "border" true) }} | ||||||
|  |         </div> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="post-description"> | ||||||
|  |         {{ partial "description-or-summary.html" . }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="readmore"> | ||||||
|  |         <a href="{{ .Permalink }}">{{ i18n "read_more" }} →</a> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										20
									
								
								layouts/authors/list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								layouts/authors/list.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "user-circle" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     <div class="page-list"> | ||||||
|  |         {{ with .Paginator.Pages }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <li>{{ .Render "summary/author" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										27
									
								
								layouts/authors/term.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								layouts/authors/term.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "user-circle" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |         {{ partial "rss-link.html" . }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/author.html" . }} | ||||||
|  |  | ||||||
|  |     {{ .Content }} | ||||||
|  |  | ||||||
|  |     <div class="page-list"> | ||||||
|  |         {{ with .Paginator.Pages }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <li>{{ .Render "summary/post" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ partial "pagination.html" . }} | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										4
									
								
								layouts/partials/additional-head.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								layouts/partials/additional-head.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | {{/* | ||||||
|  |     Create a file named `layouts/partials/additional-head.html` at your site root to | ||||||
|  |     add extra tags into <head>. Page variables are passed. | ||||||
|  | */}} | ||||||
							
								
								
									
										19
									
								
								layouts/partials/breadcrumb.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								layouts/partials/breadcrumb.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | <nav class="breadcrumb" aria-label="{{ i18n "aria_breadcrumbnav" }}"> | ||||||
|  |     <ul> | ||||||
|  |         {{ template "breadcrumbnav" (dict "p1" . "p2" .) }} | ||||||
|  |     </ul> | ||||||
|  | </nav> | ||||||
|  | {{ define "breadcrumbnav" }} | ||||||
|  | {{ if .p1.Parent }} | ||||||
|  | {{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }} | ||||||
|  | {{ else if not .p1.IsHome }} | ||||||
|  | {{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }} | ||||||
|  | {{ end }} | ||||||
|  | <li{{ if eq .p1 .p2 }} class="active"{{ end }}> | ||||||
|  |     {{ if eq .p1 .p2 }} | ||||||
|  |     {{ .p1.Title | markdownify }} | ||||||
|  |     {{ else }} | ||||||
|  |     <a href="{{ .p1.Permalink }}">{{ .p1.Title | markdownify }}</a> | ||||||
|  |     {{ end }} | ||||||
|  | </li> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										4
									
								
								layouts/partials/comments.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								layouts/partials/comments.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | {{/* | ||||||
|  |     Create a file named `layouts/partials/comments.html` at your site root to | ||||||
|  |     add a comment system. Page variables are passed. | ||||||
|  | */}} | ||||||
							
								
								
									
										7
									
								
								layouts/partials/description-or-summary.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								layouts/partials/description-or-summary.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | {{ with .Description }} | ||||||
|  |     <p>{{ . | markdownify }}</p> | ||||||
|  | {{ else }} | ||||||
|  |     {{ with .Summary }} | ||||||
|  |         {{ . }} | ||||||
|  |     {{ end }} | ||||||
|  | {{ end }} | ||||||
| @@ -1,17 +1,28 @@ | |||||||
|  | {{ $hidecaption := index . "hidecaption" }} | ||||||
|  |  | ||||||
|  | {{ if index . "noborder" }} | ||||||
|     <figure> |     <figure> | ||||||
|     {{ $media := . | resources.Fingerprint "sha512" }} | {{ else }} | ||||||
|  |     <figure class="border"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  |     {{ with index . "src" }} | ||||||
|  |         {{ $media := . }} | ||||||
|         {{ if eq .MediaType.MainType "image" }} |         {{ if eq .MediaType.MainType "image" }} | ||||||
|             <img src="{{ $media.Permalink }}" alt="{{ $media.Title }}" /> |             <img src="{{ $media.Permalink }}" alt="{{ $media.Title }}" /> | ||||||
|         {{ else if eq .MediaType.MainType "video" }} |         {{ else if eq .MediaType.MainType "video" }} | ||||||
|     <video controls> |             <video controls preload="metadata"> | ||||||
|                 <source src="{{ $media.Permalink }}" alt="{{ $media.Title }}"> |                 <source src="{{ $media.Permalink }}" alt="{{ $media.Title }}"> | ||||||
|                 {{ i18n "browser_no_video_support" }} |                 {{ i18n "browser_no_video_support" }} | ||||||
|             </video> |             </video> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ if not $hidecaption }} | ||||||
|             {{ with $media.Title }} |             {{ with $media.Title }} | ||||||
|                 <figcaption> |                 <figcaption> | ||||||
|                     {{ . | markdownify }} |                     {{ . | markdownify }} | ||||||
|                 </figcaption> |                 </figcaption> | ||||||
|             {{ end }} |             {{ end }} | ||||||
|  |         {{ end }} | ||||||
|  |     {{ end }} | ||||||
| </figure> | </figure> | ||||||
|   | |||||||
| @@ -9,6 +9,12 @@ | |||||||
|     {{ with resources.Get "css/syntax.css" | fingerprint "sha512" }} |     {{ with resources.Get "css/syntax.css" | fingerprint "sha512" }} | ||||||
|         <link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"> |         <link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |     {{ with resources.Get "css/syntax-light.css" | fingerprint "sha512" }} | ||||||
|  |         <link rel="stylesheet" type="text/css" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"> | ||||||
|  |     {{ end }} | ||||||
|  |     {{ with resources.Get "js/back-to-top.js" | fingerprint "sha512" }} | ||||||
|  |         <script defer src="{{ .Permalink }}" type="text/javascript" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|     {{ with .Site.Params.faviconICO }} |     {{ with .Site.Params.faviconICO }} | ||||||
|         <link rel="icon" type="image/x-icon" href="{{ . | absURL }}" /> |         <link rel="icon" type="image/x-icon" href="{{ . | absURL }}" /> | ||||||
| @@ -17,19 +23,20 @@ | |||||||
|         <link rel="icon" type="image/png" href="{{ . | absURL }}" /> |         <link rel="icon" type="image/png" href="{{ . | absURL }}" /> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
|     {{ range .AlternativeOutputFormats -}} |  | ||||||
|         {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} |  | ||||||
|     {{ end -}} |  | ||||||
|  |  | ||||||
|     {{ if .IsHome }} |     {{ if .IsHome }} | ||||||
|     <title>{{ .Site.Title }}</title> |         <title>{{ .Site.Title | plainify }}</title> | ||||||
|     {{ else }} |     {{ else }} | ||||||
|     <title>{{ print .Title " | " .Site.Title }}</title> |         <title>{{ (print .Title " | " .Site.Title) | plainify }}</title> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
|     {{ partial "opengraph.html" . }} |     {{ partial "seo-tags/opengraph.html" . }} | ||||||
|     {{ template "_internal/twitter_cards.html" . }} |     {{ partial "seo-tags/twitter-cards.html" . }} | ||||||
|     {{ template "_internal/schema.html" . }} |     {{ partial "seo-tags/schema.html" . }} | ||||||
|  |     {{ partial "seo-tags/link.html" . }} | ||||||
|  |     {{ partial "seo-tags/author.html" . }} | ||||||
|  |  | ||||||
|     <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}"> |     <meta name="language" content="{{ .Language.Lang }}"> | ||||||
|  |     <meta name="description" content="{{ (partial "seo-tags/description.html" .) | plainify }}"> | ||||||
|  |  | ||||||
|  |     {{ partial "additional-head.html" . }} | ||||||
| </head> | </head> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| {{ $icon_resource := resources.Get (printf "feather/icons/%s.svg" .) }} | {{- $icon_resource := resources.Get (printf "jam/icons/%s.svg" .) -}} | ||||||
| {{ $icon := $icon_resource.Content }} | {{- $icon := $icon_resource.Content -}} | ||||||
| {{ $icon = replaceRE `<svg` `<svg class="icon"` $icon }} | {{- $icon = replaceRE `<svg` `<svg class="icon"` $icon -}} | ||||||
| {{ $icon = replaceRE `</svg>` (printf `<title>%s icon</title></svg>` .) $icon }} | {{- $icon = replaceRE `</svg>` (printf `<title>%s icon</title></svg>` .) $icon -}} | ||||||
| {{ $icon | safeHTML }} | {{- $icon | safeHTML -}} | ||||||
|   | |||||||
| @@ -1,52 +0,0 @@ | |||||||
| <meta property="og:title" content="{{ .Title }}" /> |  | ||||||
| <meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" /> |  | ||||||
| <meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" /> |  | ||||||
| <meta property="og:url" content="{{ .Permalink }}" /> |  | ||||||
|  |  | ||||||
| {{- with $.Params.images -}} |  | ||||||
| {{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}} |  | ||||||
| {{- else -}} |  | ||||||
| {{- $images := $.Resources.ByType "image" -}} |  | ||||||
| {{- $featured := $images.GetMatch "*feature*" -}} |  | ||||||
| {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} |  | ||||||
| {{- with $featured -}} |  | ||||||
| <meta property="og:image" content="{{ $featured.Permalink }}"/> |  | ||||||
| {{- else -}} |  | ||||||
| {{- with $.Site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}} |  | ||||||
| {{- end -}} |  | ||||||
| {{- end -}} |  | ||||||
|  |  | ||||||
| {{- if .IsPage }} |  | ||||||
| {{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} |  | ||||||
| <meta property="article:section" content="{{ .Section }}" /> |  | ||||||
| {{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }} |  | ||||||
| {{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }} |  | ||||||
| {{- end -}} |  | ||||||
|  |  | ||||||
| {{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }} |  | ||||||
| {{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }} |  | ||||||
| {{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }} |  | ||||||
|  |  | ||||||
| {{- with .Params.videos -}} |  | ||||||
| {{- range first 6 . }}<meta property="og:video" content="{{ . | absURL }}" />{{ end -}} |  | ||||||
| {{- else -}} |  | ||||||
| {{- $videos := $.Resources.ByType "video" -}} |  | ||||||
| {{- $featured_video := $videos.GetMatch "*feature*" -}} |  | ||||||
| {{- if not $featured_video }}{{ $featured_video = $videos.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} |  | ||||||
| {{- with $featured_video -}} |  | ||||||
| <meta property="og:video" content="{{ $featured_video.Permalink | absURL }}" /> |  | ||||||
| {{- end -}} |  | ||||||
| {{- end -}} |  | ||||||
|  |  | ||||||
| {{- /* If it is part of a series, link to related articles */}} |  | ||||||
| {{- $permalink := .Permalink }} |  | ||||||
| {{- $siteSeries := .Site.Taxonomies.series }} |  | ||||||
| {{ with .Params.series }}{{- range $name := . }} |  | ||||||
|   {{- $series := index $siteSeries ($name | urlize) }} |  | ||||||
|   {{- range $page := first 6 $series.Pages }} |  | ||||||
|     {{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }} |  | ||||||
|   {{- end }} |  | ||||||
| {{ end }}{{ end }} |  | ||||||
|  |  | ||||||
| {{- /* Facebook Page Admin ID for Domain Insights */}} |  | ||||||
| {{- with .Site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }} |  | ||||||
							
								
								
									
										5
									
								
								layouts/partials/pagination.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								layouts/partials/pagination.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | {{ if gt .Paginator.TotalPages 1 }} | ||||||
|  |     <div class="pagination"> | ||||||
|  |         {{ template "_internal/pagination.html" . }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										16
									
								
								layouts/partials/post-meta-item/authors.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								layouts/partials/post-meta-item/authors.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | {{ with .Params.authors }} | ||||||
|  |     <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_authors" }}"> | ||||||
|  |         {{ partial "icon.html" "user-circle" }} | ||||||
|  |  | ||||||
|  |         {{ if index $.Site.Taxonomies "authors" }} | ||||||
|  |             {{ $authors := slice }} | ||||||
|  |             {{ range . }} | ||||||
|  |                 {{ $url := (printf "authors/%s" (. | anchorize)) | absLangURL }} | ||||||
|  |                 {{ $authors = $authors | append (printf `<a href="%s">%s</a>` $url . | safeHTML) }} | ||||||
|  |             {{ end }} | ||||||
|  |             {{ delimit $authors ", " }} | ||||||
|  |         {{ else }} | ||||||
|  |             {{ delimit . ", " }} | ||||||
|  |         {{ end }} | ||||||
|  |     </span> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										6
									
								
								layouts/partials/post-meta-item/readingtime.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								layouts/partials/post-meta-item/readingtime.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | {{ if ne .Site.Params.readingtime false }} | ||||||
|  |     <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_reading_time" }}"> | ||||||
|  |         {{ partial "icon.html" "clock" }} | ||||||
|  |         {{ i18n "readingtime" .ReadingTime }} | ||||||
|  |     </span> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										11
									
								
								layouts/partials/post-meta-item/series.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								layouts/partials/post-meta-item/series.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | {{ with (.GetTerms "series") }} | ||||||
|  |     {{ $series := slice }} | ||||||
|  |     {{ range . }} | ||||||
|  |         {{ $series = $series | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }} | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="series" aria-label="{{ i18n "aria_post_meta_series" }}"> | ||||||
|  |         {{ partial "icon.html" "files" }} | ||||||
|  |         {{ delimit $series ", " }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										11
									
								
								layouts/partials/post-meta-item/tags.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								layouts/partials/post-meta-item/tags.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | {{ with (.GetTerms "tags") }} | ||||||
|  |     {{ $tags := slice }} | ||||||
|  |     {{ range . }} | ||||||
|  |         {{ $tags = $tags | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }} | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="tags" aria-label="{{ i18n "aria_post_meta_tags" }}"> | ||||||
|  |         {{ partial "icon.html" "tag" }} | ||||||
|  |         {{ delimit $tags ", " }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										8
									
								
								layouts/partials/post-meta-item/translations.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								layouts/partials/post-meta-item/translations.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | {{ if .IsTranslated }} | ||||||
|  |     <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_translations" }}"> | ||||||
|  |         {{ partial "icon.html" "world" }} | ||||||
|  |         {{ range .Translations }} | ||||||
|  |             <a href="{{ .Permalink }}">{{ .Language }}</a> | ||||||
|  |         {{ end }} | ||||||
|  |     </span> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										13
									
								
								layouts/partials/post-meta-item/viewsource.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								layouts/partials/post-meta-item/viewsource.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | {{ if and .Site.Params.gitFileURL .File.Path }} | ||||||
|  |     <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_view_source" }}"> | ||||||
|  |         {{ with .Site.Params.gitFileIcon }} | ||||||
|  |             {{ partial "icon.html" . }} | ||||||
|  |         {{ else }} | ||||||
|  |             {{ partial "icon.html" "file" }} | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         <a href="{{ printf "%s/content/%s" .Site.Params.gitFileURL .File.Path }}" target="_blank" rel="noopener"> | ||||||
|  |             View source | ||||||
|  |         </a> | ||||||
|  |     </span> | ||||||
|  | {{ end }} | ||||||
| @@ -1,66 +0,0 @@ | |||||||
| {{ if or .Date .IsTranslated .Site.Params.wordcount .Site.Params.readingtime .Site.Params.repoURL }} |  | ||||||
| <div class="post-metadata"> |  | ||||||
|     {{ if .Date }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "calendar" }} |  | ||||||
|         <time datetime="{{ .Date.Format "January 2, 2006" }}" pubdate> |  | ||||||
|             {{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }} |  | ||||||
|         </time> |  | ||||||
|     </span> |  | ||||||
|  |  | ||||||
|     {{ if not .Site.Params.repoURL }} |  | ||||||
|     {{ if ne .Lastmod .Date }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "edit-2" }} |  | ||||||
|         <time datetime="{{ .Lastmod.Format "2006-01-02" }}" pubdate> |  | ||||||
|             {{ i18n "long_date" (dict "Date" .Lastmod "Data" .Site.Data) }} |  | ||||||
|         </time> |  | ||||||
|         {{ end }} |  | ||||||
|     </span> |  | ||||||
|     {{ end }} |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     {{ if .IsTranslated }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "globe" }} |  | ||||||
|         {{ range .Translations }} |  | ||||||
|         <a href="{{ .Permalink }}">{{ .Language }}</a> |  | ||||||
|         {{ end }} |  | ||||||
|     </span> |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     {{ if .Site.Params.wordcount }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "type" }} |  | ||||||
|         {{ i18n "wordcount" .WordCount }} |  | ||||||
|     </span> |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     {{ if .Site.Params.readingtime }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "clock" }} |  | ||||||
|         {{ i18n "readingtime" .ReadingTime }} |  | ||||||
|     </span> |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     {{ if .Site.Params.repoURL }} |  | ||||||
|     {{ with .GitInfo }} |  | ||||||
|     <span class="post-meta-item"> |  | ||||||
|         {{ partial "icon.html" "git-commit" }} |  | ||||||
|         <a href="{{ (printf "%s/commit/%s" $.Site.Params.repoURL .Hash) | absLangURL }}"> |  | ||||||
|             <code>{{ .AbbreviatedHash }}</code> |  | ||||||
|         </a> |  | ||||||
|     </span> |  | ||||||
|     {{ end }} |  | ||||||
|     {{ end }} |  | ||||||
|  |  | ||||||
|     <div class="tags"> |  | ||||||
|         {{ range (.GetTerms "tags") }} |  | ||||||
|         <span class="post-meta-item"> |  | ||||||
|             {{ partial "icon.html" "tag" }} |  | ||||||
|             <a href="{{ .Permalink }}">{{ .LinkTitle }}</a> |  | ||||||
|         </span> |  | ||||||
|         {{ end }} |  | ||||||
|     </div> |  | ||||||
| </div> |  | ||||||
| {{ end }} |  | ||||||
							
								
								
									
										17
									
								
								layouts/partials/post-metadata/author.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								layouts/partials/post-metadata/author.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | <div class="author-metadata" aria-label="{{ i18n "aria_author_metadata" }}"> | ||||||
|  |     {{/* Calculate the total word count */}} | ||||||
|  |     {{ $total_words := 0 }} | ||||||
|  |     {{ range .Data.Pages }} | ||||||
|  |         {{ $total_words = add $total_words .WordCount }} | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <span class="author-meta-item" aria-label="{{ i18n "aria_author_post_count" }}"> | ||||||
|  |         {{ partial "icon.html" "newspaper" }} | ||||||
|  |         {{ i18n "post_count" (len .Data.Pages) }} | ||||||
|  |     </span> | ||||||
|  |  | ||||||
|  |     <span class="author-meta-item" aria-label="{{ i18n "aria_author_word_count" }}"> | ||||||
|  |         {{ partial "icon.html" "align-left" }} | ||||||
|  |         {{ i18n "wordcount" $total_words }} | ||||||
|  |     </span> | ||||||
|  | </div> | ||||||
							
								
								
									
										28
									
								
								layouts/partials/post-metadata/full.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								layouts/partials/post-metadata/full.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | {{ if or .Date .Params.authors .IsTranslated .Site.Params.readingtime .Site.Params.gitFileURL }} | ||||||
|  |     <div class="post-metadata" aria-label="{{ i18n "aria_post_metadata" }}"> | ||||||
|  |         {{ if .Date }} | ||||||
|  |             <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_date" }}"> | ||||||
|  |                 {{ partial "icon.html" "calendar" }} | ||||||
|  |                 <time datetime="{{ .Date.Format "2006-01-02" }}" pubdate> | ||||||
|  |                     {{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }} | ||||||
|  |                 </time> | ||||||
|  |             </span> | ||||||
|  |  | ||||||
|  |             {{/* TODO: make this be a tooltip */}} | ||||||
|  |             {{ if ne (time.Format "2006-01-02" .Lastmod) (time.Format "2006-01-02" .Date) }} | ||||||
|  |                 <span class="post-meta-item" aria-label="{{ i18n "aria_post_meta_modified_date" }}"> | ||||||
|  |                     {{ partial "icon.html" "pencil" }} | ||||||
|  |                     <time datetime="{{ .Lastmod.Format "2006-01-02" }}" pubdate> | ||||||
|  |                         {{ i18n "long_date" (dict "Date" .Lastmod "Data" .Site.Data) }} | ||||||
|  |                     </time> | ||||||
|  |                     {{ end }} | ||||||
|  |                 </span> | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ partial "post-meta-item/authors.html" . }} | ||||||
|  |         {{ partial "post-meta-item/translations.html" . }} | ||||||
|  |         {{ partial "post-meta-item/readingtime.html" . }} | ||||||
|  |         {{ partial "post-meta-item/viewsource.html" . }} | ||||||
|  |         {{ partial "post-meta-item/tags.html" . }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										22
									
								
								layouts/partials/post-metadata/series.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								layouts/partials/post-metadata/series.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | <div class="post-metadata" aria-label="{{ i18n "aria_series_metadata" }}"> | ||||||
|  |     <span class="post-meta-item"> | ||||||
|  |         {{ partial "icon.html" "newspaper" }} | ||||||
|  |         {{ i18n "post_count" (len .Data.Pages) }} | ||||||
|  |     </span> | ||||||
|  |  | ||||||
|  |     {{ if ne .Site.Params.readingtime false }} | ||||||
|  |         <span class="post-meta-item"> | ||||||
|  |             {{ partial "icon.html" "clock" }} | ||||||
|  |             {{ $readingtime := 0 }} | ||||||
|  |             {{ range .Data.Pages }} | ||||||
|  |                 {{ $readingtime = (add $readingtime .ReadingTime) }} | ||||||
|  |             {{ end }} | ||||||
|  |             {{ i18n "readingtime" $readingtime }} | ||||||
|  |         </span> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{ partial "post-meta-item/translations.html" . }} | ||||||
|  |     {{ if .File }} | ||||||
|  |         {{ partial "post-meta-item/viewsource.html" . }} | ||||||
|  |     {{ end }} | ||||||
|  | </div> | ||||||
							
								
								
									
										18
									
								
								layouts/partials/post-metadata/short.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								layouts/partials/post-metadata/short.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | {{ if or .Date .Params.authors .IsTranslated .Site.Params.readingtime }} | ||||||
|  |     <div class="post-metadata" aria-label="{{ i18n "aria_post_metadata" }}"> | ||||||
|  |         {{ if .Date }} | ||||||
|  |             <span class="post-meta-item" aria-label="date"> | ||||||
|  |                 {{ partial "icon.html" "calendar" }} | ||||||
|  |                 <time datetime="{{ .Date.Format "2006-01-02" }}" pubdate> | ||||||
|  |                     {{ i18n "long_date" (dict "Date" .Date "Data" .Site.Data) }} | ||||||
|  |                 </time> | ||||||
|  |             </span> | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ partial "post-meta-item/authors.html" . }} | ||||||
|  |         {{ partial "post-meta-item/translations.html" . }} | ||||||
|  |         {{ partial "post-meta-item/readingtime.html" . }} | ||||||
|  |         {{ partial "post-meta-item/series.html" . }} | ||||||
|  |         {{ partial "post-meta-item/tags.html" . }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										28
									
								
								layouts/partials/remote_figure.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								layouts/partials/remote_figure.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | {{ $hidecaption := index . "hidecaption" }} | ||||||
|  | {{ $type := index . "type" }} | ||||||
|  | {{ $src := index . "src" }} | ||||||
|  | {{ $alt := index . "alt" }} | ||||||
|  |  | ||||||
|  | {{ if index . "border" }} | ||||||
|  |     <figure class="border"> | ||||||
|  | {{ else }} | ||||||
|  |     <figure> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  |     {{ if eq $type "image" }} | ||||||
|  |         <img src="{{ $src }}" alt="{{ $alt }}" /> | ||||||
|  |     {{ else if eq $type "video" }} | ||||||
|  |         <video controls preload="metadata"> | ||||||
|  |             <source src="{{ $src }}" alt="{{ $alt }}"> | ||||||
|  |             {{ i18n "browser_no_video_support" }} | ||||||
|  |         </video> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{ if not $hidecaption }} | ||||||
|  |         {{ with $alt }} | ||||||
|  |             <figcaption> | ||||||
|  |                 {{ . | markdownify }} | ||||||
|  |             </figcaption> | ||||||
|  |         {{ end }} | ||||||
|  |     {{ end }} | ||||||
|  | </figure> | ||||||
							
								
								
									
										5
									
								
								layouts/partials/rss-link.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								layouts/partials/rss-link.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | <span class="rss-link"> | ||||||
|  |     {{ with .OutputFormats.Get "rss" }} | ||||||
|  |         <a href="{{ .Permalink }}" target="_blank" rel="noopener" aria-label="{{ i18n "aria_rss_link" }}">{{ partial "icon.html" "rss-feed" }}</a> | ||||||
|  |     {{ end }} | ||||||
|  | </span> | ||||||
							
								
								
									
										7
									
								
								layouts/partials/seo-tags/author.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								layouts/partials/seo-tags/author.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | {{ with .Params.authors }} | ||||||
|  |     <meta name="author" content="{{ delimit . ", " }}"> | ||||||
|  |  | ||||||
|  |     {{ range . }} | ||||||
|  |         <meta property="article:author" content="{{ . }}"> | ||||||
|  |     {{ end }} | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										9
									
								
								layouts/partials/seo-tags/description.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								layouts/partials/seo-tags/description.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | {{- with .Description -}} | ||||||
|  |     <p>{{- . | markdownify -}}</p> | ||||||
|  | {{- else -}} | ||||||
|  |     {{- with .Summary -}} | ||||||
|  |         {{- . -}} | ||||||
|  |     {{- else -}} | ||||||
|  |         {{- .Site.Params.description -}} | ||||||
|  |     {{- end -}} | ||||||
|  | {{- end -}} | ||||||
							
								
								
									
										15
									
								
								layouts/partials/seo-tags/link.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								layouts/partials/seo-tags/link.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | {{ range .AlternativeOutputFormats }} | ||||||
|  |     <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ $.Site.Title | plainify }}"> | ||||||
|  | {{ end }} | ||||||
|  | {{ with .OutputFormats.Get "rss" }} | ||||||
|  |     <link rel="start" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ $.Site.Title | plainify }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .PrevInSection }} | ||||||
|  |     <link rel="prev" title="{{ .Title | plainify }}" href="{{ .Permalink }}"> | ||||||
|  | {{ end }} | ||||||
|  | {{ with .NextInSection }} | ||||||
|  |     <link rel="next" title="{{ .Title | plainify }}" href="{{ .Permalink }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <link rel="canonical" href="{{ .Permalink }}"> | ||||||
							
								
								
									
										48
									
								
								layouts/partials/seo-tags/opengraph.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								layouts/partials/seo-tags/opengraph.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | <meta property="og:title" content="{{ .Title | plainify }}"> | ||||||
|  | <meta property="og:description" content="{{ (partial "seo-tags/description.html" .) | plainify }}"> | ||||||
|  | <meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}"> | ||||||
|  | <meta property="og:url" content="{{ .Permalink }}"> | ||||||
|  |  | ||||||
|  | {{ $images := $.Resources.ByType "image" }} | ||||||
|  | {{ $featured := $images.GetMatch "*feature*" }} | ||||||
|  | {{ if not $featured }} | ||||||
|  |     {{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with $featured }} | ||||||
|  |     <meta property="og:image" content="{{ $featured.Permalink }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .Section }} | ||||||
|  |     <meta property="article:section" content="{{ . }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $format := "2006-01-02T15:04:05-07:00" }} | ||||||
|  | {{ with .Date }} | ||||||
|  |     <meta property="article:published_time" content="{{ .Format $format }}"> | ||||||
|  | {{ end }} | ||||||
|  | {{ with .Lastmod }} | ||||||
|  |     <meta property="article:modified_time" {{ .Format $format | printf "content=%q" | safeHTMLAttr }}> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .Params.audio }} | ||||||
|  |     <meta property="og:audio" content="{{ . }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .Language.Lang }} | ||||||
|  |     <meta property="og:locale" content="{{ . }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .Site.Params.title }} | ||||||
|  |     <meta property="og:site_name" content="{{ . }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $videos := $.Resources.ByType "video" }} | ||||||
|  | {{ $featured_video := $videos.GetMatch "*feature*" }} | ||||||
|  | {{ if not $featured_video }} | ||||||
|  |     {{ $featured_video = $videos.GetMatch "{*cover*,*thumbnail*}" }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with $featured_video }} | ||||||
|  |     <meta property="og:video" content="{{ $featured_video.Permalink | absURL }}"> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										26
									
								
								layouts/partials/seo-tags/schema.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								layouts/partials/seo-tags/schema.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | <meta itemprop="name" content="{{ .Title | plainify }}"> | ||||||
|  | <meta itemprop="description" content="{{ (partial "seo-tags/description.html" .) | plainify }}"> | ||||||
|  |  | ||||||
|  | {{ $format := "2006-01-02T15:04:05-07:00" }} | ||||||
|  | {{ with .Date }} | ||||||
|  |     <meta itemprop="datePublished" content="{{ .Format $format }}"> | ||||||
|  | {{ end }} | ||||||
|  | {{ with .Lastmod }} | ||||||
|  |     <meta itemprop="dateModified" content="{{ .Format $format }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <meta itemprop="wordCount" content="{{ .WordCount }}"> | ||||||
|  |  | ||||||
|  | {{ $images := $.Resources.ByType "image" }} | ||||||
|  | {{ $featured := $images.GetMatch "*feature*" }} | ||||||
|  | {{ if not $featured }} | ||||||
|  |     {{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with $featured }} | ||||||
|  |     <meta itemprop="image" content="{{ $featured.Permalink }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with .Params.tags }} | ||||||
|  |     <meta itemprop="keywords" content="{{ delimit . ", " }}"> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										29
									
								
								layouts/partials/seo-tags/twitter-cards.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								layouts/partials/seo-tags/twitter-cards.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | {{ $images := $.Resources.ByType "image" }} | ||||||
|  | {{ $featured := $images.GetMatch "*feature*" }} | ||||||
|  | {{ if not $featured }} | ||||||
|  |     {{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ with $featured }} | ||||||
|  |     {{ $ratio := 0 }} | ||||||
|  |     {{ if gt .Width .Height }} | ||||||
|  |         {{ $ratio = div (float .Width) .Height }} | ||||||
|  |     {{ else }} | ||||||
|  |         {{ $ratio = div (float .Height) .Width }} | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{ if lt $ratio 1.75 }} | ||||||
|  |         <meta name="twitter:card" content="summary_large_image"> | ||||||
|  |     {{ else }} | ||||||
|  |         <meta name="twitter:card" content="summary"> | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <meta name="twitter:image" content="{{ $featured.Permalink }}"> | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <meta name="twitter:title" content="{{ .Title | plainify }}"> | ||||||
|  | <meta name="twitter:description" content="{{ (partial "seo-tags/description.html" .) | plainify }}"> | ||||||
|  |  | ||||||
|  | {{ with .Site.Social.twitter }} | ||||||
|  |     <meta name="twitter:site" content="@{{ . }}"> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										17
									
								
								layouts/partials/series-box.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								layouts/partials/series-box.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | {{ with (.GetTerms "series") }} | ||||||
|  |     {{ $series := slice }} | ||||||
|  |     {{ range . }} | ||||||
|  |         {{ $series = $series | append (printf `<a href="%s">%s</a>` .Permalink .LinkTitle) }} | ||||||
|  |     {{ end }} | ||||||
|  |  | ||||||
|  |     <div class="series-box"> | ||||||
|  |         {{ partial "icon.html" "info" }} | ||||||
|  |         {{ if gt (len $series) 1 }} | ||||||
|  |             This post is part of multiple series: | ||||||
|  |         {{ else }} | ||||||
|  |             This post is part of a series: | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ delimit $series ", " }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
| @@ -1,27 +1,50 @@ | |||||||
| <h2 class="header"> | <h2 class="header"> | ||||||
|     <a href="{{ "/" | absLangURL }}">{{ .Site.Title | markdownify }}</a> |     <a href="{{ .Site.Home.Permalink | absLangURL }}">{{ .Site.Title | markdownify }}</a> | ||||||
| </h2> | </h2> | ||||||
|  |  | ||||||
| <nav class="navbar"> | <div class="topbar"> | ||||||
|     {{ with .Site.GetPage "/" }} |     <nav class="navbar" aria-label="{{ i18n "aria_navbar" }}"> | ||||||
|     <a class="navbar-item" href="{{ .Permalink | absLangURL }}">{{ .Title }}</a> |         {{ with .Site.Home }} | ||||||
|  |             <a class="navbar-item{{ if $.IsHome }} active{{ end }}" href="{{ .Permalink | absLangURL }}">{{ .Title | markdownify }}</a> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|  |  | ||||||
|         {{ range .Site.Menus.main }} |         {{ range .Site.Menus.main }} | ||||||
|     <a class="navbar-item" href="{{ .URL | absLangURL }}">{{ .Name }}</a> |             {{ $isActive := false }} | ||||||
|  |             {{ if or ($.HasMenuCurrent .Menu .) ($.IsMenuCurrent .Menu .) }} | ||||||
|  |                 {{ $isActive = true }} | ||||||
|  |             {{ end }} | ||||||
|  |             <a class="navbar-item{{ if $isActive }} active{{ end }}" href="{{ .URL }}">{{ .Name }}</a> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|     </nav> |     </nav> | ||||||
|  |  | ||||||
|     {{ if .Site.IsMultiLingual }} |     {{ if .Site.IsMultiLingual }} | ||||||
| <nav class="langbar"> |         <details class="langpicker" aria-label="{{ i18n "aria_langpicker" }}"> | ||||||
|     {{ range .Site.Home.AllTranslations }} |             <summary> | ||||||
|  |                 {{- partial "icon.html" "world" -}} | ||||||
|     {{ if eq .Language $.Site.Language }} |             </summary> | ||||||
|     <b><a class="langbar-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></b> |             <ul class="languages" aria-label="{{ i18n "aria_langpicker_list" }}"> | ||||||
|     {{ else }} |                 {{ range .AllTranslations }} | ||||||
|     <a class="langbar-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> |                     <li> | ||||||
|  |                         <a class="langpicker-item{{ if eq .Language $.Site.Language }} active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> | ||||||
|  |                     </li> | ||||||
|                 {{ end }} |                 {{ end }} | ||||||
|  |  | ||||||
|  |                 {{ $site_translations := slice }} | ||||||
|  |                 {{ range .Site.Languages }} | ||||||
|  |                     {{ $site_translations = $site_translations | append .LanguageName }} | ||||||
|                 {{ end }} |                 {{ end }} | ||||||
| </nav> |  | ||||||
|  |                 {{ $translation_codes := slice }} | ||||||
|  |                 {{ range .AllTranslations }} | ||||||
|  |                     {{ $translation_codes = $translation_codes | append .Language }} | ||||||
|                 {{ end }} |                 {{ end }} | ||||||
|  |  | ||||||
|  |                 {{ range (.Site.Languages | complement $translation_codes) }} | ||||||
|  |                     <li> | ||||||
|  |                         <a class="langpicker-item unavailable" aria-disabled="true">{{ .LanguageName }}</a> | ||||||
|  |                     </li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         </details> | ||||||
|  |     {{ end }} | ||||||
|  | </div> | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								layouts/series/list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								layouts/series/list.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "files" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     <div class="series-taxonomy"> | ||||||
|  |         {{ with .Pages }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <li>{{ .Render "summary/series" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										32
									
								
								layouts/series/term.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								layouts/series/term.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "files" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |         {{ partial "rss-link.html" . }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     {{ partial "post-metadata/series.html" . }} | ||||||
|  |  | ||||||
|  |     {{ partial "description-or-summary.html" . }} | ||||||
|  |  | ||||||
|  |     <div class="page-list"> | ||||||
|  |         {{ with .Paginator.Pages.Reverse }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ $i := 0 }} | ||||||
|  |                 {{ $total := len $.Pages }} | ||||||
|  |                 {{ range . }} | ||||||
|  |                     {{ $i = add 1 $i }} | ||||||
|  |                     {{ .Scratch.Set "series_position" $i }} | ||||||
|  |                     {{ .Scratch.Set "series_total" $total }} | ||||||
|  |                     <li>{{ .Render "summary/post" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ partial "pagination.html" . }} | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										1
									
								
								layouts/shortcodes/abbr.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								layouts/shortcodes/abbr.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | <abbr title="{{ .Get "title" }}">{{ .Inner }}</abbr> | ||||||
							
								
								
									
										7
									
								
								layouts/shortcodes/aside.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								layouts/shortcodes/aside.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | <aside> | ||||||
|  |     {{ with .Inner }} | ||||||
|  |         {{ . | markdownify }} | ||||||
|  |     {{ else }} | ||||||
|  |         {{ errorf "The aside shortcode needs to be a closing one (similar to the highlight shortcode, see https://gohugo.io/templates/shortcode-templates/#inner" }} | ||||||
|  |     {{ end }} | ||||||
|  | </aside> | ||||||
| @@ -1,2 +1,15 @@ | |||||||
| {{ $resource := $.Page.Resources.GetMatch (.Get "src") }} | {{ $resource := $.Page.Resources.GetMatch (.Get "src") }} | ||||||
| {{ partial "figure.html" $resource }} |  | ||||||
|  | {{ $noborder := false }} | ||||||
|  | {{ if .Get "noborder" }} | ||||||
|  |     {{ $noborder = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $hidecaption := false }} | ||||||
|  | {{ if .Get "hidecaption" }} | ||||||
|  |     {{ $hidecaption = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  |     {{ partial "figure.html" (dict "src" $resource "noborder" $noborder "hidecaption" $hidecaption) }} | ||||||
|  | </p> | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								layouts/shortcodes/image.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								layouts/shortcodes/image.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | {{ $border := false }} | ||||||
|  | {{ if .Get "border" }} | ||||||
|  |     {{ $border = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $hidecaption := false }} | ||||||
|  | {{ if .Get "hidecaption" }} | ||||||
|  |     {{ $hidecaption = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  |     {{ partial "remote_figure.html" (dict "src" (.Get "src") "border" $border "hidecaption" $hidecaption "type" "image" "alt" (.Get "alt")) }} | ||||||
|  | </p> | ||||||
							
								
								
									
										10
									
								
								layouts/shortcodes/table.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								layouts/shortcodes/table.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | {{/* See https://willschenk.com/articles/2020/styling_tables_with_hugo/ */}} | ||||||
|  |  | ||||||
|  | {{ $class := "markdown" }} | ||||||
|  | {{ with .Get "class" }} | ||||||
|  |     {{ $class = delimit (slice $class .) " " }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $htmlTable := .Inner | markdownify }} | ||||||
|  | {{ $new := printf `<table class="%s">` $class }} | ||||||
|  | {{ (replace $htmlTable "<table>" $new) | safeHTML }} | ||||||
							
								
								
									
										13
									
								
								layouts/shortcodes/video.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								layouts/shortcodes/video.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | {{ $border := false }} | ||||||
|  | {{ if .Get "border" }} | ||||||
|  |     {{ $border = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | {{ $hidecaption := false }} | ||||||
|  | {{ if .Get "hidecaption" }} | ||||||
|  |     {{ $hidecaption = true }} | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  |     {{ partial "remote_figure.html" (dict "src" (.Get "src") "border" $border "hidecaption" $hidecaption "type" "video" "alt" (.Get "alt")) }} | ||||||
|  | </p> | ||||||
							
								
								
									
										22
									
								
								layouts/tags/list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								layouts/tags/list.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "tag" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     <div class="tag-list"> | ||||||
|  |         {{ with .Data.Terms.Alphabetical }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <a href="{{ .Page.Permalink }}"> | ||||||
|  |                         <li>{{ .Page.Title | markdownify }}</li> | ||||||
|  |                     </a> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  | {{ end }} | ||||||
							
								
								
									
										24
									
								
								layouts/tags/term.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								layouts/tags/term.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ partial "icon.html" "tag" }} | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |         {{ partial "rss-link.html" . }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     {{ partial "description-or-summary.html" . }} | ||||||
|  |     <div class="page-list"> | ||||||
|  |         {{ with .Paginator.Pages }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <li>{{ .Render "summary/post" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ partial "pagination.html" . }} | ||||||
|  | {{ end }} | ||||||
| @@ -1,41 +1,27 @@ | |||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
|  |  | ||||||
|     <h1> |     <h1> | ||||||
|  |         {{ if eq .Data.Singular "tag" }} | ||||||
|  |             {{ partial "icon.html" "tag" }} | ||||||
|  |         {{ else }} | ||||||
|             {{ partial "icon.html" "filter" }} |             {{ partial "icon.html" "filter" }} | ||||||
|     {{ i18n "filtering_for" .Title }} |  | ||||||
|     {{ if eq .Kind "term" }} |  | ||||||
|     <span class="rss-link"> |  | ||||||
|         {{ with .OutputFormats.Get "rss" }} |  | ||||||
|         <a href="{{ .Permalink }}">{{ partial "icon.html" "rss" }}</a> |  | ||||||
|         {{ end }} |  | ||||||
|     </span> |  | ||||||
|         {{ end }} |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|     </h1> |     </h1> | ||||||
|  |  | ||||||
| {{ if eq .Kind "taxonomy" }} |     <div class="taxonomy"> | ||||||
|  |         {{ with .Data.Terms.Alphabetical }} | ||||||
|             <ul> |             <ul> | ||||||
|     {{ range .Pages }} |                 {{ range . }} | ||||||
|                     <li> |                     <li> | ||||||
|         <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> |                         <a href="{{ .Page.Permalink }}">{{ .Page.Title | markdownify }}</a> | ||||||
|                     </li> |                     </li> | ||||||
|                 {{ end }} |                 {{ end }} | ||||||
|             </ul> |             </ul> | ||||||
|  |  | ||||||
| {{ else }} |  | ||||||
| {{ range .Paginator.Pages }} |  | ||||||
|     {{ .Render "summary" }} |  | ||||||
|         {{ else }} |         {{ else }} | ||||||
|             <div> |             <div> | ||||||
|                 {{ i18n "no_posts" }} |                 {{ i18n "no_posts" }} | ||||||
|             </div> |             </div> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|  |  | ||||||
| {{ if gt .Paginator.TotalPages 1 }} |  | ||||||
| <div class="pagination"> |  | ||||||
|     {{ template "_internal/pagination.html" . }} |  | ||||||
|     </div> |     </div> | ||||||
| {{ end }} | {{ end }} | ||||||
|  |  | ||||||
| {{ end }} |  | ||||||
|  |  | ||||||
| {{ end }} |  | ||||||
|   | |||||||
							
								
								
									
										29
									
								
								layouts/taxonomy/term.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								layouts/taxonomy/term.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | {{ define "main" }} | ||||||
|  |     <h1> | ||||||
|  |         {{ if eq .Data.Singular "tag" }} | ||||||
|  |             {{ partial "icon.html" "tag" }} | ||||||
|  |         {{ else }} | ||||||
|  |             {{ partial "icon.html" "filter" }} | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |         {{ .Title | markdownify }} | ||||||
|  |         {{ partial "rss-link.html" . }} | ||||||
|  |     </h1> | ||||||
|  |  | ||||||
|  |     {{ partial "description-or-summary.html" . }} | ||||||
|  |     <div class="page-list"> | ||||||
|  |         {{ with .Paginator.Pages }} | ||||||
|  |             <ul> | ||||||
|  |                 {{ range . }} | ||||||
|  |                     <li>{{ .Render "summary/post" }}</li> | ||||||
|  |                 {{ end }} | ||||||
|  |             </ul> | ||||||
|  |         {{ else }} | ||||||
|  |             <div> | ||||||
|  |                 {{ i18n "no_posts" }} | ||||||
|  |             </div> | ||||||
|  |         {{ end }} | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     {{ partial "pagination.html" . }} | ||||||
|  | {{ end }} | ||||||
| @@ -5,10 +5,10 @@ name = "bobatheme" | |||||||
| license = "MIT" | license = "MIT" | ||||||
| licenselink = "https://github.com/BBaoVanC/bobatheme/blob/master/LICENSE" | licenselink = "https://github.com/BBaoVanC/bobatheme/blob/master/LICENSE" | ||||||
| description = "Simple Hugo theme for boba.best and bbaovanc.com" | description = "Simple Hugo theme for boba.best and bbaovanc.com" | ||||||
| homepage = "https://boba.best/" | homepage = "https://bbaovanc.com" | ||||||
| tags = [] | tags = [] | ||||||
| features = [] | features = [] | ||||||
| min_version = "0.87.0" | min_version = "0.80.0" | ||||||
|  |  | ||||||
| [author] | [author] | ||||||
|   name = "bbaovanc" |   name = "bbaovanc" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user