New version 0.0.36
This commit is contained in:
parent
c924dad232
commit
629ddf024f
2
control
2
control
|
@ -1,5 +1,5 @@
|
|||
Package: egsl
|
||||
Version: 0.0.35
|
||||
Version: 0.0.36
|
||||
Section: custom
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
|
|
|
@ -42,7 +42,7 @@ gsl_filename_auth="authors.db"
|
|||
# GSL Internal Configuration
|
||||
#=======================================================================
|
||||
# minimum size to check a post
|
||||
gsl_post_min_size=800
|
||||
gsl_post_min_size=150
|
||||
|
||||
# Max Posts list in sidebar
|
||||
gsl_list_max_posts=5
|
||||
|
@ -103,7 +103,7 @@ gsl_mark_strong='\*\*'
|
|||
gsl_mark_italic='\/'
|
||||
gsl_mark_code="¤"
|
||||
gsl_mark_list='='
|
||||
gsl_mark_listo="ø"
|
||||
gsl_mark_listo="+"
|
||||
|
||||
|
||||
gsl_mark_blockquote='---'
|
||||
|
|
|
@ -1,11 +1,37 @@
|
|||
# Créer un fichier depuis la ligne de commande
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Vous pouvez créer un fichier daté du jour avec les METAS obligatoires
|
||||
intégrés (à renseigner après). Vous devez spécifier si votre article
|
||||
sera une page ou un post (Voir section plus bas) et lui donner un nom.
|
||||
|
||||
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout
|
||||
de votre domaine (ou celui que vous avez configuré).
|
||||
|
||||
Évitez les espaces dans le nom du fichier ou utilisez des guillemets.
|
||||
|
||||
```
|
||||
# Crréer une page nommée index
|
||||
gsl create page index
|
||||
|
||||
# Créer un article nommé mes-vacances
|
||||
gsl create post mes-vacances
|
||||
```
|
||||
|
||||
Vous pouvez l'éditer dans le terminal ou avec votre éditeur de texte.
|
||||
|
||||
```
|
||||
gsl edit mes-vacances.gsl
|
||||
```
|
||||
|
||||
# Comment écrire un article
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Votre article doit contenir 2 sections. Les Metas avant #1 et
|
||||
Votre article doit contenir 2 sections. Les METAS avant ```#1``` et
|
||||
l'article à partir de ce repère (servant de titre h1).
|
||||
|
||||
- METAS : configurer votre article (titre, date, liens...)
|
||||
- ARTICLE : Contenue rédactionnel avec quelques marqueurs (gras...)
|
||||
- ARTICLE : contenue rédactionnel avec quelques marqueurs (gras...)
|
||||
|
||||
## METAS obligatoires (avant #1)
|
||||
|
||||
|
@ -26,17 +52,17 @@ première ligne de votre article
|
|||
|
||||
```
|
||||
# Page (index, 404, about...)
|
||||
# Création selon le slug: /POST-TITLE.html
|
||||
# Création HTML selon le slug: /POST-TITLE.html
|
||||
type: page
|
||||
|
||||
# Article (monarticle)
|
||||
# Création selon le slug: /POST-TITLE/index.html
|
||||
# Création HTML selon le slug: /POST-TITLE/index.html
|
||||
type: post
|
||||
```
|
||||
|
||||
## METAS optionnelles (avant #1)
|
||||
## METAS optionnelles (avant ```#1```)
|
||||
|
||||
Définir les marqueurs (abbr:, link:...) et utiliser " : " comme séparateur
|
||||
Définir les marqueurs (abbr:, link:...) et utiliser ``` : ``` comme séparateur
|
||||
|
||||
```
|
||||
abbr: COURT : LONG
|
||||
|
@ -242,15 +268,15 @@ _book: Esperanza 64
|
|||
|
||||
### Créer des listes
|
||||
L'arborescence est "infinie".
|
||||
- Chaque contenu de la liste *doit être sur la même ligne*
|
||||
- Chaque contenu de la liste **doit être sur la même ligne**
|
||||
|
||||
Dans l'article...
|
||||
- utilisez ```=``` pour définir l'arborescence d'une liste simple
|
||||
- utilisez ```ø``` pour définir une liste ordonnée (alt+gr + o (FR azerty))
|
||||
- utilisez ```=``` pour définir l'arborescence d'une liste simple (ul)
|
||||
- utilisez ```+``` pour définir une liste ordonnée (ol)
|
||||
|
||||
```
|
||||
(
|
||||
Voici une liste
|
||||
Voici une liste simple
|
||||
= Fruits : *mangez-en*
|
||||
== Kiwis
|
||||
== Fraises
|
||||
|
|
|
@ -25,16 +25,16 @@ gsl sync
|
|||
GSL synchronisera votre template sur votre webserver.
|
||||
Rechargez votre page dans votre navigateur
|
||||
|
||||
Si vous avez modifié header ou footer.html, ou si de nouvelles fonctions
|
||||
sont arrivées et concernent les pages HTML dans GSL, il vous faudra
|
||||
reconstruire toutes les pages
|
||||
Si vous avez modifié header.html ou footer.html dans votre dossier
|
||||
/templates, ou si de nouvelles fonctions sont arrivées et concernent les
|
||||
pages HTML dans GSL, il vous faudra reconstruire toutes les pages
|
||||
|
||||
```
|
||||
gsl make -F
|
||||
```
|
||||
|
||||
## Listes de classes utilisées.
|
||||
Rappel: les classes et IDs commencent passent votre ACRONYM configuré,
|
||||
Rappel: les classes et IDs commencent par votre ACRONYM configuré,
|
||||
lors de la création d'un domaine avec ```gsl new```, suivi par ```_```.
|
||||
Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
|
||||
|
||||
|
@ -55,11 +55,11 @@ Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
|
|||
### Dans ```<article>```
|
||||
|
||||
- CLASS=
|
||||
- - div après chaque titre ```<hX>```: xxx_content-pX
|
||||
- - p dans div content-pX: xxx_paragraph
|
||||
- - div après chaque titre ```<hX>```: xxx_content-p xxx_content-pX
|
||||
- - p dans div content-p: xxx_paragraph
|
||||
- - - si contenu ```( 2```: xxx_paragraph-2
|
||||
- - code pour les inline-code avec ```¤...¤```: xxx_icode
|
||||
- - li (liste) en fonction du nombre N de ```=```: xxx__list-li x_list-N
|
||||
- - li (liste) en fonction du nombre N de ```= | +```: xxx__list-li x_list-N
|
||||
- - ul (liste) simple: xxx_list-ul
|
||||
- - ol (liste) ordonnée: xxx_list-ol
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
# Version: 0.0.35 > 0.0.36
|
||||
|
||||
- New list converter (! Use + for ol, not ø)
|
||||
- New block titles converter with div
|
||||
- New option: create
|
||||
- New option with edit: conf (to edit domain configuration)
|
||||
- New option: --version (to show changes)
|
||||
- New generic function if invalid option
|
||||
|
||||
- Fix: No <div</div> if block title empty
|
|
@ -1,12 +1,12 @@
|
|||
#!/bin/bash
|
||||
# Version: 0.0.35
|
||||
# Version: 0.0.36
|
||||
# file: gsl
|
||||
# Folder: /usr/local/bin
|
||||
# By echolib
|
||||
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
|
||||
|
||||
#=======================================================================
|
||||
# Tool: Check needed file and sourcee if asked
|
||||
# Tools
|
||||
#=======================================================================
|
||||
if__command() {
|
||||
! [[ `command -v $1` ]] \
|
||||
|
@ -33,6 +33,11 @@ case "$2" in
|
|||
esac
|
||||
}
|
||||
|
||||
gsl__invalid_option() {
|
||||
echo "! Invalid argument '$1': $2"
|
||||
exit
|
||||
}
|
||||
|
||||
# Get conf
|
||||
gsl__if_file "/etc/gsl/gsl.conf" source
|
||||
gsl__if_file "$gsl_dir_scripts/gsl__log_manager" source
|
||||
|
@ -52,7 +57,10 @@ case "$1" in
|
|||
gsl__if_file "$gsl_dir_helps/gsl_help_install" read
|
||||
;;
|
||||
write|-w)
|
||||
gsl__if_file "$gsl_dir_helps/gsl_help_write_post" read
|
||||
gsl__if_file "$gsl_dir_lib/help//article-comment-ecrire.md" read
|
||||
;;
|
||||
template|-t)
|
||||
gsl__if_file "$gsl_dir_lib/help/template-comment-creer.md" read
|
||||
;;
|
||||
esac
|
||||
exit
|
||||
|
@ -169,7 +177,7 @@ case "$1" in
|
|||
exit 0
|
||||
;;
|
||||
|
||||
version|-v)
|
||||
-v)
|
||||
awk 'NR==2 {print "# Installed:",$3}' "/usr/local/bin/$app_name"
|
||||
exit
|
||||
;;
|
||||
|
@ -182,6 +190,12 @@ case "$1" in
|
|||
echo -ne "Online: $v_onl\n"
|
||||
exit
|
||||
;;
|
||||
|
||||
--version)
|
||||
awk 'NR==2 {print "# Installed:",$3}' "/usr/local/bin/$app_name"
|
||||
gsl__if_file "$gsl_dir_lib/new-version.md" read
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
#=======================================================================
|
||||
|
@ -204,12 +218,74 @@ gsl__if_file "$gsl_dir_scripts/gsl__do_commons" source
|
|||
# Main
|
||||
#=======================================================================
|
||||
case "$1" in
|
||||
create)
|
||||
case "$2" in
|
||||
page|post)
|
||||
true
|
||||
;;
|
||||
*)
|
||||
gsl__invalid_option "$2" "page|post"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$3" in
|
||||
"")
|
||||
gsl__invalid_option "$3" "Please set a name for your $2"
|
||||
;;
|
||||
esac
|
||||
|
||||
gsl_postname="$3"
|
||||
[[ "$gsl_postname" =~ ".gsl" ]] \
|
||||
&& gsl_postname=${gsl_postname/.gsl/}
|
||||
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Starting" \
|
||||
"Create" \
|
||||
"$2" \
|
||||
"$PWD/$3.gsl"
|
||||
|
||||
if [[ -f "$gsl_postname.gsl" ]];then
|
||||
gsl__logs_print \
|
||||
"$gsl_log_w" \
|
||||
"Create" \
|
||||
"File" \
|
||||
"$3.gsl already exists !" \
|
||||
"$PWD/$3.gsl"
|
||||
gsl_checker_war=true
|
||||
else
|
||||
gsl__create_article "$2" "$(date +%F)" "$gsl_postname" && \
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Create" \
|
||||
"$2" \
|
||||
"You can edit it with 'gsl edit $3.gsl'" \
|
||||
"$PWD/$3.gsl"
|
||||
fi
|
||||
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Stopping" \
|
||||
"Create" \
|
||||
"$2" \
|
||||
"$PWD/$3.gsl"
|
||||
;;
|
||||
|
||||
edit|-E)
|
||||
! [[ "$2" ]] \
|
||||
&& echo "! Missing argument: post [FILE]" \
|
||||
&& exit
|
||||
&& gsl__invalid_option "$2" "[File]"
|
||||
|
||||
case "$2" in
|
||||
conf)
|
||||
echo "> $gsl_this_conf_domain/$gsl_find_domain.conf"
|
||||
gsl_this_post="$gsl_this_conf_domain/$gsl_find_domain.conf"
|
||||
gsl__if_file "$gsl_this_post"
|
||||
;;
|
||||
*)
|
||||
gsl__if_file "$PWD/$2" post
|
||||
;;
|
||||
esac
|
||||
|
||||
gsl__if_file "$2" post
|
||||
if ! [[ "$EDITOR" ]];then
|
||||
if__command nano
|
||||
EDITOR=`which nano`
|
||||
|
@ -219,23 +295,23 @@ case "$1" in
|
|||
"$gsl_log_i" \
|
||||
"Starting" \
|
||||
"Process" \
|
||||
"edit $gsl_this_post with $EDITOR" \
|
||||
"$PWD/$gsl_this_post"
|
||||
"edit with $EDITOR" \
|
||||
"$gsl_this_post"
|
||||
|
||||
gsl__get_sum "$PWD/$gsl_this_post"
|
||||
gsl__get_sum "$gsl_this_post"
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Post" \
|
||||
"edit" \
|
||||
"$gsl_this_post > Hash: $gsl_post_hash | Size: $gsl_post_size" \
|
||||
"$PWD/$gsl_this_post"
|
||||
"Edit" \
|
||||
"File" \
|
||||
"Hash: $gsl_post_hash | Size: $gsl_post_size" \
|
||||
"$gsl_this_post"
|
||||
|
||||
gsl_post_hash_old=$gsl_post_hash
|
||||
$EDITOR $PWD/$gsl_this_post
|
||||
$EDITOR "$gsl_this_post"
|
||||
|
||||
gsl__get_sum "$PWD/$gsl_this_post"
|
||||
gsl__get_sum "$gsl_this_post"
|
||||
if (( $gsl_post_hash != $gsl_post_hash_old ));then
|
||||
gsl_log_infos="NEW > Hash: $gsl_post_hash | Size: $gsl_post_size"
|
||||
gsl_log_infos="NEW > Hash. Size: $gsl_post_size"
|
||||
gsl_log_level="$gsl_log_w"
|
||||
else
|
||||
gsl_log_infos="Unchanged"
|
||||
|
@ -244,22 +320,21 @@ case "$1" in
|
|||
|
||||
gsl__logs_print \
|
||||
"$gsl_log_level" \
|
||||
"Post" \
|
||||
"edit" \
|
||||
"$gsl_this_post > $gsl_log_infos" \
|
||||
"$PWD/$gsl_this_post"
|
||||
"Edit" \
|
||||
"File" \
|
||||
"$gsl_log_infos" \
|
||||
"$gsl_this_post"
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Stopping" \
|
||||
"Process" \
|
||||
"edit $gsl_this_post with $EDITOR" \
|
||||
"$PWD/$gsl_this_post"
|
||||
"edit with $EDITOR" \
|
||||
"$gsl_this_post"
|
||||
;;
|
||||
|
||||
db)
|
||||
! [[ "$2" ]] \
|
||||
&& echo "! Missing argument: post [FILE]" \
|
||||
&& exit
|
||||
&& gsl__invalid_option "$2" "[File]"
|
||||
|
||||
gsl__if_file "$2" post
|
||||
[[ -f "$gsl_dir_db/$gsl_this_post.db" ]] \
|
||||
|
@ -319,7 +394,7 @@ case "$1" in
|
|||
gsl__srv_sync "$gsl_srv_wip"
|
||||
;;
|
||||
*)
|
||||
echo "! Bad Argument: $2 ? OPT=www/wip/''"
|
||||
gsl__invalid_option "$2" "www|wip"
|
||||
gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"Sync" \
|
||||
|
@ -370,8 +445,7 @@ case "$1" in
|
|||
|
||||
www)
|
||||
! [[ "$2" ]] \
|
||||
&& echo "! Missing argument: add/remove" \
|
||||
&& exit
|
||||
&& gsl__invalid_option "$2" "add|remove"
|
||||
|
||||
if__command rsync
|
||||
gsl_www_act="$2"
|
||||
|
@ -383,14 +457,12 @@ case "$1" in
|
|||
gsl_ask="! REMOVE ALL www posts (yes|N)? "
|
||||
;;
|
||||
*)
|
||||
echo "! Bad argument: $2 ? OPT=add/remove"
|
||||
exit
|
||||
gsl__invalid_option "$2" "add|remove"
|
||||
;;
|
||||
esac
|
||||
|
||||
! [[ "$3" ]] \
|
||||
&& echo "! Missing argument: post [FILE]/all" \
|
||||
&& exit
|
||||
&& gsl__invalid_option "$3" "[FILE]|all"
|
||||
|
||||
case "$3" in
|
||||
all)
|
||||
|
|
|
@ -1,11 +1,37 @@
|
|||
# Créer un fichier depuis la ligne de commande
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Vous pouvez créer un fichier daté du jour avec les METAS obligatoires
|
||||
intégrés (à renseigner après). Vous devez spécifier si votre article
|
||||
sera une page ou un post (Voir section plus bas) et lui donner un nom.
|
||||
|
||||
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout
|
||||
de votre domaine (ou celui que vous avez configuré).
|
||||
|
||||
Évitez les espaces dans le nom du fichier ou utilisez des guillemets.
|
||||
|
||||
```
|
||||
# Crréer une page nommée index
|
||||
gsl create page index
|
||||
|
||||
# Créer un article nommé mes-vacances
|
||||
gsl create post mes-vacances
|
||||
```
|
||||
|
||||
Vous pouvez l'éditer dans le terminal ou avec votre éditeur de texte.
|
||||
|
||||
```
|
||||
gsl edit mes-vacances.gsl
|
||||
```
|
||||
|
||||
# Comment écrire un article
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Votre article doit contenir 2 sections. Les Metas avant #1 et
|
||||
Votre article doit contenir 2 sections. Les METAS avant ```#1``` et
|
||||
l'article à partir de ce repère (servant de titre h1).
|
||||
|
||||
- METAS : configurer votre article (titre, date, liens...)
|
||||
- ARTICLE : Contenue rédactionnel avec quelques marqueurs (gras...)
|
||||
- ARTICLE : contenue rédactionnel avec quelques marqueurs (gras...)
|
||||
|
||||
## METAS obligatoires (avant #1)
|
||||
|
||||
|
@ -26,17 +52,17 @@ première ligne de votre article
|
|||
|
||||
```
|
||||
# Page (index, 404, about...)
|
||||
# Création selon le slug: /POST-TITLE.html
|
||||
# Création HTML selon le slug: /POST-TITLE.html
|
||||
type: page
|
||||
|
||||
# Article (monarticle)
|
||||
# Création selon le slug: /POST-TITLE/index.html
|
||||
# Création HTML selon le slug: /POST-TITLE/index.html
|
||||
type: post
|
||||
```
|
||||
|
||||
## METAS optionnelles (avant #1)
|
||||
## METAS optionnelles (avant ```#1```)
|
||||
|
||||
Définir les marqueurs (abbr:, link:...) et utiliser " : " comme séparateur
|
||||
Définir les marqueurs (abbr:, link:...) et utiliser ``` : ``` comme séparateur
|
||||
|
||||
```
|
||||
abbr: COURT : LONG
|
||||
|
@ -242,15 +268,15 @@ _book: Esperanza 64
|
|||
|
||||
### Créer des listes
|
||||
L'arborescence est "infinie".
|
||||
- Chaque contenu de la liste *doit être sur la même ligne*
|
||||
- Chaque contenu de la liste **doit être sur la même ligne**
|
||||
|
||||
Dans l'article...
|
||||
- utilisez ```=``` pour définir l'arborescence d'une liste simple
|
||||
- utilisez ```ø``` pour définir une liste ordonnée (alt+gr + o (FR azerty))
|
||||
- utilisez ```=``` pour définir l'arborescence d'une liste simple (ul)
|
||||
- utilisez ```+``` pour définir une liste ordonnée (ol)
|
||||
|
||||
```
|
||||
(
|
||||
Voici une liste
|
||||
Voici une liste simple
|
||||
= Fruits : *mangez-en*
|
||||
== Kiwis
|
||||
== Fraises
|
||||
|
|
|
@ -25,16 +25,16 @@ gsl sync
|
|||
GSL synchronisera votre template sur votre webserver.
|
||||
Rechargez votre page dans votre navigateur
|
||||
|
||||
Si vous avez modifié header ou footer.html, ou si de nouvelles fonctions
|
||||
sont arrivées et concernent les pages HTML dans GSL, il vous faudra
|
||||
reconstruire toutes les pages
|
||||
Si vous avez modifié header.html ou footer.html dans votre dossier
|
||||
/templates, ou si de nouvelles fonctions sont arrivées et concernent les
|
||||
pages HTML dans GSL, il vous faudra reconstruire toutes les pages
|
||||
|
||||
```
|
||||
gsl make -F
|
||||
```
|
||||
|
||||
## Listes de classes utilisées.
|
||||
Rappel: les classes et IDs commencent passent votre ACRONYM configuré,
|
||||
Rappel: les classes et IDs commencent par votre ACRONYM configuré,
|
||||
lors de la création d'un domaine avec ```gsl new```, suivi par ```_```.
|
||||
Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
|
||||
|
||||
|
@ -55,11 +55,11 @@ Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
|
|||
### Dans ```<article>```
|
||||
|
||||
- CLASS=
|
||||
- - div après chaque titre ```<hX>```: xxx_content-pX
|
||||
- - p dans div content-pX: xxx_paragraph
|
||||
- - div après chaque titre ```<hX>```: xxx_content-p xxx_content-pX
|
||||
- - p dans div content-p: xxx_paragraph
|
||||
- - - si contenu ```( 2```: xxx_paragraph-2
|
||||
- - code pour les inline-code avec ```¤...¤```: xxx_icode
|
||||
- - li (liste) en fonction du nombre N de ```=```: xxx__list-li x_list-N
|
||||
- - li (liste) en fonction du nombre N de ```= | +```: xxx__list-li x_list-N
|
||||
- - ul (liste) simple: xxx_list-ul
|
||||
- - ol (liste) ordonnée: xxx_list-ol
|
||||
|
||||
|
|
|
@ -116,7 +116,6 @@ cat << EOPAGE > "$gsl_srv_wip_page"
|
|||
</div>
|
||||
|
||||
`cat "$gsl_a11y_post"`
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<aside id="${gsl_site_css}_sidebar">
|
||||
|
|
|
@ -36,8 +36,6 @@ gsl__make_list
|
|||
|
||||
gsl__do_icode "make" "$gsl_tmp_post"
|
||||
gsl__make_titles
|
||||
gsl_ct=0 && gsl__make_titles_div_open
|
||||
gsl_ct=0 && gsl__make_titles_div_close
|
||||
gsl__do_header "make" "$gsl_marker_image" "$gsl_post"
|
||||
gsl__make_paragraphs
|
||||
|
||||
|
@ -99,148 +97,147 @@ awk -v s="$1" \
|
|||
#======================================================================
|
||||
# Convert List.Get first/last line item / repeat till no more mark
|
||||
#======================================================================
|
||||
# Loop till no more list marker
|
||||
gsl__make_list() {
|
||||
unset gsl_found_list
|
||||
if [[ `awk -v m="$gsl_mark_list" \
|
||||
'$1 == m {print $1;exit}' \
|
||||
if [[ `awk -v mls="$gsl_mark_listo" \
|
||||
'$1 ~ mls {print NR,$0;exit}' \
|
||||
"$gsl_tmp_post"` ]] || \
|
||||
[[ `awk -v mls="$gsl_mark_list" \
|
||||
'$1 ~ mls {print NR,$0;exit}' \
|
||||
"$gsl_tmp_post"` ]];then
|
||||
gsl_found_list=true
|
||||
fi
|
||||
|
||||
if [[ `awk -v m="$gsl_mark_listo" \
|
||||
'$1 == m {print $1;exit}' \
|
||||
"$gsl_tmp_post"` ]];then
|
||||
gsl_found_list=true
|
||||
fi
|
||||
|
||||
if [[ $gsl_found_list ]];then
|
||||
gsl__make_list_read
|
||||
gsl__make_list
|
||||
gsl__make_list_read_by_block
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
gsl__make_list_read() {
|
||||
# Get block lists by line numbers From Content
|
||||
gsl_last_line=`cat $gsl_tmp_post | wc -l`
|
||||
while read -r "gsl_line" "gsl_content"
|
||||
# =====================================================================
|
||||
# Read list by block, create tmp file, convert in HTML, replace block
|
||||
# ln: line number | ml: marker list
|
||||
# =====================================================================
|
||||
gsl__make_list_read_by_block() {
|
||||
unset list_lb list_le
|
||||
|
||||
# Making tmp block file list
|
||||
gsl_file_block_list=`mktemp`
|
||||
while read -r "ln" "ml" "content"
|
||||
do
|
||||
case "$gsl_content" in
|
||||
case "$ml" in
|
||||
"$gsl_mark_list"*|"$gsl_mark_listo"*)
|
||||
! [[ $gsl_list ]] \
|
||||
&& gsl_list=true \
|
||||
&& gsl_list_o=$gsl_line \
|
||||
&& continue
|
||||
|
||||
[[ $gsl_list ]] && (( $gsl_line == $gsl_last_line )) \
|
||||
&& gsl_list_c=$gsl_line \
|
||||
&& gsl__make_list_get_block \
|
||||
&& break
|
||||
|
||||
case "$gsl_content" in
|
||||
"$gsl_mark_list"*) gsl_html_uol="ul" ;;
|
||||
"$gsl_mark_listo"*) gsl_html_uol="ol" ;;
|
||||
esac
|
||||
case "$ml" in
|
||||
"$gsl_mark_list"*)
|
||||
gsl_html_uol="ul"
|
||||
;;
|
||||
"$gsl_mark_listo"*)
|
||||
gsl_html_uol="ol"
|
||||
;;
|
||||
esac
|
||||
! [[ $list_lb ]] && list_lb="$ln"
|
||||
echo "$ml $content" >> "$gsl_file_block_list"
|
||||
;;
|
||||
|
||||
""|*)
|
||||
[[ "$gsl_list" ]] \
|
||||
&& gsl_list_c=$(( gsl_line - 1 )) \
|
||||
&& unset gsl_list \
|
||||
&& gsl__make_list_get_block \
|
||||
&& break
|
||||
if [[ $list_lb ]];then
|
||||
list_le=$ln
|
||||
echo "" >> "$gsl_file_block_list"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done < <(cat -n "$gsl_tmp_post")
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
# Convert List. tmp file block list. replace mark with number
|
||||
#======================================================================
|
||||
gsl__make_list_get_block() {
|
||||
echo -ne "\r\033[2K: Converting Block-List... $gsl_list_o > $gsl_list_c"
|
||||
|
||||
# Create tmp file with this block-list and marks converted
|
||||
gsl_file_block_list=`mktemp`
|
||||
while read -r "mark" "content"
|
||||
do
|
||||
echo "${#mark} $content" >> "$gsl_file_block_list"
|
||||
done < <(awk -v o="$gsl_list_o" -v c="$gsl_list_c" \
|
||||
'NR >= o && NR <= c' \
|
||||
"$gsl_tmp_post")
|
||||
|
||||
# Convert block_list
|
||||
echo -ne "\r\033[2K: Converting list block... $list_lb-$list_le"
|
||||
gsl__make_list_convert
|
||||
|
||||
# No more needed
|
||||
unset gsl_list_o gsl_list_c
|
||||
# Remove in gsl_tmp_post block list and replace with $gsl_file_html_list
|
||||
diff_lines=$(( list_le - list_lb ))
|
||||
#seq $list_lb $list_le
|
||||
for rml in `seq 1 $diff_lines`
|
||||
do
|
||||
sed -i "${list_lb}d" "$gsl_tmp_post"
|
||||
done
|
||||
sed -i "$((list_lb -1))r $gsl_file_html_list" "$gsl_tmp_post"
|
||||
|
||||
# No more needed html file list
|
||||
rm -f "$gsl_file_html_list"
|
||||
|
||||
# No more needed block list file
|
||||
rm -f "$gsl_file_block_list"
|
||||
|
||||
# Go again if new list found
|
||||
gsl__make_list
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
# Convert List. tmp HTML file.
|
||||
#======================================================================
|
||||
# =====================================================================
|
||||
# Create TMP HTML block list file
|
||||
# =====================================================================
|
||||
gsl_file_html_list=`mktemp`
|
||||
gsl__make_list_convert() {
|
||||
|
||||
# Get previeous line mark number
|
||||
gsl__make_list_get_prev_mark() {
|
||||
pm=`
|
||||
awk -v pm="$(( $ln - 1))" \
|
||||
'NR == pm {print $1}' \
|
||||
"$gsl_file_block_list"`
|
||||
|
||||
! [[ $pm ]] && pm=0
|
||||
# mln: marker list number | pmln: previous list mark number
|
||||
gsl__make_list_count_prev_mark() {
|
||||
pml=`awk -v pln=$(( ln -1 )) 'NR == pln {print $1}' "$gsl_file_block_list"`
|
||||
pmln=${#pml}
|
||||
}
|
||||
|
||||
# Create tmp file with HTML block-list
|
||||
gsl_HTML_list=`mktemp`
|
||||
|
||||
#ln: line number ; mn: mark number
|
||||
while read -r "ln" "mn" "content"
|
||||
mln_indent=0
|
||||
while read -r "ln" "ml" "content"
|
||||
do
|
||||
mln=${#ml}
|
||||
(( $mln_indent < $mln )) \
|
||||
&& mln_indent=$mln \
|
||||
&& mln_indent_close=$((mln_indent * 3 - 3))
|
||||
|
||||
gsl__make_list_get_prev_mark
|
||||
gsl_diff_pm_mn=$(( mn - pm ))
|
||||
gsl__make_list_count_prev_mark
|
||||
diff_pmln_mln=$(( mln - pmln ))
|
||||
|
||||
if (( $gsl_diff_pm_mn == 0 ));then
|
||||
printf "%s%s\n" \
|
||||
#echo "$mln (pmln=$pmln ; diff: $diff_pmln_mln)" >> "$gsl_file_html_list"
|
||||
if (( $diff_pmln_mln == 0 ));then
|
||||
|
||||
printf "%$((mln * 3))s%s\n" \
|
||||
"" \
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mn\">$content</li>" \
|
||||
>> "$gsl_HTML_list"
|
||||
elif (( $gsl_diff_pm_mn > 0 ));then
|
||||
printf "%s%s\n" \
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mln\">$content</li>" \
|
||||
>> "$gsl_file_html_list"
|
||||
|
||||
elif (( $diff_pmln_mln > 0 ));then
|
||||
|
||||
printf "%$((mln * 3 - 3))s%s\n%$((mln * 3))s%s\n" \
|
||||
"" \
|
||||
"<$gsl_html_uol class=\"${gsl_site_css}_list-$gsl_html_uol\">" \
|
||||
>> "$gsl_HTML_list"
|
||||
printf "%s%s\n" \
|
||||
"" \
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mn\">$content</li>" \
|
||||
>> "$gsl_HTML_list"
|
||||
elif (( $gsl_diff_pm_mn < 0 ));then
|
||||
printf "</$gsl_html_uol>%.s\n" {1..eval $n} \
|
||||
>> "$gsl_HTML_list"
|
||||
printf "%s%s\n" \
|
||||
"" \
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mn\">$content</li>" \
|
||||
>> "$gsl_HTML_list"
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mln\">$content</li>" \
|
||||
>> "$gsl_file_html_list"
|
||||
|
||||
elif (( $diff_pmln_mln < 0 ));then
|
||||
|
||||
for i in `seq $diff_pmln_mln -1`
|
||||
do
|
||||
if [[ "$content" ]];then
|
||||
|
||||
printf "%${mln_indent_close}s%s\n%${mln_indent_close}s%s\n" \
|
||||
"" \
|
||||
"</$gsl_html_uol>" \
|
||||
"" \
|
||||
"<li class=\"${gsl_site_css}_list-li ${gsl_site_css}_list-$mln\">$content</li>" \
|
||||
>> "$gsl_file_html_list"
|
||||
else
|
||||
|
||||
printf "%${mln_indent_close}s%s\n" \
|
||||
"" \
|
||||
"</$gsl_html_uol>" \
|
||||
>> "$gsl_file_html_list"
|
||||
|
||||
fi
|
||||
|
||||
mln_indent_close=$((mln_indent_close - 3))
|
||||
(( $mln_indent_close < 0 )) && mln_indent_close=0
|
||||
|
||||
done
|
||||
fi
|
||||
done < <(cat -n "$gsl_file_block_list")
|
||||
echo "</$gsl_html_uol>" >> "$gsl_HTML_list"
|
||||
|
||||
# Remove useless list in tmp_post
|
||||
gsl_list_rm_tl=$(( $gsl_list_c - $gsl_list_o ))
|
||||
for rml in `seq 0 $gsl_list_rm_tl`
|
||||
do
|
||||
sed -i "${gsl_list_o}d" "$gsl_tmp_post"
|
||||
done
|
||||
|
||||
# Insert new HTML file list in tmp_post
|
||||
gsl_list_line_i=$(( gsl_list_o - 1))
|
||||
sed -i "${gsl_list_line_i}r $gsl_HTML_list" "$gsl_tmp_post"
|
||||
|
||||
rm -f "$gsl_HTML_list" # No more needed HTML tmp file list
|
||||
}
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
|
||||
#======================================================================
|
||||
# Replace gsl_mark_fcode
|
||||
#======================================================================
|
||||
|
@ -276,7 +273,6 @@ do
|
|||
sed -i "${line}d" "$gsl_tmp_post"
|
||||
rm -f "$gsl_file_tmp_code"
|
||||
rm -f "$gsl_file_bcode"
|
||||
|
||||
done < <(grep -n "$gsl_mark_fcode" "$gsl_tmp_post" | head -n 1)
|
||||
}
|
||||
|
||||
|
@ -299,7 +295,7 @@ printf '%s%s%s%s' \
|
|||
"$gsl_post_hf_1" \
|
||||
"</a>"`
|
||||
|
||||
echo -ne "\r\033[2K: Converting Links... $gsl_post_hf_1"
|
||||
echo -ne "\r\033[2K: Converting Link... $gsl_post_hf_1"
|
||||
sed -i "s|_${gsl_post_hf_1_t}|$gsl_html_link_t|g" "$gsl_tmp_post"
|
||||
|
||||
# No Target
|
||||
|
@ -317,103 +313,71 @@ unset gsl_post_hf_3 gsl_html_link_title
|
|||
# From gsl__do_header: Make ABBRS
|
||||
#======================================================================
|
||||
gsl__make_abbr() {
|
||||
echo -ne "\r\033[2K: Converting ABBRs... $gsl_post_hf_1"
|
||||
echo -ne "\r\033[2K: Converting ABBR... $gsl_post_hf_1"
|
||||
|
||||
gsl_html_long="<abbr title=\"$gsl_post_hf_2\">$gsl_post_hf_1</abbr>"
|
||||
sed -i "s|$gsl_post_hf_1|$gsl_html_long|" "$gsl_tmp_post"
|
||||
}
|
||||
|
||||
#=======================================================================
|
||||
# Find and convert Titles #1-6
|
||||
# Find and convert Titles #1-6 + block dib
|
||||
#=======================================================================
|
||||
gsl__make_titles() {
|
||||
for t in `seq 1 6`
|
||||
gsl_file_block_titles=`mktemp`
|
||||
|
||||
while read -r "ln" "t" "content"
|
||||
do
|
||||
while read -r "h" "content"
|
||||
do
|
||||
gsl_html_title="<h$t>$content</h$t>"
|
||||
echo -ne "\r\033[2K: Converting Block Title... $t $content"
|
||||
if [[ $ln_o ]];then
|
||||
if [[ $ln_c ]];then
|
||||
ln_o=$ln_c
|
||||
ln_c=$ln
|
||||
else
|
||||
ln_c=$ln
|
||||
fi
|
||||
else
|
||||
ln_o=$ln
|
||||
tn=${t: -1}
|
||||
echo "<h$tn>$content</h$tn>" >> "$gsl_file_block_titles"
|
||||
fi
|
||||
|
||||
echo -ne "\r\033[2K: Converting Titles... $content"
|
||||
sed -i "s^$h $content^$gsl_html_title^" \
|
||||
"$gsl_tmp_post"
|
||||
done < <(grep "#$t" "$gsl_tmp_post")
|
||||
done
|
||||
if [[ $ln_c ]];then
|
||||
tn=${t: -1}
|
||||
if [[ `awk -v o="$ln_o" -v c="$ln_c" \
|
||||
'NR > o && NR < c' \
|
||||
"$gsl_tmp_post"` ]];then
|
||||
echo "<div class=\"${gsl_site_css}_content-p ${gsl_site_css}_content-p$tn\">" \
|
||||
>> "$gsl_file_block_titles"
|
||||
awk -v o="$ln_o" -v c="$ln_c" \
|
||||
'NR > o && NR < c && $0' \
|
||||
"$gsl_tmp_post" \
|
||||
>> "$gsl_file_block_titles"
|
||||
echo -e "</div>\n" \
|
||||
>> "$gsl_file_block_titles"
|
||||
fi
|
||||
echo "<h$tn>$content</h$tn>" >> "$gsl_file_block_titles"
|
||||
fi
|
||||
|
||||
done < <(awk '$1 ~ /#/ {print NR,$0}' "$gsl_tmp_post")
|
||||
|
||||
# Doing the last title block content
|
||||
last_line=`cat "$gsl_tmp_post" | wc -l`
|
||||
if [[ `awk -v o="$ln_o" -v c="$last_line" \
|
||||
'NR > o && NR <= c' \
|
||||
"$gsl_tmp_post"` ]];then
|
||||
echo "<div class=\"${gsl_site_css}_content-p ${gsl_site_css}_content-p$tn\">" \
|
||||
>> "$gsl_file_block_titles"
|
||||
awk -v o="$ln_c" -v c="$last_line" \
|
||||
'NR > o && NR <= c' \
|
||||
"$gsl_tmp_post" \
|
||||
>> "$gsl_file_block_titles"
|
||||
echo "</div>" >> "$gsl_file_block_titles"
|
||||
fi
|
||||
|
||||
cat "$gsl_file_block_titles" > "$gsl_tmp_post"
|
||||
rm -f "$gsl_file_block_titles"
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
#=======================================================================
|
||||
# Open DIVs after titles for css
|
||||
#=======================================================================
|
||||
gsl__make_titles_div_open() {
|
||||
echo -ne "\r\033[2K: Searching Titles and Opening DIVs..."
|
||||
|
||||
gsl_ct=$(( gsl_ct + 1 ))
|
||||
gsl_content_title=`
|
||||
grep -n "<h" "$gsl_tmp_post" \
|
||||
| head -n $gsl_ct \
|
||||
| tail -n 1`
|
||||
|
||||
[[ "$gsl_content_title" == "$gsl_content_same_title" ]] && return
|
||||
! [[ "$gsl_content_title" ]] && return
|
||||
|
||||
gsl_content_line_nbr=`
|
||||
awk -F: '{print $1}' \
|
||||
<<< $gsl_content_title`
|
||||
gsl_title_n=`
|
||||
awk -F"<h" '{print $2}' \
|
||||
<<< "$gsl_content_title" \
|
||||
| awk -F">" '{print $1}'`
|
||||
|
||||
gsl_html_div="<div class=\"${gsl_site_css}_content-p$gsl_title_n\">"
|
||||
sed -i "$(( $gsl_content_line_nbr + 1 ))i$gsl_html_div" \
|
||||
"$gsl_tmp_post"
|
||||
|
||||
gsl_content_same_title="$gsl_content_title"
|
||||
gsl__make_titles_div_open
|
||||
}
|
||||
|
||||
#=======================================================================
|
||||
# Close DIVs before titles for css
|
||||
#=======================================================================
|
||||
gsl__make_titles_div_close() {
|
||||
echo -ne "\r\033[2K: Searching Titles and Closing DIVs..."
|
||||
|
||||
gsl_test_line="<div class=\"${gsl_site_css}_content"
|
||||
|
||||
gsl_ct=$(( gsl_ct + 1 ))
|
||||
gsl_content_title=`
|
||||
grep -n "$gsl_test_line" "$gsl_tmp_post" \
|
||||
| head -n $gsl_ct \
|
||||
| tail -n 1`
|
||||
|
||||
[[ "$gsl_content_title" == "$gsl_content_same_title" ]] \
|
||||
&& return
|
||||
|
||||
! [[ "$gsl_content_title" ]] && return
|
||||
|
||||
gsl_content_line_nbr=`
|
||||
awk -F: '{print $1}' \
|
||||
<<< $gsl_content_title`
|
||||
|
||||
while read -r "gsl_search_line_nbr" "gsl_search_line"
|
||||
do
|
||||
case "$gsl_search_line" in
|
||||
"<h"*)
|
||||
sed -i "${gsl_search_line_nbr}i</div>" "$gsl_tmp_post"
|
||||
break
|
||||
;;
|
||||
*) continue ;;
|
||||
esac
|
||||
done < <(awk -v l="$gsl_content_line_nbr" \
|
||||
'NR > l {print NR,$0}' \
|
||||
"$gsl_tmp_post")
|
||||
|
||||
gsl_content_same_title="$gsl_content_title"
|
||||
gsl__make_titles_div_close
|
||||
}
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
#=======================================================================
|
||||
# Find and convert paragraphs (3 different css styles)
|
||||
|
@ -739,6 +703,12 @@ do
|
|||
if (( $gsl_line_nbr > $gsl_last_title_line ));then
|
||||
gsl_stop_line=`cat "$gsl_tmp_post" | wc -l`
|
||||
gsl__make_a11y_add_space
|
||||
|
||||
# print last line and stop
|
||||
awk -v last="$gsl_stop_line" -v space="$gsl_space" \
|
||||
'NR == last {print space $0}' \
|
||||
"$gsl_tmp_post" \
|
||||
>> "$gsl_a11y_post"
|
||||
break
|
||||
fi
|
||||
|
||||
|
|
|
@ -13,11 +13,12 @@ gsl__loop_posts() {
|
|||
gsl__check_nbr_posts
|
||||
(( $gsl_nbr_posts == 0 )) \
|
||||
&& gsl__logs_print \
|
||||
"$gsl_log_i" \
|
||||
"$gsl_log_w" \
|
||||
"Files" \
|
||||
"Not found" \
|
||||
"$gsl_nbr_posts post. Nothing to do in" \
|
||||
"Nothing to do" \
|
||||
"${PWD}" \
|
||||
&& gsl_checker_war=true \
|
||||
&& return
|
||||
|
||||
gsl__logs_print \
|
||||
|
@ -38,13 +39,13 @@ do
|
|||
|
||||
gsl__get_sum "$gsl_post"
|
||||
|
||||
# Post too small
|
||||
# Post too small / Should miss headers
|
||||
if (( "$gsl_post_size" <= $gsl_post_min_size ));then
|
||||
gsl__logs_print \
|
||||
"$gsl_log_w" \
|
||||
"File" \
|
||||
"Size" \
|
||||
"$gsl_post - Too small $gsl_post_size <= $gsl_post_min_size" \
|
||||
"Content" \
|
||||
"Not enough datas $gsl_post ($gsl_post_size < $gsl_post_min_size)" \
|
||||
"${PWD}/$gsl_post"
|
||||
gsl_checker_war=true
|
||||
continue
|
||||
|
@ -61,6 +62,7 @@ do
|
|||
|
||||
if [[ "$gsl_post_new_hash" ]];then
|
||||
unset gsl_db_post_status
|
||||
gsl_checker_war=true
|
||||
if [[ -f "$gsl_srv_wip_page" ]];then
|
||||
rm -f "$gsl_srv_wip_page" && \
|
||||
gsl__logs_print \
|
||||
|
@ -69,7 +71,6 @@ do
|
|||
"Delete" \
|
||||
"$gsl_post_type ; $gsl_post has changed !" \
|
||||
"$gsl_srv_wip_page"
|
||||
gsl_checker_war=true
|
||||
fi
|
||||
|
||||
if [[ -f "$gsl_file_db_post" ]];then
|
||||
|
@ -80,7 +81,6 @@ do
|
|||
"Delete" \
|
||||
"file ; $gsl_post has changed !" \
|
||||
"$gsl_file_db_post"
|
||||
gsl_checker_war=true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -249,9 +249,9 @@ if ! [[ "$gsl_post_hf_3" ]];then
|
|||
fi
|
||||
}
|
||||
|
||||
#=======================================================================
|
||||
#======================================================================
|
||||
# A very simple debugger that show some values
|
||||
#=======================================================================
|
||||
#======================================================================
|
||||
gsl__debug() {
|
||||
printf '\n%s\n%s\n%s\n%s\n' \
|
||||
"D> 1. '$1'" \
|
||||
|
@ -260,3 +260,21 @@ printf '\n%s\n%s\n%s\n%s\n' \
|
|||
"D> 4. '$4'"
|
||||
sleep .5
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
# Basic: create a page/post named $3 from command line with date
|
||||
#======================================================================
|
||||
gsl__create_article() {
|
||||
touch "$PWD/$3.gsl"
|
||||
cat << EONEWP >> "$PWD/$3.gsl"
|
||||
type: $1
|
||||
title:
|
||||
slug:
|
||||
info:
|
||||
author:
|
||||
tags:
|
||||
date: $2
|
||||
|
||||
#1
|
||||
EONEWP
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue