Форум сайта python.su
253
Уважаемые знатоки питона как принято делать в программе на питоне помощь для пользователей программы (не программистов а пользователей). Насколько тут может оказаться полезным Сфинкс?
Я так понимаю что должен быть какой-нибудь кроссплатформенный подход (html,pdf ?)
Офлайн
0
пример для консольных приложений при –help выводиться хелп реализацию смотри ниже
def argvParse(self, argvlist):
# "parse" sys.argv function
for i in range(len(argvlist)):
if argvlist[i] == '-l':
if int(argvlist[i + 1]) > 131070:
print "Password length is too big, using default length..."
else:
self.passLength = int(argvlist[i + 1])
if argvlist[i] == '-s':
self.useSpecials = 1
if argvlist[i] == '--spcount':
self.specialsCount = int(argvlist[i + 1])
if argvlist[i] == '--os':
newSpecials = argvlist[i + 1]
newSpecials = newSpecials.split(',')
for i in range(len(newSpecials)):
if len(newSpecials[i]) > 1:
newSpecials[i] = newSpecials[i][0]
self.specials = newSpecials
print "New list of special symbols:\n"
print newSpecials
if argvlist[i] == '--help':
print """ Password generator
usage:
\t./key_gen.py [-l <number>] [-s] [-os <symbol1>,<symbol2>...] [--spcount <number>] [--help]
parameters:
\t-l <number> - length of the password, symbols
\t-s - use special symbols, such as !@#$%^&*()_+=-?. Warning, you must use the predefined in program types of symbols!
\t This option is turned off by default.
\t--os <symbol1>,... - set your own list of special symbols.
\t\tFor ex., ./key_gen.py -s -os !,@,$
\t--spcount <number> - count of special symbols in password, no more than <number>.
\t--help - this help"""
quit()
Отредактировано (Ноя. 23, 2010 14:25:51)
Офлайн
0
если тебе такой вариант подходит
Офлайн
253
Это неплохой вариант, я и сам таким пользуюсь (моим друзьям программистам этого достаточно). Но конечный пользователь обычно хочет что-то красивое. Те GUI у которого из разных мест можно вызвать чтото типа броузера на нужной странице или pdf на нужной закладке. Хороший пример winhelp. Меня интересуют именно такие технологии. Но поднимать для каждого пользователя веб сервер не хочется.
Офлайн
14
sphinx, html в качестве вывода. Сервер не нужен, поиск делается на javascript.
Эти же исходники выгоняются в pdf, если нужно печатать.
Офлайн
0
В книге
Гифт Н.,Джонс Д.
Python в системном администрировании UNIX и Linux - Пер. с англ. - СПб.:
Символ-Плюс, 2009. - 512 с, ил.
есть раздел 4. Создание документации и отчетов
там описан метод сбора информации и вывод ее в формате HTML можно на этой базе написать генератор хелпа в формате HTML не уверен что это то что нужно но почитай полезно
Офлайн
253
А как открывание разделов в html сфинкса будет выглядеть со стороны питона?
нужен файл a.html позиция в файле с символьным именем bbb
webbrowser.open(?????)
а что написать?
Я правильно вообще понимаю методику использования?
Офлайн
14
У вас же винда, верно?
Делайте выход в формате htmlhelp - это стандартная опция.
А потом скормите этот chm файл стандартному вызову HtmlHelp (заверните его через ctypes или еще как).
Офлайн
253
Спасибо всем за исчерпывающие ответы.
p.s.
htmlhelp конечно хорошо, но я уже много наелся с изменением форматов у микрософта.
разрешите маленький оффтопик
У меня вообще-то был док который я хотел использовать - pdf генеренный из исходников на LaTeX
1 можно замучить его акробатом Acrobat.exe /A “nameddest=MyLabel=OpenActions” “main.pdf”
MyLabel - места помеченные латехом (правда есть некоторые нюансы в простановке мест ссылок в самом латехе)
2 webbrowser.open(“file:///C:/main.html#tth_sEc1.4”)
отличная штука в этом случае - НО этот пакет откусывает #xeid_dyn1 - команду позиционирования в файле
Это только для протокола file.
3 IEXPLORE.EXE file:///C:/main.html#tth_sEc1.4 прекрасно пускается - но куда он позиционируется - одному богу известно. есть еще возможность:
import win32com.client
import win32api
ie = win32com.client.Dispatch( "InternetExplorer.Application" )
ie.Visible = 1
ie.FullScreen = 1
ie.Navigate("file:///C:/main.html#tth_sEc1.4")
while ie.Busy == True:
win32api.Sleep(1000)
Отредактировано (Ноя. 23, 2010 20:54:32)
Офлайн