markdown ~ afficher un fichier ou du contenu markdown

Conversion d'un contenu Markdown en HTML

➠ markdown : Affiche du contenu MARKDOWN provenant d'un fichier ou saisi entre les shortcodes

Cliquer pour lire la documentation

syntaxe 1: {up markdown}contenu{/up markdown}
syntaxe 2: {up markdown=nom_fichier_md}
.
Utilisation : afficher un fichier changelog.md
author LOMART version 1.0 crédit erusev/parsedown license GNU/GPLv3
  • markdown: chemin et nom du fichier markdown ou vide pour contenu
  • strip-tags = true: 0 pour conserver les tags HTML dans le contenu saisi entre les shortcodes. Ils sont toujours conservés si la source est un fichier.
  • class: classe(s) pour bloc (obsolète)
  • style: classes et styles pour bloc

    J'ai créé cette action simple pour afficher le contenu du fichier changelog de UP: 'changelog.md'.

    Cette façon de procéder présente plusieurs avantages :

    • la mise à jour du plugin actualise automatiquement le fichier historique
    • le contenu est saisi dans l'IDE de développement. Moins de risque d'oubli
    • le style est celui du template du site

    Référence sur la syntaxe Mardown : wikipedia.org - michelf.ca

    Syntaxe 1 : texte saisi entre shortcode

    Mise en forme de texte au format markdown saisi dans l'éditeur de Joomla.

    Par défaut, le balisage HTML est supprimé avant la mise en forme. Pour le conserver, ajouter le paramétre strip_tags=0

    Texte codé en Markdown

    {up markdown | class=upmd }
    # titre 1
    ## titre 2
    ### titre 3
    #### titre 4
    ##### titre 5
    ###### titre 6
    
    titre 1 (autre syntaxe) 
    =======
    titre 2 (autre syntaxe) 
    -------
    
    du texte **gras**,  en *italique* ou ***gras et italique***
    
    --- une ligne séparatrice (hr)
    
    - liste à puce 
    - seconde ligne
    
    1. premièrement
    2. deuxièment
    
    > une citation 1er niveau
    >> une citation 2ème niveau
    
    ![Texte alternatif](images/admin/joomla-logo-32.png "title: Logo Joomla") une image
    
    [UN LIEN VERS GOOGLE](http://google.fr)
    
    https://up.lomart.fr    détection automatique des urls
    
        // un bloc de code
        $app = JFactory::getApplication();
        $menu = $app->getmenu();
        $homepage = ($menu->getActive() == $menu->getDefault());
        
    du texte avec `du code inline`
       
    |col 1|col 2|
    |-----|-----|
    | a   | b |
    
    {/up markdown}

    Résultat (en HTML)

    titre 1

    titre 2

    titre 3

    titre 4

    titre 5
    titre 6

    titre 1 (autre syntaxe)

    titre 2 (autre syntaxe)

    du texte gras, en italique ou gras et italique

    --- une ligne séparatrice (hr)

    • liste à puce
    • seconde ligne
    1. premièrement
    2. deuxièment

    une citation 1er niveau

    une citation 2ème niveau

    Texte alternatif une image

    UN LIEN VERS GOOGLE

    https://up.lomart.fr détection automatique des urls

    // un bloc de code
    $app = JFactory::getApplication();
    $menu = $app->getmenu();
    $homepage = ($menu->getActive() == $menu->getDefault());

    du texte avec du code inline

    col 1 col 2
    a b

    Note : pour cet exemple, j'ai ajouté du code pour styler la table avec l'action addcsshead

    {up addcsshead=.upmd table td,.upmd table th[border:#999 1px solid;padding:2px 10px]}

    Syntaxe 2 : fichier externe

    Le shortcode ci-dessous

    {up markdown=plugins/content/up/changelog.md |  style=border:1px green solid; padding:10px;max-height:500px;overflow:scroll}

    affiche le contenu du fichier 'historique des modifications de UP'.


    31/05/2020 - version 2.0


    Nouvelles actions

    • div : saisie rapide d'un bloc DIV en wysiwyg
    • span : saisie rapide d'un bloc SPAN en wysiwyg
    • donation : faire un don avec Paypal

    CSS

    • ajout classe text-col-no-break (break-inside:avoid)

    17/04/2020 - version 1.9.5


    • Le webmaster peut créer un fichier "custom/help.txt" au format HTML/BBCode qui sera affiché par ? et debug

    Nouvelles actions

    • tooltip : info-bulles
    • media-vimeo : affichage vidéo VIMEO (auteur: Pascal)
    • iframe : affiche un contenu externe
    • jcat-image : affiche l'image de sa catégorie dans un article

    Modifications actions

    • box : refonte complête. Possibilité de template et de multibox
    • addclass : si selector non spécifié. Le parent est calculé par rapport à l'emplacement du shortcode
    • image-gallery : (une suggestion de Marc)
      • création d'une galerie à partir d'images insérées entre les shortcodes
      • suppression automatique des images (srcset) obsolètes
      • ajout option shuffle-reverse pour inverser ordre des dossiers
    • file-download :
      • file*.zip = la dernière version du fichier
    • website : bug sur lang
    • lorem : strip_tags si max-words ou max-chars
    • tabslide : largeur maxi sur mobile
    • media-youtube : marche/arret selon visibilité vidéo à l'écran (par Pascal)
    • html : prise en charge class & style non différenciés

    Modifications internes

    • ctrl_options :
      • prefs.ini[options] pris en charge pour only_using_options
      • possibilité prefs.ini par défaut en racine du dossier action (voir action box)
    • get_bbcode : ajout a dans les balises par défaut
    • up_actionslist : les actions dont le nom débute par x sont ignorées (option privée)
    • set_attr_tag : optionnel si tag commence par un underscore et pas d'attribut

    CSS

    • ajout classes : u, u-hover, ud, ud-hover : underline & underline dotted

    17/04/2020 - version 1.9.1


    Modifications actions

    • modal : ajout option filter (pascal) + bug overlayClose
    • file-download : blocage extensions dangereuses et gestion icon

    16/04/2020 - version 1.9


    Nouvelles actions

    • form-select

    Modifications actions

    • image-gallery : boutons shuffle responsives
    • jmenus_list : option main-tag pour retour autre que liste arborescente
    • file-download : prise en charge PDF,TXT,... Bravo Pascal

    Modifications internes

    • info_debug : changement look et option pour ajouter nom action
    • trad_argument remplacé par lang
    • get_attr_style accepte un nombre d'arguments variable
    • get_custom_path : retourne chemin vers fichier custom s'il existe

    08/04/2020 - version 1.8.2


    Nouvelle action

    • note : ajoute des commentaires visibles dans un éditeur WYSIWYG et pas sur le site
    • image-random : affiche aléatoirement une des images d'un dossier

      Divers

    • compatibilité J4 du script d'installation (merci pascal)

      30/03/2020 - version 1.8.1


      Modifications actions

    • upsccscompiler : fix force et force-filter

      Modifications internes

    • translation : scindé en trad_argument et trad_keyword

      CSS

    • annulation de la possibilité (v1.8) de surcharge du fichier _variables.scss dans le sous-dossier assets/custom voir article developpeur : Utiliser la feuille de style UP
    • remise en service script install pour préserver assets/_variables.scss

      30/03/2020 - version 1.8


      Nouvelles actions

    • file-download : gestion téléchargements avec stats et mot de passe
    • jextensions_list : liste des extension installées
    • jcategories_list : liste des catégories
    • jmenus_list : liste des menus
    • jmodules_list : liste des modules
    • upPrefSet : liste des prefset de tout ou partie des actions pour documentation interne
    • qrcode
    • chart : statistiques
    • sql : requete SQL avec mise en forme
    • image-logo : ajoute une image ou du texte comme légende d'une image
    • printer : propose l'impression
    • meteo-vigilance : le widget vigilance de Météo France
    • image-secure : compliquer la récupération d'une image
    • bbcode : saisir du code HTML dans un éditeur wysiwyg

    Modifications actions

    • _example_simple & _example_full_options : mise à jour pour prefset
    • flexauto :
      • ajout options bloc-style & css-head.
      • Ajout séparateur {===}.
    • googlefont : tag pour contenu selon son type (block ou inline)
    • upScssCompiler : update SCSSPHP version 1.0.6
    • jcategories-by-tags : alt défaut = src humanize
    • csv2table : saut de ligne dans contenu CSV avec [br]
    • image-gallery : ajout tri shuffle par Pascal
    • image-magnify : fix class/style. reprise image-magnify pour imgzoom
    • meteo-france : possibilité d'indiquer une ville non française
    • toc : si item tronqué par maxlen, texte complet dans tooltip title

    Modifications internes

    • up_prefset_list : retourne la liste des prefset avec leurs options
    • ctrl_options : ajout argument $optmask pour tester si une options non prévue est permise
    • get_content_parts : suppression
      ajouté par TinyMCE + fix bug sur mi-tag
    • up.php : suppression espaces durs ajouté par TinyMCE
    • traduction : plus retour 1ère alternative car conflit si url avec ;id=
    • prefset : prise en charge prefset comme argument option principale
    • get_bbcode : permet de saisir du HTML comme argument d'options en remplacant les <> par []. exemple : [b class="foo"]gras[1][/b] -> gras[1]

    CSS

    • support des noms anglais pour les couleurs. ex: la class t-rouge & t-red pour du texte rouge
    • possibilité de surcharge du fichier _variables.scss dans le sous-dossier assets/custom
    • !important sur les classes fg-c..
    • ajout partiel _print.scss avec classe noprint

    04/01/2020 - version 1.7.2


    Modifications actions

    • upActionsList : pas d'affichage de la doc dans la liste générale si demosite=0 Cela permet de mettre une action en test sur le site sans qu'elle soit visible. Elle sera visible sur la page démo qui doit être en accés restreint
    • JContent_by_categories : fix regex sur ##intro-text,xxx##
    • anim-aos : fix UTF lors prise en charge globale de la page
    • icon :
      • info=2 renvoit les icons de prefs.ini à la place du shortcode, 1 dans debug
      • fix prise en charge prefset

    Modifications internes

    • get_content_parts : supprime balise fermante au début et fermante à la fin

    30/12/2019 - version 1.7.1


    • TOC : ajout maxlen
    • JCxxx : les mots-clés sont encadrés par ## au lieu d'accolades. ex: ##mot##

    14/12/2019 - version 1.7


    Général

    • possibilité d'inclure des shortcodes comme argument d'option d'un shortcode ex : {up readmore={up icon=plus} Ouvrir}
    • possibilité de définir des jeux d'options (prefset) pour toutes les actions
    • addcsshead et toutes les options base-css ou css-head possibilité de saisir des crochet [] en les échappant par \ ex: {up addcsshead=[test="foo"] li:nth-of-type(odd)[color:red]}
    • filter :
      • ajout server-host et server-ip
      • possibilité condition inverse par !server-ip:localhost
    • correction bugs provoquant des notices

    Nouvelles actions

    • TOC : sommaire
    • counter : compteur/décompteur animé
    • scroller : faire défiler du contenu verticalement
    • hr : lignes horizontales
    • jnews (jcontent-by-categories): les derniers articles pour présentation évoluée
    • jcontent-in-content : un article dans un article
    • jcontent-by-tags : les articles d'un mot-clé
    • jcategories-by-tags : les catégories d'un mot-clé
    • php-error : gérer les messages PHP in-situ
    • lang : propose une alternative (texte, image, code) selon la langue visiteur

    Modifications actions

    • php : corrige les caractères <> convertis par les éditeur wysiwyg
    • icon :
      • ajout unicode et image.
      • raccourci saisie et collection dans custom/prefs.ini
      • création règle css
    • tab :
      • ajout option css-head, espace-vertical et content_display.
      • ajout fichier SCSS et variables pour personnaliser les couleurs
      • modif CSS: contenu à width 100%
    • article-category :
      • changement de nom : jcontent_list
      • filtrage sur catégorie sur catégorie courante
    • html : gestion des balises auto-fermantes
    • addcodehead : nouveau mode saisie par attribut=valeur
    • slideshow-billboard : ajout zoom-suffix pour compatibilité avec l'action modal
    • modal : option zoom-suffix en remplacement de la constante '-mini'
    • upActionsList : ajout option filter
    • filter : l'argument principal est géré comme l'option filter d'une action
    • upScssCompiler : update vers version 0.8.4 de leafo
    • anim-aos : ajout option once

    Nouvelles méthodes internes

    • load_js_file_body : permet de charger un fichier js à la fin du contenu de l'article avec gestion dossier custom

    Modifications internes

    • get_action_pref : ajout argument $default (utile pour timezone)
    • set_attr_tag : force span si tag vide mais attribut
    • filter :
      • inverser la condition avec !
      • pour period le séparateur peut être virgule ou tiret. ex: 20191220-20200103
    • up_action_options : valeur par défaut, neutralisation du code HTML
    • ctrl_options
      • prise en charge prefset. ordre priorité : shortcode, prefset, options
        • debug : affiche les entités html pour les valeurs d'options
      • debug : affiche la valeur retenue entre shortcode, prefset, options
      • debug et aide (?) : affiche les sections (sauf options) du prefs.ini

    UP.CSS

    • ajout .fg-auto-7 à .fg-auto-12
    • ajout .ff-mono et .ff-cursive : web safe fonts
    • img.left et img.right : ajout vertical-align:top;
    • .fg-vspace-[between|arround|evenly|start|center|end] : répartition verticale des blocs du bloc
    • .m-child-raz[-1|-2] : suppression marge haute du premier bloc et basse du dernier bloc enfant ou petit-enfant
    • .badge, .badge-rouge, .badge-bleu, .badge-vert

    05/11/2019 - version 1.6.3


    Général

    • création des traductions anglaises pour toutes les actions

    Nouvelles actions

    • anim-aos : effets d'animation sur des blocs textes ou images (Pascal Leconte)

    Modifications actions

    • upactionslist : gestion traduction
    • filter : utilisation de filter_ok
    • snowfall : ajout option filter
    • corner : ajout option filter, suppression datemin et datemax
    • tab : correction regex pour balise titre avec attributs
    • pdf : correction valeur défaut 'download-text'
    • osmap : mise à jour vers Leaflet 1.5.1
    • article-category : correction current-catid
    • modal : correction sur contenu inline
    • readmore : correction valeur defaut pour bouton

    Nouvelles méthodes

    • filter_ok : traitement de l'option généralisée 'filter=period:1223,0105;mobile=0'

    Modifications internes

    • rétablissement traduction dans ctrl_options et annulation dans up.php

    25/10/2019 - version 1.6.2


    • suppression code de debug dans up.php

    Modifications actions

    • tab : ajout option auto par pleconte et correction regex

    25/10/2019 - version 1.6.1


    Reprise complète des documentations actions

    Modifications actions

    • lorem : nouveau param 'tag=DIV'. Pour avoir un texte sans aucun tag, utilisez : {up lorem=2,plaintext | tag=0}

    15/10/2019 - version 1.6 (compatible Joomla 4.0)


    Nouvelles actions

    • csv2list : liste avec point de conduite à partir de contenu au format CSV
    • csv2def : liste de définition à partir de fichier au format CSV ou de saisie wysiwyg
    • csv2table : table à partir de fichier ou de saisie au format CSV
    • image-panellum : affiche un panorama 3d à partir d'une image equirectangular
    • file-view : affiche le contenu d'un fichier texte, csv ou html
    • corner : badge en coin ou ruban sur un bloc ou le body

    Modifications actions

    • image-gallery : correction texte description
    • AddCssHead : possibilité de charger un fichier
    • toutes les actions avec le parametre base-css, le mot-clé '#id' est remplacé par l'ID de l'instance.
    • upactionslist : ajout 2 options pour générer la documentation dans un fichier CSV ou Markdown

    Nouvelles méthodes

    • clean_HTML : retourne un contenu avec les balises HTML visibles, à l'identique ou avec seulement quelques balises
    • params_decode : retourne un tableau avec des options sous la forme key:val,"key":" val:2",key:lang[en=yes;fr=oui],...

    Modifications internes

    • reprise complete up.php pour evaluation des shortcodes enfants en premier. permet de créer une table par csv2table qui pourra etre modifiée par table-by-rows
    • suppression des balises P dans le shortcode si saisie en wysiwyg
    • json_arrtostr : ajout mode=3 pour prise en charge param array. Actions concernée : slider-owl (itemsXX).
    • load_css_head : remplace le tag '#id' par l'ID de l'instance de l'action
    • only_using_options : ajout argument pour tester d'autres jeux d'options
    • get_content_shortcode : modif regex pour trouver le mot clé exact
    • suppression traduction dans ctrl_options (voir incidence)
    • set_attr_tag : ajout option pour choisir le type de guillemets

    CSS

    • ajout important aux règles prioritaires (spacing, )

    20/10/2018 - version 1.5


    Nouvelles actions

    • lorem-unsplash : images aléatoires
    • lorem-placeimg : images aléatoires
    • bg-video : ajouter des vidéos en fond de site ou dans un bloc
    • bg-image : ajouter des images et règles CSS en fond de site ou dans un bloc
    • bg-slideshow : ajouter un slideshow en fond de site ou dans un bloc
    • center : centrer du contenu dans un bloc
    • snowfall : faire tomber de la neige ou d'autres images

    Modifications actions

    • tabslide : modification z-index
    • filter : period récurrentes - period=1224,010210 -> tous les ans du 24/12 minuit au 01/01 à 10h

    CSS

    • ajout classes bg30,bg50 et bg80 pour fond blanc translucide
    • ajout classe up-center pour centrer verticalement du contenu avec neutralisation des marges son significatives
    • ajout classes w[s|m]25, w[s|m]50, w[s|m]75, w[s|m]100 : largeur en pourcentage
    • modif fg-row : annulation stretch vertical

    Nouvelles méthodes

    • get_attr_style : ventile les classes et styles dans un tableau attribut

    Modifications internes

    • Argument principal : n'est plus forcé à true, pour pouvoir saisir une valeur 1 MAJ actions concernées : article_category, box, clocks_gmt, countdown, html, lorempixel, marquee, meteo_france, pdf, readmore, slideshow_billboard, tab
    • json_arrtostr : ajout paramètre pour retour sans accolades
    • msg_error : id action dans message
    • json_arrtostr : mode 2 : pas de guillemets si entouré de crochets

    20/8/2018 - version 1.4


    Nouvelles actions

    • clocks-gmt : horloge mondiale
    • image-gallery : image(s) dans lightbox avec gestion taille fichier selon device
    • image-rollover : change image au survol souris
    • modal : affiche html, video, fichier, iframe dans fenêtre modale
    • PDF : affichage dans contenu, fenêtre modale ou lien pour télécharger
    • website : lien vers un site web avec génération automatique screenshot

    Modifications actions

    • adclass
      • prise en charge grands-parents
    • article-category
      • possibilité de plusieurs catégories séparées par des virgules
      • filtrage sur auteur(s)
      • titre uniquement si résultat
    • faq
      • ajout classe active sur titre ouvert
    • icon
      • ajout prefix pour prise en charge plusieurs polices d'icônes
    • meteo-france
      • prise en charge https
    • tab
      • prise en charge class et style
    • **slideshow-billboard
      • fix test sur type contenu (dossier ou content)
    • upactionslist
      • ajout param demo pour ne pas afficher le lien sur la page de demo
      • ajout param class & style
      • ajout message pour cliquer sur FAQ sur page demo

    Nouvelles méthodes

    • prise en charge des préférences webmaster par fichier custom/prefs.ini

    Modifications internes

    • ajout obj->firstInstance pour faire action lors du 1er run
    • ajout obj->replace_deb & replace_len pour traitement remplacement par action
    • ajout possibilité d'un retour dans array
      • all : totalité $article->text (gestion globale article par action)
      • tag : le texte pour remplacer le shortcode
      • before/after : texte à ajouter en début ou fin de $article->text
    • ajout uniqid() pour id shortcode hors article
    • ajout méthode get_option_is_valid(param_name) retourne valeur ou msg erreur
    • ajout méthode get_url_full : retourne une url absolue
    • ajout méthode on_server(url) : true si URL sur le server
    • ajout méthode sreplace(old, new, src, nb = 1) : remplace les nb occurrences de old par new dans src. (version simplfiée de sprintf qui retourne false si le nbre d'arguments diffère)
    • changement de nom : load_script_head -> load_js_code
    • suppression méthode add_options_json : utiliser prefs.ini pour les personnalisations

    Corrections internes

    • UP
      • test si 2e shortcode ouvrant avant fermant pour autoriser à une action d'utiliser les 2 formes de shortcode (court et long)
      • suppression balise br ajoutée avant | pour aérer le shortcode
    • ctrl_argument :
      • accepte valeur vide
      • retour valeur (modif actions : article_category & upscsscompiler)
    • ctrl_content_parts : espace dans chaine recherchée
    • ctrl_options :
      • prise en charge custom/prefs.ini
      • traduction de tous les arguments texte commençant par xx=
      • case insensitive options JS de prefs.ini
    • get_action_pref : regex pour saut ligne
    • info_debug : prise en charge traduction
    • lang & translate : pb parenthèses
    • link_humanize : suppression compteur (0xx-) devant le nom du fichier. 01-lion.jpg = lion.jpg
    • load_file : prise en charge cdn
    • msg_info : modif des actions utilisatrices (meteo, upscsscompiler)
    • set_attr_tag :
      • possibilité de passage de contenu avec $close
      • retour vide si demande fermeture sans attribut

    29/6/2018 - version 1.33


    • action tab (prise en charge class et style, accordion)
    • action faq (ajout classe active sur titre ouvert)
    • modif interne
    • chgt nom : load_script_head -> load_js_code

    28/6/2018 - version 1.32


    • possibilité de personnalisation par sous-dossier custom
    • nouvelle action : kawa ;-)
    • tab : correction bug sur forcage accordion. Suppression espace sous onglets. CSS ul,li, prise en charge attributs dans regex. (merci woluweb)
    • lorem : appel du serveur en https
    • modif interne
    • link_humanise. ajout param $capitalize

    24/6/2018 - version 1.31


    • nouvelle action : addScript
    • ajout load_custom_code_head supprimé par erreur

    23/6/2018 - version 1.3


    • nouvelle action : OSMap
    • nouvelle action : facebook-timeline
    • nouvelle action : tweeter-timeline
    • markdown: suppression commentaires YAML et gestion chemin images
    • slider_owl : correction css inline
    • modif interne
    • json_arrtostr : retourne {} si vide
    • ajout load_script_head($code)
    • ajout get_jsontoarray($filename)
    • ajout strtoarray($str)
    • ajout get_content_shortcode($content, $key) array des shortcodes internes

    7/2/2018 - version 1.2


    • nouvelle action : markdown
    • ajout nouvelles actions dans le zip de base : imagemap
    • correction bug upAction.php pour compatibilité PHP 7.2
    • modif load_css_head pour
      • permettre sélecteur avec &gt; au lieu de >
      • suppression tags HTML dans argument multilignes
    • up.xml : ajout note sur utilisation

    15/12/2017 - ajout actions


    • imagemap : création d'une image clicable et responsive

    3/12/17 - version 1.1


    • ajout action sound_hover
    • modif action html pour fermeture auto des balises
    • ajout action media_plyr
    • ajout action slider_owl
    • ajout action image_slideshow
    • ajout compilateur SCSS
    • script install pour préserver les configurations
    • bug: prise en compte argument false en json
    • reprise script exemple
    • fonction link_humanize
    • json_arrtostr. guillemets si argument chaine
    • controle non chevauchement des actions. Permet de mixer shortcode simple et avec contenu (voir slideshow_billboard)
    • correction str_append pour prise en charge de 0