Markdoc — это легковесная система вики с использованием базового Markdown. Она была спроектирована таким образом, чтобы позволять вам создавать и управлять вики как можно быстрее и проще.
Потенциальные случаи использования Markdoc включают, но не ограничиваются следующими:
Техническая документация/руководства Markdoc может использоваться для написания и отображения технической документации и справочных материалов для программного обеспечения. Такая документация обычно будет отделена от автоматически генерируемых справочных данных API и может давать более высокий уровень представления по сравнению с одними только справочными данными API. Это может быть использовано для клиентской документации для веб-приложений или приложений для рабочих столов, а также для документации для разработчиков для платформ.
Внутренние проектные вики Вики Markdoc состоят из одного простого текстового файла на страницу. Объединив вики с системой управления версиями (DVCS, такие как Mercurial или [Git][]), вы можете сотрудничать с несколькими другими людьми. Используйте DVCS для отслеживания, совместной работы и слияния изменений друг с другом, а также просмотра истории вики.
[Git]: http://git-scm.com/* Генерация статических сайтов Markdoc преобразует вики в чистый HTML и медиафайлы. Это позволяет управлять блогом, личным сайтом или коллекцией страниц в вики Markdoc, возможно, с кастомными CSS стилями, и публиковать отрендеренный HTML на сайте. Markdoc не требует установки на хостинговый сервер, поскольку полученный HTML полностью автономен.## Крутые возможности
Установка Google Analytics отслеживания одной строкой конфигурации.
Базовые вики, которые просто выглядят как директории с текстовыми файлами в формате Markdown.
Встроенный HTTP-сервер и WSGI-приложение для обслуживания скомпилированной вики одним командой.
Непрерывное построение (через rsync
) позволяет серверу продолжать работу во время компиляции MarkDoc-вики. Просто обновите ваш браузер, чтобы увидеть изменения.
Добавьте Pygments-powered синтаксическое выделение цветом к своей вики MarkDoc с помощью одного конфигурационного параметра.
MarkDoc является общедоступным программным обеспечением. Он всегда будет полностью бесплатным для использования, и вы можете распространять его (в части или целиком) в любых условиях (открытое ПО, проприетарное или иное) без указания источника или препятствий.
Минимальные требования для запуска утилиты MarkDoc следующие: * Python версии 2.4 или выше (версия 2.5 и выше рекомендована)
Убедитесь, что rsync установлен на вашей операционной системе и находится в системном пути, иначе при выполнении команды markdoc build будет возникать ошибка, такая как:
raise child_exception
OSError: [Errno 2] Нет такого файла или каталога
$ pip install https://github.com/azhai/markdoc/tarball/master # ИЛИ
$ pip install https://gitcafe.com/azhai/markdoc/tarball/master # ИЛИ
$ pip install https://git.oschina.net/azhai/markdoc/tarball/master
markdoc init my-wiki
cd my-wiki/
vim wiki/somefile.md
# ... пишите некоторую документацию ...
markdoc build
markdoc serve
# .. открыть http://localhost:8008/ в браузере ...
Дата: 2012-05-15
Заголовок: Python вычисление MD5 файла
Категория: Python
Тэги: python, md5, хеш
Ниже приведены две функции: одна для вычисления MD5 строки, другая для вычисления MD5 указанного файла
```python
# -*- кодировка: utf-8 -*-
import hashlib
``````python
def md5hex(word):
"""Алгоритм шифрования MD5, возвращает 32-битное 16-ричное значение в нижнем регистре"""
if isinstance(word, unicode):
word = word.encode("utf-8")
elif not isinstance(word, str):
word = str(word)
m = hashlib.md5()
m.update(word)
return m.hexdigest()
def md5sum(fname):
"""Вычисляет MD5-сумму файла"""
def read_chunks(fh):
fh.seek(0)
chunk = fh.read(8096)
while chunk:
yield chunk
chunk = fh.read(8096)
else: # Наконец перемещаем указатель в начало файла
fh.seek(0)
m = hashlib.md5()
if isinstance(fname, basestring) \
and os.path.exists(fname):
with open(fname, "rb") as fh:
for chunk in read_chunks(fh):
m.update(chunk)
# Буферизованный передачи файлов или уже открытый поток файла
elif fname.__class__.__name__ in ["StringIO", "StringO"] \
or isinstance(fname, file):
for chunk in read_chunks(fname):
m.update(chunk)
else:
return ""
return m.hexdigest()
```### Пример конфигурационного файла markdoc.yaml
# Метаданные
wiki-name: "Блог xxx"
wiki-author: "xxx"
#google-analytics: UA-XXXXXX-X
## Директории
hide-prefix: ""
wiki-dir: "content"
static-dir: "static"
html-dir: "html"
template-dir: ""
temp-dir: ".tmp"
cvs-exclude: true
## Сборка
document-extensions: [.md, .rst]
generate-listing: всегда
listing-filename: "default.html"
use-default-static: true
use-default-templates: true
disqus-sitename: "xxx-disqus"
## Отображение
markdown:
safe-mode: false
output-format: xhtml1
extensions: [meta, codehilite, def_list, sane_lists, toc]
extension-configs:
codehilite:
css_class: codehilite
force_linenos: true
## Сервер
server:
bind: '192.168.0.1'
port: 8008
num_threads: 10
#name: 'myblog.github.com'
request_queue_size: 5
timeout: 10
## Лицензия
Это свободное программное обеспечение, выпущенное в общественное достояние.
Каждый может копировать, модифицировать, публиковать, использовать, компилировать, продавать или распространять это программное обеспечение как в виде исходного кода, так и в виде скомпилированной двоичной формы для любой цели, будь то коммерческой или некоммерческой, любыми средствами.
В юрисдикциях, признающих авторское право, авторы этого программного обеспечения отказываются от всех прав на него в пользу общественного достояния. Мы делаем этот отказ ради блага всего общества и в ущерб нашим потомкам. Наше намерение состоит в том, чтобы данный отказ был явным актом отказа от всех настоящих и будущих прав на это программное обеспечение в соответствии с законом об авторском праве.ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЯ, ГАРАНТИЯМИ ТОРГОВЛЕНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ НЕ БУДУТ ОТВЕЧАТЬ ЗА ЛЮБЫЕ ПРЕТЕНДИРОВАННЫЕ УЩЕРБЫ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЯ, ПРЕТЕНДИРОВАННЫЕ УЩЕРБЫ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТИ, ВОЗНИКШИЕ ИЗ ДЕЙСТВИЯ КОНТРАКТА, ДЕЛИКТА ИЛИ ИНЫХ ДЕЙСТВИЙ, ВОЗНИКШИХ ИЗ, В СВЯЗИ С ИЛИ В СВЯЗИ С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
Для получения более подробной информации обратитесь к <http://unlicense.org/>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )