小编Gre*_*son的帖子

我可以在Jekyll中创建嵌套集合吗?

我想使用Jekyll创建一个包含几个章节的手册,每个章节包含几个部分,并将每个部分存储在单独的Markdown文件中.我希望index.md看起来像这样:

<ol>
{% for chapter in site.chapters %}
  <li>
    <a href="{{chapter.url}}">{{chapter.title}}</a>
    <ol>
    {% for section in chapter.sections %}
      <li><a href="{{section.url}}">{{section.title}}</a></li>
    {% endfor %}
    </ol>
  </li>
{% endfor %}
<ol>
Run Code Online (Sandbox Code Playgroud)

如果每个章节都是Markdown文件_chapters,并且我添加了正确的行_config.yml,我可以迭代章节,从YAML标题中拉出标题字段,等等.有没有办法嵌套这个?我尝试_chapters使用各种名称创建子目录,但是(a)Jekyll不会将它们作为子集合进行选择,并且(b)没有明显的地方存储章级信息(如章节的整体标题).

(注意:我想我可以通过显式枚举YAML块中的章节和部分_config.yml,或者通过创建一个单独的YAML文件来实现这一点_data,但我不想担心保持枚举与实际同步章节:我希望Jekyll自动接收更改.)

jekyll

12
推荐指数
1
解决办法
3681
查看次数

在Mac OS X上使用Selenium进行测试时,如何强制Firefox成为前台应用程序

我们最近开始使用Selenium测试基于Django的应用程序.测试在Linux上运行正常,但有些在Mac OS X上失败.我们在两种情况下都使用Firefox作为浏览器,我们花了一段时间(并且运气好)才发现这两种情况之间的重要区别在于FF作为前台应用程序或后台窗口运行.这是Linux上发生的事情:

  1. Selenium告诉Firefox进入用户注册页面.
  2. Selenium填写用户名和无效的电子邮件地址.
  3. Selenium将焦点从电子邮件地址字段更改为同一页面上的另一个字段(它恰好是搜索框,但这并不重要 - 所有重要的是焦点更改事件).
  4. 网页中的Javascript验证代码注意到电子邮件地址无效并在页面中插入错误消息.
  5. Selenium检测到该错误消息并将测试标记为已通过.

但是,当我们在Mac OS X上运行时,步骤#4不会发生,除非我们在测试运行时手动前置Firefox窗口---如果我们将它留在后台(默认情况下它出现的地方),浏览器中的Javascript没有获得焦点更改事件,因此错误消息永远不会插入到页面的DOM中,因此Selenium超时等待它,测试失败.

我们可以在测试运行时强制Selenium将浏览器置于前台,这样我们的Javascript就能获得我们想要的事件吗?如果是这样,怎么样?

javascript macos firefox selenium

10
推荐指数
1
解决办法
1813
查看次数

使用UTF-8输出时,Python ElementTree不会转换非中断空格

我正在尝试使用Python的ElementTree解析,操作和输出HTML:

import sys
from cStringIO  import StringIO
from xml.etree  import ElementTree as ET
from htmlentitydefs import entitydefs

source = StringIO("""<html>
<body>
<p>Less than &lt;</p>
<p>Non-breaking space &nbsp;</p>
</body>
</html>""")

parser = ET.XMLParser()
parser.parser.UseForeignDTD(True)
parser.entity.update(entitydefs)
etree = ET.ElementTree()

tree = etree.parse(source, parser=parser)
for p in tree.findall('.//p'):
    print ET.tostring(p, encoding='UTF-8')
Run Code Online (Sandbox Code Playgroud)

当我在Mac OS X 10.6上使用Python 2.7运行时,我得到:

<p>Less than &lt;</p>

Traceback (most recent call last):
  File "bar.py", line 20, in <module>
    print ET.tostring(p, encoding='utf-8')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1120, in tostring
    ElementTree(element).write(file, encoding, method=method)
  File …
Run Code Online (Sandbox Code Playgroud)

python xml encoding elementtree

10
推荐指数
2
解决办法
3955
查看次数

如何配置 remark.js 来解析 Markdown 中嵌入的 HTML?

我用来remark获取包含 HTML 标签的 Markdown 文档的 AST。当我运行这个时:

const remark = require('remark')
const result = remark.parse('<h1>First</h1>')
console.log(JSON.stringify(result, null, 2))
Run Code Online (Sandbox Code Playgroud)

我得到一个包含 1 级标题的 AST:

{
  "type": "root",
  "children": [
    {
      "type": "heading",
      "depth": 1,
      "children": [
        {
          "type": "text",
          "value": "Title",
          "position": {
            "start": {
              "line": 1,
              "column": 3,
              "offset": 2
            },
            "end": {
              "line": 1,
              "column": 8,
              "offset": 7
            }
          }
        }
      ],
      "position": {
        "start": {
          "line": 1,
          "column": 1,
          "offset": 0
        },
        "end": {
          "line": 1,
          "column": 8, …
Run Code Online (Sandbox Code Playgroud)

javascript markdown remarkjs

6
推荐指数
1
解决办法
2420
查看次数

为什么这些 Python 导入场景会以它们的方式工作(或不工作)?

假设存储库有一个./example__init__.py文件调用的目录,以表明它是一个包。测试位于 中./tests,它没有文件__init__.py

.
|-- README.md
|-- example
|   |-- __init__.py
|   `-- func.py
|-- setup.py
`-- tests
    `-- test_hello.py
Run Code Online (Sandbox Code Playgroud)

./example/func.py很简单:

def hello():
    return "hello!"
Run Code Online (Sandbox Code Playgroud)

如果我在根目录中运行交互式解释器,我可以导入example

$ python
>>> import example
>>> example.hello()
'hello!'
Run Code Online (Sandbox Code Playgroud)

我还可以在导入的根目录中放置一个脚本example

$ cat > temp.py
import example
print(example.hello())
^D

$ python temp.py
hello!
Run Code Online (Sandbox Code Playgroud)

这就是事情变得奇怪的地方。如果我pytest在不带参数的根目录中运行,它将无法导入example

$ pytest
ImportError while importing test module '/Users/gregwilson/example/tests/test_hello.py'.
Hint: make sure your test modules/packages …
Run Code Online (Sandbox Code Playgroud)

python import

6
推荐指数
0
解决办法
241
查看次数

更改 LaTeX 描述环境的悬挂缩进

我正在memoir为一本书使用文档类。它在这样的description环境中格式化项目:

THE TERM has a long definition that may run
      on for quite some time.
Run Code Online (Sandbox Code Playgroud)

我想在定义新环境的情况下将所有description环境的悬挂缩进减少到 2em (这样我就不必修改我组装成一个整体的任何文件)。我可以在序言中添加哪些命令,或者我可以使用哪些命令来执行此操作?所需的输出是:.tex\renewcommand

THE TERM has a long definition that may run
  on for quite some time.
Run Code Online (Sandbox Code Playgroud)

latex

1
推荐指数
1
解决办法
4303
查看次数