Dependency-light Jekyll plugin scaffold for local-service sites. It provides Liquid helpers for LocalBusiness JSON-LD, UTM campaign URLs, and a landing-page checklist snippet that can be rendered in static Jekyll pages.
This package is prepared as a RubyGems/Jekyll publication candidate, but it is not ready to publish yet. See PUBLISH_BLOCKERS.md.
adpages_local_business_jsonldLiquid tag and filter for LocalBusiness JSON-LD.adpages_utm_urlLiquid filter for consistent campaign URLs.adpages_landing_checklistLiquid tag and filter for lightweight local landing-page QA snippets.- Plain Ruby helper methods under
Jekyll::AdPages::Helpers. - Examples for
_config.yml, page usage, and Liquid snippets. - Local Node check/smoke scripts that do not install gems, make network calls, or require external services.
# Gemfile
group :jekyll_plugins do
gem "jekyll-adpages"
end# _config.yml
plugins:
- jekyll-adpages
adpages:
business:
name: Example Plumbing
business_type: Plumber
url: "https://example.com"
telephone: "+61 8 0000 0000"
area_served:
- Perth
services:
- Emergency plumbing
campaign:
source: google
medium: cpc
campaign: emergency-plumber-perth{% adpages_local_business_jsonld site.adpages.business %}
{{ "https://example.com/quote/" | adpages_utm_url: site.adpages.campaign }}
{% adpages_landing_checklist site.adpages.checklist %}The JSON-LD helper renders a <script type="application/ld+json"> tag. The UTM helper rewrites only utm_* parameters by default and does not call remote services.
require "jekyll/adpages"
schema = Jekyll::AdPages::Helpers.local_business_schema(
"name" => "Example Plumbing",
"business_type" => "Plumber",
"area_served" => ["Perth"],
"services" => ["Emergency plumbing"]
)
url = Jekyll::AdPages::Helpers.build_utm_url(
"https://example.com/quote/",
"source" => "google",
"medium" => "cpc",
"campaign" => "emergency-plumber-perth"
)From the repository root:
npm --prefix packages/ruby/jekyll-adpages run check
npm --prefix packages/ruby/jekyll-adpages run smokeThe scripts validate files and run Ruby syntax/helper smoke tests when a local Ruby executable is available. They do not run bundle install.
- No analytics, cookies, beacons, API calls, or background jobs.
- No user data collection.
- Output is deterministic static markup based on caller-provided config.
- Publication, RubyGems ownership, license choice, and Jekyll integration testing remain blocked until explicitly handled.