diff --git a/README.md b/README.md
deleted file mode 100644
index 71e6c81..0000000
--- a/README.md
+++ /dev/null
@@ -1,204 +0,0 @@
-# GSL: Statique Littérateur
-------------------------------------------------------------------------
-
-GSL is a multiple blogs/websites generator based on their domain,
-written in bash, for minimal dependancies. The websites are nearly all
-static, except for some includes pages, like listing posts, that nginx
-can easily get, in your webserver.
-
-# Dependancies
-------------------------------------------------------------------------
-
-- bash
-- coreutils
-- curl (to check Posts links response)
-
-
-# GSL: Installation
-------------------------------------------------------------------------
-
-To avoid sudo, you should give permissions to USER
-
-## --Prefix for DOMAIN configuration (set according to user choice):
-- HOME: ~/.config/gsl
-- GLOBAL: /var/lib/gsl
-- Folder: --Prefix/domains/ (created with $ gsl new)
-
-### DOMAIN Datas from Prefix:
-- Folder: --Prefix/DOMAIN/ (Created by GSL)
-- - Files: DOMAIN.conf, authors.db (Created by GSL)
-- - Folder: --Prefix/DOMAIN/templates/ (css, logos...) (Created by GSL)
-
-## Destination Folder: /etc/gsl/
-- File: gsl.conf
-
-## Destination Folder: /var/lib/gsl/
-- Folder: db (Created by GSL)
-- Folder: helps
-- Folder: scripts
-- File: README.md
-
-## Destination Folder: /var/log/gsl
-- File: gsl.log (Created and managed by GSL $ gsl log clean...)
-
-## Destination Folder: /usr/local/bin
-- File: gsl
-
-## Destination Folder: /usr/share/bash-completion/completions/gsl
-- File: gsl
-
-# How to configure a DOMAIN folder, and create a Post
-------------------------------------------------------------------------
-
-## Set a DOMAIN
-- add a DOMAIN name (if not alrady done)
-```
-gsl new
-```
-
-Follow instructions when adding DOMAIN or see them again with
-```
-gsl help new
-gsl help install
-```
-
-## Set a DOMAIN folder
-if not already done:
-- GSl will ask you to create a folder for your DOMAIN posts when adding a new domain
-- Add/Create or go into your folder of choice
-- Save into that folder a blank file named gsl.DOMAIN (gsl.example.org)
-to tell GSL, this folder is for this DOMAIN website.
-
-## Create a new Post
-- Write a post in a file, using some "metas" that GSL will catch.
-The engine is written from scratch and looks like a mix of markdown and
-ReStructuredText. It's very easy to learn and use.
-- Save your file with .gsl extension
-- Start checking it, using:
-
-```
-gsl check
-```
-
-If your Post has no error, you will have some ready to deploy html
-files and folders. You could install lightweight darkhttpd webserver on
-your PC to preview the website, or even, juste open index.html in your
-server folder.
-
-# Create a Templates
-------------------------------------------------------------------------
-
-You will have to create some CSS in your /DOMAIN/templates/
-- HOME: ~/.config/gsl/domains/DOMAIN/templates/
-- GLOBAL: /var/lib/gsl/domains/DOMAIN/templates/
-
-# How to Write a Post
-------------------------------------------------------------------------
-
-Post has 2 sections : Before and after "#1". "#1" is the FIRST
-Title of your post. Number (1-6) are HTML titles (h1 to h6).
-- Before #1 is used to set METAs HEADERS to configure your Post.
-- After #1 is the CONTENT of your Post
-
-## NEEDED HEADERS (before #1)
-Register METAs for HTML Page content
-
-```
-title: POST TITLE
-slug: POST-TITLE (if space in slug GSL will convert them)
-info: DESCRIPTION (about the Post)
-author: NAME (must be registred with $ gsl author add)
-date: YYYY-MM-DD
-tags: TAG1,OTHER TAG2,TAG3 (comma separated)
-```
-
-### Admin Header
-Admin can define specific type of content. If no type defined, GSL will
-add at first line the default value: "type: post".
-
-TYPE:
-- post < classic content
-- page < used to define main index, 404, about...
-
-```
-type: TYPE
-```
-
-GSL will create html file according to slug. Do not add .html to slug.
-- post < /slug/index.html
-- page < /slug.html
-
-## Optional HEADERS (before #1)
-Register METAs for CONTENT. " : " field separator
-
-```
-abbr: SHORT : LONG
-file: NAME : FILENAME : ALT-TEXT
-link: NAME : URL : ALT-TEXT
-code: NBR : FILENAME
-image: NBR : FILENAME : ALT-TEXT
-```
-
-## CONTENT Post:
-In Content Post, markers (i.e. [_,_],*_,_*...) must be on the SAME line.
-For ABBRs, just write SHORT in your content
-
-```
-# Paragraphs
-At begining of new line, open with ( and close with )
-(
-This is a paragraph
-)
-
-# Register in Header. link: My Great link : URL : ALT-TEXT
-[_My Great Link_]
-
-# Write in ITALIC
-/_this em text_/
-
-# Write in STRONG
-**_this strong content_**
-
-# BOLD
-*_this bold content_*
-
-# Register in Header. file: My Great file : FILENAME : ALT-TEXT
-<_My Great file_>
-
-# Inline-code (¤ = alt-gr + $ on FR keyboard)
-¤_push()_¤
-
-# Lists
-=> list 1
-==> sublist 1
-===> sub-sublist 1
-=> list 2
-
-# Simple Blockquote
----
-(
-A simple great quote
-)
----
-
-# Advanced Blockquote
----
-_cite : Richard Matthew Stallman
-_link : https://stallman.org/
-_lang : en
-(
-In the free/libre software movement, we develop software that respects
-users' freedom, so we and you can escape from software that doesn't. I
-could have made money this way, and perhaps amused myself writing code.
-But I knew that at the end of my career, I would look back on years of
-building walls to divide people, and feel I had spent my life making the
-world a worse place
-)
----
-
-# Register in Header. image: 1 : FILENAME : ALT-TEXT
-_image_ : 1
-
-# Block-Code File: Register in Header. code: 1 : FILENAME
-_code_ : 1
-```
diff --git a/etc/gsl/gsl.conf b/etc/gsl/gsl.conf
index 3e7f9e7..fb46f29 100644
--- a/etc/gsl/gsl.conf
+++ b/etc/gsl/gsl.conf
@@ -48,10 +48,6 @@ gsl_log_e='Err'
gsl_log_w='War'
gsl_log_i='Inf'
-
-# Admin show
-gsl_admin_sep_post='==============='
-
# Date format
gsl_test_date='^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]+$'
@@ -63,21 +59,31 @@ gsl_log_act_author='REGISTRED NAME'
gsl_log_act_date='YYYY-MM-DD'
gsl_log_act_info='POST is ABOUT...'
gsl_log_act_slug='POST-TITLE'
-gsl_log_act_code='NBR : FILENAME'
+gsl_log_act_code='NBR : FILENAME : Alt Text'
gsl_log_act_image='NBR : NAME : ALT TEXT'
gsl_log_act_abbr='SHORT : LONG'
gsl_log_act_h1='#1 POST CONTENT TITLE'
-gsl_log_act_link='NAME : URL : ALT TEXT'
-gsl_log_act_file='NAME : FILENAME : ALT TEXT'
+gsl_log_act_link='NAME : URL : Alt Text'
+gsl_log_act_file='NAME : FILENAME : Alt Text'
#-----------------------------------------------------------------------
-# Set LOG for CONTENT Process
+# Set LOG for Process Type
#-----------------------------------------------------------------------
-gsl_log_c_link="Content link"
-gsl_log_c_abbr="Content abbr"
-gsl_log_c_code="Content code"
-gsl_log_c_image="Content image"
-gsl_log_c_file="Content file"
+gsl_log_h_link="Header Link"
+gsl_log_h_abbr="Header ABBR"
+gsl_log_h_code="Header Code"
+gsl_log_h_image="Header Image"
+gsl_log_h_file="Header File"
+gsl_log_h_image="Header Image"
+
+gsl_log_c_h1="Content Begins"
+gsl_log_c_p="Content Paragraphs"
+gsl_log_c_cite="Content Citations"
+gsl_log_c_link="Content Link"
+gsl_log_c_abbr="Content ABBR"
+gsl_log_c_code="Content Code"
+gsl_log_c_image="Content Image"
+gsl_log_c_file="Content File"
#-----------------------------------------------------------------------
# Set CONTENT POST markers
@@ -101,10 +107,7 @@ gsl_mc_file='_>'
gsl_mark_image='_image_'
gsl_mark_code='_code_'
gsl_mark_title='#'
-gsl_mark_hr='==='
-gsl_mark_list1='=> '
-gsl_mark_list2='==> '
-gsl_mark_list3='===> '
+gsl_mark_list='='
gsl_mark_blockquote='---'
gsl_mark_blockquote_cite='_cite :'
diff --git a/usr/local/bin/gsl b/usr/local/bin/gsl
index 237a8a8..9d812d1 100755
--- a/usr/local/bin/gsl
+++ b/usr/local/bin/gsl
@@ -18,14 +18,23 @@ gsl__check_source "$gsl_dir_scripts/gsl__log_manager" || exit 1
# Check/Create Files and Folders
gsl__create_ff
+gsl__find_domain
+gsl__check_source "$gsl_dir_scripts/gsl__auth_manager" || exit 1
+gsl__authors_list check || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__new_website" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__post_checkers" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__post_manager" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__db_manager" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__post_makers" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__page_creator" || exit 1
+gsl__check_source "$gsl_dir_scripts/gsl__do_commons" || exit 1
+
#=======================================================================
# Main
#=======================================================================
case "$1" in
author|-A)
- gsl__find_domain
- gsl__check_source "$gsl_dir_scripts/gsl__auth_manager" || exit 1
-
+ gsl__authors_list check || exit 1
case "$2" in
"")
gsl__authors_list
@@ -68,7 +77,6 @@ case "$1" in
;;
new|-N)
- gsl__check_source "$gsl_dir_scripts/gsl__new_website" || exit 1
gsl__logs_print \
"$gsl_log_i" \
"Starting" \
@@ -123,14 +131,7 @@ case "$1" in
;;
check|-C)
- gsl__find_domain # || exit 1
- gsl__check_source "$gsl_dir_scripts/gsl__auth_manager" || exit 1
- gsl__authors_list check || exit 1
- gsl__check_source "$gsl_dir_scripts/gsl__post_manager" || exit 1
- gsl__check_source "$gsl_dir_scripts/gsl__post_checkers" || exit 1
gsl__check_nbr_posts
- gsl__check_source "$gsl_dir_scripts/gsl__db_manager" || exit 1
-
case "$2" in
-F)
gsl_force_check=true
@@ -159,12 +160,7 @@ case "$1" in
;;
make|-M)
- gsl__find_domain # || exit 1
- gsl__check_source "$gsl_dir_scripts/gsl__post_makers" || exit 1
- gsl__check_source "$gsl_dir_scripts/gsl__post_manager" || exit 1
gsl__check_nbr_posts
- gsl__check_source "$gsl_dir_scripts/gsl__db_manager" || exit 1
-
gsl__logs_print \
"$gsl_log_i" \
"Starting" \
diff --git a/LICENSE b/var/lib/gsl/LICENSE
similarity index 100%
rename from LICENSE
rename to var/lib/gsl/LICENSE
diff --git a/var/lib/gsl/README.md b/var/lib/gsl/README.md
index 71e6c81..bc4e32c 100644
--- a/var/lib/gsl/README.md
+++ b/var/lib/gsl/README.md
@@ -16,8 +16,13 @@ can easily get, in your webserver.
# GSL: Installation
------------------------------------------------------------------------
+In your System /
+```
+git clone URL .
+```
-To avoid sudo, you should give permissions to USER
+GSL does NOT use any sudo. To avoid errors, you must give permissions
+to USER with chown -R to folders.
## --Prefix for DOMAIN configuration (set according to user choice):
- HOME: ~/.config/gsl
@@ -50,6 +55,11 @@ To avoid sudo, you should give permissions to USER
# How to configure a DOMAIN folder, and create a Post
------------------------------------------------------------------------
+When Adding a DOMAIN (example.com), GSL will ask you some questions.
+Datas will be used to create a DOMAIN.conf file. GSL will also ask you
+to set a folder where you will put your Posts, but you can create or add
+ones too.
+
## Set a DOMAIN
- add a DOMAIN name (if not alrady done)
```
@@ -62,17 +72,17 @@ gsl help new
gsl help install
```
-## Set a DOMAIN folder
-if not already done:
-- GSl will ask you to create a folder for your DOMAIN posts when adding a new domain
+## Set a DOMAIN folder for Posts (if not already done by GSL or You)
+
- Add/Create or go into your folder of choice
- Save into that folder a blank file named gsl.DOMAIN (gsl.example.org)
-to tell GSL, this folder is for this DOMAIN website.
+so that GSL, knows this folder is for this DOMAIN website.
## Create a new Post
-- Write a post in a file, using some "metas" that GSL will catch.
The engine is written from scratch and looks like a mix of markdown and
ReStructuredText. It's very easy to learn and use.
+
+- Write a post in a file, using some "metas" that GSL will catch.
- Save your file with .gsl extension
- Start checking it, using:
@@ -80,25 +90,36 @@ ReStructuredText. It's very easy to learn and use.
gsl check
```
-If your Post has no error, you will have some ready to deploy html
-files and folders. You could install lightweight darkhttpd webserver on
-your PC to preview the website, or even, juste open index.html in your
-server folder.
+## Convert one or all Posts
+If your Post has no error, you will have to deploy html
+files and folders. You could install nginx, or lightweight darkhttpd
+webserver on your PC to preview the website. You can also just open
+index.html in your server folder, but you won't be able to see some extra
+includes page, like Posts listing.
+
+To convert your Posts in HTML, use
+
+```
+gsl make
+```
+
+You can select a specific post, with autocompletion to check and make
+only that specified one.
# Create a Templates
------------------------------------------------------------------------
-You will have to create some CSS in your /DOMAIN/templates/
+You will have to create some CSS (styles.css) in your /DOMAIN/templates/
- HOME: ~/.config/gsl/domains/DOMAIN/templates/
- GLOBAL: /var/lib/gsl/domains/DOMAIN/templates/
# How to Write a Post
------------------------------------------------------------------------
-Post has 2 sections : Before and after "#1". "#1" is the FIRST
-Title of your post. Number (1-6) are HTML titles (h1 to h6).
+Post has 2 sections : Before and After #1. #1 is the FIRST Title of your
+post. #(1-6) are HTML titles (
to
).
- Before #1 is used to set METAs HEADERS to configure your Post.
-- After #1 is the CONTENT of your Post
+- From #1 is the CONTENT of your Post
## NEEDED HEADERS (before #1)
Register METAs for HTML Page content
@@ -107,7 +128,7 @@ Register METAs for HTML Page content
title: POST TITLE
slug: POST-TITLE (if space in slug GSL will convert them)
info: DESCRIPTION (about the Post)
-author: NAME (must be registred with $ gsl author add)
+author: NAME (must be registred ($ gsl author add)
date: YYYY-MM-DD
tags: TAG1,OTHER TAG2,TAG3 (comma separated)
```
@@ -133,14 +154,14 @@ Register METAs for CONTENT. " : " field separator
```
abbr: SHORT : LONG
-file: NAME : FILENAME : ALT-TEXT
-link: NAME : URL : ALT-TEXT
-code: NBR : FILENAME
+file: NAME : FILENAME : Alt Text
+link: NAME : URL : Alt Text
+code: NBR : FILENAME : Alt Text
image: NBR : FILENAME : ALT-TEXT
```
## CONTENT Post:
-In Content Post, markers (i.e. [_,_],*_,_*...) must be on the SAME line.
+In Content Post, markers (i.e. __My Great file) must be on the SAME line.
For ABBRs, just write SHORT in your content
```
@@ -150,30 +171,34 @@ At begining of new line, open with ( and close with )
This is a paragraph
)
-# Register in Header. link: My Great link : URL : ALT-TEXT
-[_My Great Link_]
+# Register in Header. link: My Great Link : URL : Alt text
+_My Great Link
+_My Great Link+ # Open in new tab
+
+# Register in Header. file: My Great file : FILENAME : ALT-TEXT
+__My Great file
+
+# Register in Header. image: 1 : FILENAME : ALT-TEXT
+__image:1
+
+# Block-Code File: Register in Header. code: 1 : FILENAME : Alt Text
+__code:1
+
+# Write in STRONG
+**this strong content**
+this un**believe**able content
+this border**line** content
+
+# BOLD
+*this bold content*
+...
# Write in ITALIC
/_this em text_/
-# Write in STRONG
-**_this strong content_**
-
-# BOLD
-*_this bold content_*
-
-# Register in Header. file: My Great file : FILENAME : ALT-TEXT
-<_My Great file_>
-
# Inline-code (¤ = alt-gr + $ on FR keyboard)
¤_push()_¤
-# Lists
-=> list 1
-==> sublist 1
-===> sub-sublist 1
-=> list 2
-
# Simple Blockquote
---
(
@@ -196,9 +221,7 @@ world a worse place
)
---
-# Register in Header. image: 1 : FILENAME : ALT-TEXT
-_image_ : 1
-
-# Block-Code File: Register in Header. code: 1 : FILENAME
-_code_ : 1
+# For advanced blockquotes, you can also add, if known:
+_year: 2021
+_book: Esperanza 64
```
diff --git a/var/lib/gsl/helps/gsl_help_write_post b/var/lib/gsl/helps/gsl_help_write_post
index 2f3dd8f..b0e0e49 100644
--- a/var/lib/gsl/helps/gsl_help_write_post
+++ b/var/lib/gsl/helps/gsl_help_write_post
@@ -1,9 +1,10 @@
# How to Write a Post
+------------------------------------------------------------------------
-Post has 2 sections : Vefore and after #1. #1 is the FIRST Title of your
+Post has 2 sections : Before and After #1. #1 is the FIRST Title of your
post. #(1-6) are HTML titles (
to
).
- Before #1 is used to set METAs HEADERS to configure your Post.
-- After #1 is the CONTENT of your Post
+- From #1 is the CONTENT of your Post
## NEEDED HEADERS (before #1)
Register METAs for HTML Page content
@@ -12,7 +13,7 @@ Register METAs for HTML Page content
title: POST TITLE
slug: POST-TITLE (if space in slug GSL will convert them)
info: DESCRIPTION (about the Post)
-author: NAME (must be registred with $ gsl author add)
+author: NAME (must be registred ($ gsl author add)
date: YYYY-MM-DD
tags: TAG1,OTHER TAG2,TAG3 (comma separated)
```
@@ -38,14 +39,14 @@ Register METAs for CONTENT. " : " field separator
```
abbr: SHORT : LONG
-file: NAME : FILENAME : ALT-TEXT
-link: NAME : URL : ALT-TEXT
-code: NBR : FILENAME
+file: NAME : FILENAME : Alt Text
+link: NAME : URL : Alt Text
+code: NBR : FILENAME : Alt Text
image: NBR : FILENAME : ALT-TEXT
```
## CONTENT Post:
-In Content Post, markers (i.e. [_,_],*_,_*...) must be on the SAME line.
+In Content Post, markers (i.e. __My Great file) must be on the SAME line.
For ABBRs, just write SHORT in your content
```
@@ -55,8 +56,17 @@ At begining of new line, open with ( and close with )
This is a paragraph
)
-# Register in Header. link: My Great link : URL : ALT-TEXT
-[_My Great Link_]
+# Register in Header. link: My Great link : URL : Alt text
+_My Great Link
+
+# Register in Header. file: My Great file : FILENAME : ALT-TEXT
+__My Great file
+
+# Register in Header. image: 1 : FILENAME : ALT-TEXT
+__image:1
+
+# Block-Code File: Register in Header. code: 1 : FILENAME : Alt Text
+__code:1
# Write in ITALIC
/_this em text_/
@@ -67,18 +77,9 @@ This is a paragraph
# BOLD
*_this bold content_*
-# Register in Header. file: My Great file : FILENAME : ALT-TEXT
-<_My Great file_>
-
# Inline-code (¤ = alt-gr + $ on FR keyboard)
¤_push()_¤
-# Lists
-=> list 1
-==> sublist 1
-===> sub-sublist 1
-=> list 2
-
# Simple Blockquote
---
(
@@ -101,9 +102,7 @@ world a worse place
)
---
-# Register in Header. image: 1 : FILENAME : ALT-TEXT
-_image_ : 1
-
-# Block-Code File: Register in Header. code: 1 : FILENAME
-_code_ : 1
+# For advanced blockquotes, you can also add, if known:
+_year: 2021
+_book: Esperanza 64
```
diff --git a/var/lib/gsl/scripts/gsl__db_manager b/var/lib/gsl/scripts/gsl__db_manager
index 445dbdf..8c69f08 100644
--- a/var/lib/gsl/scripts/gsl__db_manager
+++ b/var/lib/gsl/scripts/gsl__db_manager
@@ -18,14 +18,19 @@ grep "$gsl_post" \
# From checkers (bcodes,images,files): Write DB
#=======================================================================
gsl__db_line_file() {
-gsl__db_exists "$gsl_file_db_files" "$gsl_post_header_field_2"
-gsl_db_line_file="$gsl_post_header_field_2:$gsl_file_csum"
+gsl__db_exists "$gsl_file_db_files" "$gsl_post_hf_2"
+gsl_db_line_file="$gsl_post_hf_2:$gsl_file_csum"
+
if [[ "$gsl_db_file_hash" ]];then
+
sed -i "${gsl_db_file_line_nbr}s,.*,$gsl_db_line_file," \
"$gsl_file_db_files"
+
else
- echo "$gsl_post_header_field_2:$gsl_file_csum" \
+
+ echo "$gsl_post_hf_2:$gsl_file_csum" \
>> "$gsl_file_db_files"
+
fi
}
#=======================================================================
@@ -112,7 +117,7 @@ case "$gsl_process" in
#-------------------------------------------------------------------
gsl__db_exists "$gsl_file_db_posts"
if [[ "$gsl_checker_err" ]] && [[ "$gsl_db_post_line_nbr" ]];then
- sed -i "${gsl_db_post_line_nbr}d" "$gsl_file_db_posts" \
+ sed -i "${gsl_db_post_line_nbr}d" "$gsl_file_db_posts" && \
gsl__logs_print \
"$gsl_log_w" \
"DB" \
@@ -121,9 +126,7 @@ case "$gsl_process" in
"$gsl_file_db_posts"
return
fi
-
- echo -e "\nD> Pass next DB"
-
+
gsl_db_post_line=`
printf '%s%s%s%s%s%s%s\n' \
"$gsl_post_type|" \
diff --git a/var/lib/gsl/scripts/gsl__do_commons b/var/lib/gsl/scripts/gsl__do_commons
new file mode 100644
index 0000000..e97799f
--- /dev/null
+++ b/var/lib/gsl/scripts/gsl__do_commons
@@ -0,0 +1,56 @@
+#!/bin/bash
+# file: gsl__do_commons
+# Folder: /var/lib/gsl/scripts
+# By echolib
+# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
+
+#=======================================================================
+# Get NEEDED DATAS from HEADERS
+#=======================================================================
+gsl__get_needed_headers() {
+gsl_post_type=`gsl__get_header "$gsl_marker_type" "$gsl_post"`
+gsl_header_title=`gsl__get_header "$gsl_marker_title" "$gsl_post"`
+gsl_header_slug=`gsl__get_header "$gsl_marker_slug" "$gsl_post"`
+gsl_header_author=`gsl__get_header "$gsl_marker_author" "$gsl_post"`
+gsl_header_date=`gsl__get_header "$gsl_marker_date" "$gsl_post"`
+gsl_header_info=`gsl__get_header "$gsl_marker_info" "$gsl_post"`
+gsl_header_tags=`gsl__get_header "$gsl_marker_tags" "$gsl_post"`
+}
+
+#======================================================================
+# Check | Make in Loop from header datas $1: process $2:marker $3:file
+#======================================================================
+gsl__do_header() {
+unset ${!gsl_post_hf@}
+
+# Stats
+gsl_stat_link=0
+gsl_stat_abbr=0
+gsl_stat_file=0
+gsl_stat_fcode=0
+
+while read -r "gsl_header_content_line"
+do
+ gsl__get_header_fields "$2"
+
+ case "$1" in
+ check)
+ case "$2" in
+ "$gsl_marker_link") gsl__check_link ;;
+ "$gsl_marker_abbr") gsl__check_abbr ;;
+ "$gsl_marker_file") gsl__check_file ;;
+ "$gsl_marker_image") gsl__check_image ;;
+ "$gsl_marker_code") gsl__check_fcode ;;
+ esac
+ ;;
+
+ make)
+ case "$2" in
+ "$gsl_marker_link") gsl__make_link ;;
+ "$gsl_marker_abbr") gsl__make_abbr ;;
+ esac
+ ;;
+ esac
+
+done < <(gsl__get_header "$2" "$3")
+}
diff --git a/var/lib/gsl/scripts/gsl__new_website b/var/lib/gsl/scripts/gsl__new_website
index 92c017d..8320927 100644
--- a/var/lib/gsl/scripts/gsl__new_website
+++ b/var/lib/gsl/scripts/gsl__new_website
@@ -231,7 +231,7 @@ printf '%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n' \
": Logo File|$gsl_set_logo" \
": CSS Acro|$gsl_set_css" \
": Author URL|$gsl_set_auth_url" \
- ": User folder writings' Posts|$gsl_dir_user_posts"
+ ": User folder writings' Posts|$gsl_dir_user_posts" \
| column -t -s'|'
#=======================================================================
diff --git a/var/lib/gsl/scripts/gsl__page_creator b/var/lib/gsl/scripts/gsl__page_creator
new file mode 100644
index 0000000..92eac2f
--- /dev/null
+++ b/var/lib/gsl/scripts/gsl__page_creator
@@ -0,0 +1,181 @@
+#!/bin/bash
+# file: gsl__page_creator
+# Folder: /var/lib/gsl/scripts
+# By echolib
+# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
+
+#-----------------------------------------------------------------------
+# --------------------------------------------------
+# From: gsl__all_makers | Create HTML Page
+# --------------------------------------------------
+#-----------------------------------------------------------------------
+
+#-----------------------------------------------------------------------
+# Get Datas for Post/Page
+#-----------------------------------------------------------------------
+gsl__page_prepare_datas() {
+echo "$gsl_this_conf_domain"
+
+# Check for Files & Folders in server
+gsl_srv_wip="$gsl_site_server/$gsl_site_ndd/wip"
+mkdir -p "$gsl_srv_wip"
+
+# Sync Files and Folders
+for folder in `find $gsl_this_conf_domain/* -type d`
+do
+ rsync -a "$folder" "$gsl_srv_wip"
+done
+
+# Post or Page
+case "$gsl_post_type" in
+ post)
+ gsl_srv_wip_page="$gsl_srv_wip/$gsl_header_slug/index.html"
+ gsl__check_srv_files "$gsl_srv_wip_page"
+ gsl_uri=".."
+ ;;
+ page)
+ gsl_srv_wip_page="$gsl_srv_wip/$gsl_header_slug.html"
+ gsl__check_srv_files "$gsl_srv_wip_page"
+ gsl_uri="."
+ ;;
+esac
+
+gsl_uri_site_logo="$gsl_uri/templates/$gsl_site_logo"
+}
+
+#-----------------------------------------------------------------------
+# MAIN
+#-----------------------------------------------------------------------
+gsl__page_creator() {
+gsl__page_prepare_datas
+gsl__check_templates
+gsl__html_meta_head
+gsl__page_create
+}
+
+#-----------------------------------------------------------------------
+# Check if Post / Pages exists in server
+#-----------------------------------------------------------------------
+gsl__check_srv_files() {
+if [[ -f "$1" ]];then
+ echo "! $1"
+fi
+}
+
+#-----------------------------------------------------------------------
+# Create Final HTML Post/Page
+#-----------------------------------------------------------------------
+gsl__page_create() {
+
+cat << EOPAGE > "$gsl_srv_wip_page"
+
+
+
+`cat "$gsl_html_meta"`
+
+
+
+
+`cat "$gsl_dir_domain_tpl/header.html"`
+
+
+
+
+
Écrit par $gsl_header_author le $gsl_header_date
+
+`cat "$gsl_a11y_post"`
+
+
+
+`cat "$gsl_dir_domain_tpl/footer.html"`
+
+
+
+EOPAGE
+
+# No more needed html meta file
+rm -f "$gsl_html_meta"
+}
+
+#-----------------------------------------------------------------------
+# Create META head for Post/Page
+#-----------------------------------------------------------------------
+gsl__html_meta_head() {
+# Create file with metas to be included in Post/Page
+gsl_html_meta=`mktemp`
+cat << EOMETAS >> "$gsl_html_meta"
+
+
+
+
+
+
+
+ $gsl_header_title - $gsl_site_title
+
+
+
+
+
+
+
+
+
+
+
+
+EOMETAS
+}
+
+#-----------------------------------------------------------------------
+# Create Generic Header
+#-----------------------------------------------------------------------
+gsl__html_header() {
+cat << EOHEADER >> "$gsl_dir_domain_tpl/header.html"
+
+