2017-07-03 2 views
0

J'ai une démarquage que je généré qui ressemble à ceci sous forme de texte:Markdown rendu avec des tirets Redcarpet manquantes pour les listes et de nouvelles lignes entre les sections

« ### Nous cherchons quelqu'un avec ... \ r \ n \ r \ n- Significant Rails expérience \ r \ n- Bonnes aptitudes de communication (recommandé) \ r \ n \ r \ n \ r \ n ### Vous devriez vous situer près de: \ r \ n \ r \ n Berlin \ r \ n San Francisco \ r \ n Toronto \ r \ n »

En ApplicationHelper.rb, je donne les résultats suivants:

module ApplicationHelper 
    def markdown(content) 
     return '' if content.blank? 

     @options = { 
      autolink: true, 
      space_after_headers: true, 
      underline: true, 
      link_attributes: {rel: 'nofollow', target: "_blank"} 
     } 

     markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, @options) 

     markdown.render(content).html_safe 
    end 
end 

Peu importe combien de sauts de ligne ajouter entre chacune des sections H3 (dans ce cas, il est 3 nouvelles lignes), les deux parties prennent dans les bras jusqu'à côté de l'autre au lieu de respecter les 3 \n s dans la texte.

De plus, il n'y a pas de - ou * avant chaque élément d'une liste.

enter image description here

J'ai regardé sur les redcarpet docs et je ne vois rien que je puisse permettre de respecter les nouvelles lignes et les éléments de liste. La liste blanche de toutes les balises html compilées ne semble pas être la bonne solution.

Toute aide serait appréciée. Merci!

Répondre

1

La sortie de Redcarpet est HTML. La façon dont il apparaît dans le navigateur dépend de la façon dont vous avez stylisé ce code HTML, et est plus ou moins indépendant de l'espacement dans la démarque de la source.

Le démarquage vous donnez produit le code HTML suivant:

<h3>We&#39;re looking for someone with…</h3> 

<ul> 
<li>Significant Rails experience</li> 
<li>Good communication skills (recommended)</li> 
</ul> 

<h3>You should be located near:</h3> 

<ul> 
<li>Berlin</li> 
<li>San Francisco</li> 
<li>Toronto</li> 
</ul> 

Le même code HTML exact est généré peu importe combien de nouvelles lignes que vous avez entre la liste et l'en-tête.

La quantité d'espace qui s'affiche lorsque cela est rendu dépend de votre CSS. Par exemple, vous pouvez ajouter un margin-top ou padding-top aux éléments h3 pour créer plus d'espace.

La même chose est vraie pour les icônes de liste, vous avez probablement list-style mis à none, c'est pourquoi rien n'apparaît pour les puces.

+0

Vous avez tout à fait raison.Le problème était avec ma réinitialisation CSS et pas avec quelque chose Redcarpet ou Markdown liés. Merci Matt. Je vais vous donner la prime quand ça me le permettra demain. Merci pour votre aide rapide –

0

cette option exemple peut être peut vous aider à résoudre votre problème, choisissez et supprimez celui dont vous n'avez pas besoin. pour les rails changez votre type de données en texte non chaîne, car il ne peut pas utiliser le saut de ligne.

options = { 
    :fenced_code_blocks => true, 
    :no_intra_emphasis => true, 
    :autolink => true, 
    :strikethrough => true, 
    :lax_html_blocks => true, 
    # :superscript => true, 
    :tables => true, 
    :with_toc_data => true 
    } 

et vous devriez tester avec cela,

### We're looking for someone with 

- Significant Rails experience 
- Good communication skills (recommended) 

### You should be located near 

- Berlin 
- San Francisco 
- Toronto 
+0

Merci pour la réponse, j'ai changé la colonne en texte de la chaîne et j'ai essayé une nouvelle entrée avec la démarque de votre exemple, il n'y avait aucun changement dans le rendu. Aucune de ces options n'a changé quoi que ce soit. Les éléments d'espacement et de liste ne fonctionnent toujours pas et apparaissent comme avant –