From 01e19e4227dbc2d31d47d5022846d7805db12c04 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Mon, 30 May 2016 22:01:15 -0700 Subject: [PATCH] start of gae site --- docs/app.yaml | 95 +++++++++++++++++++++++++++++++++++++ docs/conf.py | 2 +- docs/images/logo-block.ico | Bin 0 -> 19548 bytes docs/index.yaml | 11 +++++ docs/simpegdocs.py | 90 +++++++++++++++++++++++++++++++++++ 5 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 docs/app.yaml create mode 100644 docs/images/logo-block.ico create mode 100644 docs/index.yaml create mode 100644 docs/simpegdocs.py diff --git a/docs/app.yaml b/docs/app.yaml new file mode 100644 index 00000000..f37fb743 --- /dev/null +++ b/docs/app.yaml @@ -0,0 +1,95 @@ +# application: simpegdocs +# version: 1 +runtime: python27 +api_version: 1 +threadsafe: yes + +handlers: + +# favicon +- url: /images/logo-block\.ico + static_files: /images/logo-block.ico + upload: /images/logo-block\.ico + +# all css +- url: /(.*\.css) + mime_type: text/css + static_files: _build/html/\1 + upload: _build/html/(.*\.css) + +# webfonts +- url: /(.*\.(eot|svg|ttf|woff|woff2|otf)) + static_files: _build/html/\1 + upload: _build/html/(.*\.(eot|svg|ttf|woff|woff2|otf)) + +# javascript +- url: /(.*\.js) + mime_type: text/javascript + static_files: _build/html/\1 + upload: _build/html/(.*\.js) + +# plain text source +- url: /(.*\.txt) + mime_type: text/plain + static_files: _build/html/\1 + upload: _build/html/(.*\.txt) + +# images +- url: /_images/(.*\.(gif|png|jpg|ico)) + static_files: _build/html/_images/\1 + upload: _build/html/_images/(.*\.(gif|png|jpg|ico)) + +# redirect en/latest traffic +- url: /en/latest/(.*\.html) + script: simpegdocs.app + +# raw html +- url: /(.*\.html) + mime_type: text/html + static_files: _build/html/\1 + upload: _build/html/(.*\.html) + +# serve index files +- url: /(.+)/ + static_files: _build/html/\1/index.html + upload: _build/html/(.+)/index.html + +- url: /(.+) + static_files: _build/html/\1/index.html + upload: _build/html/(.+)/index.html + +- url: / + static_files: _build/html/index.html + upload: _build/html/index.html + +- url: .* + script: simpegdocs.app + +# Recommended file skipping declaration from the GAE tutorials +skip_files: + - ^(.*/)?app\.yaml + - ^(.*/)?app\.yml + - ^(.*/)?#.*# + - ^(.*/)?.*~ + - ^(.*/)?.*\.py[co] + - ^(.*/)?.*/RCS/.* + - ^(.*/)?\..* + - ^(.*/)?tests$ + - ^(.*/)?test$ + - ^test/(.*/)? + - ^COPYING.LESSER + - ^README\..* + - \.gitignore + - ^\.git/.* + - \.*\.lint$ + - ^(.*/)?.*\.doctree$ + +libraries: +- name: webapp2 + version: "2.5.2" +- name: PIL + version: "1.1.7" +- name: numpy + version: "latest" +- name: jinja2 + version: "latest" diff --git a/docs/conf.py b/docs/conf.py index 2db771bf..bbc3cb6b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -124,7 +124,7 @@ except Exception, e: # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +html_favicon = './images/logo-block.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/images/logo-block.ico b/docs/images/logo-block.ico new file mode 100644 index 0000000000000000000000000000000000000000..91b6a1f16f39b0b7eaede6f42c3a055e47992af4 GIT binary patch literal 19548 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

