walecain / jekyll-for-librarians

:collision: a demo template based on :arrow_right:

Home Page:https://mmistakes.github.io/minimal-mistakes/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DLF 2016 / Jekyll for Librarians

mccabelibrary

Roberto Vargas / @betotecario

_Nabil Kashyap / @nabilk

=======

Projects involving minimal automation would ostensibly afford greater personal or collective awareness of how decisions are made and data is produced

Jentery Sayers, "Minimal Definitions"

1) Click the 👇 Button! 👇

Nitrous Quickstart

This will launch a new Jekyll project on a platform called Nitrous.io, which will ask you to authenticate using your GitHub account. If you'd like to follow along you'll need a GitHub account first.

One feature of Jekyll is how unopinionated it is about how you develop. Whether you are building a website on your own machine, on a server, or some other configuration. Nitrous.io is an example of an other, a cloud based service (unfortunately sunsetting very soon!) that takes advantage of that flexibility, providing a web-based interface for a suitable, consistent environment. 1


2) Explore the file folder code/jekyll, which is an example of a vanilla Jekyll installation.

Jekyll makes heavy use of a number of existing web tools, especially Sass and Liquid Templates

Two commands worth exploring are build and serve.

Unlike PHP based CMS (read: Drupal, WordPress, Joomla, Omeka, etc.) Jekyll updates site files only when content is updated, rather than delivering new site files every time the site receives a request.

$ jekyll build

The Jekyll library will read some configuration settings then comb through a set of folders, outputting a set of static html files based on the content of those folders. Content is written in Markdown. Metadata is provided through YAML front matter. 2

$ jekyll serve --incremental

This executes the build command but then launches a web server that "watches" for changes. As you edit the files, Jekyll will rebuild based on the files that were edited.


3) Go ahead and choose Run > Start jekyll-for-librarians

Instead of a vanilla install, we have an example of a full-fledged Jekyll theme (minimal-mistakes). In addition, behind the scenes we are running the Ruby gem bundler to install useful software libraries. These are helpful for development but not required to deliver site content. The served site files are good ol' HTML/CSS/JS and nothing else.

In addition to the Ruby gem Jekyll, many themes (this one included) rely on another gem called Bundler, which greatly simplifies the development process.


4) How might Jekyll be extended and customized for library uses?

  • Using Markdown to edit content rather than baroque WYSIWYG editors with sometimes unpredictable results
  • Adding custom metadata for use in Liquid templates to incorporate third party platforms
  • Using plaintext metadata to generate low low overhead digital exhibits and collections

5) How do you tie it all together?

These remarks only scratch the surface, if that. Two major questions remain. How do you publish? How might you collaborate?

  • Copy (scp or ftp) _site files onto the server (no special permissions or software required)
  • Publish using GitHub Pages, GitHub's integrated Jekyll implementation
  • Or, if feeling plucky, deploy using git hooks
  • Even fancier, we might talk about using GitHub webhooks, e.g. this PHP based version
  • Or you could possibly combine all of the above, plus a lightweight editing layer over GitHub (prose.io) to maintain a byzantine set of guidelines and documentation, consisting of 1000s of pages, helping guide users through one of the most complex bureaucracies on earth.

6) And relax !_

Knowing that even if (ahem) there's no one to maintain the resource, you aren't opening up yourself to creeping security vulnerabilities or the overhead of a database process or any sweat at all 😰 in case such a resource needs to be transfered or updated or reused. If you have forked a theme repository as we have here, you can also rest assured that you can incorporate any future updates to the theme using Git with a clear trail of how those updates diverge from whatever customizations you might have made.


1: An developer environment basically describes the combination of an operating system, any programming languages and any software libraries (and their particular versions). Even seemingly small differences can cause surprising differences in software behavior.

2: YAML Ain't Markup Language!


Further Resources


OPTIONAL: Developing Locally Using the USB sticks provided

This requires that you have Jekyll installed!

1) Copy jekyll-for-librarians to your desktop

2) Using either Terminal or Command Prompt (or Git Bash), navigate to the project folder - $ cd [path]/jekyll-for-librarians

3) Try to run the following command - $ bundle exec jekyll build

4) If you don't have the bundler gem installed, you'll find it included in the project foler. - $ gem install --local bundler-1.13.6.gem

5) Now: - $ bundle exec jekyll build - $ bundle exec jekyll serve

About

:collision: a demo template based on :arrow_right:

https://mmistakes.github.io/minimal-mistakes/

License:MIT License


Languages

Language:CSS 36.7%Language:HTML 32.7%Language:JavaScript 30.0%Language:Ruby 0.6%