StructuredData-RDFa-Lite

This theme provides structured data markup in the form of RDFa Lite (https://www.w3.org/TR/rdfa-lite/) for maximum human readability and smaller files (less repetition than JSON-LD (https://json-ld.org/), microdata (https://www.w3.org/TR/microdata/), or full RDFa (https://rdfa.info/). Additionally, for best practices purposes it is based on HTML5 Boilerplate (v7.0.1, https://html5boilerplate.com/), hence some additional directories (css, js, html5-boilerplate-docs, .colophon) and files (.editorconfig, .htaccess, 404.html, site.webmanifest, robots.txt, humans.txt, browserconfig.xml).

The favicon.ico, icon.png, tile.png, and tile-wide.png files are images provided by HTML5 Boilerplate and left as-is so that you can get an idea for the sizes involved. They should, of course, be replaced ASAP with images appropriate to YOUR site.

The structured data schemas (https://schema.org/) currently implemented are WebPage (AboutPage, ContactPage), Blog, BlogPosting, and Event.

In future, I plan to

  • implement schemas: Review, Book, HowTo, and CollectionPage (ImageGallery).
  • integrate responsiveness
  • better (actually) utilize SASS.
  • implement breadcrumbs

Welcome to your new Jekyll theme! In this directory, you'll find the files you need to be able to package up your theme into a gem. Put your layouts in _layouts, your includes in _includes, your sass files in _sass and any other assets in assets.

To experiment with this code, add some sample content and run bundle exec jekyll serve – this directory is setup just like a Jekyll site!

TODO: Delete this and the text above, and describe your gem

Installation

Add this line to your Jekyll site's Gemfile:

gem "jektheme"

And add this line to your Jekyll site's _config.yml:

theme: jektheme

And then execute:

$ bundle

Or install it yourself as:

$ gem install jektheme

Usage

_layouts

----------------------------------------------------------------------

sitehome.html is a slight modification from default.html based on the idea that some of the logic needed to have just one template seemed like an unnecessary burden to put on every page in the site. I may re-engineer things or just change my mind about that later. default.html the base for everything else aboutPage.html you should have one. sets WebPage type for you. contactPage.html you should have one. sets WebPage type for you. contactform.html is included in assets if you want to modify mine bloghome.html schema.org compliant Blog (sort of, see notes in comments), lists and paginates all your posts event.html schema.org compliant Event, uses the BlogPosting layout. See eventform.html for some other Event types. page.html just the default generated from "jekyll new" post.html schema.org compliant BlogPosting (sort of, see notes in bloghome)

autopage_category.html autopage_tags.html the templates that paginate-v2 autopages expect.

----------------------------------------------------------------------

_includes

----------------------------------------------------------------------

blogList.html implements pagination-v2 logic and uses autopages for tags and categories catag.html where the list of linked categories and tags are generated catag-old.html before autopages, a single page list of categories, and another for tags were generated. These links go there. footer.html contact info for you, javascript library inclusion, google analytics nav.html site navigation included on each page. the current page link is disabled for proper usability.

----------------------------------------------------------------------

assets

----------------------------------------------------------------------

Everything in the assets directory should be moved out to the root directory of your site where they are EXPECTED (.colophon is optional and just for your information). The images are there mostly for your sizing reference when you create your own. Obviously, customize away, nothing needs to remain as-is.

There is only a slight (real) difference between HTML5 Boilerplate's 404.html and the one that Jekyll generates when you create a new instantiation, so what you want to do there is entirely up to you.

Actually, eventform.html and contactform.html are forms that I use on my sites to capture data from the public, feel free to mod and use if you're incorporating Events or don't have any other contact type plans.

----------------------------------------------------------------------

_sass

----------------------------------------------------------------------

I'm just learning Sass, so the only thing in _sass directory is the pieces for normalize-scss, read about it in the .colophon

----------------------------------------------------------------------

_config.yml

----------------------------------------------------------------------

"title/sitemark": Page titles will be created from either "sitemark - page.title" or "page.title - site.title", so config sitemark if so desired. "email": is used in several places with nothing to prevent spammers from scraping it, you have been warned. "author": is used in multiple places in the metadata. "scPath": the path to your (java)scripts, I recommend "/scripts/" "stPath": the path to your CSS, I recommend "/styles/"

The jekyll-paginate-v2 plugin is expected

---- These are OPTIONAL ----

"specialty": used in WebPage Schema: One of the domain specialities to which this web page's content applies. "google_analytics": your google_analytics code "javascriptON": set if you want the HTML5 Boilerplate JS recommended libraries (main.js, plugins.js, jquery-3.3.1.min.js, modernizr-3.6.0.min.js) included at the bottom of each page "copynotice": something like "Copyright Acme 1999 - All rights reserved." or a link to creative commons pages is fine. (http://www.dublincore.org/documents/2001/04/12/usageguide/sectc/#rights, http://www.dublincore.org/documents/2001/04/12/usageguide/simple-html/#rights). Currently only used in metadata, I'll get around to putting it in the footer at some point.

----------------------------------------------------------------------

per page frontmatter options

----------------------------------------------------------------------

"description": if a page.description does not exist, the site.description is used in the metadata "meta-creator": if a page is authored by someone not the site author, a "page.meta-creator" can be set "subject": similar but different from keywords. (http://www.dublincore.org/documents/2001/04/12/usageguide/sectb/#subject, http://www.dublincore.org/documents/dcmes-qualifiers/#subject) "creation-date": http://www.dublincore.org/documents/dcmes-qualifiers/#date (will be integrated into the schema metadata at some point.)

Read the comments in the default.html layout for more options.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Development

To set up your environment to develop this theme, run bundle install.

Your theme is setup just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve and open your browser at http://localhost:4000. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.

When your theme is released, only the files in _layouts, _includes, _sass and assets tracked with Git will be bundled. To add a custom directory to your theme-gem, please edit the regexp in jektheme.gemspec accordingly.

License

The theme is available as open source under the terms of the MIT License.