1
0
mirror of https://github.com/alanorth/hugo-theme-bootstrap4-blog.git synced 2025-05-16 17:13:54 +02:00

19 Commits

Author SHA1 Message Date
78eb7cf237 package.json: Bump version to 1.3.0 2019-04-22 18:55:15 +03:00
620cfa2366 CHANGELOG.md: Move unreleased changes to v1.3.0 2019-04-22 18:54:14 +03:00
b862745a0d Localize "by" and "in" strings in post meta
This became a problem when I added right-to-left language support.
When you mix RTL languages like Arabic with English (even for just
dates and small strings) everything becomes jumbled. For now I have
only added translations for English (default), Arabic, and Bulgarian.
2019-04-22 18:51:33 +03:00
9da05e7869 Regenerate style.rtl.css 2019-04-22 15:56:55 +03:00
1320168ebd .travis.yml: Use Ubuntu 16.04 "xenial" 2019-04-19 11:04:37 +03:00
9bb2ec06b0 .travis.yml: Use current and LTS Node.js versions
See: https://nodejs.org/en/about/releases/
2019-04-19 11:00:26 +03:00
9934368215 layouts: Set dir="auto" on some HTML elements
When a site is rendered in Arabic the root HTML element gets the
dir="rtl" attribute, but even Arabic sites might have an English
title or footer, etc so we should set dir="auto" on those elements.
2019-04-18 23:38:53 +03:00
2db85d8ab6 CHANGELOG.md: Add note about RTL support 2019-04-18 22:23:06 +03:00
e4876d98cf i18n/ar.yaml: Put arrow on the right side
This works. The way I understand it is that it needs to be "wrong"
before we run rtlcss so that it gets flipped to be correct when in
right-to-left mode.
2019-04-18 22:21:25 +03:00
6a3bdc53fd Add right-to-left version of CSS
This uses rtlcss to make a right-to-left version of the CSS and then
utilizes Hugo's Language variable to conditionally include it. Also,
we set the "dir" attribute on the HTML tag if the currently rendered
language is Arabic.
2019-04-18 22:19:42 +03:00
974203f6eb Use rtlcss to make styles appropriate for RTL languages 2019-04-18 22:17:28 +03:00
90d1a79e01 i18n/ar.yaml: Improved Arabic translation
Credit: Bayan Abid
2019-04-18 16:08:03 +03:00
ed144e2467 theme.toml: Update link 2019-04-18 10:49:43 +03:00
f71886b04f Add Arabic translation
Very poorly done using Google Translate, just so I can see how the
strings look and have a place to start fixing them.
2019-04-17 18:29:33 +03:00
4c15fdb00a CHANGELOG.md: Add unreleased changes 2019-04-17 13:58:33 +03:00
8ea73321a1 Update dependencies in package.json
To keep in sync with upstream bootstrap dependencies.
2019-04-17 13:58:07 +03:00
37187d06f3 package-lock.json: Bump version in lock file
I guess this gets updated when I re-run `npm install`...
2019-04-17 13:57:37 +03:00
fdefc2e541 CHANGELOG.md: Update formatting 2019-04-14 16:35:09 +03:00
3c81a6ca75 CHANGELOG.md: Fix my handle in notes 2019-04-14 16:32:31 +03:00
17 changed files with 262 additions and 33 deletions

View File

@ -1,10 +1,10 @@
language: node_js language: node_js
node_js: node_js:
- 6
- 8 - 8
- 9 - 10
- 11
script: npm run build script: npm run build
sudo: false sudo: false
dist: trusty dist: xenial
# vim: ts=2 sw=2 et # vim: ts=2 sw=2 et

View File

@ -4,11 +4,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.3.0] - 2019-04-22
### Added
- Arabic translation (@alanorth)
- Support for RTL CSS (@alanorth)
### Updated
- clean-css-cli 4.3.0
## [1.2.1] - 2019-04-14 ## [1.2.1] - 2019-04-14
### Added ### Added
- Dutch translation (@bit33) - Dutch translation #107 (@bit33)
- Remove Google+ icons (@bit33)
- Update templates for Hugo 0.55.0 (@aorth) ### Removed
- Google+ icons #108 (@bit33)
### Updated
- Template functions for Hugo 0.55.0 (@alanorth)
## [1.2.0] - 2019-02-13 ## [1.2.0] - 2019-02-13
### Updated ### Updated

