Seenthis
•
 
Identifiants personnels
  • [mot de passe oublié ?]

  • https://zone.spip.net
  • /trac
  • /spip-zone

Changeset 112512 – SPIP-ZONE

/changeset

  • ►/120905
  • ►/104831
    • ►/spip-zone
      • ►/_plugins_
        • ►/fulltext
  • ►/117877
    • ►/spip-zone
  • ►/116199
    • ►/spip-zone
  • ►/115264
    • ►/spip-zone
  • ►/114892
  • ►/83559
    • ►/spip-zone
  • @b_b
    b_b @b_b PUBLIC DOMAIN 1/02/2020
    5
    @rastapopoulos
    @jeanmarie
    @cy_altern
    @arno
    @spip
    5

    Suite à la discussion à propos du site LOW←TECH MAGAZINE et du format d’image qu’il utilise cf ►https://seenthis.net/messages/809252 je me suis amusé avec imagick pour ajouter un filtre image_tramer pour #SPIP :

    ▻https://zone.spip.net/trac/spip-zone/changeset/120905

    Ça permet donc de générer des images « tramées » en mode « ordered dithering » qu’on peut ensuite décorer à coup de css mix-blend-mode: hard-light; sur une couleur d’arrière plan.

    Exemples d’images générées par le filtre (en mode natif sans couleur d’arrière plan) :

    https://pic.infini.fr/zRAG8dXL/owTTKtWF.jpg

    PS : les trois premières images ont les mêmes dimensions que l’originale, je les ai affiché en mode pleine largeur uniquement pour mieux montrer les détails de l’effet obtenu par le filtre.

    #spip_blog

    b_b @b_b PUBLIC DOMAIN
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 1/02/2020

      excellent !
      et c’est que pour imagemagick ou ça marche avec gd2 aussi ?

      #web #image #webperf

      RastaPopoulos @rastapopoulos CC BY-NC
    • @b_b
      b_b @b_b PUBLIC DOMAIN 1/02/2020

      Uniquement sous imagick, mais on peut imaginer d’ajouter un fallback sous gd, faut juste trouver le bon trick pour obtenir un résultat similaire.

      Lors de mes essaie j’ai joué avec la lib ▻https://github.com/ccpalettes/gd-indexed-color-converter mais ça n’utilise pas la même méthode « Floyd–Steinberg » VS « ordered dithering » et le résultat ne me convenait pas aussi bien côté rendu que poids de l’image générée, exemple :

      https://pic.infini.fr/qS2sIxeT/l1LAArdV.png

      PS : une piste par ici ▻https://github.com/kosinix/grafika/blob/master/src/Grafika/Gd/Filter/Dither.php#L135

      b_b @b_b PUBLIC DOMAIN
    • @b_b
      b_b @b_b PUBLIC DOMAIN 8/05/2020

      J’ajoute les liens qui m’ont été utiles en vrac pour référence si jamais quelqu’un veut s’y recoller un jour :

      ▻https://github.com/lowtechmag/solar-plugins/blob/master/dither/dither.py
      ▻https://bisqwit.iki.fi/story/howto/dither/jy
      ▻https://en.wikipedia.org/wiki/Ordered_dithering
      ▻https://web.archive.org/web/20070927122512/http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT
      ▻https://imagej.net/Dithering

      Et mon squelette de debug et ses fonctions qui contiennent mes essais non achevés pour le faire avec GD cf image_tramer_floydsteinberg() & image_tramer_gd() :

      ▻https://gist.github.com/brunob/055fac68c1283b6d89ee7a1e3f2a9fd6

      b_b @b_b PUBLIC DOMAIN
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 8/05/2020

      tiens d’ailleurs ça se passe comment quand on utilise un filtre qui n’est pas multi-librairie, que pour une, mais qu’on est sur une autre ? ça fait rien, ou ça fait une erreur ?

      RastaPopoulos @rastapopoulos CC BY-NC
    • @b_b
      b_b @b_b PUBLIC DOMAIN 8/05/2020
      @rastapopoulos

      Je ne comprends pas ta question @rastapopoulos ^^

      un filtre qui n’est pas multi-librairie, que pour une, mais qu’on est sur une autre

      Gné ?

      b_b @b_b PUBLIC DOMAIN
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 8/05/2020

      bah librairie d’image, un filtre qui au final ne marche qu’avec telle librairie précise. La plupart des filtres fournis marchent avec toutes les librairies, donc on se dit qu’on peut tous les utiliser, mais ça fait quoi si on est sur une autre du coup ?

      RastaPopoulos @rastapopoulos CC BY-NC
    • @b_b
      b_b @b_b PUBLIC DOMAIN 8/05/2020

      ’k, ben ça ne fait rien à part renvoyer l’image d’origine cf le test if (method_exists('Imagick', 'orderedPosterizeImage')) {, pas de génération d’erreur donc, si c’était ta crainte.

      b_b @b_b PUBLIC DOMAIN
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 8/05/2020

      ok merci :)

      RastaPopoulos @rastapopoulos CC BY-NC
    • @b_b
      b_b @b_b PUBLIC DOMAIN 18/01/2021

      Pour référence, un article au sujet du tramage/dithering :

      ▻https://surma.dev/things/ditherpunk

      b_b @b_b PUBLIC DOMAIN
    Écrire un commentaire
  • @cy_altern
    cy_altern @cy_altern CC BY-SA 19/09/2019
    1
    @spip
    1

    Révision 104831 pour plugins/fulltext – SPIP-ZONE
    ▻https://zone.spip.net/trac/spip-zone/changeset/104831/spip-zone/_plugins_/fulltext

    la constante à ajouter pour que les recherches avec le plugin FULLTEXT fonctionnent de façon non-stricte (= équivalent à avoir * à la fin du terme recherché)
    cf ▻https://contrib.spip.net/Fulltext#comment492512

    #fulltext #SPIP #recherche

    cy_altern @cy_altern CC BY-SA
    Écrire un commentaire
  • @arno
    ARNO* @arno ART LIBRE 16/09/2019
    2
    @spip
    @rastapopoulos
    2

    Dis #SPIP, vu qu’on me pose la question : où est-ce qu’on trouve des thèmes un peu modernes et jolis pour SPIP ? La page thèmes de Contrib, je trouve que ça date carrément, et apparemment la page sur Zpip est fermée en ce moment.

    Au passage : il faudrait que ce soit multilingue.

    ARNO* @arno ART LIBRE
    • @arno
      ARNO* @arno ART LIBRE 16/09/2019

      Je vois les thèmes pour Html5Up, pour le coup c’est moderne comme il faut :
      ▻https://contrib.spip.net/Html5up

      ARNO* @arno ART LIBRE
    • @b_b
      b_b @b_b PUBLIC DOMAIN 16/09/2019

      Wala c’est bien ça, avec l’article de présentation des différents thèmes : ►https://contrib.spip.net/Des-squelettes-SPIP-pour-les-themes-html5up

      b_b @b_b PUBLIC DOMAIN
    • @fil
      Fil @fil 16/09/2019

      Il n’y a pas un petit paragraphe sur la licence du truc ? Car quand j’ai adapté un html5up à l’époque c’était « pas libre », à savoir qu’il fallait conserver un lien vers le site html5up.

      Fil @fil
    • @b_b
      b_b @b_b PUBLIC DOMAIN 16/09/2019
      @fil

      @fil je viens de trouver ça ici ▻https://seenthis.net/messages/801935, à voir si ça répond à la question :)

      b_b @b_b PUBLIC DOMAIN
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 16/09/2019

      C’est précisé sur le tuto/guide pour le portage :
      ▻https://contrib.spip.net/Themes-HTML5UP-Pour-un-portage-efficace#Licence
      Mais ça pourrait effectivement l’être aussi sur la page de chaque plugin...

      jeanmarie @jeanmarie CC BY-NC-SA
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 16/09/2019
      @fil

      @fil : Tu as porté quel thème ? Il semble être passé sous les radars du récent recensement...

      jeanmarie @jeanmarie CC BY-NC-SA
    • @fil
      Fil @fil 16/09/2019
      @jeanmarie @b_b

      @jeanmarie j’avais adapté un truc qui existait déjà dans SPIP mais où les crédits étaient problématiques (la personne qui avait porté le thème en squelette SPIP avait mis son nom à la place de html5up dans les ©…). Du coup j’ai eu la flemme de reverser. C’est celui de ▻http://www.3furies.com mais je ne me souviens plus du nom du thème en question.

      @b_b la courge du siam répond pas trop à la problématique ;-)

      Fil @fil
    • @b_b
      b_b @b_b PUBLIC DOMAIN 17/09/2019
      @fil @jeanmarie

      @fil lol mauvais copier/coller, je voulais citer le lien que @jeanmarie t’a donné ^^

      b_b @b_b PUBLIC DOMAIN
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 17/09/2019
      @fil @b_b

      @fil C’est BigPicture : ▻https://zone.spip.net/trac/spip-zone/browser/_squelettes_/html5up_bigpicture

      Le crédit problématique : ▻https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/html5up_bigpicture/sommaire.html?rev=95819#L118

      Et le commit pour réparer ça : ▻https://zone.spip.net/trac/spip-zone/changeset/117877/spip-zone

      @b_b merci pour la courge du Siam à la bolognaise :)

      jeanmarie @jeanmarie CC BY-NC-SA
    • @fil
      Fil @fil 17/09/2019

      merci !

      Fil @fil
    Écrire un commentaire
  • @cy_altern
    cy_altern @cy_altern CC BY-SA 2/08/2019
    9
    @spip
    @tofulm
    @b_b
    @jeanmarie
    @fil
    @baroug
    @7h36
    @rastapopoulos
    @touti
    9

    Révision 116199 – SPIP-ZONE
    ▻https://zone.spip.net/trac/spip-zone/changeset/116199/spip-zone

    Documentation provisoire du plugin SPIP « filtres_images_vectorise » qui propose 3 types de filtres de vectorisation d’images bitmaps en SVG.
    Utilise soit la lib GeometrizePHP soit la lib PotRace soit une combinaison des 2.
    Voir aussi :
    – ▻https://github.com/Cerdic/geometrize-php pour GeometrizePHP
    – ►https://github.com/Otamay/potracio (+ ►https://seenthis.net/messages/645575) pour PotRace

    Ca va dépoter les SVG dans SPIP :-) !

    #SVG #vectoriser #PHP #SPIP #filtres_images_vectorise #plugin

    cy_altern @cy_altern CC BY-SA
    • @b_b
      b_b @b_b PUBLIC DOMAIN 3/08/2019

      C’est beau :)

      <BOUCLE_docs(DOCUMENTS){id_document IN 8,9}>
      [(#FICHIER|image_reduire{#GET{taille}})]
      [(#FICHIER|image_reduire{#GET{taille}}|image_geometrize)]
      [(#FICHIER|image_reduire{#GET{taille}}|image_potrace)]
      [(#FICHIER|image_reduire{#GET{taille}}|image_geopotrize)]
      <hr/>
      </BOUCLE_docs>

      http://vrac.kupaia.fr/vectooor.png?1

      Par contre on dirait qu’il y a un petit glitch avec image_geopotrize par défaut.

      PS : le glitch est corrigé et c’est encore plus beau :)

      b_b @b_b PUBLIC DOMAIN
    Écrire un commentaire
  • @cy_altern
    cy_altern @cy_altern CC BY-SA 7/05/2019
    1
    @spip
    1

    Révision 115264 – SPIP-ZONE
    ▻https://zone.spip.net/trac/spip-zone/changeset/115264/spip-zone

    La doc de la balise #ICON du plugin z-core de SPIP : permet d’utiliser des sprites SVG inclus « inline » dans la page aussi bien qu’externes
    merci cedric !

    #SVG #SPIP ##ICON #sprite #z-core

    • #ICON
    cy_altern @cy_altern CC BY-SA
    • @b_b
      b_b @b_b PUBLIC DOMAIN 7/05/2019

      En lien avec ▻https://seenthis.net/messages/773610 ;)

      b_b @b_b PUBLIC DOMAIN
    Écrire un commentaire
  • @b_b
    b_b @b_b PUBLIC DOMAIN 10/04/2019
    4
    @spip
    @tofulm
    @cy_altern
    @jeanmarie
    4

    Integration d’un systeme d’icone lightweight (sprite SVG) et accessible (texte alternatif aria possible) base sur ►https://danklammer.com/bytesize-icons
    #ICON{search,icon-lg,Rechercher}

    Le jeu d’icone est personalisable, il suffit
    define('_ICON_SPRITE_SVG_FILE', 'chemin vers le sprite svg');
    et de definir sa fonction filtre_icone_ancre_from_name($name){} pour faire correspondre les ancres dans le sprite avec les petits noms d’icone (quitte a renommer/etendre)

    + une feuille de style icons.css qu’il peut etre utile de personaliser si on change le jeu d’icone

    (BootStrap ayant change puis abandonne la famille d’icones fournie par defaut, on trace donc notre route)

    ▻https://zone.spip.net/trac/spip-zone/changeset/114892

    #spip #zcore topito :)

    • #ICON
    b_b @b_b PUBLIC DOMAIN
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 11/04/2019

      Et en SCSS ? :p

      RastaPopoulos @rastapopoulos CC BY-NC
    • @cy_altern
      cy_altern @cy_altern CC BY-SA 11/04/2019

      #icone #svg #fontawesome #glyphicon

      cy_altern @cy_altern CC BY-SA
    Écrire un commentaire
  • @jeanmarie
    jeanmarie @jeanmarie CC BY-NC-SA 23/11/2018
    3
    @spip
    @rastapopoulos
    @mukt
    3
    @rastapopoulos @ben

    #Intégration / #développement : Plugin vs #boilerplate

    Vous êtes plutôt l’un ou plutôt l’autre vous ?

    Il y a 1 an, j’attaquais mon squelette perso, celui qui me sert aujourd’hui de base pour la structure html et quelques styles css de bases et qui repose sur ZPIP V2. Ce squelette est (plus que) largement inspiré de Intégraal de @rastapopoulos et SPIPr de Cédric et @ben.

    Je commence à avoir quelque chose d’assez adapté à mes besoins. Outre une structure html5, ça permet de gagner beaucoup de temps : une grille à mettre en place ? <INCLURE{fond=inclure/liste/grille,...> + les bons paramètres et le tour est joué.

    La question qui se pose maintenant, c’est le fonctionnement : boilerplate ou plugin.

    Le plugin , c’est un squelette qu’on surcharge avec un squelette/plugin propre à chaque nouveau projet. Le boilerplate , c’est un squelette qu’on modifie directement pour chaque nouveau projet.

    L’avantage du 1er, c’est qu’on partage les évolutions entre tous les sites qui l’utilisent mais l’inconvénient, c’est qu’il faut conserver une compatibilité descendante sous peine, soit de casser le site, soit de ne plus pouvoir profiter des évolutions.
    Le 2nd, ben c’est exactement l’inverse.

    Au début, le fonctionnement plugin m’allait très bien : je développais mon plugin en même temps que les sites et chacun profitait donc des mise à jour de la structure et des styles de bases. Mais à force de bouger des choses, je me rends compte que ça devient galère de garder cette compatibilité descendante.

    Donc voilà, si vous avez des retours d’expérience...

    Liens :
    SPIPr : ▻https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/spipr-dist/trunk
    Integraal : ▻https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/integraal
    integraal (principe) : ▻https://zone.spip.net/trac/spip-zone/changeset/83559/spip-zone
    Repo de mon plugin : ▻https://gitlab.com/jmoupah/zcm
    Doc de mon plugin : ►https://notes.cousumain.info/ZCM-Squelette-modulaire-SPIP-ZCore.html

    #SPIP_recette #SPIP

    jeanmarie @jeanmarie CC BY-NC-SA
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 23/11/2018

      Les deux, cela dépend du type de projets sur lesquels tu travailles.

      C’est l’exact raison pour laquelle j’ai conçu Intégraal, parce que Zpip ou SpipR ne convenait pas du tout dans les cas où on avait des clients différents, avec des graphismes dédiés à chaque fois, où il faut intégrer des maquettes précises, qui n’ont rien à voir les unes avec les autres.

      Dans ce cas, l’avantage d’avoir un plugin commun se réduit drastiquement, pour deux raisons :
      1) tu finis par surcharger au moins 50% du truc de base
      2) quand il y a une mise à jour du plugin central, ça peut très souvent te péter ton intégration, puisque tu avais basé du graphisme sur une structure qui peut bouger à tout moment !

      Voilà donc pourquoi cela fait des années que l’on travaille avec Intégraal et désormais sa commande spip-cli qui permet en 2s d’avoir la structure d’intégration, qu’ensuite on modifie directement.

      En revanche, attention, si une partie du travail concerne tout un ensemble de clients qui se ressemblent au moins un peu, et aussi si tu arrives à avoir des bases génériques ET configurables (noisettes ou autre), alors dans ce cas là ça peut de nouveau être intéressant d’avoir un plugin-squelette qui est le même pour tout le monde, et sur lequel tu ne fais que plaquer des styles (et pour ça il faut que tes classes CSS soient génériques aussi, quand je parle de générique, c’est pas juste au niveau des squelettes, <inclure>, etc).

      Actuellement, en plus de continuer à utiliser Intégraal, nous sommes en train de réfléchir à un plugin commun aussi, pour d’autres besoins.

      En simplifiant :

      Intégraal = site à façon, où on conçoit un ensemble de fonctionnalités, une ergonomie et un graphisme propre à ce site, puis on l’intègre tel qu’on l’a conçu.

      Plugin = site où on propose aux gens des fonctionnalités qui sont déjà à moitié intégré, parce que ça rentre vraiment dans le périmètre de leurs besoins, et sur lesquels on change juste quelques petites différences graphiques (palette de couleur, typo, header, etc).

      RastaPopoulos @rastapopoulos CC BY-NC
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 29/11/2018

      Mais du coup, si on change son boiler plate en plugin spécifique au nouveau projet, ça veut dire que chaque nouvelle fonctionnalité ajoutée en cours de développement (donc dans le nouveau projet, tout le monde suit ?) doit être reportée dans le boiler plate source pour profiter au prochain projet.

      Ça veut peut être dire qu’il faut attendre que le boiler plate soit arrivé à maturité avant de fonctionner comme ça...

      bon, work in progress quoi...

      jeanmarie @jeanmarie CC BY-NC-SA
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 29/11/2018

      Bah oui, mais seulement si c’est une fonctionnalité générique. Le principe du boiler plate c’est qu’ensuite tu modifies en fonction de ton projet précis. Mais à tout moment, et surtout au début bien sûr, tu peux détecter que tel ajout va te servir dans d’autres futurs projets, donc tu l’ajoutes à ton projet en cours, tu le testes, tu trouves ça cool, et alors tu le reportes sur le boiler plate. C’est ce qu’on fait dans Intégraal depuis le début (même si on n’est pas forcément très rigoureux, ya sûrement plein de choses encore à reporter).

      RastaPopoulos @rastapopoulos CC BY-NC
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 30/11/2018

      Oui, c’est reporter les évolutions qui semble contraignant.

      Je vais tester ce fonctionnement pour mon prochain projet.

      A suivre donc...

      jeanmarie @jeanmarie CC BY-NC-SA
    • @jeanmarie
      jeanmarie @jeanmarie CC BY-NC-SA 13/07/2019

      Hello,

      après expérience, je suis resté sur le fonctionnement boiler plate. Même s’il impose une rigueur pour reporter les nouvelles fonctionnalités développées au fur est à mesure, c’est toujours plus réaliste que de vouloir garder une rétro-compatibilité en mode plugin.

      Voilà pour mon retour d’expérience perso...

      Merci aux uns et aux autres pour les retours, pistes, outils.

      jeanmarie @jeanmarie CC BY-NC-SA
    • @rastapopoulos
      RastaPopoulos @rastapopoulos CC BY-NC 13/07/2019

      Oui c’est bien là l’argument principal : la pérennité et la maintenance sur le long terme. Quand t’as utilisé ce projet pour un site, après 3 ans, ça se trouve tu ne veux plus utiliser la même grille SCSS, t’as améliorer la sémantique du HTML ou la normalisation des classes CSS (BEM etc), bref t’as fait plein de changement, et donc tes personnalisations de l’époque peuvent être toutes pétées si ton projet était un plugin générique à mettre à jour.

      Alors qu’avec un boiler plate, tu l’as utilisé tel qu’il était au moment où tu en avais besoin, et tu l’as personnalisé, et basta. Si 3 ans plus tard ya une refonte à faire, de toute façon ça sera sur une autre base. Et si c’est juste des petites modifs, c’est sur le socle de l’époque.

      Bien sûr ça c’est quand on doit intégrer des maquettes précises. Quand on propose une solution générique et que les clients ne font que choisir parmi des trucs existants, là faut tout en plugins.

      RastaPopoulos @rastapopoulos CC BY-NC
    Écrire un commentaire