#!/usr/bin/env ruby # frozen_string_literal: true require "ryo" require "nanoc-gunzip" require "nanoc-webpack" locales = %w[ar en] surah_id_to_name = Ryo.from( JSON.parse( File.read(File.join(Dir.getwd, "src", "slugs.json")) ) ) def require_rules(rules, locals = {}, target = binding) locals.each { target.local_variable_set(_1, _2) } path = File.join(Dir.getwd, rules) target.eval( if File.readable?(path) File.read(path) elsif File.readable?("#{path}.rb") File.read("#{path}.rb") elsif File.readable?("#{path}.rules") File.read("#{path}.rules") else raise LoadError, "#{path} is not readable" end ) end ## # Require rules require_rules "rules/assets" require_rules "rules/pages/RandomRedirect", {locales:, surah_id_to_name:} require_rules "rules/pages/surah/stream", {locales:, surah_id_to_name:} require_rules "rules/pages/surah/index", {locales:} require_rules "rules/pages/surah/redirect" ## # Defaults compile("/**/*") { write(nil) } layout("**/*", :erb)