View File

@ -1,5 +1,6 @@
{ {
"style": "static/css/style.css", "style": "static/css/style.css",
"stylertl": "static/css/style.rtl.css",
"cookieconsentcss": "static/css/cookieconsent.min.css", "cookieconsentcss": "static/css/cookieconsent.min.css",
"cookieconsentjs": "static/js/cookieconsent.min.js" "cookieconsentjs": "static/js/cookieconsent.min.js"
} }

View File

@ -1,3 +1,4 @@
style = "sha384-G5B34w7DFTumWTswxYzTX7NWfbvQEg1HbFFEg6ItN03uTAAoS2qkPS/fu3LhuuSA" style = "sha384-G5B34w7DFTumWTswxYzTX7NWfbvQEg1HbFFEg6ItN03uTAAoS2qkPS/fu3LhuuSA"
stylertl = "sha384-wxZc+CAOuj0Z/AJqCKfxerYzFw93KXl6wI/vGBVOmdqRyBrIv3STXmzcnBdyQK9C"
cookieconsentcss = "sha384-6iYDyQZuuNT7DcPJGXx241czdv2+GDGUcXRiqw1iXrjgYMTorSetxFP3JCMQMwnR" cookieconsentcss = "sha384-6iYDyQZuuNT7DcPJGXx241czdv2+GDGUcXRiqw1iXrjgYMTorSetxFP3JCMQMwnR"
cookieconsentjs = "sha384-PDjg2ZdS3khPzd53i18+7tzB32JVQfFMrTXYo21RqPgUmEVAPwIhxOUF/8sP79CS" cookieconsentjs = "sha384-PDjg2ZdS3khPzd53i18+7tzB32JVQfFMrTXYo21RqPgUmEVAPwIhxOUF/8sP79CS"

47
i18n/ar.yaml Normal file
View File

@ -0,0 +1,47 @@
- id: about
translation: "عن المُدَوَّنَة"
- id: home
translation: "الصَّفْحَة الرَّئيسِيَّة"
- id: recentPosts
translation: "المَنْشورات الأَخِيرَة"
- id: readMore
translation: "قِرَاءَة المَزِيد ←"
- id: translations
translation: "تَرْجَمَة"
- id: share
translation: "شَارِك"
- id: paginatorPrevious
translation: "الصَّفْحَة السَّابِقَة"
- id: paginatorNext
translation: "الصَّفْحَة التَّالِيَة"
- id: cookieMessage
translation: "هذا المَوْقِع يَسْتَخْدِم مَلَفَّات كُوكِيز"
- id: cookieLink
translation: ".اعْرَف أَكْثَر"
- id: cookieDismiss
translation: "!أُوَافِق"
- id: backToTop
translation: "العَوْدَة إِلَى الاَعْلَى"
- id: links
translation: "الرَِّوَابِط"
- id: authoredBy
translation: "الكاتب"
- id: postedIn
translation: "في"
- id: comma
translation: "،"

View File

@ -36,3 +36,9 @@
- id: links - id: links
translation: "Линкове" translation: "Линкове"
- id: authoredBy
translation: "от"
- id: postedIn
translation: "в"

View File

