Gradlee plugin for managing jekyll workflows

Overview

Slack chat Dokka docs Version gradle-plugin-portal Version maven-central

JEKYLL GRADLE PLUGIN

Gradle plugin providing easy configuration and tasks for managing your jekyll projects via gradle. Supports running via native jekyll installations as well as podman or docker container runtimes.

The plugin was last tested with JDK 11 & Gradle 7.3.3

Setup

plugins {
  id("dev.petuska.container.jekyll") version "<VERSION>"
}

When applied, the plugin automatically registers a single main jekyll sourceSet available at ./doc/main. To initialise it with a fresh jekyll project scaffold, run ./gradlew jekyllMainInit task.

If you are using Ruby version >3.0.0 or container mode, serve tasks may fail. You may fix it by adding webrick to your dependencies: ./gradlew bundleMainExec --arg=add --arg=webrick

From there, you can use ./gradlew jekyllMainServe --continuous to start development server and ./gradlew jekyllMainBuild to produce a static website at ./build/jekyll/main

Configuration

You can your own custom jekyll sourceSets or extend existing ones with additional sources via the jekyll extension.

DSL

jekyll {
  mode // Explicitly set default jekyll execution mode and stop it from being automatically detected.
  version // Set docker.io/jekyll/jekyll image version to use for containerised executions
  environment // Modify the default environment variables for jekyll tasks
  sourceSets {
    main {
      mode // Explicitly set default jekyll execution mode for tasks linked to this sourceSet and stop it from being automatically detected.
      version // Set docker.io/jekyll/jekyll image version to use for containerised executions  linked to this sourceSet
      environment // Modify the default environment variables for jekyll tasks linked to this sourceSet
      jekyll // Add additional jekyll source roots to this sourceSet
      resources // Add additional jekyll resource roots to this sourceSet
    }
  }
}

Tasks

The plugin generates the following gradle tasks for each sourceSet. All tasks wrap jekyll tasks with their options exposed as gradle options. To learn more run ./gradlew help --task=<task>

  • bundle<SourceSetName>Exec: BundleExecTask - executes bundle commands on the sourceSet
  • jekyll<SourceSetName>Exec: JekyllExecTask - executes jekyll commands on the sourceSet
  • jekyll<SourceSetName>Init: JekyllInitTask - initialises the sourceSet with default jekyll scaffold
  • jekyll<SourceSetName>ProcessResources: ProcessResources - processes sourceSet resources into resources/jekyll/<sourceSet>
  • jekyll<SourceSetName>Assemble: Copy - assembles all sourceSet sources into build/jekyll/<sourceSet>/sources
  • jekyll<SourceSetName>Build: JekyllBuildTask - builds the sourceSet into build/jekyll/<sourceSet>/site
  • jekyll<SourceSetName>Serve: JekyllServeTask - assembles and serves the sourceSet from build/jekyll/<sourceSet>/sources (supports --continuous execution)

In addition to sourceSet tasks, two generic exec tasks are also provided for CLI usage:

  • BundleExecTask: named as bundleExec
  • JekyllExecTask: named as jekyllExec
You might also like...
ForceField - A Plugin that lets all Players in a specific radius fly away from you

ForceField A Plugin to not get annoyed of other Players Commands /forcefield [Pl

MineJS is a scripting plugin for the Bukkit!

Mine.js(W-I-P) Minecraft Bukkit Scripting with JS by Netherald How to apply? Download Paper or Bungee Version. and put it to plugins folder. Script fo

Loco-strings-sync - A custom Gradle Plugin useful to sync loco string resources to local projects

loco-strings-sync A custom Gradle Plugin useful to sync loco string resources to

A plugin for Termux to use native Android GUI components from CLI applications.

Termux:GUI This is a plugin for Termux that enables command line programs to use the native android GUI. In the examples directory you can find demo v

PluginScan - Minecraft plugin anti-malware scanner
PluginScan - Minecraft plugin anti-malware scanner

PluginScan - Minecraft plugin anti-malware scanner PluginScan is a cross-platform java executable analyzer designed to detect malware and other malici

simple-flank is a Gradle plugin to use Flank in Android projects with no configuration needed

simple-flank simple-flank is a new gradle plugin with a clear focus: make the setup as simple as possible. Applied to any application or library modul

This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project.
This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project.

This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project. It will generate the SCA report for the dependencies with vulnerabilities. For the detailed introduction of this plugin, please refer to this article.

A PyCharm plugin that implements inlay parameter and type annotation hints for Python.
A PyCharm plugin that implements inlay parameter and type annotation hints for Python.

Python Inlay Params Quick Installation Using IDE built-in plugin system: Settings/Preferences Plugins Marketplace Search for "Python Inlay Param

A Android Web IDE supports code auto-completion and highlight, plugin (Supports Html, Css, JS, Json, Php etc)

WebDevOps A Android Web IDE supports code auto-completion and highlight, plugin (Supports Html, Css, JS, Json, Php etc) Join us QQ group number: 10314

Owner
Martynas Petuška
Lead Engineer / Fullstack Developer
Martynas Petuška
📱 AppListManager (Android Library) makes managing application and activity lists easy.

AppListManager (Android Library) AppListManager is easy to use Android library, which minimizes developing time when working on application or activit

Rokas Jankunas 60 Dec 27, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 30, 2022
Alkatraz is an app that helps you to Reach your goals by managing your Habits .

Alkatraz - Build healthy habits for healthy life Alkatraz is an app that helps you to Reach your goals by managing your Habits . It's makes your life

Nishant Kumar 11 Nov 28, 2022
Synapse Moderation Bot - A bot for managing and moderating our community Discord server

Synapse Moderation Bot A bot for managing and moderating our community Discord server. Note This bot is not public. While you can host it on your own,

Synapse Technologies, LLC 1 Jul 16, 2022
PyCharm plugin for ruff. This plugin provides reformat code using ruff.

Ruff PyCharm Plugin A JetBrains PyCharm plugin for ruff. Help See documentation for more details. Sponsors ScreenShots Features Run ruff --fix as an a

Koudai Aono 4 Dec 17, 2022
Warning on new versions available even when using Kotlin-DSL plugin.

Version Checker Gradle Lint Warning on new versions available even when using Kotlin-DSL plugin. This detector checks with a central repository to see

null 93 Nov 26, 2022
A Modular Firebase plugin (Android) for godot

GDFirebase GDFirebase is a Modular Godot Plugin for using Firebase Depends on Godot game engine: git clone https://github.com/godotengine/godot Avail

FrogSquare 10 Dec 9, 2022
Advent of code 2021 (unofficial) in Kotlin for Educational Plugin on Jetbrains IntelliJ IDE.

Kotlin Advent of Code 2021 (unofficial) DISCLAIMER: I am not affiliated with the official Advent of code event or website. To open this course, you ne

null 1 Dec 10, 2021
A plugin about embedded browser for IntelliJ IDEA.

browser English | 简体中文 This plugin provides embedded browser (based on Java Chromium Embedded Framework) support for IntelliJ IDEA. Get from Marketpla

蔡琪暢 0 Dec 15, 2021
conceptual Android audio plugin framework

AAP: Android Audio Plugin Framework disclaimer: the README is either up to date, partially obsoleted, or sometimes (but not very often) ahead of imple

Atsushi Eno 42 Nov 12, 2022