website/_plugins/jekyll_flowdata.rb (44 lines of code) (raw):

# Copyright (c) Meta Platforms, Inc. and affiliates. # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. require 'fileutils' require 'json' require 'open3' require 'set' require 'tmpdir' module Jekyll EXT = ".doc.js" EXT_REGEX = /\.doc\.js$/i YAML_REGEX = /^(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m class FlowdocGenerator < Generator priority :low def generate(site) site.static_files.delete_if do |sf| next if not sf.path =~ EXT_REGEX dirname = File.dirname(sf.path.gsub(site.source, "")) basename = File.basename(sf.path) page = FlowdocPage.new(site, site.source, dirname, basename) site.pages << page sprockets = site.sprockets asset = sprockets.find_asset('inlineErrors', {}) raise AssetNotFoundError, 'inlineErrors' unless asset sprockets.manifest.add(asset) if page["path"] && sprockets.digest? site.regenerator.add_dependency( site.in_source_dir(page["path"]), site.in_source_dir(asset.logical_path) ) end true end tags = site.data['flow_dot_js_versions'] site.config['flow'] ||= {} if tags.nil? || tags.empty? version = ENV["CIRCLE_TAG"] || "master" site.config['flow']['version'] = version site.config['flow']['versions'] = [version] else versions = tags.map {|v| v['version'] } site.config['flow']['version'] = versions.first site.config['flow']['versions'] = ["master"] + versions end end end end