Pmjq^CXs6^OfKBSnFHfd zELVIC@tI)AUTHruKL4r15ya}f8+7sF#q+PrzD0T`0Tj6oRj0m2_!gn_pYoz*cxQqV z-;>j=xLqy_SetcjJhFK8`~|hH%T>&mw7f`tycXqMYUug#T%^xdRNtoA?;&bEuwsm< zx}AIiwKCoX-P?h7=%_mPcxcz*@`y9#biq1fYn_Ss9@tQ6)u;W2y&A`ag=0r{DSgc=*S$S1+vL&Ip0vl zKd82-=pD6V>kH4mVa4TBH*sUNwEuRU(Ntg&m}K`BI$5~dVzF14qdaUwPHJT6QyFXA znCfR{k(Gh=hDI3xdfY;LI8NAR;65q_sO+;%$UX~)?0iXnz>b^u`@OeGu!6i+6-Vis z14G}nm)KCXHNBoB2M2jcfkdfe$;*EyxSX$H*72*aKtrLE5^52jzOv|N+6-u{>CE&M zl{X_twSg%g;&N0^Zip;A8$l|C_?d2lPd2W@3a;{U2YyUZDO$Us`%0+WvZBewn^x-s zWUafE%dZ`&f!N!aT5@@_4$*Wu^3NZfe{Fd>Y_vJVcqX^*RghBH?>O;m6Zdh|?` z$spE?ji0$or9eoC=wmyhGHp+pG#DYKV7QMq5yi57EN1H3O)1IJU;2rSZHv+=;ueeU znh5btsVvXjn_Euu?>GSbk;qn+5*obcy_ncZfFgw}tyaM*W z2ysI~Ba(%$K>R9Nk3LVa69eg9cVpW>*<=QI$W14~Z>_Y^b!IsR#M$ELd5gT(42#8+ zPg4-jK;|O<7P&raPl3we6*_j8)2g-o^P-hScx)X#Li8JvS&6b#c$mT`WI?^{*YwG} zsl577aXlCrl%(QPRE$~cmHQ*z=j|bW+7zT%pD10C$}W%!G_u-%^{xylMu+hd=xT;5 zwiL;>h$%k5(T95>eSY9Nm|M+DY)?jum+*Jf+W8wSlKXD&9haQXt4AvCZ&&G^gxe-B z7QULE`=FO*cz*g50D!4xpUK0vCCmnL`>D|`vO{ZlBe}sauL7o*xcQ}TP57lR=k(tn zL!{txRMS3LoEj`M$We4m6qM`#+Ge*UHnF#kmq>-SO#6GNFAz9$>o9r4tLcX`{A_d5 z-5j=7cbxC}>$CRk`RgS$vD^7YZ)w)V2!`)@#qT0|M=bQnls!Te=wZiY2Z|Sb} zhT5xk$%cg;<1KUr&EzM#I(#))uts9yr-&WAAmZ^~}_wxwOVe$D4kgt^;>GktR5ZDNkVlBQ*O&#rjYGi0lDU>>LL?sazlAiH$b_?wpv+=fwPRHeSAOH12nwLG7)PzbP; zlWv(hm-$rJ`-|P*Z+EI&yHA}7ESyEdfaQ<7n>fUdQpVJ$xw}5@i~}|%Cts}IXuq=b zhiTZk?VF6&{LpdZ)jKBw*lz@pVc zd)*tckTiCYz^iq@#?QW~cMq*vT#>cM&j%RXZ{)+vxHYW%JZ73o-aYr5&w8)Xg)<#R zK@qlJwzhy8)cXokzb`PdUH~lk%I?-*@%a;F4GhcZh_}*FM?muT3RAZ?yt)c>-@}yl zrNULRA!%+?uL`D~zM!-W7*glB*VIW&eDy6OWc@VX7j8Z~6<6g*hk;CPIIziT!JLYY z^>=HVWzPdWA23riG|WBZ`k}5Fz$x(^=Ih>wg!uKY^83zTX6f4-yXe%LhF6stf%i>y>FMHQtCIZ7iFoai_V4svo?P7a<7Raz8^X zvP@>;rcVO#`&&ZIr$@bT4SC7AY?{3CBB17iq!i$K_c^=HuZaBcb?=-bc^WgKYI`OC zoxR}t#H(*FyfT^d%W_SY*u7=fj-D?CZrcSp%CApH-F2$;;Z#_$U2rkrmhrX@ z4d4|2FVih^q(aN?v|rg(5FPECq`m-Xhr+g9!l8G$R>!^f&Whc&H`H7AMVA&6cxRn_ z^xYmU+yk^`Ul`Q0Nh1pall@+rIqiyH)#=W%t?@d8q+{en5X5IC}Bwx%ZXZ zzj4pgJ33kNf7`-9two%`thB>;&l{Pry%z!l1bsm38{C}F