На хабре вышла серия постов с переводом книги Kingpin, читать которую с экрана ноутбука мне совершенно неудобно и единственным логичным решением стал перевод книги в PDF и ePub, для чтения на планшете.
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».
В книге показывается путь от подростка-гика, до матерого киберпахана, а также некоторые методы работы спецслужб по поимке хакеров и кардеров.
Если вы здесь только чтобы скачать готовые переводы, то не буду утомлять техническими деталями которые пойдут в следующем разделе и сразу публикую ссылки.
TL;DR ⭐ kingpin.epub ⭐ kingpin.pdf ⭐
Технические подробности сборки
Задавшись идеей конвертации статей с переводом в PDF я перенес текст каждой главы в отдельные markdown файлы. После этого внес уточнения из комментариев к постам. А завершающим этапом прогнал эти файлы через Яндекс.Спеллер для исправления грубых орфографических ошибок.
После этого имея материал для работы сел и написал скрипт на питоне, собирающий из набора файлов единый PDF.
Для этого все .md
файлы конвертируем в соответствующие им html
страницы.
CHAPTERS = sorted([os.path.join(APP_PATH, f) for f in glob(CHAPTERS_PATH)])
md = Markdown(output_format="html5")
for chapter in CHAPTERS:
html = md.reset().convert(open(chapter, 'r').read().decode('utf-8'))
outhtml = TEMPLATE % html
filename = os.path.splitext(os.path.basename(chapter))[0] + '.html'
filepath = os.path.join(HTML_PATH, filename)
with open(filepath, 'w') as f:
f.write(outhtml.encode('utf-8'))
На втором этапе установив в систему wkhtmltopdf и библиотеку python-pdfkit собираем единый PDF.
htmlfiles = [os.path.join(HTML_PATH, f) for f in os.listdir(HTML_PATH) if f.endswith('.html')]
options = {
'page-size': 'B5', # A5
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': 'UTF-8',
'no-outline': None,
'no-background': None,
}
pdfkit.from_file(htmlfiles, 'Kingpin.pdf', options=options, cover='static/cover.html')
Готовый скрипт для сборки PDF и ePub, инструкции, а также все исходные файлы я выложил на свой Github.