diff --git a/pelicanconf.py b/pelicanconf.py index 1e25886..422e58b 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -26,27 +26,14 @@ MENUITEMS = ( ("2020", "/2020/"), ) DISPLAY_PAGES_ON_MENU = False DISPLAY_CATEGORIES_ON_MENU = False +# Pelican Blue theme +THEME = 'themes/pelican-blue' +DISPLAY_FOOTER = False + # Blue Penguin theme -THEME = 'themes/blue-penguin' -DISPLAY_HOME = False -FOOTER = "Contenuti rilasciati con licenza CC-SA-BY 4.0" - -# Gum theme -#THEME = 'themes/gum' - -# Foundation theme -#THEME = 'themes/foundation' -#FOUNDATION_FOOTER_TEXT = " " - -# Buruma theme -#THEME = 'themes/buruma' -#JINJA_ENVIRONMENT = { -# "extensions": ["jinja2.ext.i18n"], -#} -#PLUGINS = ["i18n_subsites", "pelican_alias", ] -#CATS_NOT_DROPDOWN = True -#MENUITEMS_NAVBAR = ( ("2020", "/2020/"), ) -#FOOTER = () +#THEME = 'themes/blue-penguin' +#DISPLAY_HOME = False +#FOOTER = "Contenuti rilasciati con licenza CC-SA-BY 4.0" # Feed generation is usually not desired when developing FEED_ALL_ATOM = None diff --git a/themes/pelican-blue/LICENSE b/themes/pelican-blue/LICENSE new file mode 100644 index 0000000..f93c58e --- /dev/null +++ b/themes/pelican-blue/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Parbhat Puri + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/pelican-blue/README.md b/themes/pelican-blue/README.md new file mode 100644 index 0000000..ab67da9 --- /dev/null +++ b/themes/pelican-blue/README.md @@ -0,0 +1,110 @@ +# Pelican-Blue + +Responsive theme for [Pelican](http://blog.getpelican.com/) Static Site Generator, Powered by [Python](https://www.python.org/) Programming language. + +## Demo + +You can see the theme in action at https://parbhatpuri.com + +### Screenshots + +![homepage-mobile](screenshot-mobile.png) + +![homepage-web](screenshot-web.png) + +![article](screenshot-article.png) + + +## Features + +* Responsive (Mobile Friendly Test on [Google](https://www.google.com/webmasters/tools/mobile-friendly/?url=https%3A%2F%2Fparbhatpuri.com%2F)) +* Fast (Load time tested on [Pingdom](http://tools.pingdom.com/fpt/#!/bT0Pry/https://parbhatpuri.com/): 540ms) +* Syntax highlighting for code blocks +* [Disqus](https://disqus.com/) for Comments +* Google Analytics +* RSS/ATOM feeds +* Easy to install + +## Installation + +You can install Pelican-Blue theme to your earlier Pelican project or create a new project from the Pelican [Quickstart](http://docs.getpelican.com/en/3.6.3/quickstart.html) guide. + +* Clone the repository + +``` +$ git clone https://github.com/Parbhat/pelican-blue.git +``` + +* Create a `THEME` variable in your `pelicanconf.py` file and set its value to the location of pelican-blue theme. + +```python +THEME = 'path-to-pelican-blue-theme' +``` + +If you have placed the `pelican-blue` theme inside your project's pelican-themes folder, change the `THEME` variable in `pelicanconf.py` to + +```python +THEME = 'pelican-themes/pelican-blue' +``` + +* Add the following code to your `pelicanconf.py` file to display the social icons. + +```python +SOCIAL = (('linkedin', 'https://www.linkedin.com/in/username'), + ('github', 'https://github.com/username'), + ('twitter', 'https://twitter.com/username'), + ) +``` + +* That's it! You have installed `pelican-blue`. To see the Theme in action run the devserver + +``` +make devserver +``` + +**Note:** If you are new to Pelican Static Site Generator, you can read the Pelican [Docs](http://docs.getpelican.com/en/3.6.3/) to learn the working of Pelican. You can also customize the theme after reading the documentation. + +## Settings + +### pelicanconf.py + +Pelican-Blue theme use the following settings. You can add the following to your `pelicanconf.py` to get the site shown in the screenshots. + +```python +SIDEBAR_DIGEST = 'Programmer and Web Developer' + +FAVICON = 'url-to-favicon' + +DISPLAY_PAGES_ON_MENU = True + +TWITTER_USERNAME = 'twitter-user-name' + +MENUITEMS = (('Blog', SITEURL),) +``` + +When developing locally, set the following variable: +``` +SITEURL = 'http://localhost:8000' +``` + +### publishconf.py + +When you are ready to publish your site add the following settings to `publishconf.py` file + +```python +SITEURL = 'http://your-domain-address' + +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml' + +MENUITEMS = (('Blog', SITEURL),) + +DISQUS_SITENAME = "" +GOOGLE_ANALYTICS = "" +``` + +For more information on publishing your site, read the publishing [docs](http://docs.getpelican.com/en/3.6.3/publish.html) + +## Contributing + +Your contributions are welcome to improve the `pelican-blue` theme. diff --git a/themes/pelican-blue/screenshot-article.png b/themes/pelican-blue/screenshot-article.png new file mode 100644 index 0000000..f09dffd Binary files /dev/null and b/themes/pelican-blue/screenshot-article.png differ diff --git a/themes/pelican-blue/screenshot-mobile.png b/themes/pelican-blue/screenshot-mobile.png new file mode 100644 index 0000000..7572886 Binary files /dev/null and b/themes/pelican-blue/screenshot-mobile.png differ diff --git a/themes/pelican-blue/screenshot-web.png b/themes/pelican-blue/screenshot-web.png new file mode 100644 index 0000000..784b0a6 Binary files /dev/null and b/themes/pelican-blue/screenshot-web.png differ diff --git a/themes/pelican-blue/static/css/pygments.css b/themes/pelican-blue/static/css/pygments.css new file mode 100644 index 0000000..bb3b601 --- /dev/null +++ b/themes/pelican-blue/static/css/pygments.css @@ -0,0 +1,64 @@ +.highlight .hll { background-color: #49483e } +.highlight { background: #272822; color: #f8f8f2 } +.highlight .c { color: #75715e } /* Comment */ +.highlight .err { color: #960050; background-color: #1e0010 } /* Error */ +.highlight .k { color: #66d9ef } /* Keyword */ +.highlight .l { color: #ae81ff } /* Literal */ +.highlight .n { color: #f8f8f2 } /* Name */ +.highlight .o { color: #f92672 } /* Operator */ +.highlight .p { color: #f8f8f2 } /* Punctuation */ +.highlight .cm { color: #75715e } /* Comment.Multiline */ +.highlight .cp { color: #75715e } /* Comment.Preproc */ +.highlight .c1 { color: #75715e } /* Comment.Single */ +.highlight .cs { color: #75715e } /* Comment.Special */ +.highlight .gd { color: #f92672 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gi { color: #a6e22e } /* Generic.Inserted */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #75715e } /* Generic.Subheading */ +.highlight .kc { color: #66d9ef } /* Keyword.Constant */ +.highlight .kd { color: #66d9ef } /* Keyword.Declaration */ +.highlight .kn { color: #f92672 } /* Keyword.Namespace */ +.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ +.highlight .kr { color: #66d9ef } /* Keyword.Reserved */ +.highlight .kt { color: #66d9ef } /* Keyword.Type */ +.highlight .ld { color: #e6db74 } /* Literal.Date */ +.highlight .m { color: #ae81ff } /* Literal.Number */ +.highlight .s { color: #e6db74 } /* Literal.String */ +.highlight .na { color: #a6e22e } /* Name.Attribute */ +.highlight .nb { color: #f8f8f2 } /* Name.Builtin */ +.highlight .nc { color: #a6e22e } /* Name.Class */ +.highlight .no { color: #66d9ef } /* Name.Constant */ +.highlight .nd { color: #a6e22e } /* Name.Decorator */ +.highlight .ni { color: #f8f8f2 } /* Name.Entity */ +.highlight .ne { color: #a6e22e } /* Name.Exception */ +.highlight .nf { color: #a6e22e } /* Name.Function */ +.highlight .nl { color: #f8f8f2 } /* Name.Label */ +.highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +.highlight .nx { color: #a6e22e } /* Name.Other */ +.highlight .py { color: #f8f8f2 } /* Name.Property */ +.highlight .nt { color: #f92672 } /* Name.Tag */ +.highlight .nv { color: #f8f8f2 } /* Name.Variable */ +.highlight .ow { color: #f92672 } /* Operator.Word */ +.highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +.highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ +.highlight .mf { color: #ae81ff } /* Literal.Number.Float */ +.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ +.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ +.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ +.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ +.highlight .sc { color: #e6db74 } /* Literal.String.Char */ +.highlight .sd { color: #e6db74 } /* Literal.String.Doc */ +.highlight .s2 { color: #e6db74 } /* Literal.String.Double */ +.highlight .se { color: #ae81ff } /* Literal.String.Escape */ +.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ +.highlight .si { color: #e6db74 } /* Literal.String.Interpol */ +.highlight .sx { color: #e6db74 } /* Literal.String.Other */ +.highlight .sr { color: #e6db74 } /* Literal.String.Regex */ +.highlight .s1 { color: #e6db74 } /* Literal.String.Single */ +.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ +.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ +.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ +.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ +.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ diff --git a/themes/pelican-blue/static/css/style.css b/themes/pelican-blue/static/css/style.css new file mode 100644 index 0000000..8f6d0f7 --- /dev/null +++ b/themes/pelican-blue/static/css/style.css @@ -0,0 +1,303 @@ +html { + font-family: 'Open Sans', 'helvetica', sans-serif; + background: white; + font-size: 14px; +} + +/* Titles */ +h1 { text-transform: uppercase } +h1, h2 { + font-weight: normal; + margin-top: 10px; + margin-bottom: 10px; +} + + +.title +{ + font-size: 2.5em; + text-align: center; + margin-bottom: 50px; + text-transform: none; + color: #3a7c78; + line-height: 1; + font-weight: 600; +} + +.latest +{- + padding: 10px 10px; + border-bottom: 1px solid #eee; +} + +.post_detail +{ + font-size: 2em; + line-height: 1em; +} + +.entry-content +{ + margin-top: 50px; + margin-bottom: 50px; + text-align: justify; + color: #333; +} + +article section .about +{ + font-size: 18px; + color: #444; + text-align: justify; +} + +article section .blog-post +{ + font-size: 16px; +} + +/* Body */ +body {margin: 0} +body > article, footer { + /*line-height: 1.6em; + display: block; + max-width: 700px; + margin: 40px auto auto 355px; + padding: 20px 80px 10px;*/ + line-height: 1.6em; + display: block; + margin: auto 5px auto 285px; + padding: 10px 5px 10px;*/ +} + +article ol.posts +{ + padding-left: 0; +} + +/* Articles */ +p.post_entry { +} +article > header { + list-style-type: none; + padding: 0px 10px; + box-shadow: 0 0 0 2px #3a7c78; + -moz-border-radius: 5px 0; + -webkit-border-radius: 5px 0; + border-radius: 5px 5px; +} +.article_left > h1 { + font-size: 20px; +} +.article_right { + background-color: white; +} +.post_list { + list-style-type: none; + padding: 10px 10px; + -moz-border-radius: 5px 0; + -webkit-border-radius: 5px 0; + border-radius: 5px 5px; +} + + +/* Links */; +a { color: #3a7c78; text-decoration:none; } +a:visited { color: #3a7c78; text-decoration:none; } +a:link { color:#3a7c78; text-decoration:none; } +a:active { color:#3a7c78; text-decoration:none; } +a:hover { text-decoration: underline; } + +/* Code */ +.highlight pre { + font-size: 14px; + overflow: auto; + padding: 8px; +} + +/* Sidebar */ +aside { + font-size: 14px; + width: 220px; height: 100%; + position: fixed; + top: 0; left: 0; + padding: 30px; + /*background-color: #2980b9;*/ + background-color: #3a7c78; + color: white; + box-shadow: 0 0 3px black; + text-align: center; + padding-top: 8%; + background-size: cover; +} + +aside > ul { + list-style-type: none; + padding: 0px 10px; + margin-top: 0px; +} +aside > h2 { + text-transform: uppercase; + font-size: 14px; + margin-bottom: 5px; +} + +#avatar { + width: 100px; + border-radius: 50%; + display: block; + margin: 0 10px 20px 0; + box-shadow: 0px 0px 5px 3px #3a7c78; + -webkit-transition: 200ms; + -moz-transition: 200ms; + -ms-transition: 200ms; + -o-transition: 200ms; + transition: 200ms; +} + +#avatar:hover { + box-shadow: 0px 0px 5px 3px white; +} + +.social +{ + display: inline-block; + margin-top: 40px; +} + +.nav +{ + display: block; + margin-left: -30px; + margin-right: -30px; + border: 1px solid #73d08a; + margin-top: 40px; +} + +.nav > ul > li +{ + font-size: 15px; +} + +.nav a +{ + color: #fff; + text-decoration: none; + transition: all .3s ease-in-out; +} + +.nav a:hover +{ + background-color: #73d08a; +} + +.list-bare +{ + list-style: none; + padding: 0; + margin: 0; +} + +.nav__link +{ + display: block; + padding: 0.77273rem 0; + border-bottom: 1px solid #73d08a; +} + + +.blog_roll_link +{ + display: block; + padding: 0.33147rem 0; + border-bottom: 3px solid #73d08a; +} + + +/*--------Responsive------------*/ + +@media (max-width: 800px) { + + aside { + left: 0; + max-width: none; + position: relative; + top: 0; + width: 100%; + padding: 0; + padding-top: 1px; + } + + .nav + { + margin-left: 0; + margin-right: 0; + } + + body > article { + margin: 0 auto; + padding-top: 5px; + padding: 1em; + } + + footer + { + padding: 1em; + margin-left: 1em; + margin-top: 0; + } + + #avatar { + height: 50px; + width: 50px; + margin: 10px auto; + } +} + +img { + max-width: 100%; +} + +#license { + font-size: small; + text-align: center; + position: relative; + bottom: -43vh; +} + +#license p { + margin-bottom: 5px; +} + +#license a { + color: #ffffff; + text-decoration: underline; +} + +#license img { + width: 85%; +} + +#live { + border: 1px dotted teal; + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + align-items: stretch; + height: 75vh; +} + +#embedded-video { + display: flex; + flex: 7; +} + +#embedded-chat { + display: flex; + flex: 2; +} + +#live iframe { + border: 0px; + flex: 1; +} diff --git a/themes/pelican-blue/static/images/icons/facebook-s.png b/themes/pelican-blue/static/images/icons/facebook-s.png new file mode 100644 index 0000000..aef44c7 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/facebook-s.png differ diff --git a/themes/pelican-blue/static/images/icons/facebook.png b/themes/pelican-blue/static/images/icons/facebook.png new file mode 100644 index 0000000..c600192 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/facebook.png differ diff --git a/themes/pelican-blue/static/images/icons/github.png b/themes/pelican-blue/static/images/icons/github.png new file mode 100644 index 0000000..6b7cf95 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/github.png differ diff --git a/themes/pelican-blue/static/images/icons/google-s.png b/themes/pelican-blue/static/images/icons/google-s.png new file mode 100644 index 0000000..0edf1c1 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/google-s.png differ diff --git a/themes/pelican-blue/static/images/icons/linkedin-s.png b/themes/pelican-blue/static/images/icons/linkedin-s.png new file mode 100644 index 0000000..54e4320 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/linkedin-s.png differ diff --git a/themes/pelican-blue/static/images/icons/linkedin.png b/themes/pelican-blue/static/images/icons/linkedin.png new file mode 100644 index 0000000..a2e4c55 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/linkedin.png differ diff --git a/themes/pelican-blue/static/images/icons/mail-s.png b/themes/pelican-blue/static/images/icons/mail-s.png new file mode 100644 index 0000000..ea65e07 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/mail-s.png differ diff --git a/themes/pelican-blue/static/images/icons/rss.png b/themes/pelican-blue/static/images/icons/rss.png new file mode 100644 index 0000000..6872c30 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/rss.png differ diff --git a/themes/pelican-blue/static/images/icons/twitter-s.png b/themes/pelican-blue/static/images/icons/twitter-s.png new file mode 100644 index 0000000..fa95241 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/twitter-s.png differ diff --git a/themes/pelican-blue/static/images/icons/twitter.png b/themes/pelican-blue/static/images/icons/twitter.png new file mode 100644 index 0000000..bfb85d2 Binary files /dev/null and b/themes/pelican-blue/static/images/icons/twitter.png differ diff --git a/themes/pelican-blue/templates/archives.html b/themes/pelican-blue/templates/archives.html new file mode 100644 index 0000000..2b2dd0e --- /dev/null +++ b/themes/pelican-blue/templates/archives.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block head %} + {{ super() }} + + + + + + + + + +{% endblock head %} +{% block content %} +
+
{{ article.summary }}
+ {% endif %} + @{{ article.author }} + in + [ {{ article.category }} ] + {{ article.locale_date }} ++ {% if articles_page.has_previous() %} + {% if articles_page.previous_page_number() == 1 %} + ~:) + {% else %} + ~:) + {% endif %} + {% endif %} + {{ articles_page.number }} ~ {{ articles_paginator.num_pages }} + {% if articles_page.has_next() %} + (:~ + {% endif %} +
+{% endif %} + diff --git a/themes/pelican-blue/templates/tag.html b/themes/pelican-blue/templates/tag.html new file mode 100644 index 0000000..a26f285 --- /dev/null +++ b/themes/pelican-blue/templates/tag.html @@ -0,0 +1,18 @@ +{% extends "index.html" %} +{% block head %} + {{ super() }} + + + + + + + + + +{% endblock head %} +{% block title %}{{ SITENAME }} - {{ tag }}{% endblock %} +{% block heading %} +
Comments !
+ + +