J'utilise Markdown écrit dans un fichier de données pour rendre HTML dans un modèle HAML avec le générateur de page statique Middleman.Middleman: méthode non définie `link_to 'lors du rendu de démarques à partir d'un fichier de données
Mon fichier de données, data/faq.yaml
ressemble à ceci:
dog:
question: I want to know more about a dog.
answerA: (HTML in data) Just <a href="https://google.com">Google</a> it!
answerB: (Markdown link in data) Just [Google](https://google.com) it!
Pour convertir ce démarquage en HTML, je me sers aide personnalisée définie dans config.rb
:
helpers do
def markdown(text)
Tilt['markdown'].new { text }.render
end
end
qui puis-je utiliser dans mon HAML modèle comme ceci:
= markdown(data.faq.dog.answerA)
Tout fonctionne p parfaitement jusqu'à ce que j'essaie de rendre le lien markdown écrit dans le fichier de données.
ci-dessous est mon modèle faq.haml
avec:
- lien Markdown écrit directement dans HAML, ce qui rend par le filtre démarquage de HAML
- de référence à
answerA
à partir des données avec lien HTML écrit directement - Référence à
answerB
de données avec un même lien écrit avec la syntaxe Markdown
faq.haml
:
.answer
:markdown
(HAML) Just [Google](https://google.com) it!
= markdown(data.faq.dog.answerA)
= markdown(data.faq.dog.answerB)
2 premiers liens rendent propely, mais lien démarquage dans answerB
plaids erreur suivante:
undefined method `link_to' for #<Object:0x000000044f9e18>
Traceback:
/home/myself/.rvm/gems/ruby-2.4.0/gems/middleman-core-4.2.1/lib/middleman-core/renderers/kramdown.rb: in convert_a
48. scope.link_to(content, link, attr)
Pourquoi est-Kramdown incapable de convertir un lien de démarquage quand « demandé "pour le faire via helper personnalisé qui référence le fichier de données, mais le fait correctement lorsque la même syntaxe est utilisée directement dans HAML? Qu'est-ce qui peut être fait, de sorte que le lien de démarquage dans = markdown(data.faq.dog.answerB)
rend correctement?
Ps. Mon but final sera de faire référence à des liens qui sont déjà définis dans un fichier séparé data
, mais je pense que résoudre ce problème en premier est nécessaire pour atteindre cet objectif.