Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 07-07-2020 14:58:43

hybridemoineau
Membre
Inscription : 21-02-2016

[Résolu] Let'go blog this - problème de titre de page et d'archive

Salut,

Je maintiens un site avec Let's go blog this, un script générateur d'html à partir de fichiers Markdown, qu'Otyugh utilise aussi.

J'ai deux soucis que je n'arrive pas à résoudre malgré mes tripatouillages.

- Les titres des pages d'accueil et d'archive sont de la forme "titre | titre tmp". Comment virer le "tmp" ?

- Dans la page d'archive, une rubrique / (racine du site) apparaît, qui ne sert à rien. Comment la virer aussi ?

Je peux corriger à la main dans le code source des pages générées, mais c'est pénible. Une idée ?

Pour info, le début du fichier de conf :

## Site title
TITLE="Titre"
SUBTITLE="blahblah"
DOMAIN="titre.eu"
BASEURL="http://${DOMAIN}"
 



Le template des pages générées

<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
${_PAGETITLE_}
<link rel="icon" href="/favicon.png" type="image/png">
<meta name="author" content="XX" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="${_DESCRIPTION_}">
<link rel="stylesheet" type="text/css" href="titre.css">
<link href="/feed.atom" type="application/atom+xml" rel="alternate"
title="Atom feed my site" />
</head>

<body>
<a id="topOfPage"></a>
<header>
</header>
<br>
<br>
<nav id="navbar">
  <a href="/" title="Retour à l'accueil">⌂ Accueil</a>
  <a href="/archive.html" title="Liste des articles">* Archives</a>
  <a href="/feed.atom" title="Flux ATOM pour s'abonner">⚛ ATOM</a>
  <a href="/Pro/CV.pdf" title="CV">& CV</a>
</nav>
<main>
<br>
<article>
  <div id="pageinfo">
    Mis en ligne le ${_DATE_} à ${_TIME_} dans <a href="${_TAG_}">${_TAG_}</a>
  </div>
<br>
${_MAIN_}
</article>
</main>
<br>
<br>
<br>
<footer>
</footer>
</body>
</html>



le script :

#!/bin/sh
# sw - suckless webframework - 2012 - MIT License - nibble <develsec.org>
# swx - Modified by Thuban - 2016 - MIT License -  <thuban@yeuxdelibad.net>
# lgbt - Let's Go Blog This - prx - 2019 - MIT License -  <prx@ybad.name>

set -xe

start=$(date +%s)
VERSION="0.8"
CONFIG="lgbt.conf"


# Load config file
echo "> Load configuration"

. ./${CONFIG} || exit 1

setdirs() {
  SRC=$(readlink -f "${1}") || (echo "usage: $0 <src dir>"; exit 1)
  # Set input dir and output dir according to $1
  test -d ${SRC} || (echo "${1}" not found; exit 1)
  DST="$(basename ${SRC}).static"
  # W is a file listing all files in site
  # date|/path/relative/to/root/website/no/extension|title
  W=${DST}/._lgbt_filelist
}

gettags() {
  TAG="$(echo $(dirname ${1}) | sed -e "s;${SRC};;")/"
  if [ "${TAG}" = "//" ]; then
    TAG="/"
  fi
  echo "${TAG}"
}

gettitle(){
  # extract first <h1>
  grep -m 1 "<h1>" | sed -n -e 's/.*<h1>\(.*\)<\/h1>.*/\1/p'
}

getrecents(){
  sort -r "${W}" | head -n "${MAX}"
}

gen_page() {
  # $1 is the markdown file
  # $2 is the output html page
  MAIN=$(${CONVERTER} "${1}")

  # get the title of the page
  PAGETITLE="$(echo "${MAIN}" | gettitle)"
  if [ -z "${PAGETITLE}" ]; then
    PAGENAME=$(basename "${1}" |sed -e 's/\..*$//' -e 's/[_-]/ /g')
    DIRNAME=$(basename "$(dirname "${1}" |sed -e 's/[_-]/ /g')")
    PAGETITLE="${PAGENAME}"
  fi

  # write the html
  _PAGETITLE_="<title>${TITLE} | ${PAGETITLE}</title>" \
  _DESCRIPTION_=$(sed '/^\s*$/d' "${1}" | head -n 3 | sed -e 's/<[^>]*>//g' -e 's/\"//g' | egrep -o "[A-Za-z0-9 _.,!\"'/$]*") \
  _MAIN_="${MAIN}" \
  _DATE_=$(date +'%d/%m/%Y') \
  _TIME_=$(date +'%H:%M') \
  _TAG_="$(gettags "${1}")" \
  _TITLE_="${TITLE}" \
  _SUBTITLE_="${SUBTITLE}" \
  envsubst < ${TEMPLATE} > "${2}"

  # return PAGETITLE
  echo "${PAGETITLE}"
}

