Add da files

This commit is contained in:
abbie 2021-09-19 19:35:36 +01:00
commit 13b1ce234a
No known key found for this signature in database
GPG key ID: 04DDE463F9200F87
5 changed files with 201 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/themes
/input
/output

4
build.sh Normal file
View file

@ -0,0 +1,4 @@
#!/bin/sh
rm -r output/*
ruby main.rb
echo 'Website built.'

33
init.sh Normal file
View file

@ -0,0 +1,33 @@
#!/bin/sh
echo "Welcome to the ewfm automagic"
echo "website setter-upper wizard!!"
echo "First, let's start by creating input/ and the default index.md file."
echo .
mkdir input
touch input/index.md
echo "Your website!" | tee -a input/index.md
echo "## Hello, world!" | tee -a input/index.md
echo "Welcome to ewfm!" | tee -a input/index.md
echo .
echo "Done! Now let's configure your site.conf file!"
touch input/site.conf
echo "What is your website's domain?"
read domain
echo $domain | tee -a input/site.conf
echo "What is your website's name?"
echo .
read name
echo $name | tee -a input/site.conf
echo "What theme would you like to use? (If in doubt, type linear-base or 3box-base)"
echo .
read theme
echo $theme | tee -a input/site.conf
echo "All done!"
echo "If you haven't already read the docs at ewfm.colean.cc/docs"
echo "and run populate.sh to download all the ewfm themes!"

158
main.rb Normal file
View file

@ -0,0 +1,158 @@
require 'redcarpet'
require 'date'
site = IO.readlines("input/site.conf", chomp: true)
site_domain = site[0]
site_name = site[1]
theme = site[2]
directory = Dir["input/*/"]
everything = Dir["input/**/*.md"]
workspace = Dir["input/*.md"]
prelim = Dir["input/**/*.*"]
base = Dir["input/**/"]
files = []
structure = []
workspace.push(*everything)
themes_fold = "themes/"
theme_dir = themes_fold + theme + "/"
protocol = "http://"
da = ["<a href=\"" + protocol + site_domain + "\">home</a> "]
dp = ["<p><a href=\"" + protocol + site_domain + "\">home</a></p>"]
dsa = ["<a href=\"" + protocol + site_domain + "\">/</a> "]
dsp = ["<p><a href=\"" + protocol + site_domain + "\">/</a></p>"]
Dir.mkdir "output/ewfm_theme"
dist_files = Dir[theme_dir + "dist/*"]
puts dist_files
for file in dist_files
string = File.read(file)
handle = file
prefix = theme_dir + "dist/"
handle[prefix]= "output/ewfm_theme/"
IO.write(handle, string)
end
for string in base
if string != "input/"
structure.append(string)
end
end
for string in prelim
if not string.include? ".md"
files.append(string)
end
end
for file in directory
file1 = "/" + file
file1["input/"]= ""
file2 = file1[1..-1]
file2["/"]= ""
da.append("<a href=\"" + protocol + site_domain + file1 + "\">" + file2 + "</a> ")
dp.append("<p><a href=\"" + protocol + site_domain + file1 + "\">" + file2 + "</a></p>")
dsa.append("<a href=\"" + protocol + site_domain + file1 + "\">" + file2 + "/</a> ")
dsp.append("<p><a href=\"" + protocol + site_domain + file1 + "\">" + file2 + "/</a></p>")
end
for file in structure
handle = file
handle["input/"]= ""
comb = "output/" + handle
Dir.mkdir comb unless Dir.exists? comb
end
for file in files
handle = File.read(file)
output = file
output["input"]= "output"
IO.write(output, handle)
end
def scope
yield
end
for file in workspace
text = File.read(file)
template = File.read(theme_dir + "template.html")
product = template
puts file
renderer = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, fenced_code_blocks: true, strikethrough: true, underline: true, space_after_headers: true)
lines = text.lines
rest_of_content = lines[1..-1]
raw_content = rest_of_content.join()
title = lines[0]
content = renderer.render(raw_content)
if product.include? "{SITE_NAME}"
product["{SITE_NAME}"]= site_name
end
if product.include? "{SITE_DOMAIN}"
product["{SITE_DOMAIN}"]= site_domain
end
if product.include? "{PAGE_TITLE}"
product["{PAGE_TITLE}"]= title
end
if product.include? "{DIRECTORY_A}"
product["{DIRECTORY_A}"]= da.join()
end
if product.include? "{DIRECTORY_P}"
product["{DIRECTORY_P}"]= dp.join()
end
if product.include? "{DIRECTORY_SLASH_A}"
product["{DIRECTORY_SLASH_A}"]= dsa.join()
end
if product.include? "{DIRECTORY_SLASH_P}"
product["{DIRECTORY_SLASH_P}"]= dsp.join()
end
if product.include? "{PAGE_CONTENT}"
product["{PAGE_CONTENT}"]= content
end
if raw_content.include? "$EWFM$"
product["$EWFM$"]= "<p>This page has been generated by ewfm using the " + theme + " theme!</p>"
end
if raw_content.include? "$THEME$"
product["$THEME$"]= theme
end
if raw_content.include? "$TIME$"
time = DateTime.now
cdt = time.strftime "%d/%m/%Y %H:%M:%S"
product["$TIME$"]= cdt
end
if raw_content.include? "$RUBY$"
product["$RUBY$"]= RUBY_VERSION
end
handle = file
handle["input"]= "output"
handle[".md"]= ".html"
IO.write(handle, product)
end

3
populate.sh Normal file
View file

@ -0,0 +1,3 @@
#!/bin/sh
git clone https://gitlab.com/threeoh6000/ewfm-themes.git
mv ewfm-themes/ themes/