Administrer

En cours de rédaction…

Introduction

Psycha.ru est un site web statique principalement généré par writer2latex à partir de fichiers fodt. Les autres fichiers html sont écrits à partir d’éditeurs texte (vim, notepad++…).

Psycha.ru est versionné par git. Il utilise de petits scripts côtés client et serveur pour gérer automatiquement le versionnage et la compilation des fodt en html5 et ebub (git_sync.sh commit_server.sh et git_ftp.sh). Les fodt étant des fichiers-texte non-compressés, leur compression, échange et stockage sont très efficaces dans git.

Psycha.ru utilise un programme xsl pour générer automatiquement les notes de bas de page. Nous utilisons également sed pour effectuer des remplacements de masse dans les fichiers html et fodt.

Psycha.ru utilise Instantclick qui précharge les pages au survol de la souris, et les chargent lorsque le bouton gauche de la souris est pressé (événement « onmousedown », modification personnelle). Comme le site est statique, cela n’use pas tellement de ressources et donne à la navigation une impression d’instantanéité. Il y a cependant quelques bugs avec le bouton « page précédente » du navigateur, mais ce n’est pas trop gênant.

Côté serveur

Vous aurez besoin à minima d’un hébergement mutualisé. Vous pouvez compilez les fichiers fodt en local puis les expédier via FTP (c’est ce que nous faisions auparavant).

Sinon, un accès shell est bien pratique pour automatiser certaines tâches.

Nous utilisons php seulement pour mettre en cache les fichiers js et css, parce que notre serveur mutualisé n’est pas très bien configuré. Php n’est pas du tout obligatoire.

Git a été compilé en statique côté client et expédié sur le serveur. Ont été également installés Sun Java et writer2latex dans un sous-dossier du dossier personnel, ainsi que l’interpréteur de commande fish. En principe, un serveur virtuel serait bien plus pratique, mais cela nous permet de faire des économies et d’apprendre la compilation.

Côté client

Nous utilisons un environnement Linux pour l’administration, et n’importe quel environnement pour l’édition.

Bien qu’il ne soit pas très intuitif, l’environnement d’édition est assez efficace : vous cliquez sur le lien « fodt » du fichier que vous souhaitez corriger, celui-ci s’ouvre automatiquement dans LibreOffice, ensuite, vous l’expédiez soit par e-mail soit par ftp. Si vous êtes administrateur, vous l’envoyez par git. LibreOffice permet d’envoyer le fichier via le client e-mail, à condition que ce dernier soit suffisamment évolué (Thunderbird par exemple), sinon on peut utiliser Filezilla.

Installation du serveur

Si vous avez un serveur virtuel ou physique

Installez tout simplement les programmes nécessaires :

apt install -y git writer2latex…

 

 

En cours de rédaction…

Introduction

Cette partie de la documentation est essentiellement destinée à l’équipe technique de psycha.ru, mais chacun peut en tirer profit indirectement.

Bénévoles !

Sommes à la recherche de spécialistes xpath, xslt, xml, sed…

LibreOffice sous Windows

OpenOffice vs LibreOffice

OpenOffice ne gère pas fodt nativement. Le désinstaller et le remplacer par LibreOffice.

Still vs Fresh

Installez de préférence LibreOffice Still et non LibreOffice Fresh : mieux testé, nous avons besoin d’une version la plus stable possible, et non des dernières nouveautés du logiciel.

32 vs 64 bit

La version proposée par défaut est 32 bit, ce qui est tout à fait satisfaisant. Si vous choisissez de télécharger la version 64 bit, installer également la version 64 bit de java, sinon les fonctions java de LibreOffice ne fonctionneront pas.

Java sous Windows

Téléchargement de Java 32 bit. Attention, l’installeur propose d’installer aussi Yahoo comme moteur de recherche par défaut : décochez l’option !

Extensions LibreOffice

Lorsque vous aurez installé les extensions dont vous avez besoin, redémarrez complètement LibreOffice, y compris le démarrage rapide en bas à droite de la barre des tâches.

Writer2latex (nécessaire)

Téléchargez writer2latex 1.5.2 alpha, qui est très stable, décompressez le zip puis cliquez sur writer2html.oxt. LibreOffice s’ouvre. Acceptez l’installation.

