Создание содержимого Jekyll Liquid без его включения (только из функции загрузки JQuery) - PullRequest
0 голосов
/ 07 марта 2019

Ну, я пытаюсь сделать $('element').load() звонок. Потому что я хочу загружать контент только на десктопы и планшеты, а не на мобильные. Поэтому, чтобы избежать избыточности данных, я делаю следующее (после моего $(document).ready(func...)):

  $('section[data-showif="only-sm"]').each(function(index) {
     if($(window).width() > 992)
         $(this).load("/html/" + $(this).data("htmlinclude") + ".html");
  });

У меня есть раздел со следующими данными:

<section id="github-cards" data-showif="only-sm" data-htmlinclude="github-cards-content">
</section>

А потом, в моем html/github-cards-content.html файле у меня есть это:

<div class="container gitcards">
    <div class="row">
        {% for repo in site.data.repos %}
            <div class="col-md-4">
                <div class="github-card" data-github="{{ repo }}" data-theme="default"></div>
            </div>
        {% endfor %}
    </div>
</div>

Это не важно, но я использую Github Cards для отображения своих проектов.

И это мой файл в формате yml: _data/repos.yml:

- "uta-org/QuickFork"
- "uta-org/ZWSetup"
- "uta-org/uzLib.Lite"

Это прекрасно работает, если я просто помещаю содержимое из github-cards-content.html в свой раздел. Но если я сделаю то, что объяснил, появится код Liquid (я хочу этого избежать).

Я мог бы представить, что не могу загрузить жидкие шаблоны / контент без вызова {% include file... %}, но я хочу знать, есть ли обходной путь для этого.

EDIT:

Вот что парень сказал:

Жидкость отображается на стороне сервера, поэтому вы не сможете визуализировать жидкость после загрузки страницы с помощью jquery. Вы можете обойти это вставьте любой код, находящийся в 'liquidcode.html' из в самом начале, но скрывая это, добавляя класс в div с дисплей установлен на нет. Затем вы можете удалить этот класс, когда пользователь нажимает на «Клик».

https://stackoverflow.com/a/44398827/3286975

Я мог бы представить что-то подобное. Но есть ли плагин, который заставляет сервер рендериться, не отправляя данные клиенту до тех пор, пока он не понадобится? (Мне это нужно, потому что в мобильном устройстве мне нужно избегать как можно меньшего количества данных, которые должны быть отправлены клиенту из-за роуминга)

1 Ответ

0 голосов
/ 03 июня 2019

Я не уверен на 100%, что понимаю, с чем у вас проблемы.Было бы полезно увидеть примеры указанной вами проблемы, поскольку она неоднозначна:

Это прекрасно работает, если я просто помещу содержимое из github-cards-content.html в мой раздел.Но если я сделаю то, что объяснил, будет показан код Liquid (я хочу этого избежать).

Тем не менее, было бы полезно указать, что Jekyll будет анализировать синтаксис жидкости в любом файле, которыйвверху есть блок :

---
---

// Some code...

Сюда входят файлы Javascript, а также HTML, CSS и т. д. Если у вас есть эти дефисы вверху, вы можете добавитьдинамическая логика шаблона с использованием жидкостного синтаксиса.


Следует также отметить, что Jekyll является генератором статических сайтов.Это означает, что не не обеспечивает динамические представления в реальном времени, как PHP или другие языки сценариев.После того, как статические активы сгенерированы и обслужены, невозможно выполнить дополнительную логику через жидкость, так как в этот момент вы находитесь в статической HTML-земле.

...