Giter Site home page Giter Site logo

pixyll's Introduction

Pixyll

pixyll.com

Pixyll screenshot

Pixyll is a simple, beautiful theme for Jekyll that emphasizes content rather than aesthetic fluff. It's mobile first, fluidly responsive, and delightfully lightweight.

It's pretty minimal, but leverages large type and drastic contrast to make a statement, on all devices.

This Jekyll theme was crafted with <3 by John Otander (@4lpine).

中文版 https://github.com/ee0703/pixyll-zh-cn.

Getting Started

If you're completely new to Jekyll, I recommend checking out the documentation at https://jekyllrb.com/ or there's a tutorial by Smashing Magazine.

$ git clone [email protected]:johno/pixyll.git
$ cd pixyll
$ gem install bundler # If you don't have bundler installed
$ bundle install

Verify your Jekyll version

It's important to also check your version of Jekyll since this project uses new baseurl features that are only supported in 3.3+.

Fork, then clone

Fork the repo, and then clone it so you've got the code locally.

Modify the _config.yml

The _config.yml located in the root of the Pixyll directory contains all of the configuration details for the Jekyll site. The defaults are:

# Site settings
title: Pixyll
email: [email protected]
author: John Otander
description: "A simple, beautiful theme for Jekyll that emphasizes content rather than aesthetic fluff."
baseurl: ""
url: "https://pixyll.com/"

# Build settings
markdown: kramdown
permalink: pretty
paginate: 3

Jekyll Serve

Then, start the Jekyll Server. I always like to give the --watch option so it updates the generated HTML when I make changes.

$ jekyll serve --watch

Now you can navigate to localhost:4000 in your browser to see the site.

Using Github Pages

You can host your Jekyll site for free with Github Pages. Click here for more information.

A configuration tweak if you're using a gh-pages sub-folder

In addition to your github-username.github.io repo that maps to the root url, you can serve up sites by using a gh-pages branch for other repos so they're available at github-username.github.io/repo-name.

This will require you to modify the _config.yml like so:

# Site settings
title: Repo Name
email: [email protected]
author: John Otander
description: "Repo description"
baseurl: "/repo-name"
url: "https://github-username.github.io"

# Build settings
markdown: kramdown
permalink: pretty
paginate: 3

This will ensure that the the correct relative path is constructed for your assets and posts. Also, in order to run the project locally, you will need to specify the blank string for the baseurl: $ jekyll serve --baseurl ''.

If you don't want the header to link back to the root url

You will also need to tweak the header include /{{ site.baseurl }}:

<header class="site-header px2 px-responsive">
  <div class="mt2 wrap">
    <div class="measure">
      <a href="{{ "/" | relative_url }}" class="site-title">{{ site.title }}</a>
      <nav class="site-nav">
        {% include navigation.html %}
      </nav>
    </div>
  </div>
</header>

A relevant Jekyll Github Issue: jekyll/jekyll#332

Contact Form

The contact form uses https://formspree.io/. It will require you to fill the form out and submit it once, before going live, to confirm your email.

More setup instructions and advanced options can be found at https://formspree.io

Disqus

To configure Disqus, set up a Disqus site with the same name as your site. Then, in _config.yml, edit the disqus_shortname value to enable Disqus.

Customizing the CSS

All variables can be found in the _sass/_variables.scss file, toggle these as you'd like to change the look and feel of Pixyll.

Page Animation

If you would like to add a fade-in-down effect, you can add animated: true to your _config.yml.

AnchorJS

AnchorJS: A JavaScript utility for adding deep anchor links to existing page content. AnchorJS is lightweight, accessible, and has no dependencies. You can turn it on by toggling enable_anchorjs. Because it offers many ways for customization, tweaks should be done in _includes/footer.html. Default settings after turning AnchorJS on are:

<script>
    anchors.options.visible = 'always';
    anchors.add('article h2, article h3, article h4, article h5, article h6');
</script>

See documentation for more options.

Put in a Pixyll Plug

If you want to give credit to the Pixyll theme with a link to https://pixyll.com/ or my personal website https://johno.com/ somewhere, that'd be awesome. No worries if you don't.

Web analytics and search engines

