diff --git a/composants/one_element.html b/composants/one_element.html
index 2c31c7d..8cc2a2e 100644
--- a/composants/one_element.html
+++ b/composants/one_element.html
@@ -3,7 +3,7 @@
${ELEMENT_TITLE}
-
+
diff --git a/porteail.lua b/porteail.lua
index 90b538c..914a425 100755
--- a/porteail.lua
+++ b/porteail.lua
@@ -15,6 +15,8 @@ local currentpath = os.getenv('CURDIR') or '.'
local default_dir_category = 'categ'
local default_dir_component = 'composants'
local default_dir_destination = 'porteail'
+local default_dir_img_destination = 'image'
+local default_dir_img_source = 'img'
-- Default files values
local default_img_filename = 'generique.png'
local default_index_filename = 'index.html'
@@ -80,9 +82,30 @@ function basename (string, suffix)
return basename
end
-function process(filepath, template_categ, template_element)
+function processImage(image, source, img_destination, destination, default_img)
+ -- if no image given, use default one
+ if not image or image == nil or image == '' then
+ image = default_img
+ end
+ -- create image weblink
+ result = img_destination .. '/' .. basename(image)
+ -- check if this image exists
+ attr = lfs.attributes(destination .. '/' .. result)
+ if not attr then
+ img_path = source .. '/' .. image
+ f = assert(io.open(img_path, 'rb'))
+ img_src = assert(f:read('*a'))
+ assert(f:close())
+ img_dest = assert(io.open(destination .. '/' .. result, 'wb'))
+ assert(img_dest:write(img_src))
+ assert(img_dest:close())
+ end
+ return result
+end
+
+function process(filepath, template_categ, template_element, img_destination, destination, img_source, default_img)
-- parse given file
- result = template_categ
+ local categ_page = ''
local elements = {}
for line in io.lines(filepath) do
local element = ''
@@ -97,7 +120,7 @@ function process(filepath, template_categ, template_element)
for t in string.gmatch(line, '%[%[(.*)%]%].*') do title = title .. t end
description =''
for d in string.gmatch(line, '%[%[.*%]%](.*)') do description = description .. d end
- result = replace(result, {CATEG_TITLE=title, CATEG_DESC=description})
+ categ_page = replace(template_categ, {CATEG_TITLE=title, CATEG_DESC=description})
elseif is_element then
title = ''
description = ''
@@ -107,9 +130,10 @@ function process(filepath, template_categ, template_element)
for d in string.gmatch(line, '.*##.*##(.*)##.*') do description = description .. d end
for u in string.gmatch(line, '.*##(.*)##.*##.*') do url = url .. u end
for i in string.gmatch(line, '.*##.*##.*##(.*)') do img = img .. i end
- -- FIXME: do img process to have url, copy it and have a description
- img_title = basename(img)
- element = replace(template_element, {ELEMENT_URL=url, ELEMENT_DESC=description, ELEMENT_TITLE=title, IMG_TITLE=img_title})
+ img_description = " "
+ img_url = processImage(img, img_source, img_destination, destination, default_img)
+ url = url:gsub('%&', '%&')
+ element = replace(template_element, {ELEMENT_URL=url, ELEMENT_DESC=description, ELEMENT_TITLE=title, IMG_URL=img_url, IMG_DESC=img_description})
table.insert(elements, element)
end
end
@@ -117,7 +141,7 @@ function process(filepath, template_categ, template_element)
for k, v in pairs(elements) do
text_elements = text_elements .. v
end
- result = replace(result, {ELEMENTS=text_elements})
+ local result = replace(categ_page, {ELEMENTS=text_elements})
return result
end
@@ -130,11 +154,14 @@ config = getConfig(configFile)
categ = config['CATEGORIES'] or default_dir_category
component = config['COMPOSANTS'] or default_dir_component
destination = config['CIBLE'] or default_dir_destination
+img_destination = config['CIBLE_IMAGE'] or default_dir_img_destination
+img_source = config['IMAGES'] or default_dir_img_source
-- create values for files
index_filename = config['INDEX'] or default_index_filename
main_template = config['TEMPLATE_INDEX'] or default_template_index_filename
template_categ_filename = config['TEMPLATE_CATEG'] or default_template_categ_filename
template_element_filename = config['TEMPLATE_ELEMENT'] or default_template_element_filename
+default_img = config['DEFAUT_IMG'] or default_img_filename
-- other default values
categ_extension = config['CATEGORIES_EXT'] or default_categ_extension
@@ -152,6 +179,15 @@ assert(template_element_file:close())
local introduction = ''
local menu = ''
+-- Check if public directory exists
+if lfs.attributes(destination) == nil then
+ assert(lfs.mkdir(destination))
+end
+-- Check if image directory exists
+if lfs.attributes(destination .. '/' .. img_destination) == nil then
+ assert(lfs.mkdir(destination .. '/' .. img_destination))
+end
+
-- Browse categ directory
local categories_files = listing (currentpath .. '/' .. categ, categ_extension)
local content = ''
@@ -160,18 +196,13 @@ if categories_files then
-- read category content
attr = lfs.attributes(v)
if attr and attr.mode == 'file' then
- content = content .. process(v, template_categ, template_element)
+ content = content .. process(v, template_categ, template_element, img_destination, destination, img_source, default_img)
end
end
else
print ("-- No category file found!")
end
--- Check if public directory exists
-if lfs.attributes(destination) == nil then
- assert(lfs.mkdir(destination))
-end
-
-- Create index file in destination directory
result = assert(io.open(destination .. '/' .. main_template, 'wb'))
-- create substitution table