Documentation Writer2Latex.

Fichiers de configuration.

Grammelecte (utile)

Téléchargez Grammelecte, puis cliquez sur l’oxt s’il ne s’ouvre pas tout seul. Acceptez l’installation.

Template Changer (optionnel)

Téléchargez Template Changer, puis cliquez sur l’oxt s’il ne s’ouvre pas tout seul. Acceptez l’installation.

Filezilla

Download FileZilla.

Installation d’un environnement UNIX sous Windows 10.

Vous pouvez utiliser Linux ou Mac ou installer un environnement UNIX sous Windows.

Cygwin ou WSL ?

Cygwin
avantages
  • Développé par Redhat,
  • stable et éprouvé depuis de nombreuses années,
  • installation sans redémarrage,
  • installable sur toutes les versions Windows ou presque.
Inconvénients
  • Installation difficile de Writer2latex,
  • un peu plus lent que WSL,
  • mise à jour des programmes en interface graphique,
  • sera probablement remplacé par WSL d’ici quelques années.
WSL
Avantages
  • Développé par Canonical et Microsoft,
  • version modifiée d’Ubuntu,
  • logithèque ubuntu, facile à installer,
  • plus performant que Cygwin.
Inconvénients
  • Nécessite windows 10
  • ne surtout pas modifier les fichiers dans : %localappdata%\lxss !,
  • mauvaise intégration à Windows,
  • installation plus complexe, redémarrage nécessaire.

Sous-système Windows pour Linux (WSL)

Installation et configuration

Prérequis
  • Windows 10
Activer le mode développeur
  • win+i (paramètres)
  • mise à jour et sécurité > Pour les développeurs,
  • cocher « Mode développeur »,
  • ne pas redémarrer tout de suite.
Activer WSL
  • Win,
  • tapez « Fonctionnalités »,
  • « Activer ou désactiver des fonctionnalités de Windows ».
  • cochez « Sous-système Windows pour Linux (bêta) »
  • « OK »
  • redémarrez.

Source : Comment installer bash sous Windows

Installer et configurer WSL
  • Win,
  • tapez « bash », puis <Entrée>. Un terminal virtuel apparaît,
  • « o » (oui) pour accepter l’installation.

N’oubliez de taper <Entrée> à la fin de chacune de vos commandes. Le téléchargement et l’installation d’Ubuntu sur Windows prendra plusieurs dizaines de minutes.

Choisissez votre nom d’utilisateur et votre mot de passe. Vous devrez saisir ce dernier deux fois de suite à l’aveugle, c’est normal.

WSL est installé et configuré !

Installer Mintty, un bon terminal pour WSL, et le lancer

  • Télécharger Mintty pour WSL,
  • l’installer,
  • win, « mintty », sélectionner « WSL bash ~ in Mintty » avec les flèches,
  • <entrée>

Mintty est lancé !

Installer de nouveaux programmes à partir de la ligne de commande (initiation à la ligne de commande)

sudo -s

« Substitute User DO Shell » ou en français : « utilisateur remplaçant lance interface ». Par défaut, l’utilisateur remplaçant est l’administrateur : cette commande lance donc une interface d’administration.

Une interface (ou shell) est un programme qui permet d’interagir avec le système, par opposition au noyau, qui lui gère directement le matériel et les logiciels. Il existe principalement deux types d’interfaces : l’interface graphique (GUI, pour Graphical User Interface) et l’interface en ligne de commande (CLI, pour Command Line Interface). Ici le programme d’interface est l’interpréteur de commandes « Bash », et le noyau est « Windows NT ».

Le premier mot d’une commande simple est le nom d’un programme, et les mots suivants sont ses arguments.

Les arguments sont des chaînes de caractères, représentant des fonctions, des options (ce sont les paramètres du programme) ou des noms de fichiers (qui désignent les entrées et les sorties du programme). Lorsqu’un programme n’a pas de comportement par défaut, notamment parce qu’il a plusieurs fonctions (comme compresser ou décompresser un fichier), il faut préciser quelle fonction on veut utiliser. Les options commencent par un ou deux tirets, respectivement pour les options abrégées (une lettre) ou longues (un mot). Les noms de fichiers désignent des données sur les périphériques ou les composants : il peut s’agir de fichiers normaux, mais aussi de données de l’imprimante, de la carte réseau, de processus, etc. : sous Linux, tout est fichier. Les arguments sont séparés par des espaces.

