Jekyll плагин смена персонажей - PullRequest
1 голос
/ 03 ноября 2019

Я сделал мой плагин onw jekyll, который дает некоторый текст, специальный css (спойлер).

Это мой код:

class Spoiler < Liquid::Tag                                                                                                                                                                                    
   def initialize(tag_name, input, tokens)                                               
     super                                                                               
     @input = input                                                                      
   end                                                                                   

   def render(context)                                                                   
     output = "<div class='spoiler'>" + @input + "<div>"           

     return  output;                                                                     
   end                                                                                   

end                                                                                     
Liquid::Template.register_tag('spoiler', Spoiler)                                 

Есть пример, как я хочу его использоватьв моих сообщениях об уценке:

---                                                                                                                                                                                                            
layout: post                                                                            
title:  "testing file"                                                                       
date:   2019-09-25                                                                      
category: article                                                         
---                                                                                     

aaaaaaaaaaa  {% spoiler secret text %} bbbbbbbbbbbb

но вот так выглядит страница:

screenshot of my site

Когда я смотрю на сгенерированный источниккод, текст выглядит так:

<p>aaaaaaa &lt;div class='spoiler'&gt;secret text &lt;/div&gt; bbbbbbbb</p> 

Что мне нужно сделать, чтобы плагин jekyll генерировал html-элемент вместо текста?

PS: Если я вручную заменю &lt; на <и &gt; на >, работает нормально.

1 Ответ

1 голос
/ 04 ноября 2019

Технически каждая строка, разделенная пробелами, отображается в элементе HTML <p>.

Чтобы избежать автоматического создания тегов <p>, явным образом переносите строки в <div>:

<div>
  aaaaaaaaaaa  {% spoiler secret text %} bbbbbbbbbbbb
</div>
...