Как подсказывает @marcanuy, я бы положил ваши файлы в каталог _pages
. Обязательно добавьте include: ['_pages']
к настройкам вашей сборки в _config.yml
. Теперь вы можете просматривать страницы с помощью {% for page in site.pages %}
. Это все еще оставляет проблему получения всех заголовков. Когда я создавал TOC определенного типа в jekyll, я нашел этот фрагмент кода очень полезным. Вы можете использовать элементы оттуда.
Базовая версия того, что вы хотите, будет следующей. Вам придется настроить это на основе вашей настройки, но она должна делать то, что вы хотите. Вы можете поместить это в отдельный HTML-документ в _includes
или поместить прямо в вашу панель навигации.
{% for page in site.pages %}
{% assign headers = page.content | split: '' | first }}>{% endcapture %}
{% assign title = _string[0] | replace: _hAttrToStrip, '' %}
{% assign _idstring = header | split: 'id="' %}
{% assign _idstring = _idstring[1] | split: '"' %}
{% assign html_id = _idstring[0] %}
-
{{title}}
{% endfor %}
{% endfor %}
Надеюсь, это поможет!
Я бы сказал, что это возможно, играя с TarInfo и TarFile.addfile, передавая StringIO как файловый объект.
Очень грубо, но работает
import tarfile
import StringIO
tar = tarfile.TarFile("test.tar","w")
string = StringIO.StringIO()
string.write("hello")
string.seek(0)
info = tarfile.TarInfo(name="foo")
info.size=len(string.buf)
tar.addfile(tarinfo=info, fileobj=string)
tar.close()
Как указал Стефано, вы можете использовать TarFile.addfile
и StringIO
.
import tarfile, StringIO
data = 'hello, world!'
tarinfo = tarfile.TarInfo('test.txt')
tarinfo.size = len(data)
tar = tarfile.open('test.tar', 'a')
tar.addfile(tarinfo, StringIO.StringIO(data))
tar.close()
Возможно, вы захотите заполнить и другие поля tarinfo
(например, mtime
, uname
и т. Д.).
Вы должны использовать объекты TarInfo и метод addfile вместо обычного Добавить метод:
from StringIO import StringIO
from tarfile import open, TarInfo
s = "Hello World!"
ti = TarInfo("test.txt")
ti.size = len(s)
tf = open("testtar.tar", "w")
tf.addfile(ti, StringIO(s))