Changes in / [940d034:f8b59e3] in sasview
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
recdd132 re9df8a5 49 49 /docs/sphinx-docs/source/user/perspectives 50 50 /docs/sphinx-docs/source/user/sasgui 51 /docs/sphinx-docs/katex*.zip 51 52 52 53 -
docs/sphinx-docs/Makefile
r1d5f5c2 r3194371 16 16 PAPEROPT_a4 = -D latex_paper_size=a4 17 17 PAPEROPT_letter = -D latex_paper_size=letter 18 ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 18 ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source-temp 19 19 # the i18n builder cannot share the environment and doctrees with the others 20 20 I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source … … 53 53 rm -rf source/dev/api 54 54 sphinx-apidoc -o source/dev/api -d 8 ../../src 55 55 56 56 html: stubs 57 57 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html -
docs/sphinx-docs/build_sphinx.py
r01f1e17 rf4771596 324 324 print("!!!!NO MODEL DOCS WILL BE BUILT!!!!") 325 325 326 327 326 def retrieve_bumps_docs(): 328 327 """ … … 360 359 SASVIEW_BUILD]) 361 360 361 def build_pdf(): 362 """ 363 Runs sphinx-build for pdf. Reads in all .rst files and spits out the final html. 364 """ 365 print("=== Build PDF Docs from ReST Files ===") 366 subprocess.call(["sphinx-build", 367 "-b", "latex", # Builder name. TODO: accept as arg to setup.py. 368 "-d", os.path.join(SPHINX_BUILD, "doctrees"), 369 SPHINX_SOURCE, 370 os.path.join(SPHINX_BUILD, "latex")]) 371 372 LATEXDIR = os.path.join(SPHINX_BUILD, "latex") 373 def pdflatex(): 374 subprocess.call(["pdflatex", "Sasview.tex"], cwd=LATEXDIR) 375 pdflatex() 376 pdflatex() 377 pdflatex() 378 subprocess.call(["makeindex", "-s", "python.ist", "Sasview.idx"], cwd=LATEXDIR) 379 pdflatex() 380 pdflatex() 381 382 print("=== Copy PDF to HTML Directory ===") 383 source = os.path.join(LATEXDIR, "Sasview.pdf") 384 target = os.path.join(SASVIEW_DOCS, "Sasview.pdf") 385 shutil.copyfile(source, target) 386 362 387 def build(): 363 388 """ 364 389 Runs sphinx-build. Reads in all .rst files and spits out the final html. 365 390 """ 366 print("=== Build HTML Docs from Re stFiles ===")391 print("=== Build HTML Docs from ReST Files ===") 367 392 subprocess.call(["sphinx-build", 368 393 "-b", "html", # Builder name. TODO: accept as arg to setup.py. … … 375 400 copy_tree(html, SASVIEW_DOCS) 376 401 377 #We are building latex doc on linux only 378 if "linux" in platform: 379 print "=== Build Latex Docs from Rest Files ===" 380 subprocess.call(["sphinx-build", 381 "-b", "latex", # Builder name. TODO: accept as arg to setup.py. 382 "-d", os.path.join(SPHINX_BUILD, "doctrees"), 383 SPHINX_SOURCE, 384 os.path.join(SPHINX_BUILD, "latex")]) 385 386 print "=== Copy Latex Docs to Build Directory ===" 387 latex = os.path.join(SPHINX_BUILD, "latex") 388 copy_tree(latex, SASVIEW_DOCS) 402 def fetch_katex(version, destination="_static"): 403 from zipfile import ZipFile 404 import urllib2 405 url = "https://github.com/Khan/KaTeX/releases/download/%s/katex.zip" % version 406 cache_path = "katex_%s.zip" % version 407 if not os.path.exists(cache_path): 408 try: 409 fd_in = urllib2.urlopen(url) 410 with open(cache_path, "wb") as fd_out: 411 fd_out.write(fd_in.read()) 412 finally: 413 fd_in.close() 414 with ZipFile(cache_path) as zip: 415 zip.extractall(destination) 416 417 def convert_katex(): 418 print("=== Preprocess HTML, converting latex to html ===") 419 subprocess.call(["node", "convertKaTex.js", SASVIEW_DOCS]) 420 421 def convert_mathjax(): 422 print("=== Preprocess HTML, converting latex to html ===") 423 subprocess.call(["node", "convertMathJax.js", SASVIEW_DOCS]) 424 425 def fetch_mathjax(): 426 subprocess.call(["npm", "install", "mathjax-node-page"]) 427 # TODO: copy fonts from node_modules/mathjax/fonts/HTML-CSS/Tex into static 389 428 390 429 def rebuild(): … … 393 432 retrieve_user_docs() 394 433 retrieve_bumps_docs() 434 #fetch_katex(version=KATEX_VERSION, destination=KATEX_PARENT) 435 #fetch_mathjax() 395 436 apidoc() 396 437 build() 438 #build_pdf() 439 #convert_katex() 440 #convert_mathjax() 397 441 398 442 print("=== Done ===") -
docs/sphinx-docs/source/conf.py
r959eb01 rf4771596 36 36 'sphinx.ext.coverage', 37 37 'sphinx.ext.mathjax', 38 #'mathjax', # replacement mathjax that allows a list of paths 38 39 'dollarmath', 39 40 'sphinx.ext.viewcode'] 41 42 mathjax_path = ( 43 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?' 44 'config=TeX-MML-AM_CHTML') 45 46 # For katex uncomment the following 47 """ 48 #STATIC_PATH = '../../_static/' 49 STATIC_PATH = '' 50 mathjax_path = [ 51 STATIC_PATH + 'katex/katex.min.js', 52 STATIC_PATH + 'katex/contrib/auto-render.min.js', 53 STATIC_PATH + 'rendermath.js' 54 ] 55 mathjax_css = STATIC_PATH + 'katex/katex.min.css' 56 """ 57 40 58 41 59 # Add any paths that contain templates here, relative to this directory. … … 201 219 # -- Options for LaTeX output -------------------------------------------------- 202 220 221 # TODO: seems like angstroms is defined twice. 203 222 LATEX_PREAMBLE=r""" 223 \usepackage[utf8]{inputenc} % Allow unicode symbols in text 224 \usepackage{underscore} % Allow underscore outside math mode 225 \usepackage[T1]{fontenc} % Use underscore character from font 226 \newcommand{\lt}{<} % HTML needs \lt rather than < 227 \newcommand{\gt}{>} % HTML needs \gt rather than > 204 228 \renewcommand{\AA}{\text{\r{A}}} % Allow \AA in math mode 205 \usepackage[utf8]{inputenc} % Allow unicode symbols in text 206 \usepackage[T1]{fontenc} % Taking care of underscores 207 \catcode`\_=12 % Moving underscore to category 12 208 \newcommand{\lt}{<} %lower than symbol handling 209 \newcommand{\gt}{>} %greater than symbol handling 229 \DeclareUnicodeCharacter {212B} {\AA} % Angstrom 210 230 \DeclareUnicodeCharacter {00B7} {\ensuremath{\cdot}} % cdot 211 231 \DeclareUnicodeCharacter {00B0} {\ensuremath{^\circ}} % degrees 212 \DeclareUnicodeCharacter {212B} {\AA} % Angstrom213 232 """ 214 233 latex_elements = { -
src/sas/sasgui/guiframe/documentation_window.py
r959eb01 r35ddae5 16 16 import os 17 17 import logging 18 import wx19 18 import webbrowser 20 19 import urllib 21 20 import sys 22 21 22 import wx 23 try: 24 import wx.html2 as html 25 WX_SUPPORTS_HTML2 = True 26 except ImportError: 27 WX_SUPPORTS_HTML2 = False 28 29 from .gui_manager import get_app_dir 30 23 31 logger = logging.getLogger(__name__) 24 32 25 33 SPHINX_DOC_ENV = "SASVIEW_DOC_PATH" 26 WX_SUPPORTS_HTML2 = True27 try:28 import wx.html2 as html29 except:30 WX_SUPPORTS_HTML2 = False31 34 35 THREAD_STARTED = False 36 def start_documentation_server(doc_root, port): 37 import thread 38 global THREAD_STARTED 39 if not THREAD_STARTED: 40 thread.start_new_thread(_documentation_server, (doc_root, port)) 41 THREAD_STARTED = True 32 42 33 from gui_manager import get_app_dir 43 def _documentation_server(doc_root, port): 44 from SimpleHTTPServer import SimpleHTTPRequestHandler 45 from SocketServer import TCPServer 34 46 47 os.chdir(doc_root) 48 httpd = TCPServer(("127.0.0.1", port), SimpleHTTPRequestHandler, bind_and_activate=False) 49 httpd.allow_reuse_address = True 50 try: 51 httpd.server_bind() 52 httpd.server_activate() 53 httpd.serve_forever() 54 finally: 55 httpd.server_close() 35 56 36 57 class DocumentationWindow(wx.Frame): … … 70 91 #Note added June 21, 2015 PDB 71 92 file_path = os.path.join(docs_path, path) 72 url = "file:///" + urllib.quote(file_path, r'/\:')+ url_instruction 73 74 if not os.path.exists(file_path): 93 if path.startswith('http'): 94 url = path 95 elif not os.path.exists(file_path): 96 url = "index.html" 75 97 logger.error("Could not find Sphinx documentation at %s \ 76 98 -- has it been built?", file_path) 77 elif WX_SUPPORTS_HTML2: 99 elif False: 100 start_documentation_server(docs_path, port=7999) 101 url = "http://127.0.0.1:7999/" + path.replace('\\', '/') + url_instruction 102 else: 103 url = "file:///" + urllib.quote(file_path, r'/\:')+ url_instruction 104 105 logger.info("showing url " + url) 106 if WX_SUPPORTS_HTML2: 78 107 # Complete HTML/CSS support! 79 108 self.view = html.WebView.New(self) 80 109 self.view.LoadURL(url) 110 self.Bind(html.EVT_WEBVIEW_ERROR, self.OnError, self.view) 81 111 self.Show() 82 112 else: … … 88 118 webbrowser.open_new_tab(url) 89 119 120 def OnError(self, evt): 121 logger.error("%d: %s", evt.GetInt(), evt.GetString()) 122 90 123 def main(): 91 124 """ 92 125 main loop function if running alone for testing. 93 126 """ 127 url = "index.html" if len(sys.argv) <= 1 else sys.argv[1] 94 128 app = wx.App() 95 DocumentationWindow(None, -1, "index.html", "", "Documentation",)129 DocumentationWindow(None, -1, url, "", "Documentation",) 96 130 app.MainLoop() 97 131
Note: See TracChangeset
for help on using the changeset viewer.