2022-02-27 19:16:16 +01:00
|
|
|
#!/bin/bash
|
|
|
|
# file: gsl__page_creator
|
|
|
|
# Folder: /var/lib/gsl/scripts
|
|
|
|
# By echolib
|
|
|
|
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
|
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
# --------------------------------------------------
|
|
|
|
# From: gsl__all_makers | Create HTML Page
|
|
|
|
# --------------------------------------------------
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-03-01 12:39:16 +01:00
|
|
|
# MAIN
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-03-01 12:39:16 +01:00
|
|
|
gsl__page_creator() {
|
2022-03-02 14:27:50 +01:00
|
|
|
#gsl__page_prepare_datas
|
2022-03-01 12:39:16 +01:00
|
|
|
gsl__check_templates
|
|
|
|
gsl__html_meta_head
|
|
|
|
gsl__page_create
|
2022-03-01 18:39:46 +01:00
|
|
|
cat -n "$gsl_srv_wip_page"
|
2022-03-01 12:39:16 +01:00
|
|
|
}
|
|
|
|
|
2022-03-05 18:06:48 +01:00
|
|
|
#======================================================================
|
|
|
|
# Sync Files from Templates to webserver
|
|
|
|
#======================================================================
|
|
|
|
gsl__srv_sync() {
|
|
|
|
# Sync Files and Folders
|
|
|
|
for folder in `find $gsl_this_conf_domain/* -type d`
|
|
|
|
do
|
|
|
|
rsync -a "$folder" "$gsl_srv_wip" && \
|
|
|
|
gsl__logs_print \
|
|
|
|
"$gsl_log_w" \
|
|
|
|
"Server" \
|
|
|
|
"Sync" \
|
|
|
|
"$folder" \
|
|
|
|
"$gsl_srv_wip"
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
# Get Datas for Post/Page
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
gsl__page_prepare_datas() {
|
2022-03-05 18:18:46 +01:00
|
|
|
#echo "D> $gsl_this_conf_domain"
|
2022-02-27 19:16:16 +01:00
|
|
|
|
|
|
|
# Check for Files & Folders in server
|
|
|
|
gsl_srv_wip="$gsl_site_server/$gsl_site_ndd/wip"
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
}
|
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
# Check if Post / Pages exists in server
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
gsl__check_srv_files() {
|
|
|
|
if [[ -f "$1" ]];then
|
2022-03-06 01:47:58 +01:00
|
|
|
gsl__logs_print \
|
|
|
|
"$gsl_log_i" \
|
|
|
|
"SRV" \
|
|
|
|
"Files" \
|
|
|
|
"Exists" \
|
|
|
|
"$1"
|
2022-02-27 19:16:16 +01:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#======================================================================
|
|
|
|
# Create Post Listing
|
|
|
|
#======================================================================
|
|
|
|
gsl__page_create_listing() {
|
|
|
|
# Check if Post is in list ; Status Made
|
2022-03-08 17:53:40 +01:00
|
|
|
gsl_checker_war=true
|
|
|
|
gsl_listing_file="$gsl_dir_domain_listings/$gsl_post.list"
|
|
|
|
|
|
|
|
if [[ `ls -1 "$gsl_listing_file"* 2>/dev/null` ]];then
|
|
|
|
gsl__logs_print \
|
|
|
|
"$gsl_log_w" \
|
|
|
|
"Post" \
|
|
|
|
"List" \
|
|
|
|
"$gsl_post_list $gsl_post already added to Latests" \
|
|
|
|
"$gsl_dir_domain_listings/"
|
|
|
|
return
|
|
|
|
fi
|
2022-03-06 15:57:20 +01:00
|
|
|
|
2022-03-08 17:53:40 +01:00
|
|
|
case "$gsl_post_list" in
|
|
|
|
Pin)
|
|
|
|
gsl__page_create_listing_file "$gsl_listing_file.1"
|
|
|
|
;;
|
|
|
|
Add)
|
|
|
|
# search for last listing number
|
|
|
|
gsl_listing_last=`
|
|
|
|
ls -1 *"$gsl_dir_domain_listings/"*".list."* \
|
|
|
|
| tail -1 2>/dev/null`
|
|
|
|
|
|
|
|
# Get Last listing number
|
|
|
|
! [[ $gsl_listing_last ]] \
|
|
|
|
&& gsl_listing_last_n=0 \
|
|
|
|
|| gsl_listing_last_n=${gsl_listing_last: -1}
|
|
|
|
|
|
|
|
# Set last listing number for this post
|
|
|
|
(( $gsl_listing_last_n <= $(( gsl_list_max_posts - 1)) )) \
|
|
|
|
&& gsl_listing_last_n=$(( $gsl_listing_last_n + 1 ))
|
|
|
|
|
|
|
|
gsl__page_create_listing_file \
|
|
|
|
"$gsl_listing_file.$gsl_listing_last_n"
|
2022-03-05 18:06:48 +01:00
|
|
|
;;
|
|
|
|
esac
|
2022-03-02 17:25:23 +01:00
|
|
|
|
2022-03-08 17:53:40 +01:00
|
|
|
cat "$gsl_dir_domain_listings/"*.list.* \
|
|
|
|
> "$gsl_dir_domain_tpl/last-posts-list.html" \
|
|
|
|
&& gsl__logs_print \
|
|
|
|
"$gsl_log_w" \
|
|
|
|
"Post" \
|
|
|
|
"List" \
|
|
|
|
"Create Latest Listing (Merged .list.*)"\
|
|
|
|
"$gsl_dir_domain_tpl/last-post-list.html"
|
|
|
|
}
|
2022-03-02 17:25:23 +01:00
|
|
|
|
2022-03-08 17:53:40 +01:00
|
|
|
gsl__page_create_listing_file() {
|
|
|
|
cat << EOPostSide > "$1"
|
2022-03-02 17:25:23 +01:00
|
|
|
<li>
|
|
|
|
<span class="${gsl_site_css}_list-post-title">$gsl_header_title</span>
|
|
|
|
<div class="${gsl_site_css}_list-post-metas">Le $gsl_header_date par $gsl_header_author<div>
|
|
|
|
<div class="${gsl_site_css}_list-post-info">$gsl_header_info</div>
|
|
|
|
</li>
|
|
|
|
EOPostSide
|
|
|
|
|
|
|
|
gsl__logs_print \
|
2022-03-06 15:57:20 +01:00
|
|
|
"$gsl_log_w" \
|
2022-03-02 17:25:23 +01:00
|
|
|
"Post" \
|
2022-03-08 17:53:40 +01:00
|
|
|
"List" \
|
|
|
|
"$gsl_post_list $gsl_post to Latests"\
|
|
|
|
"$1"
|
2022-03-02 17:25:23 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
# Create Final HTML Post/Page
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
gsl__page_create() {
|
|
|
|
cat << EOPAGE > "$gsl_srv_wip_page"
|
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="${gsl_site_lang: :2}">
|
|
|
|
<head>
|
|
|
|
`cat "$gsl_html_meta"`
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body id="${gsl_site_css}_$gsl_post_type">
|
|
|
|
|
|
|
|
`cat "$gsl_dir_domain_tpl/header.html"`
|
|
|
|
|
|
|
|
<section id="${gsl_site_css}_page-wrapper">
|
|
|
|
<article id="${gsl_site_css}_$gsl_header_slug">
|
2022-03-02 17:25:23 +01:00
|
|
|
|
2022-02-27 19:16:16 +01:00
|
|
|
<div id="${gsl_site_css}_metas">
|
|
|
|
<p id="${gsl_site_css}_auteur">Écrit par <strong>$gsl_header_author</strong> le $gsl_header_date</p>
|
|
|
|
</div>
|
2022-03-02 17:25:23 +01:00
|
|
|
|
2022-02-27 19:16:16 +01:00
|
|
|
`cat "$gsl_a11y_post"`
|
2022-03-02 17:25:23 +01:00
|
|
|
</article>
|
2022-02-27 19:16:16 +01:00
|
|
|
|
|
|
|
<aside id="${gsl_site_css}_sidebar">
|
2022-03-02 17:25:23 +01:00
|
|
|
<div class="${gsl_site_css}_wrapper" role="navigation">
|
|
|
|
<nav id="${gsl_site_css}_latest-posts">
|
|
|
|
<h1 class="${gsl_site_css}_latest-posts">Derniers articles</h1>
|
|
|
|
<ul aria-label="Liste d'Articles">
|
|
|
|
<!--# include file="$gsl_uri/templates/last-posts-list.html" -->
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
</aside>
|
2022-02-27 19:16:16 +01:00
|
|
|
</section>
|
|
|
|
|
|
|
|
`cat "$gsl_dir_domain_tpl/footer.html"`
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
EOPAGE
|
|
|
|
|
|
|
|
# No more needed html meta file
|
|
|
|
rm -f "$gsl_html_meta"
|
|
|
|
}
|
|
|
|
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
# Create META head for Post/Page
|
2022-03-02 17:25:23 +01:00
|
|
|
#----------------------------------------------------------------------
|
2022-02-27 19:16:16 +01:00
|
|
|
gsl__html_meta_head() {
|
|
|
|
# Create file with metas to be included in Post/Page
|
|
|
|
gsl_html_meta=`mktemp`
|
|
|
|
cat << EOMETAS >> "$gsl_html_meta"
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
<meta name='viewport' content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta name='robots' content="all">
|
|
|
|
<meta name='generator' content="GSL: Statique Littérateur">
|
|
|
|
<meta name='medium' content='website'>
|
|
|
|
<meta name='revisit-after' content="3 days">
|
|
|
|
|
|
|
|
<title>$gsl_header_title - $gsl_site_title</title>
|
|
|
|
<link rel="stylesheet" "media="screen" href="$gsl_uri/templates/styles.css" />
|
|
|
|
<link rel="shortcut icon" type="image/png" href="$gsl_uri/templates/favicon.png" />
|
|
|
|
<link rel='me' type='text/html' href="$gsl_site_auth_url">
|
|
|
|
|
|
|
|
<meta name='language' content="$gsl_site_lang">
|
|
|
|
<meta name='reply-to' content="$gsl_site_mail">
|
|
|
|
<meta name='copyright' content="$gsl_site_cr">
|
|
|
|
<meta name='title' content="$gsl_header_title - $gsl_site_title">
|
|
|
|
<meta name='author' content="$gsl_header_author">
|
|
|
|
<meta name='description' content="$gsl_header_info">
|
|
|
|
<meta name='keywords' content="$gsl_site_keys,$gsl_header_tags">
|
|
|
|
<meta name='search_date' content="$gsl_header_date">
|
|
|
|
EOMETAS
|
|
|
|
}
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
# Create Generic Header
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
gsl__html_header() {
|
|
|
|
cat << EOHEADER >> "$gsl_dir_domain_tpl/header.html"
|
|
|
|
<header id="${gsl_site_css}_banner">
|
|
|
|
<div id="${gsl_site_css}_site-logo">
|
|
|
|
<a href="/">
|
|
|
|
<img src="$gsl_uri_site_logo"
|
|
|
|
alt="Logo de $gsl_site_title"
|
|
|
|
title="Logo de $gsl_site_title"/>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<section id="${gsl_site_css}_site-titles">
|
|
|
|
<h1 id="${gsl_site_css}_site-name">
|
|
|
|
<a href="/"
|
|
|
|
title="Page d'accueil de $gsl_site_title">
|
|
|
|
$gsl_site_title
|
|
|
|
</a>
|
|
|
|
</h1>
|
|
|
|
<h2 id="${gsl_site_css}_site-description">$gsl_site_info</h2>
|
|
|
|
</section>
|
|
|
|
</header>
|
|
|
|
EOHEADER
|
|
|
|
}
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
# Create Generic Footer
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
gsl__html_footer() {
|
|
|
|
cat << EOFOOTER >> "$gsl_dir_domain_tpl/header.html"
|
|
|
|
<footer id=${gsl_site_css}_footer">
|
|
|
|
</footer>
|
|
|
|
EOFOOTER
|
|
|
|
}
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
# Check for files in templates folder
|
|
|
|
#-----------------------------------------------------------------------
|
|
|
|
gsl__check_templates() {
|
2022-03-05 18:18:46 +01:00
|
|
|
#echo "D> $gsl_dir_domain_tpl"
|
2022-02-27 19:16:16 +01:00
|
|
|
# Create generic HEADER if not exists
|
|
|
|
! [[ "$gsl_dir_domain_tpl/header.html" ]] \
|
|
|
|
&& gsl__html_header
|
|
|
|
|
|
|
|
# Create generic FOOTER if not exists
|
|
|
|
! [[ "$gsl_dir_domain_tpl/footer.html" ]] \
|
|
|
|
&& gsl__html_footer
|
|
|
|
}
|