我想使用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自动接收更改.)
我们最近开始使用Selenium测试基于Django的应用程序.测试在Linux上运行正常,但有些在Mac OS X上失败.我们在两种情况下都使用Firefox作为浏览器,我们花了一段时间(并且运气好)才发现这两种情况之间的重要区别在于FF作为前台应用程序或后台窗口运行.这是Linux上发生的事情:
但是,当我们在Mac OS X上运行时,步骤#4不会发生,除非我们在测试运行时手动前置Firefox窗口---如果我们将它留在后台(默认情况下它出现的地方),浏览器中的Javascript没有获得焦点更改事件,因此错误消息永远不会插入到页面的DOM中,因此Selenium超时等待它,测试失败.
我们可以在测试运行时强制Selenium将浏览器置于前台,这样我们的Javascript就能获得我们想要的事件吗?如果是这样,怎么样?
我正在尝试使用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 <</p>
<p>Non-breaking space </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 <</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) 我用来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) 假设存储库有一个./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) 我正在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)