---
layout: page
title: Open Source
projects:
    drupal:
        - name: Accessibility (a11y) Checklist
          description: Similar to the SEO Checklist and QA Checklist modules, this module provides a checklist of accessibilty-related modules and tasks to perform on a Drupal site.
          url: https://www.drupal.org/project/a11y_checklist
          versions: [7]

        - name: Block ARIA Landmark Roles
          description: Inspired by Block Class, this module adds additional elements to the block configuration forms that allow users to assign a ARIA landmark role to a block.
          url: https://www.drupal.org/project/block_aria_landmark_roles
          versions: [7]

        - name: Breadcrumbs by Path
          description: A light-weight module which simply builds breadcrumb trails based on a URL alias.
          url: https://www.drupal.org/project/breadcrumbs_by_path
          versions: [7]

        - name: Collection class
          description: Integrates Laravel’s Collection class into Drupal 7.
          url: https://www.drupal.org/project/collection_class
          versions: [7]

        - name: Comment Hide Subject
          description: Hides the comment subject if the "Allow comment title" checkbox is unchecked for that node type.
          url: https://www.drupal.org/project/comment_hide_subject
          versions: [7]

        - name: Commerce Cart Empty Paths
          description: This module allows site administrators to define multiple paths, and when a user visits a non-declared page, their shopping cart is emptied.
          url: https://www.drupal.org/project/commerce_cart_empty_paths
          versions: [7]

        - name: Copyright Block
          description: Creates a block that allows you to configure a copyright message that automatically updates using the current year from the server that your site is hosted on.
          url: https://www.drupal.org/project/copyright_block
          versions: [7, 8]

        - name: Image Style Class
          description: Adds classes onto each rendered image showing the image style name.
          url: https://www.drupal.org/project/image_style_class
          versions: [7]

        - name: Mapify
          description: A module to make the implementation of mapify.js into Drupal 7 relatively simple.
          url: https://www.drupal.org/project/mapify
          versions: [7]

        - name: Node Comment Block
          description: This module moves the comments for a node into a moveable block.
          url: https://www.drupal.org/project/node_comment_block
          versions: [7]

        - name: Override Node Options
          description: Allows permissions to be set to each field within the Authoring information and Publishing options field sets on the node form. It also allows selected field sets to be set as collapsed and/or collapsible.
          url: https://www.drupal.org/project/override_node_options
          versions: [7, 8]

        - name: Pathauto Menu Link
          description: Forces an update of the Pathauto-generated path when a menu link item has been updated. Useful if you use parent menu links to generate paths.
          url: https://www.drupal.org/project/pathauto_menu_link
          versions: [7, 8]

        - name: 'Rules Block/Unblock User'
          description: Adds rules events, as well as some default rules, for when a user account is blocked or unblocked.
          url: https://www.drupal.org/project/rules_block_user
          versions: [7]

        - name: SpeakerDeck Field
          description: Adds a field for embedding content from SpeakerDeck.
          url: https://www.drupal.org/project/speakerdeck_field
          versions: [8]

        - name: Toggle Optional Fields
          description: Creates a simplified node form by allowing for the hiding and toggling of optional fields.
          url: https://www.drupal.org/project/toggle_optional_fields
          versions: [7, 8]

        - name: Webform ARIA
          description: Adds ARIA support to forms created using the Webform module.
          url: https://www.drupal.org/project/webform_aria
          versions: [7]

        - name: WP Blog Migrate
          description: Convert your existing Drupal blog into the WP Blog module by re-assigning the content type for existing nodes and moving any existing tags into the WP Blog taxonomy vocabulary.
          url: https://www.drupal.org/project/wp_blog_migrate
          versions: [7]

    sculpin:
        - name: oliverdavies.uk
          description: The source code for this website, which is built with Sculpin.
          url: https://github.com/opdavies/oliverdavies.uk

        - name: Sculpin Content Generator Bundle
          description: Provides new Sculpin commands for generating new content.
          url: https://github.com/opdavies/sculpin-content-generator-bundle

        - name: Sculpin Gist Bundle
          description: Allows for embedding GitHub Gists into a Sculpin site.
          url: https://github.com/opdavies/sculpin-gist-embed-bundle

        - name: Sculpin Skeleton
          description: A skeleton project for the Sculpin static site generator.
          url: https://github.com/opdavies/sculpin-skeleton

        - name: Sculpin Twig Markdown Bundle
          description: Enables rendering content from markdown, using Sculpin’s core markdown parser.
          url: https://github.com/opdavies/sculpin-twig-markdown-bundle

        - name: Sculpin Twig Sort by Field Bundle
          description: Enables sorting an array by a certain field on each item.
          url: https://github.com/opdavies/sculpin-twig-sort-by-field-bundle

    php:
        - name: Drupal Meetups Twitterbot
          description: A Twitter bot that retweets posts about Drupal meetups.
          url: https://github.com/opdavies/drupal-meetups-twitterbot

        - name: Drupal VM CLI
          description: A command line tool for Drupal VM.
          url: https://github.com/opdavies/drupal-vm-cli

        - name: Gmail Filter Builder
          description: Allows you to define Gmail filters in PHP using a fluent API, and then generate XML that you can import into Gmail's filter settings.
          url: https://github.com/opdavies/gmail-filter-builder
---
<p>I have written, open-sourced, and maintain a number of Drupal modules, Sculpin bundles and PHP projects - as well as the source code for this website! Here is some information about each project and a link to it’s project page.</p>

<div class="mb-4">
    <h2>Drupal</h2>

    {% include 'opensource/projects.html.twig' with { projects: page.projects.drupal } %}
</div>

<div class="mb-4">
    <h2>Sculpin</h2>

    {% include 'opensource/projects.html.twig' with { projects: page.projects.sculpin } %}
</div>

<div>
    <h2>PHP</h2>

    {% include 'opensource/projects.html.twig' with { projects: page.projects.php } %}
</div>