You can measure visits to your website either by using Google Analytics tracking embed or the more advanced Google Tag Manager container.

  • For Google Analytics set up the value for google_analytics, it should be something like google_analytics: UA-XXXXXXXX-X or google_analytics: G-XXXXXXX depending on whether you are using universal analytics or not.
  • For Google Tag Manager set up the value for google_tag_manager, it should be something like: google_tag_manager: GTM-XXXXX.
  • Do not set both of above methods because this will cause conflicts and skew your reporting data.
  • Remember that you need to properly configure the GTM container in its admin panel if you want it to work. More info is available in GTM's docs.

Your website is, by default, set to be allowed for crawling and indexing by search engines. (Unless you made yourself a custom robots.txt file). You can use front matter settings on each page to control how search engines will it. Sometimes you may want to exclude a particular page from indexing or forbid Google to store a copy of your page in its cache. It is up to you. Use the meta_robots frontmatter key and assign values based on this table. Some examples:

# exclude page from index
meta_robots: noindex

# allow indexing, disallow caching
meta_robots: noarchive

# allow indexing, disallow crawling links
meta_robots: nofollow

# disallow indexing, follow links
meta_robots: noindex,follow

In order to get more information about your website's status in search engines, you can register it in Google Search Console and/or Bing Webmaster Tools. Both these tools will ask you to authorize your website with them and there are couple of ways to do that. Pixyll supports verification via meta tags - just fill in values for google_verification and/or bing_verification in _config.yml, the verification strings and meta tags will then be added automatically.

If search engine optimization is your thing, you can also set up meta_description values for each page/post. By default Pixyll uses summary to populate the <meta name="description" content="..."> tag and falls back to description from _config.yml if summary is not present in page/post's front matter. The summary is also used for generating Open Graph tags. Why would you want to use a dedicated variable for meta description? Because character limit to properly display this description in search results (as a snippet) is way smaller than in Open Graph. It is recommended to keep it at 155-160 characters, for more in-depth info read this article.

And lastly - if you happen to write in language other than English be sure to change og_locale in _config.yml to reflect it.

Progressive Web App

Pixyll supports features of a progressive web app (PWA). As a PWA, your site's home page can be installed as a shortcut or an app icon on a mobile device. Also, certain assets are cached so the site can be accessed should the device be offline from the network.