gen_news() {
  WORKTMP=$(mktemp -p "${SRC}" -t)

  cp "${SRC}/index.${EXT}" "${WORKTMP}"
  echo "<div class=\"news\">" >> "${WORKTMP}"
  getrecents | while read -r line
  do
    URL="$(echo ${line} | cut -d'|' -f2).html"
    NEWTITLE="$(echo "${line}" | cut -d'|' -f3-)"

    cat << EOF >> "${WORKTMP}"
<div class="news_link">
<a href="${URL}"><span class="news_title">$NEWTITLE</span></a>
</div>
EOF
  done

  echo "</div>" >> "${WORKTMP}"

  gen_page "${WORKTMP}" "${DST}/index.html" > /dev/null
  rm "${WORKTMP}"
}

gen_archive() {
  WORKTMP=$(mktemp -p "${SRC}" -t )

  # add a search form with js and ddg and qwant
  cat << EOF >> "${WORKTMP}"
<h1>${LISTALLTITLE}</h1>
<hr>
EOF

  TAG=""
  echo '<ul id="archivelist">' >> "${WORKTMP}"
  while read -r line
  do
    if [ ! -f "${SRC}/$(echo ${line} | cut -d'|' -f2).${EXT}" ]; then
      # the file has been deleted, so remove .html
      if [ -f "${DST}/$(echo ${line} | cut -d'|' -f2).html" ]; then
        rm "${DST}/$(echo ${line} | cut -d'|' -f2).html"
      fi
      grep -v "${line}" "${W}" > "${W}.tmp"
      mv "${W}.tmp" "${W}"
    fi
    ARTTITLE=$(echo "${line}" | cut -d'|' -f3-)
    URL="$(echo "${line}" | cut -d'|' -f2).html"
    NTAG="$(gettags $(echo "${line}" | cut -d'|' -f2))"

    if [ "$NTAG" != "$TAG" ]; then
      TAG="${NTAG}"
      cat << EOF >> "${WORKTMP}"
<h3 class="archivetag"><a href="${TAG}">${TAG}</a></h3>
EOF
    fi
    cat << EOF >> "${WORKTMP}"
<li class="archiveitem">
  <a class="archivetitle" href="${URL}">${ARTTITLE}</a>
</li>
EOF
  done < "${W}"
  echo '</ul>' >> "${WORKTMP}"

  # the javascript
  echo '<script src="/js/archive.js"></script>' >> "${WORKTMP}"
  gen_page "${WORKTMP}" "${DST}/${LISTALL}" > /dev/null
  rm "${WORKTMP}"
}

