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.

Comments

comments powered by Disqus
Published on 2010-10-26
Follow @yogsototh
Yann Esposito©
Done with Vim & nanoc Hakyll