Получение «Liquid Exception: Liquid синтаксическая ошибка» при использовании Jekyll - PullRequest
0 голосов
/ 14 сентября 2018

Я запускаю bundle exec jekyll serve --trace в Windows 10. Я получил следующее консольное сообщение:

D:\MyPorfolio\perrot.github.io>bundle exec jekyll serve
Configuration file: D:/MyPorfolio/perrot.github.io/_config.yml
            Source: D:/MyPorfolio/perrot.github.io
       Destination: D:/MyPorfolio/perrot.github.io/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
  Liquid Exception: Liquid syntax error (line 8): Syntax Error in 'for loop' - Valid syntax: for [item] in [collection] in 2018-09-14-Rendering a python dict in jinja2.markdown

Джекилл 3.7.3 | Ошибка: Ошибка жидкого синтаксиса (строка 8): Синтаксическая ошибка в 'for loop' - Допустимый синтаксис: для [item] в [collection]

Кто-нибудь знает, как решить эту проблему? Заранее спасибо.

Файл 2018-09-14-Рендеринг python dict в jinja2.markdown содержимое:

---
layout: post
title:  "Rendering a python dict in jinja2"
date:   2018-09-14 00:01:57 +0800
categories: python jinja2
---

    ```python
    url_list = [{'target': 'http://10.58.48.103:5000/', 'clicks': '1'}, 
                {'target': 'http://slash.org', 'clicks': '4'},
                {'target': 'http://10.58.48.58:5000/', 'clicks': '1'},
                {'target': 'http://de.com/a', 'clicks': '0'}]
    #Python 2.7

    {% for key, value in url_list.iteritems() %}
        <li>{{ value["target"] }}</li> 
    {% endfor %}
    #Python 3

    {% for key, value in url_list.items() %}
        <li>{{ value["target"] }}</li> 
    {% endfor %}
    ```

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

1 - Тег {% raw %} является частью решения для вашего кода Python в этом сообщении и этом сообщении .

2 - Другая частьрешение может быть ошибкой в ​​том, как Jekyll управляет выдержками .

Удалите пустые строки в вашем коде, и это будет работать.

0 голосов
/ 14 сентября 2018

Liquid пытается обработать ваш исходный код, в частности теги управления jinja2, для этого вам нужно указать Liquid, чтобы он не обрабатывался с тегами raw:

{% highlight python %}
{% raw %}
   url_list = [{'target': 'http://10.58.48.103:5000/', 'clicks': '1'}, 
                {'target': 'http://slash.org', 'clicks': '4'},
                {'target': 'http://10.58.48.58:5000/', 'clicks': '1'},
                {'target': 'http://de.com/a', 'clicks': '0'}]
    #Python 2.7

    {% for key, value in url_list.iteritems() %}
        <li>{{ value["target"] }}</li> 
    {% endfor %}
    #Python 3

    {% for key, value in url_list.items() %}
        <li>{{ value["target"] }}</li> 
    {% endfor %}

{% endraw %}
{% endhighlight %}
...