Pixyll supports these features because it provides a Javascript file that acts as a service worker in the browser and has a JSON file with a web manifest. By default, these are configured to the settings of Pixyll, but you should consider cutomizing them to your specific site:

  1. Provide a different version of splash-512x512.png which is the loading screen for your offline app.
  2. A favicon-192x192.png for the app icon (if you haven't already).
  3. In sw.js, list any other files or pages you want to add to the list of cached artifacts.

For more information on PWAs:

Enjoy

I hope you enjoy using Pixyll. If you encounter any issues, please feel free to let me know by creating an issue. I'd love to help.

Upgrading Pixyll

Pixyll is always being improved by its users, so sometimes one may need to upgrade.

Ensure there's an upstream remote

If git remote -v doesn't have an upstream listed, you can do the following to add it:

git remote add upstream https://github.com/johno/pixyll.git

Pull in the latest changes

git pull upstream master

There may be merge conflicts, so be sure to fix the files that git lists if they occur. That's it!

Thanks to the following

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Forking

There is a guide to forking Pixyll.

pixyll's People

Contributors

0b01 avatar achembarpu avatar adammenges avatar alxmjo avatar ashawley avatar atouchet avatar barryvdh avatar bartekpl avatar cheeyeo avatar claman avatar cristianzsh avatar devng avatar dittodhole avatar fialhorenato avatar hackerkid avatar hnarayanan avatar johno avatar joshfindit avatar jtremback avatar karmeye avatar krmaxwell avatar mgrachev avatar mryadro avatar muodov avatar ortham avatar plttn avatar shrutirij avatar steef435 avatar timothygu avatar tom-galvin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pixyll's Issues

Page load effect

What are your thoughts on having a smooth and subtle effect when loading the site pages? Maybe something like a top-down fast fade of the page.

Animsition seems like a nice library for this purpose. There's also the more general animate.css.

I understand the effort to keep the theme as simple and as minimalistic as possible, but I do think a subtle not-so-flashy effect could be nice.

Content doesn't show for long posts on Google Chrome browser on android

Hi,
This is a great theme. I have been using it since last 2 days. I noticed that when

animated is set to true AND
a post is long(-ish) AND
on google chrome browser on Samsung Galaxy S4

The webpage doesn't show up completely. The bottom part of the post doesn't show up. You only see some white space. This does not happen on Firefox browser on Samsung Galaxy S4. I have images of my phone below:

Post clipped on google chrome:
google-chome

Post correctly showing (not clipped) on mozilla firefox:
mozilla-firefox

You can see it for yourself at http://www.perfectlyrandom.org/pixyll/jekyll/pixyll/2014/06/10/see-pixyll-in-action/ if you have an S4 phone.

I am not sure if issue can be solved by us or if it is the fault of Google chrome on android. I can remove/resolve the issue if we cannot fix it.

Thanks!

Configure twitter cards

Sample code

Assumes additional properties in _config.yaml

{% if page.image.feature %}<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="{{ site.url }}/images/{{ page.image.feature }}">
{% else %}<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="{% if page.image.thumb %}{{ site.url }}/images/{{ page.image.thumb }}{% else %}{{ site.url }}/images/{{ site.logo }}{% endif %}">{% endif %}
<meta name="twitter:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
<meta name="twitter:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
<meta name="twitter:creator" content="@{{ site.owner.twitter }}">{% endif %}

Pagination doesn't work for more than 3 pages

My pull request was denied, but here's a fix for pagination.html:

<div class="pagination clearfix mb1 mt4">
  <div class="left">
    {% if paginator.next_page %}
        <a class="pagination-item" href="{{ site.baseurl }}/page{{paginator.next_page}}">Older</a>
    {% else %}
      <span class="pagination-item disabled">Older</span>
    {% endif %}
  </div>
  <div class="right">
    {% if paginator.previous_page %}
      {% if paginator.page > 2 %}
        <a class="pagination-item" href="{{ site.baseurl }}/page{{paginator.previous_page}}">Newer</a>
      {% else %}
        <a class="pagination-item" href="{{ site.baseurl }}/">Newer</a>
      {% endif %}
    {% else %}
      <span class="pagination-item disabled">Newer</span>
    {% endif %}
  </div>
</div>

Website title and navigation links alignment bug

There's a weird thing happening for me, but I'm not sure tell if it's only for me or not.

I'm running chrome (chromium to be exact) version 37.0.2062.94.

Try opening pixyll.com or aminb.org and pay close attention to the position of navigation links: they are slightly lower than the website title.

before-refresh

Now, refresh the page and they are where they supposed to be!!

after-refresh

Error

I have a error like that :
Liquid Exception: Included file '_includes/pagination.html' not found in pixyll/index.html

Sass instructions missing in README

Hi there!

I just wanted to dry-run your pixyll theme and cloned the repo etc. Unfortunately, it doesn't work out of the box, if one doesn't run a sass compiler to get a proper pixyll.css file.

Would you mind updating the readme accordingly? Otherwise it could be very annoying for other users.

Also, running trying to compile css/pixyll.scss doesn't work due to error:

Syntax error: Invalid CSS after "-": expected number or function, was "--"
        on line 1 of css/pixyll.scss
  Use --trace for backtrace.

Title positioning on an iPad

(I'm not sure if you're aware of this.) The position of the title when viewing Pixyll using Safari on an iPad doesn't responsively center, but the nav menu does, leading to the following effect:

img_0044

(Alternatively, the nav centers when it doesn't need to and the title stays in the right place.)

I am not sure how to debug this while sitting at my computer because the corresponding media queries work well here. Is there something you'd like me to try or information I could provide to help resolve this?

Merriweather font?

@johnotander First of all, congrats for the beautiful work! Followed you to see more of your stuff in future.

As to main point of this issue, have you considered Merriweather as the main font? I'm not saying PT Serif isn't beautiful, just asking :)

More color highlighting

This is a great theme and I love it. I am just not a fan of solarized. I was wondering if it was possible to get syntax highlighting like this: http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html

I like the color scheme but I especially like the grey background with the oval-shaped code blocks which have solid edges.

I am being picky, I know :).

I spent an evening trying to do this but I couldn't get it to work. Something with character encoding stumbled me.

Much gratitude to anyone who would be willing to help. Thanks!

Improve Typography

OK, so I finally got this running on my website, aminb.org and it's awesome 😃

However, I think

  • with the current type face, the beautiful Merriweather, line heights for the paragraphs are a bit too small compared to the font size. Maybe we could decrease the font size a bit, or increase the line heights? Take a look at this page for instance.
  • the h1 tags are too big on the post layout and usually even short titles span across multiple lines. Maybe they could become a bit smaller? (here's two examples)

What do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.