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}
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
  • style: style inline pour bloc

    J'ai créé cette action simple pour afficher le contenu du fichier changelog de UP: 'history.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/history.md |  style=border:1px green solid; padding:10px}

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

    31/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 > 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

    Un exemple vers la documentation de l'excellent Marknotes de Christophe Avonture

    Le texte ci-dessous est la présentation de Marknotes au Joomladay 2017 à Marseille. Il est lu directement sur son site avec le shorcode ci-dessous:

    On récupère uniquement le contenu, le CSS est celui du site d'accueil afin de préserver une unité de présentation.

    {up markdown=https://www.marknotes.fr/docs/marknotes/Presentation-de-marknotes.md | class=ombreMax p1 bg-jauneClair}

    ⇒ Markdown - content not found //www.marknotes.fr/docs/marknotes/Presentation-de-marknotes.md