forked from ewfm/ewfm
Add da files
This commit is contained in:
commit
13b1ce234a
5 changed files with 201 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
/themes
|
||||||
|
/input
|
||||||
|
/output
|
4
build.sh
Normal file
4
build.sh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
rm -r output/*
|
||||||
|
ruby main.rb
|
||||||
|
echo 'Website built.'
|
33
init.sh
Normal file
33
init.sh
Normal 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
158
main.rb
Normal 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
3
populate.sh
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
git clone https://gitlab.com/threeoh6000/ewfm-themes.git
|
||||||
|
mv ewfm-themes/ themes/
|
Loading…
Reference in a new issue