@ -36,3 +36,12 @@
- id: links - id: links
translation: "Links" translation: "Links"
- id: authoredBy
translation: "by"
- id: postedIn
translation: "in"
- id: comma
translation: ","

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ .Lang }}"> <html lang="{{ .Lang }}" {{ if eq .Lang "ar" }}dir="rtl"{{ end }}>
<head> <head>
{{ partial "head-meta.html" . }} {{ partial "head-meta.html" . }}
@ -12,8 +12,13 @@
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title> <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
{{ if eq .Lang "ar" }}
{{ "<!-- ar -->" | safeHTML }}
<link href="{{ .Site.BaseURL }}css/style.rtl.css" rel="stylesheet"{{ if not .Site.Params.disable_sri }} integrity="{{ .Site.Data.sri.styleltr}}" crossorigin="anonymous"{{ end }}>
{{ else }}
{{ "<!-- combined, minified CSS -->" | safeHTML }} {{ "<!-- combined, minified CSS -->" | safeHTML }}
<link href="{{ .Site.BaseURL }}css/style.css" rel="stylesheet"{{ if not .Site.Params.disable_sri }} integrity="{{ .Site.Data.sri.style}}" crossorigin="anonymous"{{ end }}> <link href="{{ .Site.BaseURL }}css/style.css" rel="stylesheet"{{ if not .Site.Params.disable_sri }} integrity="{{ .Site.Data.sri.style}}" crossorigin="anonymous"{{ end }}>
{{ end }}
{{ "<!-- RSS 2.0 feed -->" | safeHTML }} {{ "<!-- RSS 2.0 feed -->" | safeHTML }}
{{ with .OutputFormats.Get "rss" -}} {{ with .OutputFormats.Get "rss" -}}
@ -50,8 +55,8 @@
{{ if (ne .Site.Params.header_visible false) }} {{ if (ne .Site.Params.header_visible false) }}
<header class="blog-header"> <header class="blog-header">
<div class="container"> <div class="container">
<h1 class="blog-title"><a href="{{ .Site.BaseURL }}" rel="home">{{ .Site.Title | safeHTML }}</a></h1> <h1 class="blog-title" dir="auto"><a href="{{ .Site.BaseURL }}" rel="home">{{ .Site.Title | safeHTML }}</a></h1>
{{ if .Site.Params.description }}<p class="lead blog-description">{{ .Site.Params.description | markdownify }}</p>{{ end }} {{ if .Site.Params.description }}<p class="lead blog-description" dir="auto">{{ .Site.Params.description | markdownify }}</p>{{ end }}
</div> </div>
</header> </header>
{{ end }} {{ end }}
@ -76,7 +81,7 @@
{{ block "footer" . }} {{ block "footer" . }}
<footer class="blog-footer"> <footer class="blog-footer">
<p> <p dir="auto">
{{ if .Site.Copyright }} {{ if .Site.Copyright }}
{{ .Site.Copyright | markdownify }} {{ .Site.Copyright | markdownify }}
{{ else }} {{ else }}

View File

@ -2,8 +2,8 @@
<article class="blog-post"> <article class="blog-post">
<header> <header>
<h2 class="blog-post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2> <h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> by {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} in {{ partial "meta-terms.html" . }}{{ end }}</p> <p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
</header> </header>
{{ .Content }} {{ .Content }}
</article> <!-- /.blog-post --> </article> <!-- /.blog-post -->

View File

@ -58,8 +58,8 @@
<article class="blog-post"> <article class="blog-post">
<header> <header>
<h2 class="blog-post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2> <h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> by {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} in {{ partial "meta-terms.html" . }}{{ end }}</p> <p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
</header> </header>
{{ .Content }} {{ .Content }}

View File

@ -2,8 +2,8 @@
<article class="blog-post"> <article class="blog-post">
<header> <header>
<h2 class="blog-post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2> <h2 class="blog-post-title" dir="auto"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
<p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> by {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} in {{ partial "meta-terms.html" . }}{{ end }}</p> <p class="blog-post-meta"><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format $dateFormat }}</time> {{ i18n "authoredBy" }} {{ .Params.author | default .Site.Params.author }}{{ if or (.Params.categories) (.Params.tags) }} {{ i18n "postedIn" }} {{ partial "meta-terms.html" . }}{{ end }}</p>
</header> </header>
{{ .Summary }} {{ .Summary }}
<a href='{{ .Permalink }}'>{{ i18n "readMore" }}</a> <a href='{{ .Permalink }}'>{{ i18n "readMore" }}</a>

View File