apt update

« apt », abréviation de « Advanced Packaging Tool », (« gestionnaire de paquets avancé ») est un programme permettant l’installation, la désinstallation et la mise à jour des logiciels. La fonction « update » signifie « mettre mise à jour » la liste des paquets (et non les paquets eux-mêmes).

apt upgrade -y

La fonction « upgrade » met à niveau les programmes (tous par défaut). L’option  « --yes » abrégée en « -y » signifie « répondre « oui » à toutes les questions » ou plus précisément « ne pas demander confirmation avant exécution ».

apt install -y byobu fish htop manpages-fr writer2latex git elinks unzip

Normalement, vous devriez être capable de comprendre cette ligne de commande. La fonction « install » et l’option « -y » permettent d’installer sans confirmation les programmes listés ensuite.

apt show byobu

la fonction « show » donne la description du programme. Utilisez-la pour voir la description de plusieurs des programmes installés.

man byobu

Le programme « man » affiche la page de manuel d’un programme ou d’une fonction de l’ordinateur. « q » pour quitter le manuel. « / » pour chercher dans le manuel. Même si vous avez installé le paquet « manpages-fr », les pages de manuel en Français, une partie du manuel sera en Anglais.

apt-get autoremove -y

La fonction « autoremove » du programme « apt-get » (attention : pas « apt » !) permet de supprimer les dépendances inutiles des programmes. Cette commande n’est pas dangereuse, mais fait de la place.

fish

Un autre interpréteur de commande que bash. Fish utilise la coloration syntaxique, la suggestion, la recherche intelligente dans l’historique, la complétion avec la touche tab et d’autres choses encore. Par contre, il n’est pas compatible avec les scripts bash. Il faut donc utiliser bash pour lancer les scripts bash ou les commandes bash complexes.

htop

Gestionnaire de taches en ligne de commande. Tapez « h » pour l’aide (help).

apt show git

ce programme nous sera très utile par la suite.

Dans l’espace utilisateur Ubuntu pour Windows, the dossier racine d’Ubuntu se trouve à :

%localappdata%\Lxss\rootfs

Ne surtout pas modifier les fichiers de ce dossier avec des programmes Windows !

http://askubuntu.com/questions/759880/where-is-the-ubuntu-file-system-root-directory-in-windows-nt-subsystem-and-vice

Modifier le répertoire personnel

Plus pratique pour pouvoir modifier des fichiers à la fois avec des programmes linux et windows.

https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/userdir

Configurer Mintty

Sur le bureau, vous devriez avoir un raccourci nommé « WSL Bash ~ in Mintty ». clic droit, « propriété ».

Sous l’onglet « raccourci », remplacer la « cible » par :

%LOCALAPPDATA%\wsltty\bin\mintty.exe --window full --wsl --option Charset=UTF-8 --option Transparency=Medium  --option Scrollbar=None /bin/wslbridge -C~ -t /usr/bin/byobu
Explications

LOCALAPPDATA signifie : « données d’applications locales » et  %LOCALAPPDATA% est un raccourci vers « C:\Users\[NomUtilisateur]\AppData\Local ».

« %LOCALAPPDATA%\wsltty\bin\mintty.exe » est donc le chemin du programme mintty.exe.

Les arguments sont :

--window full : plein écran,

--wsl : option nécessaire à WSL,

--option Charset=UTF-8 : utiliser l’encodage de caractère UTF-8

--option Transparency=Medium : utiliser une transparence moyenne

--option Scrollbar=None : aucune barre de défilement

/bin/wslbridge : le programme WSL

-C~ : aller à l’adresse ~, c’est-à-dire le dossier personnel

-t /usr/bin/byobu lancer le programme byobu

Pour plus de clarté, j’ai laissé le nom des options en toute lettre, mais elles ont aussi un nom abrégé, comme « -o » pour « --option ».

Tous les paramètres de Mintty.

Configurer Byobu

Après avoir lancé Mintty, copier-coller la ligne de commande suivante :

printf 'set -g default-shell /usr/bin/fish\nset -g default-command /usr/bin/fish\n' > ~/.byobu/.tmux.conf

