Anglais ↓ Menu ↓

# Des macros LaTeX pour markdown

tlpl: J’ai fait un système simple de macros pour mon blog. Par exemple, il me suffit d’écrire %latex et ça affiche LaTeX.

J’ai ajouter un système de macro pour mon système de blog. Lorsqu’on est habitué à LaTeX et que l’on commence à écrire des articles un peu conséquent avec des notations mathématiques, les macros deviennent vite quelque chose d’indispensable.

Dans l’entête de mes fichiers j’écris simplement:

Puis dans le corps ça va remplacer :

- %test par Just a test ;
- et %latex par LaTeX

Le code est assez simple. Pour les utilisateurs de `nanoc` il suffit de copier le fichier suivant dans le répertoire `lib`.

    # usage:
    # ---
    # ...
    # macros:
    #   test: "passed test"
    # ---
    # ...
    # Here is a Just a test.
    #
    class Macros < Nanoc3::Filter
        identifier :falacy
        attr_accessor :macro
        def initialize(arg)
            super
            @macro={}
            @macro[:tlal] = %{<span class="sc"><abbr title="Trop long à lire">tlàl</abbr> : </span>}
            @macro[:tldr] = %{<span class="sc"><abbr title="Too long; didn't read">tl;dr</abbr>: </span>}
            if @item.nil?
                if not arg.nil?
                    @macro.merge!( arg )
                end
            else
                if not @item[:macros].nil?
                    @macro.merge!( @item[:macros] )
                end
            end
        end
        def macro_value_for(macro_name)
            if macro_name.nil? or macro_name=="" or @macro[macro_name.intern].nil?
                return %{%#{macro_name}}
            end
            return @macro[macro_name.intern]
        end
        def run(content, params={})
            content.gsub(/%(\w*)/) do |m|
                if m != '%'
                    macro_value_for($1)
                else
                    m
                end
            end
        end
    end

Les macros peuvent être vraiment utiles. Lisez cet article par exemple.

RSS · Tweet · FB
Ces liens sociaux préservent votre vie privée
↑ Top ↑
Published on 2010-10-26
Follow @yogsototh
Yann Esposito©
Done with Vim spacemacs & nanoc Hakyll

ADA: `DdzFFzCqrhtAvdkmATx5Fm8NPJViDy85ZBw13p4XcNzVzvQg8e3vWLXq23JQWFxPEXK6Kvhaxxe7oJt4VMYHxpA2vtCFiP8fziohN6Yp`