@ -1,8 +1,8 @@
{{ if .Params.categories }} {{ if .Params.categories }}
<i class="fa fa-folder" aria-hidden="true"></i>&nbsp;{{ range $index, $category := .Params.categories }}{{ if gt $index 0 }}, {{ end }}<a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}" rel="category tag">{{ . }}</a>{{ end }} <i class="fa fa-folder" aria-hidden="true"></i>&nbsp;{{ range $index, $category := .Params.categories }}{{ if gt $index 0 }}{{ i18n "comma" }} {{ end }}<a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}" rel="category tag">{{ . }}</a>{{ end }}
{{ end }} {{ end }}
{{ if .Params.tags }} {{ if .Params.tags }}
<i class="fa fa-tag" aria-hidden="true"></i>&nbsp;{{ range $index, $tag := .Params.tags }}{{ if gt $index 0 }}, {{ end }}<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" rel="tag">{{ . }}</a>{{ end }} <i class="fa fa-tag" aria-hidden="true"></i>&nbsp;{{ range $index, $tag := .Params.tags }}{{ if gt $index 0 }}{{ i18n "comma" }} {{ end }}<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" rel="tag">{{ . }}</a>{{ end }}
{{ end }} {{ end }}
{{- /* vim: set ts=2 sw=2 et: */}} {{- /* vim: set ts=2 sw=2 et: */}}

View File

@ -2,7 +2,7 @@
{{ if and (.Site.Params.sidebar) (isset .Site.Params.sidebar "about") }} {{ if and (.Site.Params.sidebar) (isset .Site.Params.sidebar "about") }}
<section class="sidebar-module sidebar-module-inset"> <section class="sidebar-module sidebar-module-inset">
<h4>{{ i18n "about" }}</h4> <h4>{{ i18n "about" }}</h4>
<p>{{ .Site.Params.sidebar.about | markdownify }}</p> <p dir="auto">{{ .Site.Params.sidebar.about | markdownify }}</p>
</section> </section>
{{ end }} {{ end }}

151
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "hugo-theme-bootstrap4-blog", "name": "hugo-theme-bootstrap4-blog",
"version": "1.1.7", "version": "1.3.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -192,9 +192,9 @@
} }
}, },
"clean-css-cli": { "clean-css-cli": {
"version": "4.2.1", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.2.1.tgz", "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.3.0.tgz",
"integrity": "sha512-ST2yi9F2kAmLRs9phSpGRUm44SbRy29QGm1OuAKfTU0KCLilFMTcz+/Fxhbdi5GrsjIMhTBdFUQhc55CjM3Isw==", "integrity": "sha512-8GHZfr+mG3zB/Lgqrr27qHBFsPSn0fyEI3f2rIZpxPxUbn2J6A8xyyeBRVTW8duDuXigN0s80vsXiXJOEFIO5Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"clean-css": "^4.2.1", "clean-css": "^4.2.1",
@ -219,6 +219,27 @@
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true "dev": true
}, },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"colors": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
"integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
"dev": true
},
"combined-stream": { "combined-stream": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
@ -229,9 +250,9 @@
} }
}, },
"commander": { "commander": {
"version": "2.17.1", "version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true "dev": true
}, },
"concat-map": { "concat-map": {
@ -363,6 +384,24 @@
"pinkie-promise": "^2.0.0" "pinkie-promise": "^2.0.0"
} }
}, },
"findup": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz",
"integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=",
"dev": true,
"requires": {
"colors": "~0.6.0-1",
"commander": "~2.1.0"
},
"dependencies": {
"commander": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
"integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
"dev": true
}
}
},
"font-awesome": { "font-awesome": {
"version": "4.7.0", "version": "4.7.0",
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
@ -506,6 +545,12 @@
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
}, },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
@ -1022,6 +1067,48 @@
"pinkie": "^2.0.0" "pinkie": "^2.0.0"
} }
}, },
"postcss": {
"version": "6.0.23",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
"dev": true,
"requires": {
"chalk": "^2.4.1",
"source-map": "^0.6.1",
"supports-color": "^5.4.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"process-nextick-args": { "process-nextick-args": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
@ -1156,6 +1243,50 @@
"glob": "^7.0.5" "glob": "^7.0.5"
} }
}, },
"rtlcss": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-2.4.0.tgz",
"integrity": "sha512-hdjFhZ5FCI0ABOfyXOMOhBtwPWtANLCG7rOiOcRf+yi5eDdxmDjqBruWouEnwVdzfh/TWF6NNncIEsigOCFZOA==",
"dev": true,
"requires": {
"chalk": "^2.3.0",
"findup": "^0.1.5",
"mkdirp": "^0.5.1",
"postcss": "^6.0.14",
"strip-json-comments": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@ -1330,6 +1461,12 @@
"get-stdin": "^4.0.1" "get-stdin": "^4.0.1"
} }
}, },
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",