printf : par défaut, imprime une chaîne de caractère sur la sortie standard. Par exemple :

printf 'hello!\n'

Affichera « hello ! » à l’écran, la chaîne « \n » signifiant « retour de chariot » (retour à la ligne).

« > » redirige la sortie vers le fichier ~/.byobu/.tmux.conf, c’est-à-dire remplace son contenu par le résultat de la commande.

http://askubuntu.com/questions/296377/how-do-i-change-the-default-shell-used-in-byobu-tmux

export XDG_CONFIG_HOME="$HOME/.config"

w2l

Trouvez l’emplacement de  writer2latex.jar et remplacez-le par la dernière version.

Normalement, il devrait se trouver ici :

/usr/share/java/writer2latex.jar

donc :

sudo cp /mnt/c/Users/[YourUserName]/Downloads/writer2latex15/writer2latex.jar /usr/share/java/

fish

fish_update_completions

Commande très puissante qui créée la complétion des pages man ?

Exelsior jet (compilation java)

LibreOffice

Chercher-remplacer

Chercher avec les expressions régulières : ctrl+h (Chercher & remplacer), alt+o (Autres options), alt+x (expressions régulières), alt+c+c, <espace> (Respecter la casse), alt+r (rechercher).

  • les sauts de au milieu d’une phrase : ^[a-z][a-z,]<Entrée>. Cela signifie :

    • ^ : en début de ligne,
    • [a-z] : un caractère de « a » à « z », en minuscule,
    • [a-z,] : un caractère de « a » à « z », en minuscule ou une espace.
    • <Entrée> : cherche les début de ligne commençant par une minuscule, sauf les débuts de lignes du type a), b), c)… Si vous en trouvez, corrigez les sauts de ligne erronés.
  • Les citations : ^« . cela signifie :

    • ^ : en début de ligne,
    • « : le caractère "« " suivi d’une espace insécable.

Chercher les styles : ctrl+h (chercher/remplacer), alt+o (Autres options), alt+b (attributs) ; sélectionner « inclinaison », « Ok ». alt+c <Entrée> (Tout chercher). Dans le styliste : Style de caractère, accentuation. À nouveau : ctrl+h (Chercher & remplacer), alt+o (Autres options), mais cette fois alt+f (Aucun format), <Entrée>, puis alt-m (Format), <Entrée> (une fenêtre s’ouvre), alt+s

Ligne de commande LibreOffice

Copier le répertoire utilisateur sous un autre nom :

cp C:\Users\x\AppData\Roaming\LibreOffice\4 C:\Users\x\AppData\Roaming\LibreOffice\4-bis

Par exemple. Cela permet de ne pas être obligé de fermer LibreOffice pour pouvoir lancer une nouvelle instance en ligne de commande.

Ainsi les lignes de commande commencent par :

soffice -env: UserInstallation=file:///c:/Users/x/AppData/Roaming/LibreOffice/4-bis

ou équivalent.

Exemple de conversion :

soffice -env: UserInstallation=file:///c:/Users/x/AppData/Roaming/LibreOffice/4-bis --convert-to fodt *.odt

à combiner avec find.

Les fichiers fodt qui ne s’ouvrent pas

Si votre fichier ne s’ouvre pas, c’est sans doute parce que vous avez un fichier caché qui bloque son ouverture.

Allez dans votre dossier de travail, celui où il y a le fichier, et suivez les instructions suivantes:

http://www.clubic.com/windows-os/windows-7/aide-astuce-tuto/windows-7-comment-faire-apparaitre-mes-dossiers-caches-2518.html

vous devriez voir apparaître un fichier nommé .~lock.NOM-FICHIER.fodt#

Supprimez-le et vous pourrez alors ouvrir NOM-FICHIER.fodt

vous pouvez recacher les fichiers cachés en suivant les instructions inverses du lien précédent.

Dublin Core

http://wiki.dublincore.org/index.php/FAQ/DC_and_DCTERMS_Namespaces

http://wiki.dublincore.org/index.php/User_Guide

http://wiki.dublincore.org/index.php/User_Guide/Creating_Metadata#Identifiers

http://dublincore.org/documents/dcmi-terms/

http://guides.bib.umontreal.ca/disciplines/20-Citer-selon-les-normes-de-l-APA?tab=108

