digitalmars.D.announce - D doc To Devhelp
- bioinfornatics (177/177) Dec 08 2011 Dear,
- bioinfornatics (5/14) Dec 09 2011 I have put this tool into github:
Dear, In first i do not know where put this message i hope here is good. I have wrote a little python script for add D doc into devhelp why python, because it is a little script and like is not need to be build for use it. it is most easier for add this little tools to your build system. why not a new target devehelp into your makefile :-) ------------------------------------------------- import getopt import os import sys from subprocess import Popen, PIPE, STDOUT from BeautifulSoup import BeautifulSoup, Tag project_name =3D "" project_source_dir =3D "" author =3D "" install_dir =3D "" name =3D "" keywords_content =3D "" index_html =3D "" devhelp_file =3D "" keywords_content =3D "" d_compiler =3D "ldc2" d_files =3D () keywords =3D [] def basename( file_path , with_extention =3D False): result =3D "" if( with_extention ): result =3D "".join( file_path.split( os.sep )[-1] ) else: result =3D ".".join( file_path.split( os.sep )[-1].split( "." )[0:-1] ) return result =20 def finder( directory =3D "/", extentions =3D [] ): file_list =3D [] for dirname, dirnames, filenames in os.walk( directory ): for filename in filenames: f =3D os.path.join(dirname, filename) if f.split('.')[-1] in extentions: file_list.append( f ) return tuple( file_list ) def usage(): print "-h --help Display this message" print "-a --name=3D<author name> Set author name" print "-c --compiler=3D<compiler name> Set compiler default: ldc2" print "-n --name=3D<project name> Set project name" print "-s --source=3D<source dir> Set source dir to scan" print "-p --prefix=3D<prefix dir> Set prefix path for to write devhelp book default: /usr/share" def main(argv): global author global d_compiler global project_name global project_source_dir global prefix try: opts, args =3D getopt.getopt(argv, "ha:c:n:s:p", ["help", "--author=3D", "--compiler=3D", "name=3D", "source=3D", "prefix=3D"]) except getopt.GetoptError: usage() sys.exit(2) =20 =20 for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-a", "--author=3D"): author =3D arg elif opt in ("-c", "--compiler=3D"): d_compiler =3D arg elif opt in ("-n", "--name=3D"): project_name =3D arg elif opt in ("-s", "--source=3D"): project_source_dir =3D arg elif opt in ("-p", "--prefix=3D"): prefix =3D arg =20 def keyword_maker( doc_html_file ): global keywords html_content =3D [] with open( doc_html_file, "r" ) as in_html: html_content =3D in_html.read() mySoup =3D BeautifulSoup( html_content ) dts =3D mySoup.findAll( "dt" ) for dt in dts: type_name =3D "" decl_name =3D "" if( dt.big is not None ): if( isinstance( dt.big.contents[0], Tag) ): type_name =3D dt.big.contents[0].text else: type_name =3D dt.big.contents[0] if( dt.big.u is not None ): decl_name =3D dt.big.u.text link_html =3D basename( doc_html_file, with_extention =3D True ) global burk if __name__ =3D=3D "__main__": main( sys.argv[1:] ) install_dir =3D os.path.join( prefix, "devhelp/books/", project_name ) index_html =3D os.path.join( install_dir, "index.html" ) devhelp_file=3D os.path.join( install_dir, project_name + ".devhelp2" ) d_files =3D finder( "/usr/include/d/std", ["d", "di"] ) if( not os.path.exists( install_dir ) ): os.mkdir( install_dir ) with open( index_html, "w" ) as out_html, open( devhelp_file, "w" ) as out_xml: out_html.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n") out_html.write("\t<html>\n") out_html.write("\t<meta http-equiv=3D\"Content-Type\" content=3D \"text/html; charset=3DUTF-8\">\n\n") out_html.write("\t\t<title>"+ project_name +"</title>\n") out_html.write("\t</meta>\n") out_html.write("\t<body>\n") out_xml.write("<?xml version=3D\"1.0\" encoding=3D\"utf-8\" standalone=3D\"no\"?>\n") out_xml.write("<!DOCTYPE book PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">\n") out_xml.write("<book xmlns=3D\"http://www.devhelp.net/book\" title=3D\"%s\" link=3D\"index.html\" author=3D\"%s\" name=3D\"%s\" version= =3D\"2\" language=3D\"d\">\n" % (project_name, author, project_name) ) out_xml.write("\t<chapters>\n") index.html <project>.devhelp2 file for f in d_files: try: dc =3D Popen( [ d_compiler, "-o-", f, "-Dd=3D" + install_di= r ], stdout=3DPIPE, stderr=3DSTDOUT ) dc.communicate() =20 except Exception as e: print e and without extention html_file =3D os.path.join( install_dir, base_name +".html" ) if( os.path.exists( html_file ) ): out_html.write("\t\t<a href=3D\"" + base_name +".html\">" + base_name + "</a><br>\n") out_xml.write("\t\t<sub name=3D\""+ base_name +"\" link=3D \""+ base_name + ".html\"/>\n") keyword_maker( html_file ) out_html.write("\t</body>\n") out_html.write("</html>\n") out_xml.write("\t</chapters>\n") out_xml.write("\t<functions>\n") for item in keywords: out_xml.write("\t\t<keyword type=3D\"%s\" name=3D\"%s\" link=3D= \"% s\"/>\n" % ( item[0], item[1], item[2] ) ) out_xml.write("\t</functions>\n") out_xml.write("</book>\n") =20
Dec 08 2011
Le vendredi 09 d=C3=A9cembre 2011 =C3=A0 05:31 +0100, bioinfornatics a =C3= =A9crit :Dear, In first i do not know where put this message i hope here is good. I have wrote a little python script for add D doc into devhelp why python, because it is a little script and like is not need to be build for use it. it is most easier for add this little tools to your build system. why not a new target devehelp into your makefile :-) =20 =20 -------------------------------------------------I have put this tool into github: https://github.com/bioinfornatics/DdocToDevhelp Example of use: DdocToDevhelp -n Phobos -s /usr/include/d/std/
Dec 09 2011