View File

@ -1,6 +1,6 @@
{ {
"name": "hugo-theme-bootstrap4-blog", "name": "hugo-theme-bootstrap4-blog",
"version": "1.2.1", "version": "1.3.0",
"description": "A Bootstrap v4 theme for the Hugo static site generator.", "description": "A Bootstrap v4 theme for the Hugo static site generator.",
"repository": { "repository": {
"type": "git", "type": "git",
@ -8,20 +8,22 @@
}, },
"scripts": { "scripts": {
"build:css": "node-sass --output-style expanded --precision 6 source/scss/style.scss static/css/style.css.tmp && cleancss --level 1 static/css/style.css.tmp -o static/css/style.css", "build:css": "node-sass --output-style expanded --precision 6 source/scss/style.scss static/css/style.css.tmp && cleancss --level 1 static/css/style.css.tmp -o static/css/style.css",
"build:ltrcss": "rtlcss -s static/css/style.css.tmp static/css/style.rtl.css.tmp && cleancss --level 1 static/css/style.rtl.css.tmp -o static/css/style.rtl.css",
"build:fonts": "cp node_modules/font-awesome/fonts/* static/fonts", "build:fonts": "cp node_modules/font-awesome/fonts/* static/fonts",
"build:cookieconsent": "cp node_modules/cookieconsent/build/cookieconsent.min.css static/css && cp node_modules/cookieconsent/build/cookieconsent.min.js static/js", "build:cookieconsent": "cp node_modules/cookieconsent/build/cookieconsent.min.css static/css && cp node_modules/cookieconsent/build/cookieconsent.min.js static/js",
"build:generatesri": "node build/sri.js > data/sri.toml", "build:generatesri": "node build/sri.js > data/sri.toml",
"build": "npm run build:css && npm run build:fonts && npm run build:cookieconsent && npm run build:generatesri && npm run clean", "build": "npm run build:css && npm run build:ltrcss && npm run build:fonts && npm run build:cookieconsent && npm run build:generatesri && npm run clean",
"clean": "rm static/css/style.css.tmp" "clean": "rm static/css/style.css.tmp static/css/style.rtl.css.tmp"
}, },
"keywords": "hugo", "keywords": "hugo",
"author": "Alan Orth", "author": "Alan Orth",
"license": "CC-BY-3.0", "license": "CC-BY-3.0",
"devDependencies": { "devDependencies": {
"bootstrap": "~4.3.1", "bootstrap": "~4.3.1",
"clean-css-cli": "^4.2.1", "clean-css-cli": "^4.3.0",
"cookieconsent": "3.0.4", "cookieconsent": "3.0.4",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"node-sass": "^4.11.0" "node-sass": "^4.11.0",
"rtlcss": "^2.4.0"
} }
} }

9
static/css/style.rtl.css Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
name = "Hugo Bootstrap v4 Blog" name = "Hugo Bootstrap v4 Blog"
license = "CC-BY-3.0" license = "CC-BY-3.0"
licenselink = "https://github.com/alanorth/hugo-theme-bootstrap4/blob/master/LICENSE.txt" licenselink = "https://github.com/alanorth/hugo-theme-bootstrap4-blog/blob/master/LICENSE.txt"
description = "A simple Hugo theme based on the Bootstrap v4 blog example." description = "A simple Hugo theme based on the Bootstrap v4 blog example."
homepage = "https://github.com/alanorth/hugo-theme-bootstrap4" homepage = "https://github.com/alanorth/hugo-theme-bootstrap4-blog"
tags = ["bootstrap", "blog", "font awesome"] tags = ["bootstrap", "blog", "font awesome"]
features = ["responsive", "blog"] features = ["responsive", "blog"]
min_version = 0.25 min_version = 0.25