al-quran.reflectslight.io/nanoc/rules/stream.rules
0x1eef 1d641e7c71 Re-organize project files
Attempt to simplify the layout of project files.
2023-10-08 06:31:29 -03:00

57 lines
1.5 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
##
# Rules for the surah stream available at /<locale>/<name>/ (eg /ar/al-fatihah/)
# and its dependencies.
compile "/*/*/surah.json" do
write(item.identifier.to_s)
if File.size(item.raw_filename) > (1024 * 10)
filter :gzip
write("#{item.identifier}.gz")
end
end
Ryo.each(slugs) do |id, slug|
writer = ->(locale, identifier:) do
name = i18n[locale].surahs.names[id.to_i - 1]
context = Ryo.from(
filename: "stream.html.erb",
locale:,
locales:,
surah: {id:, name:, slug:}
)
filter(:erb, locals: {context:})
filter(:tidy)
write "/#{locale}/#{identifier}/index.html"
end
locales.each do |locale|
compile "/html/stream.html.erb", rep: "/#{locale}/#{slug}/index.html" do
instance_exec(locale, identifier: slug, &writer)
end
compile "/html/stream.html.erb", rep: "/#{locale}/#{id}/index.html" do
instance_exec(locale, identifier: id, &writer)
end
end
end
compile "/js/pages/SurahStream.tsx" do
filter :webpack,
depend_on: ["/js/components", "/js/lib/", "/js/hooks"],
reject: proc { _1.include?("WebPackage") }
write "/js/pages/surah-stream.js"
filter :gzip
write "/js/pages/surah-stream.js.gz"
end
compile "/js/loaders/SurahStreamLoader.ts" do
filter :webpack, depend_on: "/js/lib/WebPackage"
write "/js/loaders/surah-stream-loader.js"
end
compile "/css/pages/SurahStream.scss" do
filter :sass, syntax: :scss, style: :compact
filter :rainpress
write("/css/pages/surah-stream.css")
end