Learning Modules - graphitefriction/oscon-2013-docs-workshop GitHub Wiki

This page identifies divides the workshop into a series of learning modules.

Overall goal: Create a website hosted on GitHub Pages to use for reporting your experiences at OSCON

Build a Basic Website with a Static Website Generator

Create a website hosted on GitHub Pages to use for reporting your experiences at OSCON.

Module #1: Project Overview and Tools

A quick overview of the tools we’ll use to create the website.

  1. Project Introduction (2-3m)

  2. Introduction to the console and text editor

  3. Introduction to Ruby (3m)

  4. Introduction to git (3m)

  5. Introduction to gems and bundler (3m)

  6. Introduction to awestruct

  7. Introduction to asciidoctor

    Sidebar: What is a gem?

What about jekyll and github pages?

Module #2: Preparing your Linux / Mac / Windows workstation

Using a console and text editor, we’ll learn how to install and setup the tools needed to create and launch the website.

  1. Setting up Ruby

    1. Console Hands On: Install Ruby

  2. Getting and installing the required gems

    1. Console Hands On: Install awestruct, asciidoctor, and bundler

  3. Setting up git

    1. Console Hands On: Install git

  4. Setup execution PATH

    • How do I get awestruct, asciidoctor, bundle (from bundler) and git on my PATH?

      Should be able to type: <application> --version

  5. Choosing your text editor

Module #3: Initiate / create a website

With the built-in CSS grid system and styles, we’ll launch a default Awestruct website.

  • How do I create a new site?

    • Create a new directory for the site

    • Switch to directory

    • Run Awestruct: awestruct -i -f foundation

    Sidebar: What are Bootstrap and Foundation? Which should you choose?

  • What are the post-create steps?

    • bundle install

    Sidebar: What is bundler (and the bundle command)?

  • How do I preview my site?

Module #4: Add content to a static page

  • How do I create a new page?

    • choose folder/filename

    • AsciiDoc content structure (title, author, paragraph content)

    • set layout

  • How do I write the content? What format do I use?

    Sidebar: What is AsciiDoc, why use it? What is content strategy and/or chunked content?

  • How do I link to my new page?

  • How do I preview my new page? (A: as above)

  • How do I publish my new changes? (git add, git commit, git push, awestruct deploy)

  • How do I view my page outside of Awestruct?

    • Locally

    • On GitHub

Module #5: Publish the site

Sidebar: Overview of GitHub Pages

  • How do I create a GitHub account?

  • How do I setup git to use the GitHub account?

(Refer to bootcamp on help.github.com for the previous two lessons)

  • How do I create a repository on GitHub to host the site (e.g., oscon-report)

  • How do I convert my site a local Git repository?

  • How do I get my site into the repository on GitHub?

    • git remote add

    • git push main branch (master?)

    • Configure Awestruct github-pages deployer

    • Run Awestruct deployer: awestruct deploy

    • Wait a bit

    • Access <username>.github.io/oscon-report in your browser

Build a Blogging a Website with a Static Website Generator

We will learn how to setup the Awestruct blog module, create posts, manage comments, and customize the blog’s layout and functionality.

Module #1: Project Overview and Tools

  1. Project Introduction

  2. Awestruct pipeline

    Sidebar: Awestruct pipeline * How do I setup layouts for the blog index & posts

    + NOTE: Make boilerplate code available on wiki

  3. Haml and Slim Introduction Sidebar: layout files and Haml (or Slim)

  4. Sass and Foundation Introduction

    Sidebar: SASS & Foundation primer

  5. Travis CI introduction

Module #2 Activating the blog module in Awestruct

  • How do I activate the blog in Awestruct?

Module #3: Configuring your blog

Are there default settings or best practices for organizing? Upgrading? Backing up?

Module #4: Writing a blog post

You’ll learn how to add, tag, and categorize blog posts.

  • Creating a new blog post

  • Writing the blog post’s header and metadata with AsciiDoc syntax

  • Adding media to your blog post

Module #5 Publishing your blog post

  • How do I publish my blog post? (A: as above)

  • How does the automatic publishing work?

    • Jekyll - automatic

    • Awestruct - via Travis CI

  • How do I setup a Travis account?

  • How do I link my Travis account to my GitHub account?

  • How do I activate Travis on my repository?

  • How do I configure Travis to publish my site? (git serves as your blog admin backend)

Module #6: Setting up Disqus comments

Configure? Gravatars?

Module #7: Customize look & feel / theme

  • How do I modify the layouts?

  • How do I modify the styles?

Add Rich Content, Responsive Design Features and Interactive Functionality to Your Website

Module #1: Project Overview and Tools

  1. Typography, images, video, audio, include files and data, social

  2. Responsive grid and elements

  3. Plugins, JQuery, JavaScript

Module #2: Add non-text content

  • Where do I put images?

  • How do I add images to my page?

  • How do I add metadata?

Beyond Content / Content Foundations

  1. Content re-usability and chunks - what and why

  2. Goals, constraints, and methods

    1. Content types and organization

  3. Asciidoctor features that can help

  4. Output, anyway you need it, anyway you like it

    1. multipart book/docs

    2. manpage

    3. easy, replaceable styling

Collaborating

  • How does collaboration work?

  • How do I propose a revision or new content?

    Sidebar: Pull request primer

  • How do I send revisions to someone else’s proposal?

Other possible modules / lessons

  • "Edit this file" button

  • RSS feed

  • Google Analytics

  • Disqus comments

  • Selecting a text editor

  • Site navigation

  • +1 button

⚠️ **GitHub.com Fallback** ⚠️