generate_site() {
  UPDATE_NEWS=0
  # Setup output dir structure
  if [ ! -d "${DST}" ]; then
    echo "> Prepare output directory"
    mkdir -p "${DST}"
  fi
  if [ ! -f ${W} ]; then
    # set the modification time to last year,
    # necessary for first generation of course
    touch -d "$(( $(date +%Y) - 1 ))-01-01T00:00:00" "${W}"
  fi

  # We check the date of last access of files compared to the witness file

  # dirs
  echo "> Create dirs"
  for dir in $(find "${SRC}" ! -path '*/_*' -type d -newer "${W}" | sed -e "s;${SRC};${DST};g")
  do
    echo "${dir}"
    mkdir -p "${dir}"
  done

  # Parse files
  echo "> Generate all html pages"
  for a in $(find "${SRC}" ! -path '*/_*' -type f -newer "${W}")
  do
    echo -n "."
    # file to convert
    NOEXT="${a%.*}"
    FILEEXT=${a##*.}
    RELTOROOT="$(echo "${NOEXT}" | sed "s;$SRC;;")"
    PAGETITLE=""
    if [ "$FILEEXT" = "$EXT" ]; then
      b="${DST}/${RELTOROOT}.html"
      PAGETITLE=$(gen_page "${a}" "${b}")
      # check if file already recorded : if no, record it
      if [ -z "$(grep "${RELTOROOT}" "${W}")" ]; then
        # record the change : file|date|origin_file
        echo "$(date +%s)|$RELTOROOT|${PAGETITLE}" >> "${W}"
      fi
      UPDATE_NEWS=1
      # update index for menu
        else
      b="$(echo "${a}" | sed "s;$SRC;$DST;")"
      cp "${a}" "${b}"
    fi
  done
  test -n "$a" && echo ""
  touch "${W}"
}

gen_sitemap() {
  LASTMOD=$(date +%Y-%m-%d)

  echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
  echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"
  echo "      xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
  echo "      xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 "
  echo "      http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">"
  echo "<url>"
  echo "<loc>${BASEURL}</loc>"
  echo "<lastmod>${LASTMOD}</lastmod>"
  echo "</url>"
  cut -d'|' -f2 "${W}" | sed -e "s,^/,${BASEURL}/,g" -e "s,$,.html," | awk {'print "<url>\n <loc>"$1"</loc>\n</url>"'}
  echo "</urlset>"
}

gen_atom() {
  LASTDATE=$(tail -n 1 "${W}" | cut -d'|' -f1)
  FEED_UPDATED=$(date -ud@${LASTDATE} +%Y-%m-%dT%TZ)

  cat <<EOF
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

<title>${TITLE}</title>
<subtitle>${SUBTITLE}</subtitle>
<link href="${BASEURL}"/>
<updated>${FEED_UPDATED}</updated>
<author>
  <name>${AUTHOR}</name>
  <email>${EMAIL}</email>
</author>
  <id>tag:${DOMAIN},${FIRST_CREATION}:changes</id>
  <link href="${BASEURL}/feed.atom" rel="self" type="application/atom+xml" />
  <link href="${BASEURL}" rel="alternate" type="text/html" />
EOF

  RECENTS=$(head -n "${MAX}" "${W}")

  getrecents | while read -r line
  do
    DATE=$(echo "${line}" | cut -d'|' -f1)
    PAGETITLE=$(echo "${line}" | cut -d'|' -f3-)
    ROOTPATH=$(echo "${line}" | cut -d'|' -f2)
    ORIG="${SRC}/${ROOTPATH}.${EXT}"
    URL="${BASEURL}/${ROOTPATH}.html"

    UPDATED=$(date -ud@${DATE} +%Y-%m-%d)
    CREATION_DATE=$(date -ud@${DATE} +%Y-%m-%dT%TZ)
    CONTENT="$(${CONVERTER} "${ORIG}")"
    # must be unique
    TAG="$(basename ${ROOTPATH})-$(echo ${PAGETITLE})"

    cat <<EOF
<entry>
  <id>tag:${DOMAIN},$CREATION_DATE:${TAG}</id>
  <title type="html">${PAGETITLE}</title>
  <updated>${UPDATED}</updated>
  <link href="${URL}"/>
  <content type="html">
  <![CDATA[${CONTENT}]]>
  </content>
</entry>
EOF
  done

echo "</feed>"
}
 

setdirs "${1}"

# Create the site
generate_site

if [ $UPDATE_NEWS -eq 1 ]; then
  # create the list or recent articles
  echo "> Update news on first page"
  gen_news

  # Create the archive page (LISTALL)
  echo "> Create the archive page"
  gen_archive

  # ATOM
  echo "> Create the atom feed"
  gen_atom > "${DST}/feed.atom"
fi
echo "-- Generated in $(( $(date +%s) - $start ))s"

# Create the sitemap and gzip
echo "> Create the sitemap and gzip it"
gen_sitemap > "${DST}/sitemap.xml"
gzip --best -c "${DST}/sitemap.xml" > "${DST}/sitemap.gz"
 

Dernière modification par hybridemoineau (08-07-2020 18:13:50)

Hors ligne

#2 07-07-2020 21:58:31

arpinux
CA Debian-Facile
Lieu : Montréal d'aude
Distrib. : debian stable
Noyau : 4.9-amd64
(G)UI : noDE
Inscription : 30-06-2016
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

salut smile
j'ai transmis la question à prx (le dev de lgbt) et voici sa réponse, à laquelle je n'ai rien capté car je n'utilise pas lgbt smile

prx a écrit :

Il faut qu'il définisse la variable de LISTALLTITLE dans la configuration.
Sinon il change carrément le code source et remplace le tag <title> dans la fonction gen_archive selon ce qu'il veut.


nous sommes tous différents ... c'est notre point commun ...
Association Debian-Facile -- Les cahiers du débutant -- ISO Debian-Facile -- anar'prez

Hors ligne

#3 07-07-2020 23:09:28

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Merci d'avoir répondu et d'avoir contacté le dev ! J'utilise la version de Thuban, débuggée par Otyugh pour Linux et modifiée par moi sur des problèmes de mise en page... Mais je n'ai pas souvenir d'avoir touché à ces variables.

Voir ici pour les versions, j'utilise celle d'Otyugh,
https://gnuw.arzinfo.pw/

LISTALLTITLE est remplie, et fait le job (titrer la page d'archive). Extrait de lgbt.conf :

# file containing all links to every page of you website
LISTALL="archive.html"
LISTALLTITLE="ENSEMBLE DES TEXTES"



Et je ne vois pas de tag TITLE dans la fonction gen_archive de lgbt. Extrait du script lgbt :

gen_archive() {
  WORKTMP=$(mktemp -p "${SRC}" -t )

  # add a search form with js and ddg and qwant
  cat << EOF >> "${WORKTMP}"
<h1>${LISTALLTITLE}</h1>
<hr>
EOF

  TAG=""
  echo '<ul id="archivelist">' >> "${WORKTMP}"
  while read -r line
  do
    if [ ! -f "${SRC}/$(echo ${line} | cut -d'|' -f2).${EXT}" ]; then
      # the file has been deleted, so remove .html
      if [ -f "${DST}/$(echo ${line} | cut -d'|' -f2).html" ]; then
        rm "${DST}/$(echo ${line} | cut -d'|' -f2).html"
      fi
      grep -v "${line}" "${W}" > "${W}.tmp"
      mv "${W}.tmp" "${W}"
    fi
    ARTTITLE=$(echo "${line}" | cut -d'|' -f3-)
    URL="$(echo "${line}" | cut -d'|' -f2).html"


    NTAG="$(gettags $(echo "${line}" | cut -d'|' -f2))"

    if [ "$NTAG" != "$TAG" ]; then
      TAG="${NTAG}"
      cat << EOF >> "${WORKTMP}"
<h3 class="archivetag"><a href="${TAG}">${TAG}</a></h3>
EOF
    fi
    cat << EOF >> "${WORKTMP}"
<li class="archiveitem">
  <a class="archivetitle" href="${URL}">${ARTTITLE}</a>
</li>
EOF
  done < "${W}"
  echo '</ul>' >> "${WORKTMP}"

  # the javascript
  echo '<script src="/js/archive.js"></script>' >> "${WORKTMP}"
  gen_page "${WORKTMP}" "${DST}/${LISTALL}" > /dev/null
  rm "${WORKTMP}"
}



Pour info, j'ai dû modifer le Makefile de Thuban, à cause d'une erreur au niveau de regen qui faisait planter l'affichage du site. Il faut retirer le renommage de lgbt_filelist.bak  :

regen:
  find $(SOURCEDIR) -name *.md -exec touch {} \;
  cp $(DESTDIR)/._lgbt_filelist $(DESTDIR)/._lgbt_filelist.bak
  make all
  cp $(SOURCEDIR)/Articles/index.php $(DESTDIR)/Articles
  cp $(SOURCEDIR)/Lectures/index.php $(DESTDIR)/Lectures
 



Ca marche, à part les deux soucis donnés plus haut, et c'est toujours hyper léger, réparable sans réinstall complète (mais comme c'est une sorte de site de prod, j'aimerais que ça roule parfaitement...!).

Hors ligne

#4 07-07-2020 23:14:10

arpinux
CA Debian-Facile
Lieu : Montréal d'aude
Distrib. : debian stable
Noyau : 4.9-amd64
(G)UI : noDE
Inscription : 30-06-2016
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

prx=thuban wink
et j'insiste pour qu'il vienne lui-même car je ne saurais t'aider plus qu'en faisant le messager, ce qui risque d'être extrêmement frustrant pour toi smile

nous sommes tous différents ... c'est notre point commun ...
Association Debian-Facile -- Les cahiers du débutant -- ISO Debian-Facile -- anar'prez

Hors ligne

#5 07-07-2020 23:19:28

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Arf ! Si les pseudos changent plus que le code, comment s'en sortir !?

Hors ligne

#6 08-07-2020 09:32:39

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Pour debugger le souci (qu'il me semble pas avoir eu), soit tu as hértié du cache d'une configuration précédente, soit tu as raté un truc. Si t'as raté un truc, tu peux utiliser la fonction recherche dans le code du blog.

grep -re "tmp" /lgbt



Et sinon pour vider le cache ben

rm -r lecodegénéréparlgbt
#re-régénérer le truc



Je me souviens qu'au début je le faisais tellement que j'ai fait un script qui le fait pour moi, tellement je le faisais souvent pour tester des choses...

Avec le recul, lgbt souffre de pas mal de petits problème d'usage : il sait pas s'adapter quand le fichier de configuration est modifié en cours de route. Il ne sait pas non plus s'adapter si article/dossier a eu son nom de fichier changé (il va ajouter une entrée et laisser l'ancienne).
C'est malheureusement un peu la limite de la manière dont c'est pensé. ^^'

Il parait que Thuban a re-dévelopé encore un autre moteur de blog qui n'a peut-être plus ces défauts. Faut voir s'il est plus facile à debugger. Si tu ne te sens pas "confort" ça peut valoir le coup d'aller voir le petit-frère que le papa élève encore tongue

Dernière modification par otyugh (08-07-2020 09:38:59)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#7 08-07-2020 09:42:02

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Bonjour,
Merci arpinux de m'avoir alerté, sans quoi je serais certainement passé à côté de ce fil.

hybridemoineau a écrit :

Arf ! Si les pseudos changent plus que le code, comment s'en sortir !?


En effet, j'ai changé de pseudo il y a déjà un petit moment. Désolé pour la confusion. Un pseudo reste un choix personnel et vu que je n'utilise quasiment plus debian mais plutôt OpenBSD (ainsi que d'autres futilités dabs mon voyage de libriste), j'ai senti le besoin de marquer le coup.
Bref.

Il semble que tu as trouvé un bug. Dans ce cas, c'est toujours une bonne idée de le signaler à l'auteur : ça lui permet de le corriger. smile Ça tombe bien, il y a un mail dans le code source pour ça wink

On va chercher à comprendre d'où vient ce bug. Pour ça, il faudrait réussir à le reproduire. Le plus simple serait de nous envoyer une archive de ton site qu'on puisse tester sur nos machines.
Il y a peut-être aussi des défauts venant du fait que lgbt a été développé sous OpenBSD et principalement testé sur cette plateforme : peut-être persiste-t-il des différences avec debian. (j'ai réécrit le tout en C pour notamment éviter ce genre de défaut, si au passage ça t'intéresse : staticook).
Le but caché de ces 2 projets, c'est d'être hackés par ceux qui les utilisent, donc inutile de se cantonner à la version d'origine wink

titre | titre tmp


Pour la page d'archive ce n'est pas normal, elle a son propre titre. Tu n'as pas créé de page archive.md à tout hasard? Car il ne faut pas.
Dans la fonction "gen_archive", il y a ça :

  cat << EOF >> "${WORKTMP}"
<h1>${LISTALLTITLE}</h1>


C'est censé mettre à la place de LISTALLTITLE ce que tu as définit dans lgbt.conf.
Plus loin, tu dis

LISTALLTITLE est remplie, et fait le job (titrer la page d'archive)


Donc à priori, c'est bon. Seul le tag <title> est à revoir.

Il semble donc que c'est la fonction "get_title" qui ne fait pas bien son boulot lorsque "gen_page" est appelé.

"get_title" extrait le contenu du premier <h1></h1> trouvé. Sinon, un titre basé sur le chemin de la page est créé. C'est ce qui semble être ton cas. Voici le bout de code correspondant :

  PAGETITLE="$(echo "${MAIN}" | gettitle)"
  if [ -z "${PAGETITLE}" ]; then
    PAGENAME=$(basename "${1}" |sed -e 's/\..*$//' -e 's/[_-]/ /g')
    DIRNAME=$(basename "$(dirname "${1}" |sed -e 's/[_-]/ /g')")
    PAGETITLE="${DIRNAME} - ${PAGENAME}"
  fi



Il faut donc comprendre pourquoi gettitle ne fait pas bien son boulot. Est-ce que sed a un comportement différent sous debian?
En tout cas, puisque la page d'archive est créée temporairement dans /tmp, ça t'indique pourquoi "tmp" apparaît dans le titre. Pareil pour la page d'index.
Pour l'instant, je ne vois pas pourquoi gettitle ne retournerait pas le bon titre. Sans les sources de ton site, j'ai du mal à tester davantage. Je soupçonne ton convertisseur markdown, mais j'ignore lequel est précisé dans ton lgbt.conf.

- Dans la page d'archive, une rubrique / (racine du site) apparaît, qui ne sert à rien. Comment la virer aussi ?



Il "suffit" de modifier la fonction gen_archive avec un petit test :


...
TAG="${NTAG}"
if [ "${TAG}" = "/" ]; then
    continue
fi
 

Hors ligne

#8 08-07-2020 10:55:48

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Merci Thuban pour ta longue réponse ! J'avais oublié l'adresse laissée dans le Readme, et te savais parti vers d'autres eaux libres, je ne pensais pas que tu répondrais ici....

@Otyugh : Tu m'avais aidé à adapter le script pour Debian, et là j'y suis presque après avoir tripatouillé assez lontemps. Mon but est de pouvoir utiliser les mêmes trucs simples pendant 30 ans, toujours les mêmes sans craindre je ne sais quelle évolution logicielle ou de cms,  en générant tout simplement html et pdf à partir d'un seul fichier md (ce qui me permet aussi d'écrire plus efficacement en me passant de libreoffice). Je suis prêt à passer du temps à maîtriser les choses, mais ne me vois pas tenter pour l'instant un tout autre code (surtout en C) !

Alors, pour ce qui est du contenu de la page archive, qui est sans doute le plus simple à solutionner :

Thuban a écrit :


Il "suffit" de modifier la fonction gen_archive avec un petit test :


...
TAG="${NTAG}"
if [ "${TAG}" = "/" ]; then
    continue
fi
 



J'ai placé le code ainsi dans lgbt :

...
    if [ "$NTAG" != "$TAG" ]; then
            TAG="${NTAG}"
            cat << EOF >> "${WORKTMP}"
<h3 class="archivetag"><a href="${TAG}">${TAG}</a></h3>
EOF
        fi

TAG="${NTAG}"
    if [ "${TAG}" = "/" ]; then
        continue
    fi


        cat << EOF >> "${WORKTMP}"



Et ça inscrit toujours la racine dans la page archive. Sans cette fonction, c'est la page index qui apparaît en lien d'archive, sous la rubrique / (je n'avais pas été assez précis)

Vous pouvez voir le résultat sans la correction sur le site :

http://transfinis.eu

(Tant pis pour la séparation des identités... !)

Je ne comprends pas très bien pourquoi / apparaît encore, j'imagine que le même genre de condition permettrait de retirer le lien vers index sur la page d'accueil...

Pour ce qui est des titres en tmp, le code que j'utilise de lgbt se trouve dans mon premier post ainsi que mon template. Voici lgbt.conf et mon makefile modifé

## SWX Configuration
#
## Site title
TITLE="Transfinis"
SUBTITLE="XXX"
DOMAIN="transfinis.eu"
BASEURL="http://${DOMAIN}"

TEMPLATE="lgbt.template"

# file containing all links to every page of you website
LISTALL="archive.html"
LISTALLTITLE="ENSEMBLE DES TEXTES"

# External apps to convert markdown
#CONVERTER='/usr/bin/markdown' # md handler
#CONVERTER='lowdown -D html-skiphtml -D html-head-ids -E smarty -d metadata'
#CONVERTER="/usr/local/bin/Markdown.pl"
#CONVERTER="/usr/local/bin/smu" # https://github.com/Gottox/smu
#CONVERTER='discount -f +pants,+del,+autolink,+html,+del,+tabstop'
#CONVERTER='pandoc -s --toc --css=transfinis.css'
CONVERTER='pandoc -s --css=transfinis.css'
EXT="md" # extension of files to convert

# facultative
#
# Maximum entries in atom feed and blog first page
MAX=7

## ATOM
AUTHOR="XXX"
EMAIL=""
# only for atom feed. Must be YYYY-MM-DD
FIRST_CREATION="2019-11-14"



Le Makefile, modifié, j'utilise regen pour actualiser, j'avais eu un souci avec all il me semble, et j'ai dédoublé les appels pour pouvoir générer des pages html avec ou sans sommaires selon les choix.

SOURCEDIR=./Transfinis
DESTDIR=Transfinis.static

all:
  @echo "Running lgbt"
  @bash ./lgbt $(SOURCEDIR)
 
clean:
  rm -rf *.static
force:
  rm $(DESTDIR)/._lgbt_filelist
  make all 
regen:
  find $(SOURCEDIR) -name *.md -exec touch {} \;
  cp $(DESTDIR)/._lgbt_filelist $(DESTDIR)/._lgbt_filelist.bak
  make all
  cp $(SOURCEDIR)/Articles/index.php $(DESTDIR)/Articles
  cp $(SOURCEDIR)/Lectures/index.php $(DESTDIR)/Lectures
 
alls:
  @echo "Running lgbts"
  @bash ./lgbts $(SOURCEDIR)
forces:
  rm $(DESTDIR)/._lgbt_filelist
  make alls
regens:
  find $(SOURCEDIR) -name *.md -exec touch {} \;
  cp $(DESTDIR)/._lgbt_filelist $(DESTDIR)/._lgbt_filelist.bak
  make alls
  cp $(SOURCEDIR)/Articles/index.php $(DESTDIR)/Articles
  cp $(SOURCEDIR)/Lectures/index.php $(DESTDIR)/Lectures
 
serve:
  sleep 1 && x-www-browser http://localhost:8000 &
  cd $(DESTDIR) && python3 -m http.server



J'abuse un peu, mais je profite de l'occasion : n'y a t-il pas une instruction simple pour que l'affichage des archives se fasse du plus récent au plus ancien ?

Dernière modification par hybridemoineau (08-07-2020 10:56:14)

Hors ligne

#9 08-07-2020 15:01:42

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Il te faut mettre le test avant pour quitter la boucle avant d'écrire dans le fichier :

    if [ "$NTAG" != "$TAG" ]; then
            TAG="${NTAG}"
            if [ "${TAG}" = "/" ]; then
                continue
            fi
            cat << EOF >> "${WORKTMP}"
<h3 class="archivetag"><a href="${TAG}">${TAG}</a></h3>
EOF
        fi
        cat << EOF >> "${WORKTMP}"
 



(pas testé ceci dit...)

Mais comprends bien que ça va cacher **toutes** les pages présentes à la racine (donc celles avec le tag "/"). Si c'est juste la page d'accueil que tu veux cacher, alors il vaudrait mieux ceci :


echo '<ul id="archivelist">' >> "${WORKTMP}"
  while read -r line
  do
        if [ ${line} = "/index" ]; then
            continue
        fi
...
 


Vérifie le test en question en regardant sous quel nom de fichier apparaît la page d'accueil dans la liste des fichiers (_lgbt_filelist) : index? index.md? index.html ?
(si tu veux encore t'en servir dans 30 ans, alors il faut que tu puisses en comprendre le fonctionnement, c'est pourquoi je ne t'envoie pas un code complet modifié) wink )

Pour l'autre souci (les titres), je pense que le problème vient de pandoc qui te génère un document html complet. Cependant, ce que tu veux c'est uniquement convertir ton code markdown en html dans les <head> et compagnie. Regarde le code source de tes pages produites pour voir le problème :

1594221249.png

La solution consisterait à changer de convertisseur markdown plutôt que pandoc, ou bien étudier les options de pandoc pour qu'il ne produite pas un doc html standalone. Pour ça, retire l'option "-s" dans le lgbt.conf wink
Et si tu dois include du CSS, alors fais-le en éditant ton template plutôt qu'en comptant sur pandoc.

J'abuse un peu, mais je profite de l'occasion : n'y a t-il pas une instruction simple pour que l'affichage des archives se fasse du plus récent au plus ancien ?


Non pas en l'état, il faut l'implémenter.

Hors ligne

#10 08-07-2020 17:14:59

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Thuban a écrit :

Il te faut mettre le test avant pour quitter la boucle avant d'écrire dans le fichier :

    if [ "$NTAG" != "$TAG" ]; then
            TAG="${NTAG}"
            if [ "${TAG}" = "/" ]; then
                continue
            fi
            cat << EOF >> "${WORKTMP}"
<h3 class="archivetag"><a href="${TAG}">${TAG}</a></h3>
EOF
        fi
        cat << EOF >> "${WORKTMP}"
 



(pas testé ceci dit...)



Ca marche, je ne compte pas mettre autre chose que des dossiers à la racine !

J'ai eu beau changer de convertisseur en passant à Markdown ou en évitant tout recours au mode standalone de Pandoc, rien n'y a fait. J'ai compris à quoi servait gettitle à partir de ton post précédent, et j'ai mis en base de création de nom de page non pas le nom des fichiers markdown, mais celui du html; et ça a marché ! (PAGENAME=$(basename "${2} au lieu de PAGENAME=$(basename "${1} Est-ce parce que le fichier markdown est pris dans le CONVERTER précédent, ce qui modifierait $1 ?

gen_page() {
  # $1 is the markdown file
  # $2 is the output html page
  MAIN=$(${CONVERTER} "${1}")

  # get the title of the page
  PAGETITLE="$(echo "${MAIN}" | gettitle )"
  if [ -z "${PAGETITLE}" ]; then
    PAGENAME=$(basename "${2}" |sed -e 's/\..*$//' -e 's/[_-]/ /g')
    DIRNAME=$(basename "$(dirname "${1}" |sed -e 's/[_-]/ /g')")
    PAGETITLE="${PAGENAME}"
 



J'ai essayé de placer une condition pour que la page d'accueil n'apparaisse pas en lien sur la page d'accueil, mais je n'ai pas réussi ! Un indice ?

Et merci en tous cas, les trente ans d'usage serein sont là !

Hors ligne

#11 08-07-2020 18:05:00

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

J'ai réussi également pour la condition permettant d'éviter que index n'apparaisse sur la page d'accueil !

Dans la boucle de récupération des noms de nouveaux fichiers, juste avant l'inscription dans la page d'accueil, placer un if [ ! "$NEWTITLE" = "index" ] :

getrecents | while read -r line
  do

  URL="$(echo ${line} | cut -d'|' -f2).html"
    NEWTITLE="$(echo "${line}" | cut -d'|' -f3-)"
if [ ! "$NEWTITLE" = "index" ]
then

    cat << EOF >> "${WORKTMP}"
<div class="news_link">
<a href="${URL}"><span class="news_title">$NEWTITLE</span></a>
</div>
EOF
fi



Ainsi, Let's go blog this marche entièrement automatiquement et impeccablement pour moi, et je comprends ce qu'il fait ! Je vais pouvoir sereinement bosser sur les contenus !

KISS !

Dernière modification par hybridemoineau (08-07-2020 18:05:38)

Hors ligne

#12 08-07-2020 18:31:58

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Hé ben voilà, c'est génial smile
Bravo ! smile
Je pense sincèrement que ton principal souci vient de pandoc. Essaie temporairement avec un autre convertisseur juste pour voir smile

Hors ligne

#13 08-07-2020 19:52:13

arpinux
CA Debian-Facile
Lieu : Montréal d'aude
Distrib. : debian stable
Noyau : 4.9-amd64
(G)UI : noDE
Inscription : 30-06-2016
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

merci pour ton petit passage par debian Thuban wink

nous sommes tous différents ... c'est notre point commun ...
Association Debian-Facile -- Les cahiers du débutant -- ISO Debian-Facile -- anar'prez

Hors ligne

#14 08-07-2020 21:21:34

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : [Résolu] Let'go blog this - problème de titre de page et d'archive

Avec plaisir wink

Hors ligne

Pied de page des forums