http://p2p.wrox.com/xslt/79311-how-process-multiple-input-xml-files-single-xslt.html

http://exslt.org/exsl/elements/document/index.html

http://exslt.org/exsl/index.html

http://miage.univ-nantes.fr/miage/D2X1/chapitre_xslt/section_multidoc.htm

http://docstore.mik.ua/orelly/xml/xslt/ch07_03.htm

LibreOffice calc pas compatible avec <table:table-header-rows>, mais LO writer, oui.

Espace de nom XML pour les MARC relations :

xmlns:marcrel="http://id.loc.gov/vocabulary/relators/"

définition des codes :

http://id.loc.gov/vocabulary/relators.rdf

<marcrel:trl/> pour translator

https://msdn.microsoft.com/fr-fr/library/ms171485.aspx

Caractères spéciaux en xml

< &lt;

> &gt;

& &amp;

" &quot;

' &apos;

Description du serveur

Hébergement mutualisé avec accès ssh.

Installation des programmes

Les programmes sont installés manuellement dans $HOME/usr/. Cela est envisageable parce qu’il y a très peu de programmes et une seule dépendance (Java).

Git

Compilés en local et copier dans xxxx@psycha.ru:$HOME/usr/.

Java

Suivre les instructions pour installer java dans $HOME/usr/

Writer2latex

Seuls w2l et writer2latex.jar sont nécessaires.

Les fichiers

.htaccess : consigne pour le serveur web (mise en cache, redirection de pages…)

index.html : page d’accueil du site,

legal.html : mentions légales,

robots.txt : consignes pour les moteurs de recherches,

sitemap.xml : carte du site pour les moteurs de recherche,

BingSiteAuth.xml : fichier d’authentification pour Bing,

google34eb06d8fe76f6f1.html : authentification Google,

favicon.ico : icônes à afficher dans un onglet pour l’identifier,

favicon.png : même chose,

css/global4.css : feuille de style,

<tous les fichiers php> : lien vers des fichiers, avec consigne de les garder dans le cache navigateur, car les consignes de cache .htaccess ne fonctionnent pas. Sinon, pas d’utilisation de php.

