This is the source code for David Auble's personal website and blog, hosted at davidauble.com. The site showcases professional work, technical blog posts, and serves as a portfolio for web development services.
- About
- Technology Stack
- Prerequisites
- Installation
- Usage
- Project Structure
- Development
- Deployment
- Contributing
- Security
- License
This website is built using Jekyll, a static site generator, and is hosted on GitHub Pages. It features:
- Professional Portfolio: Showcasing web development services and experience
- Technical Blog: Articles about web development, WordPress, Jekyll, Git, and more
- Responsive Design: Mobile-friendly layout using Bootstrap grid system
- SEO Optimized: Using Jekyll SEO plugins for better search engine visibility
- Performance: Fast-loading static pages with optimized assets
- Static Site Generator: Jekyll 4.4.1
- Template Language: Liquid
- Styling: SCSS/CSS
- JavaScript: Vanilla JS with jQuery
- Icons: Font Awesome
- Hosting: GitHub Pages
- Domain: Custom domain (davidauble.com)
jekyll-feed: Generates an Atom feed of your postsjekyll-sitemap: Automatically generates a sitemap.xmljekyll-seo-tag: Adds SEO metadata to pages
Before you begin, ensure you have the following installed:
- Ruby (version 2.7 or higher)
- RubyGems
- GCC and Make (for building native extensions)
- Bundler (Ruby dependency manager)
# Using Homebrew
brew install rubysudo apt-get install ruby-full build-essential zlib1g-devDownload and install from RubyInstaller
gem install bundler-
Clone the repository
git clone https://github.com/dauble/dauble.github.io.git cd dauble.github.io -
Install dependencies
bundle install
This will install Jekyll and all required gems specified in the Gemfile.
Start the local development server with live reload:
bundle exec jekyll serveThe site will be available at: http://localhost:4000
For automatic browser refresh when files are saved:
- Install the LiveReload Chrome extension
- Enable the extension
- Start the Jekyll server (LiveReload is enabled in
_config.yml) - Make changes to your files and watch them update automatically
To build the site for production without starting a server:
bundle exec jekyll buildThe generated site will be in the _site directory.
dauble.github.io/
βββ _category/ # Category pages
βββ _data/ # Data files (navigation, posts metadata)
β βββ navigation.yml # Site navigation structure
β βββ posts.json # Posts metadata
βββ _includes/ # Reusable HTML components
β βββ footer.html # Site footer
β βββ header.html # Site header
β βββ navigation.html # Navigation bar
βββ _layouts/ # Page layouts
β βββ blog.html # Blog listing layout
β βββ categories.html # Categories listing layout
β βββ default.html # Base layout
β βββ post.html # Individual post layout
βββ _posts/ # Blog posts (Markdown files)
β βββ YYYY-MM-DD-title.md
βββ _sass/ # SCSS partials
βββ _site/ # Generated static site (not committed)
βββ assets/ # Static assets
β βββ css/ # Compiled CSS
β βββ fonts/ # Web fonts
β βββ images/ # Images and graphics
β βββ scripts/ # JavaScript files
βββ _config.yml # Jekyll configuration
βββ 404.html # Custom 404 error page
βββ blog.html # Blog index page
βββ categories.html # Categories page
βββ CNAME # Custom domain configuration
βββ Gemfile # Ruby dependencies
βββ index.html # Homepage
βββ README.md # This file
- _config.yml: Main Jekyll configuration file. Contains site settings, plugins, and build options.
- Gemfile: Lists all Ruby gem dependencies for the project.
- CNAME: Specifies the custom domain for GitHub Pages.
- .gitignore: Files and directories excluded from version control.
-
Create a new Markdown file in the
_postsdirectory with the naming convention:YYYY-MM-DD-title-of-post.md -
Add front matter at the top of the file:
--- layout: post title: "Your Post Title" date: YYYY-MM-DD image: /assets/images/posts/your-image.jpg author: dauble categories: - "category1" - "category2" ---
-
Write your content in Markdown below the front matter.
-
Preview locally:
bundle exec jekyll serve
Categories are defined in the front matter of each post. To add a new category page:
- Create a new file in the
_categorydirectory - Use the category layout and specify the category name
- SCSS files are located in the
_sassdirectory - Main CSS compilation is handled by Jekyll
- Changes are automatically compiled when running the development server
- Layouts are in the
_layoutsdirectory - Includes (reusable components) are in the
_includesdirectory - Use Liquid template language for dynamic content
This site is automatically deployed to GitHub Pages:
- Push to master branch: Any push to the
masterbranch triggers an automatic deployment - GitHub Actions: The deployment workflow is managed by GitHub Pages
- Live Site: Changes appear at https://davidauble.com after a successful build
The site deploys automatically, but you can verify the build locally:
bundle exec jekyll build
# Check the _site directory for the generated filesCheck the deployment status using the badges at the top of this README or visit the Actions tab.
Contributions are welcome! Please read CONTRIBUTING.md for details on the code of conduct and the process for submitting pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Security is taken seriously. If you discover a security vulnerability, please review the SECURITY.md file for reporting procedures.
This project represents David Auble's personal website and portfolio. While the code is publicly visible, all content, designs, and written materials are copyrighted. If you'd like to use any part of this project, please reach out for permission.
- Website: davidauble.com
- Email: info@davidauble.com
- GitHub: @dauble
- Built with Jekyll
- Hosted on GitHub Pages
- Icons by Font Awesome
Made with β€οΈ in Indianapolis