Path: blob/main/_plugins/jekyll-webfinger.rb
1677 views
# frozen_string_literal: true12require './_plugins/gtn'34Jekyll::Hooks.register :site, :post_write do |site|5if Jekyll.env != 'production'6Jekyll.logger.info '[GTN/Webfinger] Skipping webfinger generation in development'7next8end910# Make the directory11Jekyll.logger.info '[GTN/Webfinger] Generating webfinger files'12FileUtils.mkdir_p "#{site.dest}/api/fedi"1314Gtn::Contributors.list(site)15.select { |_k, v| v['fediverse'] }16.each do |k, v|17# saving the outputs to18# training-material/api/fedi/resource=acct%3Ahexylena%40galaxy.training.json1920subscribe_url = if v['fediverse_flavor'] == 'mastodon'21"#{v['fediverse'].gsub(%r{/@[a-z]*$}, '')}/authorize_interaction?uri={uri}"22else23"#{v['fediverse'].gsub(%r{/[a-z]*$}, '')}/ostatus_subscribe?acct={uri}"24end25f2 = v['fediverse'].gsub(%r{https://(.*)/@?(.*)}, 'https://\1/users/\2')26profile = {27subject: "acct:#{k}@training.galaxyproject.org",28aliases: [29f230],31links: [32{33rel: 'http://webfinger.net/rel/profile-page',34type: 'text/html',35href: f2,36},37{38rel: 'self',39type: 'application/activity+json',40href: f2 # ehhh41},42{43rel: 'self',44type: 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',45href: f2,46},47{48rel: 'http://ostatus.org/schema/1.0/subscribe',49template: subscribe_url50}51]52}53path = "#{site.dest}/api/fedi/resource=acct:#{k}@training.galaxyproject.org.json"54File.write(path, profile.to_json)5556path = "#{site.dest}/api/fedi/resource=acct:@#{k}@training.galaxyproject.org.json"57File.write(path, profile.to_json)58end59end606162