fonts/* : toutes les polices de caractères,

js/instantclick.min.js : script instantclick pour précharger les pages au survol, et les charger dès qu’on presse le bouton de la souris (mousedown), et non lorsqu’on le relâche (clic),

icons : icônes nécessaires à la navigation dans les dossiers, sans passer par les pages web (sinon pas jolie),

img : pas utilisé, les images sont directement encodées dans le css au format base64. Conservé à titre de sauvegarde,

xsl/ : fichiers xsl, pour corriger ou transformer les fodt, notamment les notes de fin,

webstat/ : dossier auto non utilisé,

.git/ : dossier caché contenant toutes les versions des fodt et de certaines pages web (accueil, biblio…)

.cl.selector/ : dossier auto pour sélectionner la version php. Non utilisé,

.gitignore : fichiers qui seront ignorés par git (sauf option -f)

de/, en/ et fr/ : Dossiers langues. Actuellement, seul fr est utilisé.

.cl.selector/defaults.cfg : fichier du serveur pour sélectionner la version php.

BingSiteAuth.xml

.cl.selector/

css/

de/

en/

favicon.ico

favicon.png

fonts/

fr/

.git/

.gitignore

git_sync.sh

google34eb06d8fe76f6f1.html

.htaccess

icons/

img/

index.html

js/

legal.html

robots.txt

sitemap.xml

test

webstat/

xsl/

xslt

http://xmlfr.org/w3c/TR/xslt

Commande pour les notes de bas de page ( endnote2footnote.xsl)

find -mtime -1 -name "*.fodt" -print0|xargs -0 -Iù -P 2 xsltproc -o ù ../xslt/endnote2footnote.xsl ù

SSH

Certificats :

http://cplusn.com/2013/05/se-connecter-avec-une-cle-ssh-a-un-serveur-distant/

sous ubuntu windows

http://superuser.com/questions/1111591/how-can-i-ssh-into-bash-on-ubuntu-on-windows-10

http://blog.yimingliu.com/2016/08/06/setting-up-openssh-server-on-windows-10-anniversary-update/

pour exécuter des programmes dans le PATH personnalisé :

ssh NAME@SERVER 'PATH=$PATH:$HOME/bin && VOTRE_COMMANDE'

Par exemple…

Fish

bash -c './configure --prefix=$HOME/opt/ LDFLAGS=-static && make && make install’

http://stackoverflow.com/questions/983515/how-to-staticly-link-a-complex-program

pour compiler en statique.

Path

Mettre les modifications dans ~/.profile,

(et aussi dans .bashrc pour ssh…

http://stackoverflow.com/questions/940533/how-do-i-set-path-such-that-ssh-userhost-command-works)

vim et sed

Attention ! Contrôle avant d’exécuter !

:%s,<text:bookmark text:name="footnote[0-9]*"/><text:a xlink:type="simple" xlink:href=".\{-}#bookmark[0-9]*" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link"><text:span text:style-name="Emphasis">[0-9]*</text:span></text:a>,<text:note text:id="ftn1" text:note-class="footnote"><text:note-citation>1</text:note-citation><text:note-body> <text:p text:style-name="Footnote"/></text:note-body></text:note>,cg

 
 

find – name "*fodt" --print0 |xargs -0 sed 's,<text:a xlink:type="simple" xlink:href=".*#bookmark[0-9]*" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">[0-9]</text:a>,<text:note text:id="ftn1" text:note-class="footnote"><text:note-citation>1</text:note-citation><text:note-body>\n <text:p text: style-name="Footnote"/></text:note-body></text:note>,g'

Quelque chose ne va pas !

Vérifiez scrupuleusement chaque étape en commençant par la première. Vérifier SCRUPULEUSEMENT. La quasi-totalité des erreurs proviennent d’un minuscule problème à un maillon de la chaîne.

Installer des programmes sous Linux sans être root dans un environnement très limité

Vous allez devoir tout compiler en statique en local dans un dossier avec le même chemin que sur le serveur, puis tout envoyer avec scp.

git

~/.gitconfig :

[user]

    email = your@email

    name = yourname

 

[alias]

    co = checkout

    ci = commit

    st = status

    br = branch

    hist = log --pretty=format:\"%ad %C(yellow)%h%Creset | %C(red)[%an]%Creset %s%d\" --date=short

    type = cat-file -t

    dump = cat-file -p

[color]

ui = true

[core]

editor = vim -c 'startinsert!'

Ajouter un commit :

git ci -a

Suivre les modifications d’un fichier :

git log --follow filename

revenir à une ancienne version de fichier :

Assuming the commit you want is abcde:

git checkout abcde file/to/restore

http://stackoverflow.com/questions/4039416/installing-git-with-non-root-user-account

git add .
.gitignore

revert

Revert permet d’inverser un commit.

git revert <commit>

Cette commande va défaire ce qui avait été fait au moment du <commit> en créant un nouveau commit. Cela n'altère pas l’historique mais va ajouter un nouveau commit d’inversion (les lignes ajoutées seront supprimées, les fichiers supprimés seront recréés…).

https://www.grafikart.fr/formations/git/checkout-revert-reset

Installation de git

http://en.newinstance.it/2011/02/27/how-to-create-a-statically-linked-version-of-git-binaries/#

bash -c 'make configure && ./configure --prefix=/YOURHOME/git  CFLAGS="${CFLAGS} -static" NO_OPENSSL=1 NO_CURL=1 && make && make install’

Les deux dernières options sont très importantes !

Ne pas utiliser l’option -static-libgcc sur des systèmes avec une glib trop vieille !

https://www.grafikart.fr/blog/deployer-site-git

http://stackoverflow.com/questions/22271560/git-receive-pack-command-not-found

http://stackoverflow.com/questions/11128464/git-upload-pack-command-not-found

.git/config

modifier .git/config

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[branch "master"]
	remote = origin
	merge = refs/heads/master
[remote "origin"]
	url = ssh://XXX@psycha.ru:/var/www/XXX/data/www/psycha.ru/.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	receivepack = usr/bin/git-receive-pack
    uploadpack = usr/bin/git-upload-pack

http://stackoverflow.com/questions/3221859/cannot-push-into-git-repository

(git config receive.denyCurrentBranch ignore)

créer le répertoire de travail, ou mettre le répertoire de travail à la dernière version (attention, écrase les fichiers !) :

git reset --hard

côté client :

git push

git config --global push.default simple

git diff --stat

http://alx.github.io/gitbook/3_comparer_les_commits_-_git_diff.html

git diff --stat HEAD~ HEAD

git commit ftp

  • envoyer les nouveaux commits via git
  • Ajouter les fichiers ftp
  • commiter les fichiers ftp
  • noter l’heure serveur
  • git reset --hard
  • find & w2l

scripts en test.

Beta 4

git reset --hard

Remet les fichiers suivis dans l’état où ils étaient lors du dernier commit (écrase éventuellement toutes les modifications après ce commit)

Suivi plus rigoureux

Attention au suivi et aux dates des fichiers !

Interdire l’ajout de tout fichier grâce à .git/info/exclude et forcé l’ajout avec git add -s à partir d’une recherche restrictive de fichier. Attention avant d’exécuter ! Notamment sur l’option « newermt ».

find ./ -type f \

\( \

-name "biblio.html" \

-o -name "chrono.html" \

-o -name "thema.html" \

-o -name "bio.html" \

-o -name "accueil.html" \

-o -name "recherche.html" \

-o -name "dictionnaires.html" \

-o -name ".htaccess" \

-o -name "global4.css" \

-o -name "*fodt" \

-o -name "*xsl" \

-o -name "robots.txt" \

-o -name "sitemap.xml" \

-o -name "git_sync.sh" \

-o -name "norm.xhtml" \

-o -name "blog.xhtml" \

-o -name "writer2xhtml.xml" \

-o -name "*.php" \

-o -name ".gitignore" \

-o -name "meta.*" \

-o -name "biblio2.html" \

\) \

-newermt "`cat LAST_SYNC_DATE`" -print0 \

| \

xargs -0 git add -f

Le contraire :

git rm --cached -r .

Ne pas oublier « cached » sinon ça efface aussi le répertoire de travail.

Supprimer les fichiers binaires ajoutés par erreur

git filter-branch -f --tree-filter "rm -rf *.djvu" --prune-empty -- --all

Fichiers à effacer

find -mindepth 2 -name index.html -delete & \

find -type f \

\( \

-name acajou.css.php  \

-o -name blue-retro.css.php  \

-o -name glace.css.php  \

-o -name global2.css.php \

-o -name global5.css.php \

-o -name global.css.php \

-o -name index.css.php \

-o -name petrole.css.php \

-o -name content.xml \

-o -name manifest.rdf \

-o -name EBGaramond08-Italic.eot \

-o -name EBGaramond08-Italic.eot.php \

-o -name EBGaramond08-Italic.otf \

-o -name EBGaramond08-Italic.otf.php \

-o -name EBGaramond08-Regular.eot \

-o -name EBGaramond08-Regular.eot.php \

-o -name EBGaramond08-Regular.otf \

-o -name EBGaramond08-Regular.otf.php \

-o -name firefox-noise.png.php \

-o -name firefox-noise.png \

-o -name Groupe_des_4_720px_SANS_TEXTE-32_couleurs_qualite_50pc.jpg \

-o -name gris-alpha-128.png.php \

-o -name Groupe_des_4_720px_SANS_TEXTE_NI_ESPACE-32colors-50pc.jpg.php \

-o -name Oidipous_sphinx_MGEt_16541_reconstitution-b.png.php \

-o -name php.tar.bz2 \

-o -name wavy-white.png \

-o -name rectangle_transparent.png \

-o -name html5.js.php \

-o -name styleswitcher.js.php \

-o -name chrono-redirect.txt \

-o -name bibliotheque.html \

-o -name accueil2.html \

-o -name writer2xhtml-template.xhtml \

\) \

-delete

git rm--cached ./fr/freud/chrono.html

git rm--cached ./fr/abraham/chrono.html

git rm--cached ./fr/klein/chrono.html

git rm--cached ./fr/ferenczi/chrono.html

docker

https://wiki.debian.org/Docker

find

http://stackoverflow.com/questions/158044/how-to-use-find-to-search-for-files-created-on-a-specific-date

Compter les fichiers

find -name "*fodt"|wc -l

cron

.cagefs/var/spool/cron/

En théorie, il faudrait plutôt utiliser incron, mais il n’est pas installé.

Pas forcément utile, en vérité, grâce à git.

bash script

https://doc.ubuntu-fr.org/tutoriel/script_shell

rev : utile pour les commandes textuelles à partir de la fin…

diff

diff -rq . ../psycha.ru.2016.12.06/psycha.ru/|grep -v "\.git"|grep -v "\.html"|grep -v "\.fodt"|grep -v "\.epub"|rev|sort|rev|less

à virer :

content.xml

*.htm

les dossiers : *_files

*.tex

 

Corriger les italiques du Vocabulaire de la Psychanalyse

Faire un fichier avec les bons italiques à partir du fichier OCR, faire un diff avec la version actuelle, modifier le diff pour ne retenir que les italiques, appliquer le diff. (??)

xpath

http://svground.fr/xpath-axes.php

http://xmlfr.org/w3c/TR/xpath

w2l

jusqu’à 8 treads sur notre hébergement.

Conversion htm → xhtml

sed 's,&nbsp;, ,g' xxx.htm > xxx.html

html2xhtml

Installation à partir de Git (pour Linux par exemple)

sudo apt install byacc flex

git clone https://github.com/jfisteus/html2xhtml.git

cd html2xhtml

# less README # if you want to control…

aclocal

libtoolize

touch config.rpath

autoheader

automake --add-missing

autoconf

./configure

sudo make install #installation pour tous les utilisateurs

html2xhtml xxx.htm -o xxx.xhtml # conversion en xhtml

à partir des sources dans l’archive (pour cygwin)

wget http://www.it.uc3m.es/jaf/html2xhtml/downloads/html2xhtml-1.3.tar.gz

./configure

make

Une fois qu’on a du XHTML, on peut réaliser un pré-traitement avec xsltproc… avant la conversion en fodt.

Attention ! Html2xhtml altère le contenu de l’html (certains liens !??)… voir si ça a vraiment de l’importance…

Saut de ligne au milieu d’un paragraphe

Si le paragraphe est coupé entre deux phrases, il faut utiliser vim : le style de paragraphe est nommé :

P[0-9]*

quelque chose.

Titres

Chercher le gras pour trouver les titres. S’il y a peu de titres, donner un style directement. Sinon, noter le formatage manuel de chaque niveau de titre. Chercher par formatage et convertir en niveau de titre correspondant.

Cherchez saut de ligne, qui correspondent à des sections sans titre. Leur donner un titre [1], [2], [2.1]…

Italiques, gras, petites majuscules

Chercher italique et convertir en accentuation.

Chercher les gras et vérifier s’ils ont une signification.

Chercher italique gras et convertir en accentuation.

Chercher petites majuscule et convertir en style petites majuscules ?

Regex (expressions rationnelles)

http://olivier.berquin.free.fr/indesign/grep_indesign.html

Contrôler absence de point avant majuscule.

Contrôle signification mot maj.

Grammelecte

\{-}

matches 0 or more of the preceding atom, as few as possible, nongreedy match

http://vimregex.com/

.*?

matches 0 or more of the preceding atom, as few as possible.

Attention : vérifier ce code avant de l’utiliser ! NON ! Sed ne supporte pas le non-greedy quantifier !

utiliser perl ?

apt perl-doc

perl -pi -w -e 's,<text:a xlink:type="simple" xlink:href=".*?#,<text:a xlink:type="simple" xlink:href="#,g' ./melman/2002/homme_gravite.fodt

Espace insécable anormaux (espace+espace insécable)

(N.D.T) en italique ?

Sub ndt in (N.D.T)

contrôle sauts de section sans titre.

Caractères spéciaux, images… titres…

image :

convert xxx.pdf[page -1] image.png

contrôler les introductions qui sont en italique, et les sauts de section !

grammelecte

Les « V » pour « l’ »

« chap. m ou n » pour « chap. III ou II »

. 11

U -> li il l’, etc.

*

A maj avec accent

A (A

[a-z] Y[a-z]

[a-z] V[a-z]^« qui sont des citations.

faire la table des matières, la vérifier.

États-Unis

^[A-Z]\. (citation)

^[0-9]*\. (liste)

• (guillemet ou autre)

[a-Z] [a-Z] (supprimer les espaces insécables mal placées)