From 8448b5588efaf5305502eb7fb8921c8fc8762d89 Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Wed, 17 Jul 2024 20:01:40 -0500 Subject: [PATCH] New site with MD, SCSS --- .gitignore | 1 + .jekyll-metadata | Bin 16300 -> 0 bytes Gemfile.lock | 16 +- README.md | 58 +- _assets/media/media-readme.txt | 2 - _assets/sass/css-readme.txt | 26 - _assets/sass/screen-ie.css | 21 - _config.yaml | 20 - _config.yml | 41 + _layouts/default.html | 129 +- {removed => _removed}/css/1218-CSS/1218.css | 102 +- .../css/1218-CSS/demo-files}/1218-grid.png | Bin .../css/1218-CSS/demo-files/styles.css | 12 +- {removed => _removed}/css/1218-CSS/demo.html | 192 +- {removed => _removed}/css/1378-CSS/1378.css | 102 +- .../css/1378-CSS/demo-files/1378-grid.png | Bin .../css/1378-CSS/demo-files/styles.css | 12 +- {removed => _removed}/css/1378-CSS/demo.html | 192 +- {removed => _removed}/css/300-CSS/300.css | 86 +- .../css/300-CSS/demo-files/300-grid.png | Bin .../css/300-CSS/demo-files/styles.css | 12 +- {removed => _removed}/css/300-CSS/demo.html | 114 +- {removed => _removed}/css/748-CSS/748.css | 92 +- .../css/748-CSS/demo-files/748-grid.png | Bin .../css/748-CSS/demo-files/styles.css | 12 +- {removed => _removed}/css/748-CSS/demo.html | 154 +- {removed => _removed}/css/978-CSS/978.css | 94 +- .../css/978-CSS/demo-files/978-grid.png | Bin .../css/978-CSS/demo-files/styles.css | 12 +- {removed => _removed}/css/978-CSS/demo.html | 212 +- {removed => _removed}/grids/README.md | 54 +- {removed => _removed}/grids/grid.css | 124 +- .../grids}/img/10px-baseline.png | Bin .../grids}/img/12px-baseline.png | Bin .../grids}/img/14px-baseline.png | Bin .../grids}/img/16px-baseline.png | Bin .../grids}/img/18px-baseline.png | Bin .../grids}/img/20px-baseline.png | Bin .../grids}/img/22px-baseline.png | Bin .../grids}/img/24px-baseline.png | Bin .../grids/img/960px-10-60-10-unit.png | Bin .../grids/img/978px-15-54-15-unit.png | Bin {removed => _removed}/grids/index.htm | 224 +- {removed => _removed}/grids/reset.css | 16 +- {removed => _removed}/grids/screen.css | 126 +- about.html | 200 +- .../_sass}/img/10px-baseline.png | Bin .../_sass/img}/1218-grid.png | Bin .../sass => assets/_sass}/img/1248-grid.png | Bin .../_sass}/img/12px-baseline.png | Bin .../sass => assets/_sass}/img/1378-grid.png | Bin .../_sass}/img/14px-baseline.png | Bin .../_sass}/img/16px-baseline.png | Bin .../_sass}/img/18px-baseline.png | Bin .../_sass}/img/20px-baseline.png | Bin .../_sass}/img/22px-baseline.png | Bin .../_sass}/img/24px-baseline.png | Bin .../sass => assets/_sass}/img/300-grid.png | Bin .../sass => assets/_sass}/img/748-grid.png | Bin .../sass => assets/_sass}/img/978-grid.png | Bin .../sass => assets/_sass}/img/gfx-readme.txt | 4 +- .../screen.scss => assets/_sass/main.scss | 2282 ++++++++--------- {_assets/sass => assets/_sass}/print.scss | 110 +- {_assets/sass => assets/_sass}/reset.scss | 33 +- assets/_sass/screen.scss | 726 ++++++ .../media => assets}/audio/audio-readme.txt | 2 +- assets/css/reset.scss | 5 + assets/css/screen.scss | 5 + .../img/2005q3DCAAnewsletter_Page_1.png | Bin .../img/201101GCFANewsletter_Page_01.png | Bin {_assets/media => assets}/img/DCAA_Logo.png | Bin {_assets/media => assets}/img/GCFA_Logo.png | Bin .../media => assets}/img/Logo Large Scan.jpg | Bin {_assets/media => assets}/img/agrigento.jpg | Bin {_assets/media => assets}/img/img-readme.txt | 4 +- {_assets/media => assets}/img/mount_etna.jpg | Bin {_assets => assets}/js/jquery/jquery.js | 30 +- {_assets => assets}/js/js-readme.txt | 10 +- {_assets => assets}/js/respond.min.js | 6 +- {_assets => assets}/js/site.js | 26 +- .../js/swfobject/expressInstall.swf | Bin {_assets => assets}/js/swfobject/index.html | 56 +- .../js/swfobject/index_dynamic.html | 34 +- .../js/swfobject/src/expressInstall.as | 140 +- .../js/swfobject/src/expressInstall.fla | Bin .../js/swfobject/src/swfobject.js | 1554 +++++------ {_assets => assets}/js/swfobject/swfobject.js | 6 +- {_assets => assets}/js/swfobject/test.swf | Bin {_assets/media => assets}/pdf/pdf-readme.txt | 2 +- {_assets/media => assets}/swf/swf-readme.txt | 2 +- .../media => assets}/video/video-readme.txt | 2 +- cssp.htm | 238 +- cv.html | 176 -- cv.md | 124 + grids.htm | 224 +- index.md | 115 +- nonprofit.html | 210 +- portfolio.md | 39 + printdesign.html | 95 - prototype-with-comments.htm | 616 ++--- prototype.htm | 204 +- removed/css/300-CSS/demo-files/.DS_Store | Bin 6148 -> 0 bytes resume.html | 1417 ---------- resume.md | 1391 ++++++++++ resumewriting.html | 1186 ++++----- 105 files changed, 7027 insertions(+), 6505 deletions(-) delete mode 100644 .jekyll-metadata delete mode 100644 _assets/media/media-readme.txt delete mode 100644 _assets/sass/css-readme.txt delete mode 100644 _assets/sass/screen-ie.css delete mode 100644 _config.yaml rename {removed => _removed}/css/1218-CSS/1218.css (97%) rename {_assets/sass/img => _removed/css/1218-CSS/demo-files}/1218-grid.png (100%) rename {removed => _removed}/css/1218-CSS/demo-files/styles.css (99%) rename {removed => _removed}/css/1218-CSS/demo.html (96%) rename {removed => _removed}/css/1378-CSS/1378.css (97%) rename {removed => _removed}/css/1378-CSS/demo-files/1378-grid.png (100%) rename {removed => _removed}/css/1378-CSS/demo-files/styles.css (99%) rename {removed => _removed}/css/1378-CSS/demo.html (96%) rename {removed => _removed}/css/300-CSS/300.css (97%) rename {removed => _removed}/css/300-CSS/demo-files/300-grid.png (100%) rename {removed => _removed}/css/300-CSS/demo-files/styles.css (99%) rename {removed => _removed}/css/300-CSS/demo.html (96%) rename {removed => _removed}/css/748-CSS/748.css (97%) rename {removed => _removed}/css/748-CSS/demo-files/748-grid.png (100%) rename {removed => _removed}/css/748-CSS/demo-files/styles.css (99%) rename {removed => _removed}/css/748-CSS/demo.html (96%) rename {removed => _removed}/css/978-CSS/978.css (97%) rename {removed => _removed}/css/978-CSS/demo-files/978-grid.png (100%) rename {removed => _removed}/css/978-CSS/demo-files/styles.css (99%) rename {removed => _removed}/css/978-CSS/demo.html (96%) rename {removed => _removed}/grids/README.md (97%) rename {removed => _removed}/grids/grid.css (95%) rename {_assets/sass => _removed/grids}/img/10px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/12px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/14px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/16px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/18px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/20px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/22px-baseline.png (100%) rename {_assets/sass => _removed/grids}/img/24px-baseline.png (100%) rename {removed => _removed}/grids/img/960px-10-60-10-unit.png (100%) rename {removed => _removed}/grids/img/978px-15-54-15-unit.png (100%) rename {removed => _removed}/grids/index.htm (97%) rename {removed => _removed}/grids/reset.css (99%) rename {removed => _removed}/grids/screen.css (95%) rename {removed/grids => assets/_sass}/img/10px-baseline.png (100%) rename {removed/css/1218-CSS/demo-files => assets/_sass/img}/1218-grid.png (100%) rename {_assets/sass => assets/_sass}/img/1248-grid.png (100%) rename {removed/grids => assets/_sass}/img/12px-baseline.png (100%) rename {_assets/sass => assets/_sass}/img/1378-grid.png (100%) rename {removed/grids => assets/_sass}/img/14px-baseline.png (100%) rename {removed/grids => assets/_sass}/img/16px-baseline.png (100%) rename {removed/grids => assets/_sass}/img/18px-baseline.png (100%) rename {removed/grids => assets/_sass}/img/20px-baseline.png (100%) rename {removed/grids => assets/_sass}/img/22px-baseline.png (100%) rename {removed/grids => assets/_sass}/img/24px-baseline.png (100%) rename {_assets/sass => assets/_sass}/img/300-grid.png (100%) rename {_assets/sass => assets/_sass}/img/748-grid.png (100%) rename {_assets/sass => assets/_sass}/img/978-grid.png (100%) rename {_assets/sass => assets/_sass}/img/gfx-readme.txt (98%) rename _assets/sass/screen.scss => assets/_sass/main.scss (94%) rename {_assets/sass => assets/_sass}/print.scss (95%) rename {_assets/sass => assets/_sass}/reset.scss (97%) create mode 100644 assets/_sass/screen.scss rename {_assets/media => assets}/audio/audio-readme.txt (98%) create mode 100644 assets/css/reset.scss create mode 100644 assets/css/screen.scss rename {_assets/media => assets}/img/2005q3DCAAnewsletter_Page_1.png (100%) rename {_assets/media => assets}/img/201101GCFANewsletter_Page_01.png (100%) rename {_assets/media => assets}/img/DCAA_Logo.png (100%) rename {_assets/media => assets}/img/GCFA_Logo.png (100%) rename {_assets/media => assets}/img/Logo Large Scan.jpg (100%) rename {_assets/media => assets}/img/agrigento.jpg (100%) rename {_assets/media => assets}/img/img-readme.txt (98%) rename {_assets/media => assets}/img/mount_etna.jpg (100%) rename {_assets => assets}/js/jquery/jquery.js (99%) rename {_assets => assets}/js/js-readme.txt (97%) rename {_assets => assets}/js/respond.min.js (99%) rename {_assets => assets}/js/site.js (96%) rename {_assets => assets}/js/swfobject/expressInstall.swf (100%) rename {_assets => assets}/js/swfobject/index.html (97%) rename {_assets => assets}/js/swfobject/index_dynamic.html (97%) rename {_assets => assets}/js/swfobject/src/expressInstall.as (97%) rename {_assets => assets}/js/swfobject/src/expressInstall.fla (100%) rename {_assets => assets}/js/swfobject/src/swfobject.js (97%) rename {_assets => assets}/js/swfobject/swfobject.js (99%) rename {_assets => assets}/js/swfobject/test.swf (100%) rename {_assets/media => assets}/pdf/pdf-readme.txt (98%) rename {_assets/media => assets}/swf/swf-readme.txt (98%) rename {_assets/media => assets}/video/video-readme.txt (98%) delete mode 100644 cv.html create mode 100644 cv.md create mode 100644 portfolio.md delete mode 100644 printdesign.html delete mode 100644 removed/css/300-CSS/demo-files/.DS_Store delete mode 100644 resume.html create mode 100644 resume.md diff --git a/.gitignore b/.gitignore index 7391967..fb16e3a 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ Thumbs.db _site Gemfile.lock +.jekyll-metadat* diff --git a/.jekyll-metadata b/.jekyll-metadata deleted file mode 100644 index c8128ce4528f828d369b1e0f170448aa54211c80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16300 zcmcgzU2Ggz6;52(_@{=n{Dmqat`(|C&Hg#Doq9`R*LI?X*hy=*v^cOG@7~?aYIkNj zGwUBBkOSl)RgwAtLKJ8!g$L9k(WVYnX{bP`QUp>#C2dvp1t~&;s4Wsd4+&A=p1F6{ zvom+@b?;s0A?wXP?Dw5>zH{z5XYPKa^Tg&8`TqUsy5Xi#`iOxhY<&TxC(L4_jttjH zPoRaPwpm3*{N6&gV;Wj5>F6#>7Z+0XQeq@AIeTJDzQ4Qf>UEUJZJNzDM!IJ4``(>* z>{z+uhW0`CNUxz8X2EFG^^OZ2^nWE}=!ubDr!imGi?-RHuts{!a@j$ye&hL)fV%|Co$9x=}()5CZIz z7Q}OpQ^bEa5s$VYZh!+PWh}5v+bx?l-3(jtdF;1`zIE-Rp5Jbw75B+lVIv3UO4x+E zunF((*k*esTd7CwCL23>ms{wRI8vuHf0%=2$`PDg;ya8n=kq< z>GP?L4iHKuWlGs>CVOc7;MjDCQijdx-C@EhT-U%~KB@Z^Nr8t7hs}z~^vdsYl);nD zIyV}2iz)+fNIZjQ4^ReuxA=is2{ZVzq7T6QzQdYbL47kt%}7-0hr}>P6 z*;OZ9eXN1(W%?&o^?IJ>`3|M&4_j%pLnmV}^NuQVaCnYi4*?aqVJF~2)iRAzs;*mMm+iA9ar&;5l z4A*#-exM~73`*si7EwgCk8o=3kb?RD)pk0mDHc|Gh`Bt{HZHzs<#;^UE*>s&TxO=u z>||uB$`NFh%4z(MSBzb|&6qgaP#$=gUs<3z@o;mnc{H38Dn0swUP5NtdsU?&HCh)P z$AXH~l6Wu<{c(wmCLN(-5Ip`TWMo#>7WATNr0`1%C{)2~oz&Z$K354eJaT}geOK>$ z(;NIaYYVAa6St8ihw0qGSEzI2#$`PD9g=abVH%cgmi3r<^9#M_$c!86;)6k*mBGcJ zuIVmYD7mP+$CE{~?(Ni=#y@w2k_ZJkNaCOp2`22Xmk4a@NfHG8k_;%>i7eW>s~Z&n zhCSO_a{&VT+ta@!UgxCJs0=pVOELlP`kq)`c^N><)(y9W9KB+&k)PT{W6LpBs$ANr zZZ4ow8rQ3Ib|AYiIX*Mvy-DFuA|5|~me2@o5rV-k%h=CkQNq-cWxa+dGf4Z$6c0Ms z{}Oc$C+ns9D-kWnUB>K~p8EOg;($pt;IW+8!a4aCcU~L;t1!;wiho&_5tcj36fwd<;+gvi|{rss1&I) zEU4H$nT%Iq@L#4*dhewqIH@ePr(}@`$OL%Bs^q1gh)GF}lmb#5m3;bTLMi^xRZeO@ zRNy7HVov=@L_%3F!+S|#!GD>0`O#Gx8cyS-tQVg|Krir7tX@95Z&mR0L0K&fN*uL} z&k;hrnL}AGK}u}BtlF#5(xxntd+6DN|1u@=+aFTnH&P-#iGW1lqgaW&@f%8tGaD(3 zgh7fUl4F+`(NR`KkONy4S1(gnaK;v?U9?|aAqY-7{sCq6zmx!{MLMF=)e-`p7FbPn zXU};u#&GbDspG>_!)(S{O3rHzs_6z|_R>QsLMHxTX&03N5tXxt&PU5dyU_QF(C?nx zK=dII`l%(V3C_INE?4Xmk-7B=N+$HQDA*aciOhgdpx-!qlLR^-6zD&Gb+f1l)mnIi zhKSQQE1f5#hCvOvX9!}H%_N61@Y*o&QjE3!d;RZ}5~r-Si_$P?I6Ige+zYR=ROK`8!(c}iiU#5f=nH5zz6rFS2DA~?kqI`2z zj4m~}`<}0qmw1QmEf*<1M|@HbTmj#EB*^Tc&c01yIn_@ZHokfM+T~>QT$j2q2j-C; zF{vY_iP!&0P2@DHQqS?%pqaR{A4>_ZEF6}}WznTf=-u371U$Z;OFdf#Xl~DV?9o)4 z0*j%re&TLjf{nKsA{)mg-OIXr35b7b(2#OU)Wfov{%x}GB|v=nDKZx5rzsK6X(=^* zwp{;f4xiEM5_f)|65#Zz>YfnX$%K$xd72X86tFqvkT5PnhVEtpm;b#c<|4J*YKaPi zOZZYIkU8*IN`})^N^RsLWMc1Q0*zl>7t@gH>so2}$rHYc2^98iO_M^*$y%wgu7v{g z7AC;Iy@SGY&L63}pmkKzwe|df2v~gP0A<0c7*ZQF!UD$m5A!o3p!Bno8Q}pbbz>q( z=|lXC2sq_Fo{gSgQk8U#MEuW&0P)QIS>Xt*NFe@KLqK3= 2.0.2, < 6.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) colorator (1.1.0) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.3) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.16.3) + ffi (1.17.0) forwardable-extended (2.6.0) google-protobuf (3.25.3-x86_64-linux) http_parser.rb (0.8.0) @@ -46,14 +46,14 @@ GEM mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (5.0.5) + public_suffix (6.0.0) rake (13.2.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.2.8) - strscan (>= 3.0.9) - rouge (4.2.1) + rexml (3.3.1) + strscan + rouge (4.3.0) safe_yaml (1.0.5) sass-embedded (1.69.5) google-protobuf (~> 3.23) diff --git a/README.md b/README.md index 332248d..ff90ff5 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,30 @@ -Project 2 Learnings -------------------- - -Content Matters -=============== - -I had a difficulty figuring out what to say about myself in a succinct and interesting way. A lot of my work was done for companies with non-disclosure agreements, so that was out. This covered a lot of my web work, so I had to go back to print design materials. I found myself looking to draft text that was short and more like blog entries, which seemed a poor approach to the needs. I went back to some other documents I drafted for non-profits. - -Structured Documents -==================== - -The HTML was really straightforward for me. I knew how to assemble these relatively simple documents. That was not where I found myself struggling... - -Style -===== - -...It was the stylesheets. This was not easy at the start and got more difficult as I continued. I wanted to demonstrate the ability to handle mobile first structure, transformative design, decent color model, good typography and responsive design; all without it looking like garbage. That was more than I anticipated. - -I researched a lot of other personal sites for how they implemented their liquid layout. I was stumped at the beginning because I goofed up the margins and padding for the page. I needed to understand how the various base sizes (300px, 748px, etc.) needed to be coded. I finally got to the point I used the appropriate full width for a page div, then each child div with appropriate left/right padding was the appropriate size. The color bands were in the appropriate places. - -Looking at mobile first, I wanted to make sure that the single column basic design looked clear and had navigation that was navigable with "one eye, one thumb". That resulted in a bottom aligned buttons. That was easy. Having the navigation reset itself when the width changed was challenging. Further, I wanted to make sure this navigation was "button like" at a mobile size. This put me in the position of needing to use display:table and its design components so the buttons would have vertically centered text. (Yup, that's what it took.) This resulted in other issues between Chrome and other browsers. Chrome does not display css tables with the proper use of margins and padding (the navigations buttons showed up in a second box using the same margins as its parent div). To fix this, I needed to have the navigation div have no margins or padding left and right and used an auto margin to achieve the look browser to browser. The navigation moved using absolute positioning with relative ease at the larger widths. - -A lot of the issues I had were with color and fonts. I had to read up a bit on color theory. I had to get a TypeKit account. These got fixed within a few hours to the point I was happy with the start. - -With the larger sizes, I had to figure out multiple columns with appropriate number of columns and widths. It took a bit of revisions to get the right configuration, some of which may be somewhat kludged with the number of blocks I used (3) versus what I may eventually need to accomplish with more "articles". - -Version Control -=============== - +Project 2 Learnings +------------------- + +Content Matters +=============== + +I had a difficulty figuring out what to say about myself in a succinct and interesting way. A lot of my work was done for companies with non-disclosure agreements, so that was out. This covered a lot of my web work, so I had to go back to print design materials. I found myself looking to draft text that was short and more like blog entries, which seemed a poor approach to the needs. I went back to some other documents I drafted for non-profits. + +Structured Documents +==================== + +The HTML was really straightforward for me. I knew how to assemble these relatively simple documents. That was not where I found myself struggling... + +Style +===== + +...It was the stylesheets. This was not easy at the start and got more difficult as I continued. I wanted to demonstrate the ability to handle mobile first structure, transformative design, decent color model, good typography and responsive design; all without it looking like garbage. That was more than I anticipated. + +I researched a lot of other personal sites for how they implemented their liquid layout. I was stumped at the beginning because I goofed up the margins and padding for the page. I needed to understand how the various base sizes (300px, 748px, etc.) needed to be coded. I finally got to the point I used the appropriate full width for a page div, then each child div with appropriate left/right padding was the appropriate size. The color bands were in the appropriate places. + +Looking at mobile first, I wanted to make sure that the single column basic design looked clear and had navigation that was navigable with "one eye, one thumb". That resulted in a bottom aligned buttons. That was easy. Having the navigation reset itself when the width changed was challenging. Further, I wanted to make sure this navigation was "button like" at a mobile size. This put me in the position of needing to use display:table and its design components so the buttons would have vertically centered text. (Yup, that's what it took.) This resulted in other issues between Chrome and other browsers. Chrome does not display css tables with the proper use of margins and padding (the navigations buttons showed up in a second box using the same margins as its parent div). To fix this, I needed to have the navigation div have no margins or padding left and right and used an auto margin to achieve the look browser to browser. The navigation moved using absolute positioning with relative ease at the larger widths. + +A lot of the issues I had were with color and fonts. I had to read up a bit on color theory. I had to get a TypeKit account. These got fixed within a few hours to the point I was happy with the start. + +With the larger sizes, I had to figure out multiple columns with appropriate number of columns and widths. It took a bit of revisions to get the right configuration, some of which may be somewhat kludged with the number of blocks I used (3) versus what I may eventually need to accomplish with more "articles". + +Version Control +=============== + At the beginning, I was working as I always had: more revisions before versions. As I started to push versions, I started doing so more frequently as it became more "normal". (Also, understanding how the Windows GUI to Git worked helped.) I think I have more that I need to learn as to how to more efficiently use Git; I admit that I am still gunshy in using it more regularly. \ No newline at end of file diff --git a/_assets/media/media-readme.txt b/_assets/media/media-readme.txt deleted file mode 100644 index 31fa2e4..0000000 --- a/_assets/media/media-readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -The media folder should contain all of the meda files--audio, images, PDFs, Flash movies, video--for -a site or project. Each media type has its own sub-folder to help keep things organized. diff --git a/_assets/sass/css-readme.txt b/_assets/sass/css-readme.txt deleted file mode 100644 index 0d29761..0000000 --- a/_assets/sass/css-readme.txt +++ /dev/null @@ -1,26 +0,0 @@ -The css/ folder is where you store all of the .css files for your website. - -There are currently four CSS files in this folder; one you probably do not need to edit: - ---reset.css: - CSS created by Yahoo! that effectively removes default web browser CSS - -And three that you will need to edit to design your site: - ---screen.css: - Where you write all of the styles for screen views of your pages (includes some base styles to - make up for the complete loss of styling from reset.css; also has a bunch of relationship - selectors that match basic structures in the RPK) - ---screen-ie.css: - A conditional CSS file where you write any style fixes, if necessary, for Internet Explorer 7 or - earlier. - ---print.css - Where you write styles that determine how your pages will appear when they are printed. - -Any additional CSS files that you add (such as an iphone.css file for iPhones) should also appear in -the css folder. - -The gfx/ sub-folder is where you should save all of your design images for your site (see gfx/gfx-readme.txt). - diff --git a/_assets/sass/screen-ie.css b/_assets/sass/screen-ie.css deleted file mode 100644 index 4c48bce..0000000 --- a/_assets/sass/screen-ie.css +++ /dev/null @@ -1,21 +0,0 @@ -/*IE 7 Styles*/ - -/* - If you are having problems with IE 7 styling your pages, - you can try writing corrective styles in this file. - - While IE 6 can be a problem, too, it's just not worth - trying to fix issues for that browser, simply because - the rest of the Web is moving on and IE 6 users are - probably getting used to sites looking horrific in - their browsers. - - That said, many fixes that you might need for IE 7 - generally tend to help out IE 6, too. - - For more information about serving specific styles to - different IE browsers, see - http://www.quirksmode.org/css/condcom.html -*/ - -/*Write IE 7 style fixes below...*/ diff --git a/_config.yaml b/_config.yaml deleted file mode 100644 index c9d2de7..0000000 --- a/_config.yaml +++ /dev/null @@ -1,20 +0,0 @@ -lsi: false -safe: true -source: . -destination: ./_site -layouts_dir: _layouts -exclude: ["Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"] -incremental: false -highlighter: rouge -gist: - noscript: false -markdown: kramdown -kramdown: - math_engine: mathjax - syntax_highlighter: rouge - input: GFM - parse_block_html: true -livereload: true -sass: - sass_dir: _assets/sass - style: compressed diff --git a/_config.yml b/_config.yml index fbfb4f4..5af3cbb 100644 --- a/_config.yml +++ b/_config.yml @@ -1,3 +1,4 @@ +<<<<<<< Updated upstream lsi: false safe: true source: ./ @@ -11,3 +12,43 @@ kramdown: syntax_highlighter: rouge domain: tonysansone.me # if you want to force HTTPS, specify the domain without the http at the start, e.g. example.com url: https://www.tonysansone.me # the base hostname and protocol for your site, e.g. http://example.com +======= +lsi: false +safe: true +disable_disk_cache: true +profile: true +incremental: true +livereload: true + +source: . +destination: ./_site +layouts_dir: ./_layouts +sass: + sass_dir: ./assets/_sass + +exclude: + - Gemfile + - Gemfile.lock + - .sass-cache/ + - .jekyll-cache/ + - gemfiles/ + - node_modules + - vendor/bundle/ + - vendor/cache/ + - vendor/gems/ + - vendor/ruby/ + + +gist: + noscript: false + +markdown: kramdown +kramdown: + math_engine: mathjax + syntax_highlighter: rouge + input: GFM + parse_block_html: true +highlighter: rouge + + +>>>>>>> Stashed changes diff --git a/_layouts/default.html b/_layouts/default.html index 6e39651..eaf79b3 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,64 +1,65 @@ - - - - - - - - - - - - {{ page.title }} - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- - {{ content }} - -
- - - - - - - - - + + + + + + + + + + + + {{ page.title }} + + + + + + + + + + + + +
+ +

Anthony T. Sansone

+ +
+
Maker. Mentor. Teacher.
+ +
+ +1 312 725 2450 + a.t.sansone@gmail.com +
+
+ + + +
+ +
+ + {{ content }} + +
+ + + + + + + + + diff --git a/removed/css/1218-CSS/1218.css b/_removed/css/1218-CSS/1218.css similarity index 97% rename from removed/css/1218-CSS/1218.css rename to _removed/css/1218-CSS/1218.css index afd421c..5f92751 100644 --- a/removed/css/1218-CSS/1218.css +++ b/_removed/css/1218-CSS/1218.css @@ -1,51 +1,51 @@ -/* - -1218 Grid System CSS Framework -http://978.gs - -Copyright (c) 2011 Brothers Roloff -http://www.brothersroloff.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -div.layout-1218 { width: 1218px; margin: 0px auto; } - -div.row { height: 1%; } -div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } - -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { float: left; margin-left: 30px; } -div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child, div.col13:first-child, div.col14:first-child, div.col15:first-child, div.col16:first-child { margin-left: 0px; } -div.col1 { width: 48px; } -div.col2 { width: 126px; } -div.col3 { width: 204px; } -div.col4 { width: 282px; } -div.col5 { width: 360px; } -div.col6 { width: 438px; } -div.col7 { width: 516px; } -div.col8 { width: 594px; } -div.col9 { width: 672px; } -div.col10 { width: 750px; } -div.col11 { width: 828px; } -div.col12 { width: 906px; } -div.col13 { width: 984px; } -div.col14 { width: 1062px; } -div.col15 { width: 1140px; } -div.col16 { width: 1218px; } +/* + +1218 Grid System CSS Framework +http://978.gs + +Copyright (c) 2011 Brothers Roloff +http://www.brothersroloff.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +div.layout-1218 { width: 1218px; margin: 0px auto; } + +div.row { height: 1%; } +div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } + +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { float: left; margin-left: 30px; } +div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child, div.col13:first-child, div.col14:first-child, div.col15:first-child, div.col16:first-child { margin-left: 0px; } +div.col1 { width: 48px; } +div.col2 { width: 126px; } +div.col3 { width: 204px; } +div.col4 { width: 282px; } +div.col5 { width: 360px; } +div.col6 { width: 438px; } +div.col7 { width: 516px; } +div.col8 { width: 594px; } +div.col9 { width: 672px; } +div.col10 { width: 750px; } +div.col11 { width: 828px; } +div.col12 { width: 906px; } +div.col13 { width: 984px; } +div.col14 { width: 1062px; } +div.col15 { width: 1140px; } +div.col16 { width: 1218px; } diff --git a/_assets/sass/img/1218-grid.png b/_removed/css/1218-CSS/demo-files/1218-grid.png similarity index 100% rename from _assets/sass/img/1218-grid.png rename to _removed/css/1218-CSS/demo-files/1218-grid.png diff --git a/removed/css/1218-CSS/demo-files/styles.css b/_removed/css/1218-CSS/demo-files/styles.css similarity index 99% rename from removed/css/1218-CSS/demo-files/styles.css rename to _removed/css/1218-CSS/demo-files/styles.css index e2e6b32..6fb56de 100644 --- a/removed/css/1218-CSS/demo-files/styles.css +++ b/_removed/css/1218-CSS/demo-files/styles.css @@ -1,7 +1,7 @@ -/* The following styles are to visualize how the demo code works. Do not include this in your code. */ - -body { margin: 0px; padding: 0px; background: #f2e9f2 url(1218-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { background: #e6d5e6; padding: 20px 0px; } -div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } -div.row:first-child { padding-top: 20px; } +/* The following styles are to visualize how the demo code works. Do not include this in your code. */ + +body { margin: 0px; padding: 0px; background: #f2e9f2 url(1218-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { background: #e6d5e6; padding: 20px 0px; } +div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } +div.row:first-child { padding-top: 20px; } div.row:last-child { margin-top: 10px; padding: 20px 0px; background: #e6d5e6; } \ No newline at end of file diff --git a/removed/css/1218-CSS/demo.html b/_removed/css/1218-CSS/demo.html similarity index 96% rename from removed/css/1218-CSS/demo.html rename to _removed/css/1218-CSS/demo.html index 598d62b..9b6e377 100644 --- a/removed/css/1218-CSS/demo.html +++ b/_removed/css/1218-CSS/demo.html @@ -1,96 +1,96 @@ - - - - -1218 Grid System - CSS Framework - - - - - - -
-
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
48px
-
 
-
-
-
126px
-
126px
-
126px
-
126px
-
126px
-
126px
-
126px
-
126px
-
 
-
-
-
282px
-
282px
-
282px
-
282px
-
 
-
-
-
48px
-
1140px
-
 
-
-
-
126px
-
1062px
-
 
-
-
-
204px
-
984px
-
 
-
-
-
282px
-
906px
-
 
-
-
-
360px
-
828px
-
 
-
-
-
438px
-
750px
-
 
-
-
-
516px
-
672px
-
 
-
-
-
594px
-
594px
-
 
-
-
- 1218px -
-
- - - + + + + +1218 Grid System - CSS Framework + + + + + + +
+
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
48px
+
 
+
+
+
126px
+
126px
+
126px
+
126px
+
126px
+
126px
+
126px
+
126px
+
 
+
+
+
282px
+
282px
+
282px
+
282px
+
 
+
+
+
48px
+
1140px
+
 
+
+
+
126px
+
1062px
+
 
+
+
+
204px
+
984px
+
 
+
+
+
282px
+
906px
+
 
+
+
+
360px
+
828px
+
 
+
+
+
438px
+
750px
+
 
+
+
+
516px
+
672px
+
 
+
+
+
594px
+
594px
+
 
+
+
+ 1218px +
+
+ + + diff --git a/removed/css/1378-CSS/1378.css b/_removed/css/1378-CSS/1378.css similarity index 97% rename from removed/css/1378-CSS/1378.css rename to _removed/css/1378-CSS/1378.css index f25dcbc..48e476c 100644 --- a/removed/css/1378-CSS/1378.css +++ b/_removed/css/1378-CSS/1378.css @@ -1,51 +1,51 @@ -/* - -1378 Grid System CSS Framework -http://978.gs - -Copyright (c) 2011 Brothers Roloff -http://www.brothersroloff.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -div.layout-1378 { width: 1378px; margin: 0px auto; } - -div.row { height: 1%; } -div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } - -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { float: left; margin-left: 30px; } -div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child, div.col13:first-child, div.col14:first-child, div.col15:first-child, div.col16:first-child { margin-left: 0px; } -div.col1 { width: 58px; } -div.col2 { width: 146px; } -div.col3 { width: 234px; } -div.col4 { width: 322px; } -div.col5 { width: 410px; } -div.col6 { width: 498px; } -div.col7 { width: 586px; } -div.col8 { width: 674px; } -div.col9 { width: 762px; } -div.col10 { width: 850px; } -div.col11 { width: 938px; } -div.col12 { width: 1026px; } -div.col13 { width: 1114px; } -div.col14 { width: 1202px; } -div.col15 { width: 1290px; } -div.col16 { width: 1378px; } +/* + +1378 Grid System CSS Framework +http://978.gs + +Copyright (c) 2011 Brothers Roloff +http://www.brothersroloff.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +div.layout-1378 { width: 1378px; margin: 0px auto; } + +div.row { height: 1%; } +div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } + +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { float: left; margin-left: 30px; } +div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child, div.col13:first-child, div.col14:first-child, div.col15:first-child, div.col16:first-child { margin-left: 0px; } +div.col1 { width: 58px; } +div.col2 { width: 146px; } +div.col3 { width: 234px; } +div.col4 { width: 322px; } +div.col5 { width: 410px; } +div.col6 { width: 498px; } +div.col7 { width: 586px; } +div.col8 { width: 674px; } +div.col9 { width: 762px; } +div.col10 { width: 850px; } +div.col11 { width: 938px; } +div.col12 { width: 1026px; } +div.col13 { width: 1114px; } +div.col14 { width: 1202px; } +div.col15 { width: 1290px; } +div.col16 { width: 1378px; } diff --git a/removed/css/1378-CSS/demo-files/1378-grid.png b/_removed/css/1378-CSS/demo-files/1378-grid.png similarity index 100% rename from removed/css/1378-CSS/demo-files/1378-grid.png rename to _removed/css/1378-CSS/demo-files/1378-grid.png diff --git a/removed/css/1378-CSS/demo-files/styles.css b/_removed/css/1378-CSS/demo-files/styles.css similarity index 99% rename from removed/css/1378-CSS/demo-files/styles.css rename to _removed/css/1378-CSS/demo-files/styles.css index d2cc007..56a34a6 100644 --- a/removed/css/1378-CSS/demo-files/styles.css +++ b/_removed/css/1378-CSS/demo-files/styles.css @@ -1,7 +1,7 @@ -/* The following styles are to visualize how the demo code works. Do not include this in your code. */ - -body { margin: 0px; padding: 0px; background: #E9EEF7 url(1378-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { background: #abbee0; padding: 20px 0px; } -div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } -div.row:first-child { padding-top: 20px; } +/* The following styles are to visualize how the demo code works. Do not include this in your code. */ + +body { margin: 0px; padding: 0px; background: #E9EEF7 url(1378-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12, div.col13, div.col14, div.col15, div.col16 { background: #abbee0; padding: 20px 0px; } +div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } +div.row:first-child { padding-top: 20px; } div.row:last-child { margin-top: 10px; padding: 20px 0px; background: #abbee0; } \ No newline at end of file diff --git a/removed/css/1378-CSS/demo.html b/_removed/css/1378-CSS/demo.html similarity index 96% rename from removed/css/1378-CSS/demo.html rename to _removed/css/1378-CSS/demo.html index 05851fa..174edec 100644 --- a/removed/css/1378-CSS/demo.html +++ b/_removed/css/1378-CSS/demo.html @@ -1,96 +1,96 @@ - - - - -1378 Grid System - CSS Framework - - - - - - -
-
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
58px
-
 
-
-
-
146px
-
146px
-
146px
-
146px
-
146px
-
146px
-
146px
-
146px
-
 
-
-
-
322px
-
322px
-
322px
-
322px
-
 
-
-
-
58px
-
1290px
-
 
-
-
-
146px
-
1202px
-
 
-
-
-
234px
-
1114px
-
 
-
-
-
322px
-
1026px
-
 
-
-
-
410px
-
938px
-
 
-
-
-
498px
-
850px
-
 
-
-
-
586px
-
762px
-
 
-
-
-
674px
-
674px
-
 
-
-
- 1378px -
-
- - - + + + + +1378 Grid System - CSS Framework + + + + + + +
+
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
58px
+
 
+
+
+
146px
+
146px
+
146px
+
146px
+
146px
+
146px
+
146px
+
146px
+
 
+
+
+
322px
+
322px
+
322px
+
322px
+
 
+
+
+
58px
+
1290px
+
 
+
+
+
146px
+
1202px
+
 
+
+
+
234px
+
1114px
+
 
+
+
+
322px
+
1026px
+
 
+
+
+
410px
+
938px
+
 
+
+
+
498px
+
850px
+
 
+
+
+
586px
+
762px
+
 
+
+
+
674px
+
674px
+
 
+
+
+ 1378px +
+
+ + + diff --git a/removed/css/300-CSS/300.css b/_removed/css/300-CSS/300.css similarity index 97% rename from removed/css/300-CSS/300.css rename to _removed/css/300-CSS/300.css index 25e0041..38c4e41 100644 --- a/removed/css/300-CSS/300.css +++ b/_removed/css/300-CSS/300.css @@ -1,43 +1,43 @@ -/* - -300 Grid System CSS Framework -http://978.gs - -Copyright (c) 2011 Brothers Roloff -http://www.brothersroloff.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -div.layout-300 { width: 300px; margin: 0px auto; } - -div.row { height: 1%; } -div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } - -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8 { float: left; margin-left: 12px; } -div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child { margin-left: 0px; } -div.col1 { width: 27px; } -div.col2 { width: 66px; } -div.col3 { width: 105px; } -div.col4 { width: 144px; } -div.col5 { width: 183px; } -div.col6 { width: 222px; } -div.col7 { width: 261px; } -div.col8 { width: 300px; } +/* + +300 Grid System CSS Framework +http://978.gs + +Copyright (c) 2011 Brothers Roloff +http://www.brothersroloff.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +div.layout-300 { width: 300px; margin: 0px auto; } + +div.row { height: 1%; } +div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } + +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8 { float: left; margin-left: 12px; } +div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child { margin-left: 0px; } +div.col1 { width: 27px; } +div.col2 { width: 66px; } +div.col3 { width: 105px; } +div.col4 { width: 144px; } +div.col5 { width: 183px; } +div.col6 { width: 222px; } +div.col7 { width: 261px; } +div.col8 { width: 300px; } diff --git a/removed/css/300-CSS/demo-files/300-grid.png b/_removed/css/300-CSS/demo-files/300-grid.png similarity index 100% rename from removed/css/300-CSS/demo-files/300-grid.png rename to _removed/css/300-CSS/demo-files/300-grid.png diff --git a/removed/css/300-CSS/demo-files/styles.css b/_removed/css/300-CSS/demo-files/styles.css similarity index 99% rename from removed/css/300-CSS/demo-files/styles.css rename to _removed/css/300-CSS/demo-files/styles.css index 8a454a1..2c0da46 100644 --- a/removed/css/300-CSS/demo-files/styles.css +++ b/_removed/css/300-CSS/demo-files/styles.css @@ -1,7 +1,7 @@ -/* The following styles are to visualize how the demo code works. Do not include this in your code. */ - -body { margin: 0px; padding: 0px; background: #e9f2ee url(300-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #d5e7de; padding: 20px 0px; } -div.row { padding-bottom: 10px; text-align: center; } -div.row:first-child { padding-top: 10px; } +/* The following styles are to visualize how the demo code works. Do not include this in your code. */ + +body { margin: 0px; padding: 0px; background: #e9f2ee url(300-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #d5e7de; padding: 20px 0px; } +div.row { padding-bottom: 10px; text-align: center; } +div.row:first-child { padding-top: 10px; } div.row:last-child { padding: 20px 0px; background: #d5e7de; } \ No newline at end of file diff --git a/removed/css/300-CSS/demo.html b/_removed/css/300-CSS/demo.html similarity index 96% rename from removed/css/300-CSS/demo.html rename to _removed/css/300-CSS/demo.html index c826b8d..3c04a2a 100644 --- a/removed/css/300-CSS/demo.html +++ b/_removed/css/300-CSS/demo.html @@ -1,57 +1,57 @@ - - - - -300 Grid System - CSS Framework - - - - - - -
-
-
27px
-
27px
-
27px
-
27px
-
27px
-
27px
-
27px
-
27px
-
 
-
-
-
66px
-
66px
-
66px
-
66px
-
 
-
-
-
27px
-
261px
-
 
-
-
-
66px
-
222px
-
 
-
-
-
105px
-
183px
-
 
-
-
-
144px
-
144px
-
 
-
-
- 300px -
-
- - - + + + + +300 Grid System - CSS Framework + + + + + + +
+
+
27px
+
27px
+
27px
+
27px
+
27px
+
27px
+
27px
+
27px
+
 
+
+
+
66px
+
66px
+
66px
+
66px
+
 
+
+
+
27px
+
261px
+
 
+
+
+
66px
+
222px
+
 
+
+
+
105px
+
183px
+
 
+
+
+
144px
+
144px
+
 
+
+
+ 300px +
+
+ + + diff --git a/removed/css/748-CSS/748.css b/_removed/css/748-CSS/748.css similarity index 97% rename from removed/css/748-CSS/748.css rename to _removed/css/748-CSS/748.css index 20c2d38..28bae62 100644 --- a/removed/css/748-CSS/748.css +++ b/_removed/css/748-CSS/748.css @@ -1,47 +1,47 @@ -/* - -748 Grid System CSS Framework -http://978.gs - -Copyright (c) 2011 Brothers Roloff -http://www.brothersroloff.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -div.layout-748 { width: 748px; margin: 0px auto; } - -div.row { height: 1%; } -div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } - -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { float: left; margin-left: 20px; } -div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child { margin-left: 0px; } -div.col1 { width: 44px; } -div.col2 { width: 108px; } -div.col3 { width: 172px; } -div.col4 { width: 236px; } -div.col5 { width: 300px; } -div.col6 { width: 364px; } -div.col7 { width: 428px; } -div.col8 { width: 492px; } -div.col9 { width: 556px; } -div.col10 { width: 620px; } -div.col11 { width: 684px; } +/* + +748 Grid System CSS Framework +http://978.gs + +Copyright (c) 2011 Brothers Roloff +http://www.brothersroloff.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +div.layout-748 { width: 748px; margin: 0px auto; } + +div.row { height: 1%; } +div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } + +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { float: left; margin-left: 20px; } +div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child { margin-left: 0px; } +div.col1 { width: 44px; } +div.col2 { width: 108px; } +div.col3 { width: 172px; } +div.col4 { width: 236px; } +div.col5 { width: 300px; } +div.col6 { width: 364px; } +div.col7 { width: 428px; } +div.col8 { width: 492px; } +div.col9 { width: 556px; } +div.col10 { width: 620px; } +div.col11 { width: 684px; } div.col12 { width: 748px; } \ No newline at end of file diff --git a/removed/css/748-CSS/demo-files/748-grid.png b/_removed/css/748-CSS/demo-files/748-grid.png similarity index 100% rename from removed/css/748-CSS/demo-files/748-grid.png rename to _removed/css/748-CSS/demo-files/748-grid.png diff --git a/removed/css/748-CSS/demo-files/styles.css b/_removed/css/748-CSS/demo-files/styles.css similarity index 99% rename from removed/css/748-CSS/demo-files/styles.css rename to _removed/css/748-CSS/demo-files/styles.css index e511e5e..ee215bf 100644 --- a/removed/css/748-CSS/demo-files/styles.css +++ b/_removed/css/748-CSS/demo-files/styles.css @@ -1,7 +1,7 @@ -/* The following styles are to visualize how the demo code works. Do not include this in your code. */ - -body { margin: 0px; padding: 0px; background: #fcf2e7 url(748-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #efc496; padding: 20px 0px; } -div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } -div.row:first-child { padding-top: 20px; } +/* The following styles are to visualize how the demo code works. Do not include this in your code. */ + +body { margin: 0px; padding: 0px; background: #fcf2e7 url(748-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #efc496; padding: 20px 0px; } +div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } +div.row:first-child { padding-top: 20px; } div.row:last-child { margin-top: 10px; padding: 20px 0px; background: #efc496; } \ No newline at end of file diff --git a/removed/css/748-CSS/demo.html b/_removed/css/748-CSS/demo.html similarity index 96% rename from removed/css/748-CSS/demo.html rename to _removed/css/748-CSS/demo.html index 79b17c9..548dc00 100644 --- a/removed/css/748-CSS/demo.html +++ b/_removed/css/748-CSS/demo.html @@ -1,77 +1,77 @@ - - - - -978 Grid System - CSS Framework - - - - - - -
-
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
44px
-
 
-
-
-
172px
-
172px
-
172px
-
172px
-
 
-
-
-
236px
-
236px
-
236px
-
 
-
-
-
44px
-
684px
-
 
-
-
-
108px
-
620px
-
 
-
-
-
172px
-
556px
-
 
-
-
-
236px
-
492px
-
 
-
-
-
390px
-
428px
-
 
-
-
-
364px
-
364px
-
 
-
-
- 748px -
-
- - - + + + + +978 Grid System - CSS Framework + + + + + + +
+
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
44px
+
 
+
+
+
172px
+
172px
+
172px
+
172px
+
 
+
+
+
236px
+
236px
+
236px
+
 
+
+
+
44px
+
684px
+
 
+
+
+
108px
+
620px
+
 
+
+
+
172px
+
556px
+
 
+
+
+
236px
+
492px
+
 
+
+
+
390px
+
428px
+
 
+
+
+
364px
+
364px
+
 
+
+
+ 748px +
+
+ + + diff --git a/removed/css/978-CSS/978.css b/_removed/css/978-CSS/978.css similarity index 97% rename from removed/css/978-CSS/978.css rename to _removed/css/978-CSS/978.css index c16e7de..93eaa77 100644 --- a/removed/css/978-CSS/978.css +++ b/_removed/css/978-CSS/978.css @@ -1,47 +1,47 @@ -/* - -978 Grid System CSS Framework -http://978.gs - -Copyright (c) 2011 Brothers Roloff -http://www.brothersroloff.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -div.layout-978 { width: 978px; margin: 0px auto; } - -div.row { height: 1%; } -div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } - -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { float: left; margin-left: 30px; } -div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child { margin-left: 0px; } -div.col1 { width: 54px; } -div.col2 { width: 138px; } -div.col3 { width: 222px; } -div.col4 { width: 306px; } -div.col5 { width: 390px; } -div.col6 { width: 474px; } -div.col7 { width: 558px; } -div.col8 { width: 642px; } -div.col9 { width: 726px; } -div.col10 { width: 810px; } -div.col11 { width: 894px; } -div.col12 { width: 978px; } +/* + +978 Grid System CSS Framework +http://978.gs + +Copyright (c) 2011 Brothers Roloff +http://www.brothersroloff.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +div.layout-978 { width: 978px; margin: 0px auto; } + +div.row { height: 1%; } +div.row-end { clear: both; font: 1px/1px sans-serif; height: 1px; overflow: hidden; } + +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { float: left; margin-left: 30px; } +div.col1:first-child, div.col2:first-child, div.col3:first-child, div.col4:first-child, div.col5:first-child, div.col6:first-child, div.col7:first-child, div.col8:first-child, div.col9:first-child, div.col10:first-child, div.col11:first-child, div.col12:first-child { margin-left: 0px; } +div.col1 { width: 54px; } +div.col2 { width: 138px; } +div.col3 { width: 222px; } +div.col4 { width: 306px; } +div.col5 { width: 390px; } +div.col6 { width: 474px; } +div.col7 { width: 558px; } +div.col8 { width: 642px; } +div.col9 { width: 726px; } +div.col10 { width: 810px; } +div.col11 { width: 894px; } +div.col12 { width: 978px; } diff --git a/removed/css/978-CSS/demo-files/978-grid.png b/_removed/css/978-CSS/demo-files/978-grid.png similarity index 100% rename from removed/css/978-CSS/demo-files/978-grid.png rename to _removed/css/978-CSS/demo-files/978-grid.png diff --git a/removed/css/978-CSS/demo-files/styles.css b/_removed/css/978-CSS/demo-files/styles.css similarity index 99% rename from removed/css/978-CSS/demo-files/styles.css rename to _removed/css/978-CSS/demo-files/styles.css index 3a3e20a..17d30f0 100644 --- a/removed/css/978-CSS/demo-files/styles.css +++ b/_removed/css/978-CSS/demo-files/styles.css @@ -1,7 +1,7 @@ -/* The following styles are to visualize how the demo code works. Do not include this in your code. */ - -body { margin: 0px; padding: 0px; background: #f3e6ea url(978-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } -div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #e8cfd7; padding: 20px 0px; } -div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } -div.row:first-child { padding-top: 20px; } +/* The following styles are to visualize how the demo code works. Do not include this in your code. */ + +body { margin: 0px; padding: 0px; background: #f3e6ea url(978-grid.png) repeat-y center top;; font: 11px/12px "Lucida Sans Unicode", "Lucida Grande", sans-serif; color: #000; } +div.col1, div.col2, div.col3, div.col4, div.col5, div.col6, div.col7, div.col8, div.col9, div.col10, div.col11, div.col12 { background: #e8cfd7; padding: 20px 0px; } +div.row { padding-top: 10px; padding-bottom: 10px; text-align: center; } +div.row:first-child { padding-top: 20px; } div.row:last-child { margin-top: 10px; padding: 20px 0px; background: #e8cfd7; } \ No newline at end of file diff --git a/removed/css/978-CSS/demo.html b/_removed/css/978-CSS/demo.html similarity index 96% rename from removed/css/978-CSS/demo.html rename to _removed/css/978-CSS/demo.html index 7823213..d250feb 100644 --- a/removed/css/978-CSS/demo.html +++ b/_removed/css/978-CSS/demo.html @@ -1,107 +1,107 @@ - - - - -978 Grid System - CSS Framework - - - - - - -
-
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
54px
-
 
-
-
-
222px
-
222px
-
222px
-
222px
-
 
-
-
-
306px
-
306px
-
306px
-
 
-
-
-
474px
-
474px
-
 
-
-
-
54px
-
894px
-
 
-
-
-
138px
-
810px
-
 
-
-
-
222px
-
726px
-
 
-
-
-
306px
-
642px
-
 
-
-
-
390px
-
558px
-
 
-
-
-
474px
-
474px
-
 
-
-
-
558px
-
390px
-
 
-
-
-
642px
-
306px
-
 
-
-
-
726px
-
222px
-
 
-
-
-
810px
-
138px
-
 
-
-
-
894px
-
54px
-
 
-
-
- 978px -
-
- - + + + + +978 Grid System - CSS Framework + + + + + + +
+
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
54px
+
 
+
+
+
222px
+
222px
+
222px
+
222px
+
 
+
+
+
306px
+
306px
+
306px
+
 
+
+
+
474px
+
474px
+
 
+
+
+
54px
+
894px
+
 
+
+
+
138px
+
810px
+
 
+
+
+
222px
+
726px
+
 
+
+
+
306px
+
642px
+
 
+
+
+
390px
+
558px
+
 
+
+
+
474px
+
474px
+
 
+
+
+
558px
+
390px
+
 
+
+
+
642px
+
306px
+
 
+
+
+
726px
+
222px
+
 
+
+
+
810px
+
138px
+
 
+
+
+
894px
+
54px
+
 
+
+
+ 978px +
+
+ + \ No newline at end of file diff --git a/removed/grids/README.md b/_removed/grids/README.md similarity index 97% rename from removed/grids/README.md rename to _removed/grids/README.md index d2f2e33..369047a 100644 --- a/removed/grids/README.md +++ b/_removed/grids/README.md @@ -1,27 +1,27 @@ -This is a collection of files I’m using to teach grid-based design principles in my Standards-Based Web Design class. - -### 978 Widths and Offsets - - Units Width Offset Abs Offset (+15) - 1 54 84 99 - 2 138 168 183 - 3 222 252 267 - 4 306 336 351 - 5 390 420 435 - 6 474 504 519 - 7 558 588 603 - 8 642 672 687 - 9 726 756 771 - 10 810 840 855 - 11 894 924 939 - 12 978 - - - -### To Do - * Make the baseline grid images translucent - * Make column/unit images for the other 978 sizes - * Rework file/folder structure for easier integration with the RPK - * Add in media queries to work with the 978 break points - -### Various notes to self: - * Created column unit images with Pixelmator; a white/background layer at 20% opacity, and a gray layer (RGB 176,176,176) at 50% opacity. - * Typo grids use colors RGB 148,209,225 and RGB 132,187,201. +This is a collection of files I’m using to teach grid-based design principles in my Standards-Based Web Design class. + +### 978 Widths and Offsets + + Units Width Offset Abs Offset (+15) + 1 54 84 99 + 2 138 168 183 + 3 222 252 267 + 4 306 336 351 + 5 390 420 435 + 6 474 504 519 + 7 558 588 603 + 8 642 672 687 + 9 726 756 771 + 10 810 840 855 + 11 894 924 939 + 12 978 - - + +### To Do + * Make the baseline grid images translucent + * Make column/unit images for the other 978 sizes + * Rework file/folder structure for easier integration with the RPK + * Add in media queries to work with the 978 break points + +### Various notes to self: + * Created column unit images with Pixelmator; a white/background layer at 20% opacity, and a gray layer (RGB 176,176,176) at 50% opacity. + * Typo grids use colors RGB 148,209,225 and RGB 132,187,201. diff --git a/removed/grids/grid.css b/_removed/grids/grid.css similarity index 95% rename from removed/grids/grid.css rename to _removed/grids/grid.css index bd7ee92..b709fa9 100644 --- a/removed/grids/grid.css +++ b/_removed/grids/grid.css @@ -1,63 +1,63 @@ -/* Typographic Grids */ - -.t10 { - line-height: 10px; - font-size: 8px; - background-image: url('img/10px-baseline.png'); -} -.t12 { - line-height: 12px; - font-size: 8px; - background-image: url('img/12px-baseline.png'); -} -.t14 { - line-height: 14px; - font-size: 10px; - background-image: url('img/14px-baseline.png'); -} -.t16 { - line-height: 16px; - font-size: 12px; - background-image: url('img/16px-baseline.png'); -} -.t18 { - line-height: 18px; - font-size: 12px; - background-image: url('img/18px-baseline.png'); -} -.t20 { - line-height: 20px; - font-size: 14px; - background-image: url('img/20px-baseline.png'); -} -.t22 { - line-height: 22px; - font-size: 14px; - background-image: url('img/22px-baseline.png'); -} -.t24 { - line-height: 24px; - font-size: 16px; - background-image: url('img/24px-baseline.png'); -} - -/* Column Grids */ -/* See http://960.gs/ */ -@media screen and (min-width: 1010px) { - .g960 #page { - width: 940px; /*Total width works out to 960*/ - padding: 0px 10px 0px 10px; - background-image: url('img/960px-10-60-10-unit.png'); - } - /* See http://978.gs/ */ - .g978 #page { - width: 978px; /*Total with works out to 1008*/ - padding: 0px 15px 0px 15px; - background-image: url('img/978px-15-54-15-unit.png'); - } -} - -/* Example-specific Styles */ -a { - text-decoration: none; /*Lose underlining on links to make grid easier to see*/ +/* Typographic Grids */ + +.t10 { + line-height: 10px; + font-size: 8px; + background-image: url('img/10px-baseline.png'); +} +.t12 { + line-height: 12px; + font-size: 8px; + background-image: url('img/12px-baseline.png'); +} +.t14 { + line-height: 14px; + font-size: 10px; + background-image: url('img/14px-baseline.png'); +} +.t16 { + line-height: 16px; + font-size: 12px; + background-image: url('img/16px-baseline.png'); +} +.t18 { + line-height: 18px; + font-size: 12px; + background-image: url('img/18px-baseline.png'); +} +.t20 { + line-height: 20px; + font-size: 14px; + background-image: url('img/20px-baseline.png'); +} +.t22 { + line-height: 22px; + font-size: 14px; + background-image: url('img/22px-baseline.png'); +} +.t24 { + line-height: 24px; + font-size: 16px; + background-image: url('img/24px-baseline.png'); +} + +/* Column Grids */ +/* See http://960.gs/ */ +@media screen and (min-width: 1010px) { + .g960 #page { + width: 940px; /*Total width works out to 960*/ + padding: 0px 10px 0px 10px; + background-image: url('img/960px-10-60-10-unit.png'); + } + /* See http://978.gs/ */ + .g978 #page { + width: 978px; /*Total with works out to 1008*/ + padding: 0px 15px 0px 15px; + background-image: url('img/978px-15-54-15-unit.png'); + } +} + +/* Example-specific Styles */ +a { + text-decoration: none; /*Lose underlining on links to make grid easier to see*/ } \ No newline at end of file diff --git a/_assets/sass/img/10px-baseline.png b/_removed/grids/img/10px-baseline.png similarity index 100% rename from _assets/sass/img/10px-baseline.png rename to _removed/grids/img/10px-baseline.png diff --git a/_assets/sass/img/12px-baseline.png b/_removed/grids/img/12px-baseline.png similarity index 100% rename from _assets/sass/img/12px-baseline.png rename to _removed/grids/img/12px-baseline.png diff --git a/_assets/sass/img/14px-baseline.png b/_removed/grids/img/14px-baseline.png similarity index 100% rename from _assets/sass/img/14px-baseline.png rename to _removed/grids/img/14px-baseline.png diff --git a/_assets/sass/img/16px-baseline.png b/_removed/grids/img/16px-baseline.png similarity index 100% rename from _assets/sass/img/16px-baseline.png rename to _removed/grids/img/16px-baseline.png diff --git a/_assets/sass/img/18px-baseline.png b/_removed/grids/img/18px-baseline.png similarity index 100% rename from _assets/sass/img/18px-baseline.png rename to _removed/grids/img/18px-baseline.png diff --git a/_assets/sass/img/20px-baseline.png b/_removed/grids/img/20px-baseline.png similarity index 100% rename from _assets/sass/img/20px-baseline.png rename to _removed/grids/img/20px-baseline.png diff --git a/_assets/sass/img/22px-baseline.png b/_removed/grids/img/22px-baseline.png similarity index 100% rename from _assets/sass/img/22px-baseline.png rename to _removed/grids/img/22px-baseline.png diff --git a/_assets/sass/img/24px-baseline.png b/_removed/grids/img/24px-baseline.png similarity index 100% rename from _assets/sass/img/24px-baseline.png rename to _removed/grids/img/24px-baseline.png diff --git a/removed/grids/img/960px-10-60-10-unit.png b/_removed/grids/img/960px-10-60-10-unit.png similarity index 100% rename from removed/grids/img/960px-10-60-10-unit.png rename to _removed/grids/img/960px-10-60-10-unit.png diff --git a/removed/grids/img/978px-15-54-15-unit.png b/_removed/grids/img/978px-15-54-15-unit.png similarity index 100% rename from removed/grids/img/978px-15-54-15-unit.png rename to _removed/grids/img/978px-15-54-15-unit.png diff --git a/removed/grids/index.htm b/_removed/grids/index.htm similarity index 97% rename from removed/grids/index.htm rename to _removed/grids/index.htm index aa30325..a6c52f1 100644 --- a/removed/grids/index.htm +++ b/_removed/grids/index.htm @@ -1,112 +1,112 @@ - - - - - - - - - - - - Typographic Grid Example - - - - - - - - - -
- - - -
- -
-

Typographic Grids: Simple Concept, Tricky Execution

-

- Let’s face it: people inclined toward communication and design don’t usually think of math - as their strong suit. But the foundation of any well constructed grid is mathematical. -

-

- The good news is that the only math you need is addition and multiplication. If, for - example, your baseline grid is 18 pixels, then everything you do to enhance your design - (borders, margin, padding) must add up to 18 pixels or a multiple of 18 (36, 54, and so on). -

-

- While thinking this mathematically about design may not be fun, it also takes a lot of the - guesswork out of design. You don’t have to worry, for example, as to what to set the - line-height as on your list items or your headings or paragraphs. That’s - already been decided. -

-

- And when you do make the decision about your baseline grid, make sure that it’s an even - number. 16, not 15. 18, not 17. The simple reason for this is that browsers will put your - text right in the middle of the value you specify; an even number ensures that there is the - same amount of space above and below each line of text. See also the “Mind Your Math” - sidebar. -

-
- -
-

Mind Your Math

-
    -
  • - Don’t get mad, get even. When working with grids, look for numbers that - divide evenly into both 2 and 3 (e.g. 12, 18); numbers that divide into 2 and 3 that also - divide into 4 (e.g., 24, 32) and/or 5 (e.g., 30, 40) are even better (but harder to find - at small intervals). Numbers that divide into 2, 3, and 6 are somewhat easier to find, - being simply multiples of 6 (e.g., 6, 12, 18, 24). -
  • -
  • - A pixel might as well be a mile. They sound small, but look big. When - creating graphics to help gauge your grid alignment, go with colored bands, not grid - lines--as the lines themselves have dimension. This page features a graphic that's 36 pixels tall, split into two 18px-tall - bands. Use the same technique for images that guide vertical units and columns. -
  • -
-
- -
- - - - - -
- - - - + + + + + + + + + + + + Typographic Grid Example + + + + + + + + + +
+ + + +
+ +
+

Typographic Grids: Simple Concept, Tricky Execution

+

+ Let’s face it: people inclined toward communication and design don’t usually think of math + as their strong suit. But the foundation of any well constructed grid is mathematical. +

+

+ The good news is that the only math you need is addition and multiplication. If, for + example, your baseline grid is 18 pixels, then everything you do to enhance your design + (borders, margin, padding) must add up to 18 pixels or a multiple of 18 (36, 54, and so on). +

+

+ While thinking this mathematically about design may not be fun, it also takes a lot of the + guesswork out of design. You don’t have to worry, for example, as to what to set the + line-height as on your list items or your headings or paragraphs. That’s + already been decided. +

+

+ And when you do make the decision about your baseline grid, make sure that it’s an even + number. 16, not 15. 18, not 17. The simple reason for this is that browsers will put your + text right in the middle of the value you specify; an even number ensures that there is the + same amount of space above and below each line of text. See also the “Mind Your Math” + sidebar. +

+
+ +
+

Mind Your Math

+
    +
  • + Don’t get mad, get even. When working with grids, look for numbers that + divide evenly into both 2 and 3 (e.g. 12, 18); numbers that divide into 2 and 3 that also + divide into 4 (e.g., 24, 32) and/or 5 (e.g., 30, 40) are even better (but harder to find + at small intervals). Numbers that divide into 2, 3, and 6 are somewhat easier to find, + being simply multiples of 6 (e.g., 6, 12, 18, 24). +
  • +
  • + A pixel might as well be a mile. They sound small, but look big. When + creating graphics to help gauge your grid alignment, go with colored bands, not grid + lines--as the lines themselves have dimension. This page features a graphic that's 36 pixels tall, split into two 18px-tall + bands. Use the same technique for images that guide vertical units and columns. +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/removed/grids/reset.css b/_removed/grids/reset.css similarity index 99% rename from removed/grids/reset.css rename to _removed/grids/reset.css index 9b158da..1596b92 100644 --- a/removed/grids/reset.css +++ b/_removed/grids/reset.css @@ -1,8 +1,8 @@ -/* Reset Styles */ -/* -Copyright (c) 2011, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 2.9.0 -*/ -html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,select,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,button,caption,cite,code,dfn,em,input,optgroup,option,select,strong,textarea,th,var{font:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000} +/* Reset Styles */ +/* +Copyright (c) 2011, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 2.9.0 +*/ +html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,select,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,button,caption,cite,code,dfn,em,input,optgroup,option,select,strong,textarea,th,var{font:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000} diff --git a/removed/grids/screen.css b/_removed/grids/screen.css similarity index 95% rename from removed/grids/screen.css rename to _removed/grids/screen.css index 34a1804..961a495 100644 --- a/removed/grids/screen.css +++ b/_removed/grids/screen.css @@ -1,63 +1,63 @@ -/* Mobile Styles (apply to non-mobile also) */ - -html { /*Copy code (line-height, font-size) from grid.css when done experimenting.*/} - - -/* Page Divisions - NO LAYOUT HERE; Think Linear, Mobile Design */ -div#header {} -div#content {} -div#main {} -div#supporting {} -ul#navigation {} -div#footer {} - -/* Headings */ -h1,h2,h3,h4,h5,h6 { font-family: Georgia, "Times New Roman", serif; } /* Make all headings Georgia/serif */ - -h1 {} -h2 {} - -/* Paragraphs */ -p.tagline {} -div#content p {} - -/* Lists */ -div#content ul {} -div#content ul > li {} - - -/* Phrase Styles */ - -/* Hide Stuff */ -ul.accessibility { display: none; } - - - -/* Basic Media Query for Screens wider than 1010 pixels */ - -@media screen and (min-width: 1010px) { - - div#page { /*Copy code from grid.css when done experimenting.*/ } - - /*Page Divisions*/ - - /* - Helpful hint: - While working to position page divisions into regions, - use the rgba(); color syntax to keep the grid images - visible, e.g., - - div#header { background-color: rgba(255,0,0,.2) } - - The forth/alpha value ranges from 0 (completely transparent) - to 1.0 (completely opaque). - */ - div#header {} - div#content {} - div#main {} - div#supporting {} - ul#navigation {} - div#footer {} - -/*Close curly-brace from media query:*/ -} +/* Mobile Styles (apply to non-mobile also) */ + +html { /*Copy code (line-height, font-size) from grid.css when done experimenting.*/} + + +/* Page Divisions - NO LAYOUT HERE; Think Linear, Mobile Design */ +div#header {} +div#content {} +div#main {} +div#supporting {} +ul#navigation {} +div#footer {} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { font-family: Georgia, "Times New Roman", serif; } /* Make all headings Georgia/serif */ + +h1 {} +h2 {} + +/* Paragraphs */ +p.tagline {} +div#content p {} + +/* Lists */ +div#content ul {} +div#content ul > li {} + + +/* Phrase Styles */ + +/* Hide Stuff */ +ul.accessibility { display: none; } + + + +/* Basic Media Query for Screens wider than 1010 pixels */ + +@media screen and (min-width: 1010px) { + + div#page { /*Copy code from grid.css when done experimenting.*/ } + + /*Page Divisions*/ + + /* + Helpful hint: + While working to position page divisions into regions, + use the rgba(); color syntax to keep the grid images + visible, e.g., + + div#header { background-color: rgba(255,0,0,.2) } + + The forth/alpha value ranges from 0 (completely transparent) + to 1.0 (completely opaque). + */ + div#header {} + div#content {} + div#main {} + div#supporting {} + ul#navigation {} + div#footer {} + +/*Close curly-brace from media query:*/ +} diff --git a/about.html b/about.html index 097416f..229b9e1 100644 --- a/about.html +++ b/about.html @@ -1,100 +1,100 @@ - - - - - - - - - - - - Anthony Sansone: About Me - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- -
- -
-

I am a native of Milwaukee, Wisconsin and now live in Oak Park, Illinois with my family.

- -

The University of Wisconsin-Madison conferred my Bachelors degree in Political Science in 1994.

- -

The Illinois Institute of Technology conferred a Master's of Science degree in Technical Communication and Information Design in 2013.

- -

I enjoy difficult challenges.

- -

I created a weekly newsletter in high school back when computers were magic. In college, I secured computers and internet connections for all major student groups. From there, I helped restart three major student organizations in college: the student government, the student newspaper, and the yearbook.

- -

My professional career started in television news, where I developed the web site for an CBS affiliate.

- -

Switching to corporate life, I worked in communications as a web developer where I developed global standards for all web sites in the company. At the same company, I transitioned to a internal customer engineer where I traveled the world to teach employees how to use our global portal. My next opportunity came at a small startup to help manage their second-tier support.

- -

I left the fast-moving consumer goods industry soon after and moved into the computer storage industry. The dominant player in the market had me create RFPs, proposals, and decks. At this time, I finished my Master's degree. I moved on to another storage startup where I wrote online and print manuals.

- -

The next big shift was to database software at another small startup. This opportunity led to experiencing my first IPO. This position gave me the opportunity to engage with the greater technical writing community as a speaker, award jurist, and podcast guest.

- -

The latest transition led to leading the documentation efforts for a programming langugage and mobile app framework. This has been the most challenging and rewarding opportunity yet. I began my doctoral work after starting this job.

- -

Outside of work and education, I'm a parent, spouse, friend, woodturner, drummer, singer, reader, traveller, and gamer.

- -

Anything else about me can be found on X, LinkedIn or Facebook. Asking to be my friend or contact on any of these sites is fine, just remind me how we met!

- -

If we haven't met and you would like to meet, reach out and schedule a call.

-
-
-
- Anthony Sansone in front of the Temple of Hercules in Agrigento, Sicily on 22 July 2022 -
Agrigento, Sicily, 22 July 2022 -
-
- -
- -
- - - - - - - - - + + + + + + + + + + + + Anthony Sansone: About Me + + + + + + + + + + + +
+ +

Anthony T. Sansone

+ +
+
Designer. Writer. Board Member. Mentor. Educator.
+ +
+ +1 312 725 2450 + a.t.sansone@gmail.com +
+
+ + + +
+ +
+ +
+ +
+

I am a native of Milwaukee, Wisconsin and now live in Oak Park, Illinois with my family.

+ +

The University of Wisconsin-Madison conferred my Bachelors degree in Political Science in 1994.

+ +

The Illinois Institute of Technology conferred a Master's of Science degree in Technical Communication and Information Design in 2013.

+ +

I enjoy difficult challenges.

+ +

I created a weekly newsletter in high school back when computers were magic. In college, I secured computers and internet connections for all major student groups. From there, I helped restart three major student organizations in college: the student government, the student newspaper, and the yearbook.

+ +

My professional career started in television news, where I developed the web site for an CBS affiliate.

+ +

Switching to corporate life, I worked in communications as a web developer where I developed global standards for all web sites in the company. At the same company, I transitioned to a internal customer engineer where I traveled the world to teach employees how to use our global portal. My next opportunity came at a small startup to help manage their second-tier support.

+ +

I left the fast-moving consumer goods industry soon after and moved into the computer storage industry. The dominant player in the market had me create RFPs, proposals, and decks. At this time, I finished my Master's degree. I moved on to another storage startup where I wrote online and print manuals.

+ +

The next big shift was to database software at another small startup. This opportunity led to experiencing my first IPO. This position gave me the opportunity to engage with the greater technical writing community as a speaker, award jurist, and podcast guest.

+ +

The latest transition led to leading the documentation efforts for a programming langugage and mobile app framework. This has been the most challenging and rewarding opportunity yet. I began my doctoral work after starting this job.

+ +

Outside of work and education, I'm a parent, spouse, friend, woodturner, drummer, singer, reader, traveller, and gamer.

+ +

Anything else about me can be found on X, LinkedIn or Facebook. Asking to be my friend or contact on any of these sites is fine, just remind me how we met!

+ +

If we haven't met and you would like to meet, reach out and schedule a call.

+
+
+
+ Anthony Sansone in front of the Temple of Hercules in Agrigento, Sicily on 22 July 2022 +
Agrigento, Sicily, 22 July 2022 +
+
+ +
+ +
+ + + + + + + + + diff --git a/removed/grids/img/10px-baseline.png b/assets/_sass/img/10px-baseline.png similarity index 100% rename from removed/grids/img/10px-baseline.png rename to assets/_sass/img/10px-baseline.png diff --git a/removed/css/1218-CSS/demo-files/1218-grid.png b/assets/_sass/img/1218-grid.png similarity index 100% rename from removed/css/1218-CSS/demo-files/1218-grid.png rename to assets/_sass/img/1218-grid.png diff --git a/_assets/sass/img/1248-grid.png b/assets/_sass/img/1248-grid.png similarity index 100% rename from _assets/sass/img/1248-grid.png rename to assets/_sass/img/1248-grid.png diff --git a/removed/grids/img/12px-baseline.png b/assets/_sass/img/12px-baseline.png similarity index 100% rename from removed/grids/img/12px-baseline.png rename to assets/_sass/img/12px-baseline.png diff --git a/_assets/sass/img/1378-grid.png b/assets/_sass/img/1378-grid.png similarity index 100% rename from _assets/sass/img/1378-grid.png rename to assets/_sass/img/1378-grid.png diff --git a/removed/grids/img/14px-baseline.png b/assets/_sass/img/14px-baseline.png similarity index 100% rename from removed/grids/img/14px-baseline.png rename to assets/_sass/img/14px-baseline.png diff --git a/removed/grids/img/16px-baseline.png b/assets/_sass/img/16px-baseline.png similarity index 100% rename from removed/grids/img/16px-baseline.png rename to assets/_sass/img/16px-baseline.png diff --git a/removed/grids/img/18px-baseline.png b/assets/_sass/img/18px-baseline.png similarity index 100% rename from removed/grids/img/18px-baseline.png rename to assets/_sass/img/18px-baseline.png diff --git a/removed/grids/img/20px-baseline.png b/assets/_sass/img/20px-baseline.png similarity index 100% rename from removed/grids/img/20px-baseline.png rename to assets/_sass/img/20px-baseline.png diff --git a/removed/grids/img/22px-baseline.png b/assets/_sass/img/22px-baseline.png similarity index 100% rename from removed/grids/img/22px-baseline.png rename to assets/_sass/img/22px-baseline.png diff --git a/removed/grids/img/24px-baseline.png b/assets/_sass/img/24px-baseline.png similarity index 100% rename from removed/grids/img/24px-baseline.png rename to assets/_sass/img/24px-baseline.png diff --git a/_assets/sass/img/300-grid.png b/assets/_sass/img/300-grid.png similarity index 100% rename from _assets/sass/img/300-grid.png rename to assets/_sass/img/300-grid.png diff --git a/_assets/sass/img/748-grid.png b/assets/_sass/img/748-grid.png similarity index 100% rename from _assets/sass/img/748-grid.png rename to assets/_sass/img/748-grid.png diff --git a/_assets/sass/img/978-grid.png b/assets/_sass/img/978-grid.png similarity index 100% rename from _assets/sass/img/978-grid.png rename to assets/_sass/img/978-grid.png diff --git a/_assets/sass/img/gfx-readme.txt b/assets/_sass/img/gfx-readme.txt similarity index 98% rename from _assets/sass/img/gfx-readme.txt rename to assets/_sass/img/gfx-readme.txt index a2eae62..1f01c4a 100644 --- a/_assets/sass/img/gfx-readme.txt +++ b/assets/_sass/img/gfx-readme.txt @@ -1,2 +1,2 @@ -The gfx/ folder is where you store all of the images and artwork files called by CSS (as opposed to -images called by the XHTML tag, which belong in the media/img/ folder). +The gfx/ folder is where you store all of the images and artwork files called by CSS (as opposed to +images called by the XHTML tag, which belong in the media/img/ folder). diff --git a/_assets/sass/screen.scss b/assets/_sass/main.scss similarity index 94% rename from _assets/sass/screen.scss rename to assets/_sass/main.scss index 6e01912..624fc69 100644 --- a/_assets/sass/screen.scss +++ b/assets/_sass/main.scss @@ -1,1169 +1,1113 @@ -/* screen.css: Screen Styles */ - -/* - -This is set up to go from a 1 column (320px) to 2 column (768px) to 3 column (978px+) home page layout. - -The section fonts are from TypeKit: Museo Sans and Museo Slab Serif. - -*/ - -/* Variables */ -$base-font-size: 1rem; - - -/* Base Styles */ - -/* Bold on headings, b, and strong */ -h1,h2,h3,h4,h5,h6,b,strong { font-weight: 800; } -/* Italic on i, em, and cite: */ -i,em,cite { font-style: italic; } -/* Dotted border and help cursor to abbr and acronym: */ -abbr,acronym { border-bottom: 1px dotted; cursor: help; } - -html { - background: #361F27; - font-size: 14px; - font-family: 'Roboto', sans-serif; - color: #0D090A; -} - -/* Body */ - -body { -} - -/* Major Divisions */ - -/* Page (Containing Div) */ - -div#page { - background-color: #EAF2EF; - position: relative; - margin: 0rem auto; -} - -/* Header */ - -header { - background-color: #912F56; -} - -header h1 { - font-family: 'Roboto Slab', serif; - font-weight: 800; -} - -header h1 a { - text-decoration: none; - color: #EAF2EF; -} - -header p.tagline { - color: #EAF2EF; -} - -header ul.accessibility { - display: none; -} - -/* Contact Details */ -header p.contact { - color: #EAF2EF; -} - -/* Content */ - section { - border-top: 3px solid #521945; - background-color: #EAF2EF; - padding: 1rem; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - } - -/* Footer */ - footer { - border-top: 1px solid #600; - background-color: #EAF2EF; - padding: 1rem; - font-size: 0.8rem; - } - footer p.credits { } - footer ul.validators { } - footer ul.validators li { } - - /*Navigation*/ - - nav ul li { - } - - nav ul li a { - } - - nav ul li a:visited { - } - - nav ul li a:hover, - nav ul li a:focus { - } - -/* Navigation Bar */ - -/* Limiting this section to font, color and decoration */ - -/* - div#navcontainer { - display: block; - width:100%; - min-width:400px; - margin: 0px; - padding: 0px; - } -*/ - - nav { - display: table; - margin: 0px; - padding: 0px; - } - - nav ul { - display: table-row; - } - - nav ul li a { - padding: 0px; - display: table-cell; - text-align: center; - text-decoration:none; - color: #fff; - background: #521945; - vertical-align: middle; - } - - nav ul li { - float: left; - } - - nav ul li a.selected { - border: 1px solid #aaa; - text-decoration:none; - color: #595855; - background: #fff; - } - - nav li { - font-family: 'Roboto', sans-serif; - } - - nav ul li a:hover { - color: #CAE6E8; - background: #912F56; - } - - nav ul li a.selected:hover { - color: #595855; - background: #fff; - } - - nav ul li { - float: left; - } - -/*Content Typography: Headings*/ - section h1, - section h2, - section h3, - section h4, - section h5, - section h6 { - font-family: 'Roboto Slab', serif; - } - section h1 { - font-size: 2em; - line-height: 36px; - margin-bottom: 18px; - } - section h2 { - font-size: 1.1rem; - } - section h3 { - } - section h4 { - } - section h5 { - } - section h6 { - } - section * a { - text-decoration: none; - } - div.row + h2, ul + h2, ul + h3, ul + h4 { - margin-top: 18px; - } - section p.company { - margin-bottom: 0px; - } - -/*Content Typography: Paragraphs*/ -section p { - font-family: 'Roboto', sans-serif; -} - -section div:last-child p:last-child { - margin-bottom: 0px; -} - -/*Content Typography: Unordered Lists*/ -section ul { -} - -section ul li { - list-style-type: square; - list-style-position:inside; - margin-left: 1em; - text-indent: -1em; -} - -/*Nested*/ -section * li ul { -} - -section * li ul li { - list-style-type: square; - list-style-position:inside; - margin-left: 2em; - text-indent: -1em; -} - -/*Content Typography: Ordered Lists*/ -section ol { -} -section ol li { -} - -/*Nested*/ -section * li ol { -} -section * li ol li { -} - -/*Content Typography: Links*/ -section a { - color: #313F54; - text-decoration: none; -} -section a:visited { - color: #444; -} -section a:hover, -section a:focus { -} - -/*Content Typography: Links*/ -footer a { - color: #313F54; - text-decoration: none; -} -footer a:visited { - color: #444; -} -footer a:hover, -footer a:focus { -} - -/* Job Tools Block */ - -body#resume section ul.tools { - background-color: #fff; - margin: 12px 0px; - border: 1px #888 solid; -} - -/* This formatting is for the special tools listing per job. It applies to everything except the largest size */ - -body#resume section ul.tools li { - font-size: 10px; - line-height: 12px; - list-style-type: none; - padding: 12px; -} - -body#resume section ul.tools > li { - list-style-type: none; - margin-left: 3.5em; - text-indent: -3.5em; -} - -body#resume section p.company { - border-top: 1px #888 solid; -} - -body#resume section ul.job, body#resume h3 { - overflow: auto; -} -body#resume section ul.job { - display: table; -} -body#resume section ul.job > li { - display: table-cell; - margin-left: 0px; - text-indent: 0px; - list-style-type: none; - float: left; -} -body#resume section ul.job > li + li { - display: table-cell; - margin-left: 10px; - list-style-type: square; -} -body#resume section .job { - margin-bottom: 0px; -} - -/* General Table Formats */ - -tr > th { - background-color: #ccc; - padding: 7px; - font-weight: 800; - text-align: center; -} - -tr:nth-child(odd) { - background-color:#eee; -} - -tr:nth-child(even) { - background-color:#fff; -} - -table.general { - margin: 18px 0px; - border: 1px solid #ccc; - width: 100%; -} - -table.general:last-child { - margin: 0px; - border: 1px solid #ccc; - width: 100%; -} - -tr > td { - padding: 7px; - vertical-align: top; -} - -table.tiny, table.tiny { - font-size: 8px; -} - -table.small > tr > td, table.small > th { - font-size: 10px; -} - -table.reg > td { - font-size: 12px; -} - -table .hide { - display: none; -} - -/* Skills Tables */ - -table.skills tr > td { - width: 60%; - padding-left: 10px; -} - -table.skills tr > td + td { - text-align: center; - width: 15%; - padding-left: 0px; -} - -table.skills tr.skilldiv { - background-color: #ddd; -} - -table.skills tr.skilldiv > td { - padding-left: 20px; - font-weight: 800; - padding-left: 7px; -} - -/* Resume Writing Tables */ - -table.resumewriting tr th { - text-align: center; - width: 5%; - padding-left: 0px; -} - -table.resumewriting tr th.wide { - text-align: center; - width: 15%; - padding-left: 0px; -} - -/* Images */ - -img { - max-width: 100%; -} - -h2 { - border-bottom: 1px #444 solid; -} - -/* Grids */ - -/* Basic / 300px Grid */ - -@media screen { - - /* BEGIN - General HTML - BEGIN */ - - html { /* Set font / line height / background */ - line-height: 1.5rem; - font-size: 0.9rem; - } - - html.grid { /* Set Visible Baseline Grid */ - background-image: url('img/18px-baseline.png'); - } - - /* END - General HTML - END */ - - /* BEGIN - Body Widths - BEGIN */ - - body.px #page, body.pxg #page { - width: 320px; - } - - body.pxg #page { - background-image: url('img/300-grid.png'); - } - - body.pct #page { - width: 90%; - min-width: 320px; /* Minimum set to width of mobile device */ - } - - body.px #page > div { - padding: 18px 10px; - } - - body.pct #page > div { - padding: 18px 3.1250%; - } - - body.pct #page nav { /* OK, this corrects the display:table issue between browsers */ - margin: auto; - width: 93.75%; - padding: 18px 0px; - } - - /* END - Body Widths - END */ - - /* BEGIN - Header Styles - BEGIN */ - - header { - height: 7rem; - padding: 1rem; - text-wrap: balance; - } - - header h1 { - text-align: center; - line-height: 36px; - font-size: 24px; - } - - header p { - text-align: center; - } - - caption { - display: inline-block; - margin-bottom: 18px; - } - - /* END - Header Styles - END */ - - /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ - - /* Using display:table to set up a flexible set of navigation buttons */ - - body.pct #page section, body.px #page section { - padding-bottom: 0px; - } - - nav ul li, nav ul li a { - height: 54px; - } - - body.px nav ul li, body.px nav ul li a { - width: 66px; - } - - body.pct nav ul li, body.pct nav ul li a { - width: 22%; - min-width: 66px; - } - - body.px nav ul li { - margin-left: 12px; - } - - body.pct nav ul li { - margin-left: 4%; - } - - body.px nav ul li:first-child, body.pct nav ul li:first-child { - margin-left: 0px; - } - - body.px nav ul li a.selected { - width: 64px; - } - - body.pct nav ul li a.selected { - width: 21.3333%; - } - - /* END - Navigation Bar at the Top of the Page below the header - END */ - - /* BEGIN - section Content Block - BEGIN */ - - main section h2, section p { - clear: both; - margin-bottom: 18px; - } - - body#resume main section h2, body#resume main section h3 { - padding-top: 18px; - } - - section #block1 h2 { - padding: 0px; - } - - div.row h2 { - clear: both; - margin-top: 18px; - } - - div.row { - display: inline-block; - clear: both; - margin-top: 18px; - width: 100% - } - - /* Print Design Portfolio */ - - body#printdesign h2 { - margin-top: 18px; - font-size: 20px; - line-height: 36px; - } - - body#printdesign h3 { - font-family: 'Roboto', sans-serif; - font-weight: 500; - margin-bottom: 18px; - font-size: 15px; - line-height: 18px; - } - - /* END - section Content Block - END */ - - /* BEGIN - Footer - BEGIN */ - - footer { - font-size: 0.8rem; - line-height: 1.0rem; - } - - /* END - Footer - END */ -} - - -/* 748 Grid */ - -@media screen and (max-width: 767px) { - #page nav { - background: #eee; - } -} - -/* 748 Grid */ - -@media screen and (min-width: 768px) { - - /* BEGIN - General HTML - BEGIN */ - - html { /* Set font / line height / background */ - line-height: 18px; - font-size: 12px; - } - - html.grid { /* Set Visible Baseline Grid */ - background-image: url('img/18px-baseline.png'); - } - - /* END - General HTML - END */ - - /* BEGIN - Body Widths - BEGIN */ - - body.px #page, body.pxg #page { /* Set #page to 748 plus 10 margin for 768 */ - width: 768px; - } - - body.pxg #page { - background-image: url('img/748-grid.png'); - } - - body.pct #page { - width: 90%; - min-width: 748px; /* Set Minimum Width of 748 px */ - } - - body.px #page > div { - padding: 18px 10px; - } - - body.pct #page > div { - padding: 18px 1.3021%; - } - - body.pct #page > div { - width: 100%; - } - - - /* END - Body Widths - END */ - - /* BEGIN - Header - BEGIN */ - - header { - height: 6rem; - padding: 10px; - } - - header h1 { - text-align: left; - } - - header p { - text-align: left; - } - - /* END - Header - END */ - - /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ - - body.pct #page nav { /* OK, this corrects the display:table issue between browsers */ - margin: 0px; - width: 100%; - padding: 18px 1.3021%; - } - - body.pct #page section, body.px #page section { - padding-bottom: 18px; - } - - #page nav { - position: absolute; - top: 84px; - clear: both; - display: inline-table; - } - - body #page nav ul li, body #page nav ul li a { - height: 2rem; - } - - body.pct #page nav ul li, body.pct #page nav ul li a { - width: 14.4385027%; - margin-left: 2.6737968%; - } - - body #page nav ul li:first-child { - margin-left: 0px; - } - - /* END - Navigation Bar at the Top of the Page below the header - END */ - - /* BEGIN - section Content Block - BEGIN */ - - body.pct #page nav, body.px #page nav { - padding-top: 18px; - } - - section h2 { - padding-top: 0px; - } - - body #page section div.section div.block:first-child, body #page section div#block3 { - margin-left: 0px; - } - - body#printdesign div#row div.block:first-child { - margin-left: 0px; - } - - div#row div.block:first-child { - margin-left: 0px; - } - - section p:last-child { - margin-bottom: 0px; - } - - table .hide { - display: table-cell; - } - - /* END - section Content Block - END */ - - /* BEGIN - Footer - BEGIN */ - - footer { - font-size: 0.8rem; - line-height: 1.0rem; - } - - /* END - Footer - END */ -} - -/* 978 Grid */ - -@media screen and (min-width: 1002px) { - - /* BEGIN - General HTML - BEGIN */ - - html { /* Set font / line height / background */ - line-height: 18px; - font-size: 14px; - } - - html.grid { - background-image: url('img/18px-baseline.png'); - } - - /* BEGIN - General HTML - BEGIN */ - - /* BEGIN - Body Widths - BEGIN */ - - body.pxg #page { - background-image: url('img/978-grid.png'); - } - - body.pct #page { - width: 90%; - } - - body.pct #page > div { - padding: 18px 1rem; - } - - /* END - Body Widths - END */ - - /* BEGIN - Header Styles - BEGIN */ - - header { - height: 6rem; - padding: 10px; - } - - header h1 { - text-align: left; - } - - /* END - Header Styles - END */ - - /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ - - body #page nav { - top: 90px; - } - - body #page nav ul li, body #page nav ul li a { - height: 36px; - margin-bottom: 0px; - } - - body.pct #page nav ul li, body.pct #page nav ul li a { - width: 14.1104294%; - margin-left: 3.0674847%; - } - - body #page nav ul li:first-child { - margin-left: 0px; - } - - /* END - Navigation Bar at the Top of the Page below the header - END */ - - /* BEGIN - section Content Block - BEGIN */ - - section { - padding: 10px; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - } - - body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ - margin-left: 0%; - } - - section p:last-child { - margin-bottom: 0px; - } - - /* END - section Content Block - END */ - - /* BEGIN - Footer - BEGIN */ - - footer { - font-size: 0.8rem; - line-height: 1.0rem; - } - - /* END - Footer - END */ -} - -/* 1218 Grid */ - -@media screen and (min-width: 1248px) { - - /* BEGIN - General HTML - BEGIN */ - - html { /* Set font / line height / background */ - line-height: 18px; - font-size: 14px; - } - - html.grid { /* Set font / line height / background */ - background-image: url('img/18px-baseline.png'); - } - - /* BEGIN - General HTML - BEGIN */ - - /* BEGIN - Body Widths - BEGIN */ - - body.px #page, body.pxg #page { - width: 1218px; - } - - body.pxg #page { - background-image: url('img/1248-grid.png'); - } - - body.pct #page { - width: 90%; /*Total with works out to 1248*/ - } - - body.px #page > div { - padding: 18px 15px; - } - - body.pct #page > div { - padding: 18px 1.2019%; - } - - /* END - Body Widths - END */ - - /* BEGIN - Header Styles - BEGIN */ - - body header h1 { - text-align: left; - line-height: 36px; - font-size: 28px; - } - - #page p.contact, #page p.tagline { - position: absolute; - top: 54px; - } - - body.px #page p.tagline { - width: 828px; - } - - body.pct #page p.tagline { - width: 67.9802956%; - } - - body header p.contact { - text-align: right; - } - - body.px header p.contact { - left: 858px; - width: 350px; - } - - body.pct header p.contact { - left: 69.6546871%; - width: 29.5566502%; - } - - /* END - Header Styles - END */ - - /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ - - body #page nav { - top: 72px; - display: inline-table; - width: 100%; - } - - body #page nav ul li, body.px #page nav ul li a { - height: 36px; - } - - body.px #page nav ul li, body.px #page nav ul li a { - width: 178px; - margin-left: 30px; - } - - body.pct #page nav ul li, body.pct #page nav ul li a { - width: 14.6141215%; - margin-left: 2.4630542%; - } - - body #page nav ul li { - margin-bottom: 0px; - } - - body #page nav ul li:first-child { - margin-left: 0px; - } - - /* END - Navigation Bar at the Top of the Page below the header - END */ - - /* BEGIN - section Content Block - BEGIN */ - - section { - padding: 10px; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - } - - body #page section div.block { - float: left; - } - - body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ - margin-left: 0%; - } - - section p:last-child { - margin-bottom: 0px; - } - - /* END - section Content Block - END */ - - /* BEGIN - Footer - BEGIN */ - - footer { - font-size: 0.8rem; - line-height: 1.0rem; - } - - /* END - Footer - END */ - -} - -/* 1378 Grid */ - -@media screen and (min-width: 1408px) { - - /* BEGIN - General HTML - BEGIN */ - - html { /* Set font / line height / background */ - line-height: 24px; - font-size: 18px; - } - - html.grid { /* Set font / line height / background */ - background-image: url('img/24px-baseline.png'); - } - - /* BEGIN - General HTML - BEGIN */ - - /* BEGIN - Body Widths - BEGIN */ - - body.px #page, body.pxg #page { - width: 1408px; - } - - body.pxg #page { - background-image: url('img/1378-grid.png'); - } - - body.pct #page { - width: 90%; - max-width: 1408px; - } - - body.px #page > div { - padding: 24px 15px; - } - - body.pct #page > div { - padding: 24px 1.0653%; - } - - /* END - Body Widths - END */ - - /* BEGIN - Header Styles - BEGIN */ - - header { - height: 6rem; - padding: 10px; - } - - header h1 { - line-height: 48px; - font-size: 42px; - } - - header p { - font-size: 15px; - } - - header > p { - position: absolute; - top: 72px; - } - - body.px #page header p.tagline { - width: 938px; - } - - body.pct #page header p.tagline { - width: 68.0696662%; - } - - body #page header p.contact { - text-align: right; - } - - body.px #page header p.contact { - left: 968px; - width: 400px; - } - - body.pct #page header p.contact { - left: 69.5515893%; - width: 29.7532656%; - } - - /* END - Header Styles - END */ - - /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ - - body #page nav { - top: 72px; - } - - body #page nav ul li, body #page nav ul li a { - height: 36px; - font-size: 18px; - margin-bottom: 0px; - } - - body.px #page nav ul li, body.px #page nav ul li a { - width: 204.66px; - margin-left: 30px; - } - - body.pct #page nav ul li, body.pct #page nav ul li a { - width: 14.8523905%; - margin-left: 2.1770682%; - } - - body #page nav ul li:first-child { - margin-left: 0px; - } - - /* END - Navigation Bar at the Top of the Page below the header - END */ - - /* BEGIN - section Content Block - BEGIN */ - - section { - padding: 10px; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - } - - body #page section div.block { - float: left; - } - - body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ - margin-left: 0px; - } - - /* Enlarging the fonts for the maximum browser size */ - - body#resume section ul.tools li { - font-size: 15px; - line-height: 24px; - list-style-type: none; - padding: 12px; - } - - body#resume section ul.tools > li { - list-style-type: none; - margin-left: 3.5em; - text-indent: -3.5em; - } - - tr > td, tr > th { - padding: 7px; - font-size: 15px; - } - - div.row + h2, ul + h2, ul + h3, ul + h4 { - margin-top: 24px; - } - - /* Print Design Portfolio */ - - body#printdesign h2 { - margin-top: 24px; - font-size: 40px; - line-height: 48px; - } - - body#printdesign h3 { - margin-bottom: 24px; - font-size: 20px; - line-height: 24px; - } - - /* End enlargement */ - - /* END - section Content Block - END */ - - /* BEGIN - Footer - BEGIN */ - - #page footer p.credits, #page footer ul.validators li { - font-size: 12px; - line-height: 24px; - } - - /* END - Footer - END */ - -} - +--- +--- + +/* screen.css: Screen Styles */ + +/* +This is set up to go from a 1 column (320px) to 2 column (768px) to 3 column (978px+) home page layout. +The section fonts are from TypeKit: Museo Sans and Museo Slab Serif. +*/ + + +/* Base Styles */ + +/* Bold on headings, b, and strong */ +h1,h2,h3,h4,h5,h6,b,strong { font-weight: 800; } +/* Italic on i, em, and cite: */ +i,em,cite { font-style: italic; } +/* Dotted border and help cursor to abbr and acronym: */ +abbr,acronym { border-bottom: 1px dotted; cursor: help; } + +html { + background: #361F27; + font-size: 1rem; + font-family: 'Roboto', sans-serif; + color: #0D090A; +} + +/* Major Divisions */ + +/* Page (Containing Div) */ + +div#page { + background-color: #EAF2EF; + position: relative; + margin: 0rem auto; +} + +/* Header */ + +header { + background-color: #912F56; +} + +header h1 { + font-family: 'Roboto Slab', serif; + font-weight: 800; +} + +header h1 a { + text-decoration: none; + color: #EAF2EF; +} + +header p.tagline { + color: #EAF2EF; +} + +header ul.accessibility { + display: none; +} + +/* Contact Details */ +header p.contact { + color: #EAF2EF; +} + +/* Content */ + section { + border-top: 3px solid #521945; + background-color: #EAF2EF; + padding: 1rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + +/* Footer */ + footer { + border-top: 1px solid #600; + background-color: #EAF2EF; + padding: 1rem; + font-size: 0.8rem; + } + +/* Navigation Bar */ + +/* Limiting this section to font, color and decoration */ + +/* + div#navcontainer { + display: block; + width:100%; + min-width:400px; + margin: 0px; + padding: 0px; + } +*/ + + nav { + display: table; + margin: 0px; + padding: 0px; + } + + nav ul { + display: table-row; + } + + nav ul li a { + padding: 0px; + display: table-cell; + text-align: center; + text-decoration:none; + color: #fff; + background: #521945; + vertical-align: middle; + } + + nav ul li { + float: left; + } + + nav ul li a.selected { + border: 1px solid #aaa; + text-decoration:none; + color: #595855; + background: #fff; + } + + nav li { + font-family: 'Roboto', sans-serif; + } + + nav ul li a:hover { + color: #CAE6E8; + background: #912F56; + } + + nav ul li a.selected:hover { + color: #595855; + background: #fff; + } + + nav ul li { + float: left; + } + +/*Content Typography: Headings*/ + section h1, + section h2, + section h3, + section h4, + section h5, + section h6 { + font-family: 'Roboto Slab', serif; + } + section h1 { + font-size: 2em; + line-height: 36px; + margin-bottom: 18px; + } + section h2 { + font-size: 1.1rem; + } + section * a { + text-decoration: none; + } + div.row + h2, ul + h2, ul + h3, ul + h4 { + margin-top: 18px; + } + section p.company { + margin-bottom: 0px; + } + +/*Content Typography: Paragraphs*/ +section p { + font-family: 'Roboto', sans-serif; +} + +section div:last-child p:last-child { + margin-bottom: 0px; +} + +/*Content Typography: Unordered Lists*/ + +section ul li { + list-style-type: square; + list-style-position:inside; + margin-left: 1em; + text-indent: -1em; +} + +/*Nested*/ + +section * li ul li { + list-style-type: square; + list-style-position:inside; + margin-left: 2em; + text-indent: -1em; +} + +/*Content Typography: Links*/ +section a { + color: #313F54; + text-decoration: none; +} +section a:visited { + color: #444; +} + +/*Content Typography: Links*/ +footer a { + color: #313F54; + text-decoration: none; +} +footer a:visited { + color: #444; +} + +/* Job Tools Block */ + +body#resume section ul.tools { + background-color: #fff; + margin: 12px 0px; + border: 1px #888 solid; +} + +/* This formatting is for the special tools listing per job. It applies to everything except the largest size */ + +body#resume section ul.tools li { + font-size: 10px; + line-height: 12px; + list-style-type: none; + padding: 12px; +} + +body#resume section ul.tools > li { + list-style-type: none; + margin-left: 3.5em; + text-indent: -3.5em; +} + +body#resume section p.company { + border-top: 1px #888 solid; +} + +body#resume section ul.job, body#resume h3 { + overflow: auto; +} +body#resume section ul.job { + display: table; +} +body#resume section ul.job > li { + display: table-cell; + margin-left: 0px; + text-indent: 0px; + list-style-type: none; + float: left; +} +body#resume section ul.job > li + li { + display: table-cell; + margin-left: 10px; + list-style-type: square; +} +body#resume section .job { + margin-bottom: 0px; +} + +/* General Table Formats */ + +tr > th { + background-color: #ccc; + padding: 7px; + font-weight: 800; + text-align: center; +} + +tr:nth-child(odd) { + background-color:#eee; +} + +tr:nth-child(even) { + background-color:#fff; +} + +table.general { + margin: 18px 0px; + border: 1px solid #ccc; + width: 100%; +} + +table.general:last-child { + margin: 0px; + border: 1px solid #ccc; + width: 100%; +} + +tr > td { + padding: 7px; + vertical-align: top; +} + +table.tiny, table.tiny { + font-size: 8px; +} + +table.small > tr > td, table.small > th { + font-size: 10px; +} + +table.reg > td { + font-size: 12px; +} + +table .hide { + display: none; +} + +/* Skills Tables */ + +table.skills tr > td { + width: 60%; + padding-left: 10px; +} + +table.skills tr > td + td { + text-align: center; + width: 15%; + padding-left: 0px; +} + +table.skills tr.skilldiv { + background-color: #ddd; +} + +table.skills tr.skilldiv > td { + padding-left: 20px; + font-weight: 800; + padding-left: 7px; +} + +/* Resume Writing Tables */ + +table.resumewriting tr th { + text-align: center; + width: 5%; + padding-left: 0px; +} + +table.resumewriting tr th.wide { + text-align: center; + width: 15%; + padding-left: 0px; +} + +/* Images */ + +img { + max-width: 100%; +} + +h2 { + border-bottom: 1px #444 solid; +} + +/* Grids */ + +/* Basic / 300px Grid */ + +@media screen { + + /* BEGIN - General HTML - BEGIN */ + + html { /* Set font / line height / background */ + line-height: 1.5rem; + font-size: 0.9rem; + } + + html.grid { /* Set Visible Baseline Grid */ + background-image: url('img/18px-baseline.png'); + } + + /* END - General HTML - END */ + + /* BEGIN - Body Widths - BEGIN */ + + body.px #page, body.pxg #page { + width: 320px; + } + + body.pxg #page { + background-image: url('img/300-grid.png'); + } + + body.pct #page { + width: 90%; + min-width: 320px; /* Minimum set to width of mobile device */ + } + + body.px #page > div { + padding: 18px 10px; + } + + body.pct #page > div { + padding: 18px 3.1250%; + } + + body.pct #page nav { /* OK, this corrects the display:table issue between browsers */ + margin: auto; + width: 93.75%; + padding: 18px 0px; + } + + /* END - Body Widths - END */ + + /* BEGIN - Header Styles - BEGIN */ + + header { + height: 7rem; + padding: 1rem; + text-wrap: balance; + } + + header h1 { + text-align: center; + line-height: 36px; + font-size: 24px; + } + + header p { + text-align: center; + } + + caption { + display: inline-block; + margin-bottom: 18px; + } + + /* END - Header Styles - END */ + + /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ + + /* Using display:table to set up a flexible set of navigation buttons */ + + body.pct #page section, body.px #page section { + padding-bottom: 0px; + } + + nav ul li, nav ul li a { + height: 54px; + } + + body.px nav ul li, body.px nav ul li a { + width: 66px; + } + + body.pct nav ul li, body.pct nav ul li a { + width: 22%; + min-width: 66px; + } + + body.px nav ul li { + margin-left: 12px; + } + + body.pct nav ul li { + margin-left: 4%; + } + + body.px nav ul li:first-child, body.pct nav ul li:first-child { + margin-left: 0px; + } + + body.px nav ul li a.selected { + width: 64px; + } + + body.pct nav ul li a.selected { + width: 21.3333%; + } + + /* END - Navigation Bar at the Top of the Page below the header - END */ + + /* BEGIN - section Content Block - BEGIN */ + + main section h2, section p { + clear: both; + margin-bottom: 18px; + } + + body#resume main section h2, body#resume main section h3 { + padding-top: 18px; + } + + section #block1 h2 { + padding: 0px; + } + + div.row h2 { + clear: both; + margin-top: 18px; + } + + div.row { + display: inline-block; + clear: both; + margin-top: 18px; + width: 100% + } + + /* Print Design Portfolio */ + + body#printdesign h2 { + margin-top: 18px; + font-size: 20px; + line-height: 36px; + } + + body#printdesign h3 { + font-family: 'Roboto', sans-serif; + font-weight: 500; + margin-bottom: 18px; + font-size: 15px; + line-height: 18px; + } + + /* END - section Content Block - END */ + + /* BEGIN - Footer - BEGIN */ + + footer { + font-size: 0.8rem; + line-height: 1.0rem; + } + + /* END - Footer - END */ +} + + +/* 748 Grid */ + +@media screen and (max-width: 767px) { + #page nav { + background: #eee; + } +} + +/* 748 Grid */ + +@media screen and (min-width: 768px) { + + /* BEGIN - General HTML - BEGIN */ + + html { /* Set font / line height / background */ + line-height: 18px; + font-size: 12px; + } + + html.grid { /* Set Visible Baseline Grid */ + background-image: url('img/18px-baseline.png'); + } + + /* END - General HTML - END */ + + /* BEGIN - Body Widths - BEGIN */ + + body.px #page, body.pxg #page { /* Set #page to 748 plus 10 margin for 768 */ + width: 768px; + } + + body.pxg #page { + background-image: url('img/748-grid.png'); + } + + body.pct #page { + width: 90%; + min-width: 748px; /* Set Minimum Width of 748 px */ + } + + body.px #page > div { + padding: 18px 10px; + } + + body.pct #page > div { + padding: 18px 1.3021%; + } + + body.pct #page > div { + width: 100%; + } + + + /* END - Body Widths - END */ + + /* BEGIN - Header - BEGIN */ + + header { + height: 6rem; + padding: 10px; + } + + header h1 { + text-align: left; + } + + header p { + text-align: left; + } + + /* END - Header - END */ + + /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ + + body.pct #page nav { /* OK, this corrects the display:table issue between browsers */ + margin: 0px; + width: 100%; + padding: 18px 1.3021%; + } + + body.pct #page section, body.px #page section { + padding-bottom: 18px; + } + + #page nav { + position: absolute; + top: 84px; + clear: both; + display: inline-table; + } + + body #page nav ul li, body #page nav ul li a { + height: 2rem; + } + + body.pct #page nav ul li, body.pct #page nav ul li a { + width: 14.4385027%; + margin-left: 2.6737968%; + } + + body #page nav ul li:first-child { + margin-left: 0px; + } + + /* END - Navigation Bar at the Top of the Page below the header - END */ + + /* BEGIN - section Content Block - BEGIN */ + + body.pct #page nav, body.px #page nav { + padding-top: 18px; + } + + section h2 { + padding-top: 0px; + } + + body #page section div.section div.block:first-child, body #page section div#block3 { + margin-left: 0px; + } + + body#printdesign div#row div.block:first-child { + margin-left: 0px; + } + + div#row div.block:first-child { + margin-left: 0px; + } + + section p:last-child { + margin-bottom: 0px; + } + + table .hide { + display: table-cell; + } + + /* END - section Content Block - END */ + + /* BEGIN - Footer - BEGIN */ + + footer { + font-size: 0.8rem; + line-height: 1.0rem; + } + + /* END - Footer - END */ +} + +/* 978 Grid */ + +@media screen and (min-width: 1002px) { + + /* BEGIN - General HTML - BEGIN */ + + html { /* Set font / line height / background */ + line-height: 18px; + font-size: 14px; + } + + html.grid { + background-image: url('img/18px-baseline.png'); + } + + /* BEGIN - General HTML - BEGIN */ + + /* BEGIN - Body Widths - BEGIN */ + + body.pxg #page { + background-image: url('img/978-grid.png'); + } + + body.pct #page { + width: 90%; + } + + body.pct #page > div { + padding: 18px 1rem; + } + + /* END - Body Widths - END */ + + /* BEGIN - Header Styles - BEGIN */ + + header { + height: 6rem; + padding: 10px; + } + + header h1 { + text-align: left; + } + + /* END - Header Styles - END */ + + /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ + + body #page nav { + top: 90px; + } + + body #page nav ul li, body #page nav ul li a { + height: 36px; + margin-bottom: 0px; + } + + body.pct #page nav ul li, body.pct #page nav ul li a { + width: 14.1104294%; + margin-left: 3.0674847%; + } + + body #page nav ul li:first-child { + margin-left: 0px; + } + + /* END - Navigation Bar at the Top of the Page below the header - END */ + + /* BEGIN - section Content Block - BEGIN */ + + section { + padding: 10px; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + + body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ + margin-left: 0%; + } + + section p:last-child { + margin-bottom: 0px; + } + + /* END - section Content Block - END */ + + /* BEGIN - Footer - BEGIN */ + + footer { + font-size: 0.8rem; + line-height: 1.0rem; + } + + /* END - Footer - END */ +} + +/* 1218 Grid */ + +@media screen and (min-width: 1248px) { + + /* BEGIN - General HTML - BEGIN */ + + html { /* Set font / line height / background */ + line-height: 18px; + font-size: 14px; + } + + html.grid { /* Set font / line height / background */ + background-image: url('img/18px-baseline.png'); + } + + /* BEGIN - General HTML - BEGIN */ + + /* BEGIN - Body Widths - BEGIN */ + + body.px #page, body.pxg #page { + width: 1218px; + } + + body.pxg #page { + background-image: url('img/1248-grid.png'); + } + + body.pct #page { + width: 90%; /*Total with works out to 1248*/ + } + + body.px #page > div { + padding: 18px 15px; + } + + body.pct #page > div { + padding: 18px 1.2019%; + } + + /* END - Body Widths - END */ + + /* BEGIN - Header Styles - BEGIN */ + + body header h1 { + text-align: left; + line-height: 36px; + font-size: 28px; + } + + #page p.contact, #page p.tagline { + position: absolute; + top: 54px; + } + + body.px #page p.tagline { + width: 828px; + } + + body.pct #page p.tagline { + width: 67.9802956%; + } + + body header p.contact { + text-align: right; + } + + body.px header p.contact { + left: 858px; + width: 350px; + } + + body.pct header p.contact { + left: 69.6546871%; + width: 29.5566502%; + } + + /* END - Header Styles - END */ + + /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ + + body #page nav { + top: 72px; + display: inline-table; + width: 100%; + } + + body #page nav ul li, body.px #page nav ul li a { + height: 36px; + } + + body.px #page nav ul li, body.px #page nav ul li a { + width: 178px; + margin-left: 30px; + } + + body.pct #page nav ul li, body.pct #page nav ul li a { + width: 14.6141215%; + margin-left: 2.4630542%; + } + + body #page nav ul li { + margin-bottom: 0px; + } + + body #page nav ul li:first-child { + margin-left: 0px; + } + + /* END - Navigation Bar at the Top of the Page below the header - END */ + + /* BEGIN - section Content Block - BEGIN */ + + section { + padding: 10px; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + + body #page section div.block { + float: left; + } + + body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ + margin-left: 0%; + } + + section p:last-child { + margin-bottom: 0px; + } + + /* END - section Content Block - END */ + + /* BEGIN - Footer - BEGIN */ + + footer { + font-size: 0.8rem; + line-height: 1.0rem; + } + + /* END - Footer - END */ + +} + +/* 1378 Grid */ + +@media screen and (min-width: 1408px) { + + /* BEGIN - General HTML - BEGIN */ + + html { /* Set font / line height / background */ + line-height: 24px; + font-size: 18px; + } + + html.grid { /* Set font / line height / background */ + background-image: url('img/24px-baseline.png'); + } + + /* BEGIN - General HTML - BEGIN */ + + /* BEGIN - Body Widths - BEGIN */ + + body.px #page, body.pxg #page { + width: 1408px; + } + + body.pxg #page { + background-image: url('img/1378-grid.png'); + } + + body.pct #page { + width: 90%; + max-width: 1408px; + } + + body.px #page > div { + padding: 24px 15px; + } + + body.pct #page > div { + padding: 24px 1.0653%; + } + + /* END - Body Widths - END */ + + /* BEGIN - Header Styles - BEGIN */ + + header { + height: 6rem; + padding: 10px; + } + + header h1 { + line-height: 48px; + font-size: 42px; + } + + header p { + font-size: 15px; + } + + header > p { + position: absolute; + top: 72px; + } + + body.px #page header p.tagline { + width: 938px; + } + + body.pct #page header p.tagline { + width: 68.0696662%; + } + + body #page header p.contact { + text-align: right; + } + + body.px #page header p.contact { + left: 968px; + width: 400px; + } + + body.pct #page header p.contact { + left: 69.5515893%; + width: 29.7532656%; + } + + /* END - Header Styles - END */ + + /* BEGIN - Navigation Bar at the Top of the Page below the header - BEGIN */ + + body #page nav { + top: 72px; + } + + body #page nav ul li, body #page nav ul li a { + height: 36px; + font-size: 18px; + margin-bottom: 0px; + } + + body.px #page nav ul li, body.px #page nav ul li a { + width: 204.66px; + margin-left: 30px; + } + + body.pct #page nav ul li, body.pct #page nav ul li a { + width: 14.8523905%; + margin-left: 2.1770682%; + } + + body #page nav ul li:first-child { + margin-left: 0px; + } + + /* END - Navigation Bar at the Top of the Page below the header - END */ + + /* BEGIN - section Content Block - BEGIN */ + + section { + padding: 10px; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + + body #page section div.block { + float: left; + } + + body #page section div.block:first-child, body#printdesign #page section div.block:first-child { /* Need to declare both body and body#printdesign or this will not work */ + margin-left: 0px; + } + + /* Enlarging the fonts for the maximum browser size */ + + body#resume section ul.tools li { + font-size: 15px; + line-height: 24px; + list-style-type: none; + padding: 12px; + } + + body#resume section ul.tools > li { + list-style-type: none; + margin-left: 3.5em; + text-indent: -3.5em; + } + + tr > td, tr > th { + padding: 7px; + font-size: 15px; + } + + div.row + h2, ul + h2, ul + h3, ul + h4 { + margin-top: 24px; + } + + /* Print Design Portfolio */ + + body#printdesign h2 { + margin-top: 24px; + font-size: 40px; + line-height: 48px; + } + + body#printdesign h3 { + margin-bottom: 24px; + font-size: 20px; + line-height: 24px; + } + + /* End enlargement */ + + /* END - section Content Block - END */ + + /* BEGIN - Footer - BEGIN */ + + #page footer p.credits, #page footer ul.validators li { + font-size: 12px; + line-height: 24px; + } + + /* END - Footer - END */ + +} + diff --git a/_assets/sass/print.scss b/assets/_sass/print.scss similarity index 95% rename from _assets/sass/print.scss rename to assets/_sass/print.scss index fd5be72..7542d99 100644 --- a/_assets/sass/print.scss +++ b/assets/_sass/print.scss @@ -1,55 +1,55 @@ -/* print.css Print Styles */ - -/* Base Styles */ - -/* Bold on headings, b, and strong */ -h1,h2,h3,h4,h5,h6,b,strong { font-weight: bold; } -/* Italic on i, em, and cite: */ -i,em,cite { font-style: italic; } - -/* - Print all text color as black, including links. -*/ - -* { color: black; } - -/* - Hide the accessibility navigation, the site navigation, - and the validator links, which are unhelpful when a page - is printed. -*/ - -ul.accessibility, -ul#navigation, -ul.validators { - display: none; -} - - -/* - Automatically print the URLs from hyperlinks in the - content area of a page, and put them in a monospace font, - in parentheses. - This may not work on less standards-compliant browsers, - which do not support the :after pseudoelement and/or - the content: property. - See http://www.alistapart.com/articles/goingtoprint/ -*/ - -div#content a:link:after, -div#content a:visited:after { - content: " (" attr(href) ") "; - font-size: 90%; - font-family: "Courier New", Courier, monospace; -} - -/* - Treat acronyms and abbreviations similarly, but - run the expansion in the title attribute in - parentheses. -*/ - -abbr:after, -acronym:after { - content: " (" attr(title) ") "; -} +/* print.css Print Styles */ + +/* Base Styles */ + +/* Bold on headings, b, and strong */ +h1,h2,h3,h4,h5,h6,b,strong { font-weight: bold; } +/* Italic on i, em, and cite: */ +i,em,cite { font-style: italic; } + +/* + Print all text color as black, including links. +*/ + +* { color: black; } + +/* + Hide the accessibility navigation, the site navigation, + and the validator links, which are unhelpful when a page + is printed. +*/ + +ul.accessibility, +ul#navigation, +ul.validators { + display: none; +} + + +/* + Automatically print the URLs from hyperlinks in the + content area of a page, and put them in a monospace font, + in parentheses. + This may not work on less standards-compliant browsers, + which do not support the :after pseudoelement and/or + the content: property. + See http://www.alistapart.com/articles/goingtoprint/ +*/ + +div#content a:link:after, +div#content a:visited:after { + content: " (" attr(href) ") "; + font-size: 90%; + font-family: "Courier New", Courier, monospace; +} + +/* + Treat acronyms and abbreviations similarly, but + run the expansion in the title attribute in + parentheses. +*/ + +abbr:after, +acronym:after { + content: " (" attr(title) ") "; +} diff --git a/_assets/sass/reset.scss b/assets/_sass/reset.scss similarity index 97% rename from _assets/sass/reset.scss rename to assets/_sass/reset.scss index 9149ac4..06a8927 100644 --- a/_assets/sass/reset.scss +++ b/assets/_sass/reset.scss @@ -1,15 +1,18 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 2.8.2r1 -*/ -html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;} -/* - Modification: This selector has been commented out; it uses the asterisk hack - (see http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml) which only - matters for IE 7 and earlier. If it is needed, put it in the - css/screen-ie.css file, without the * before font-size (K. Stolley): -*/ -/*input,button,textarea,select{*font-size:100%;}*/ - +--- +--- + +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 2.8.2r1 +*/ +html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;} +/* + Modification: This selector has been commented out; it uses the asterisk hack + (see http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml) which only + matters for IE 7 and earlier. If it is needed, put it in the + css/screen-ie.css file, without the * before font-size (K. Stolley): +*/ +/*input,button,textarea,select{*font-size:100%;}*/ + diff --git a/assets/_sass/screen.scss b/assets/_sass/screen.scss new file mode 100644 index 0000000..b3d9b9d --- /dev/null +++ b/assets/_sass/screen.scss @@ -0,0 +1,726 @@ +--- +--- + +/* screen.css: Screen Styles */ + +/* + +This is set up to go from a 1 column (320px) to 2 column (768px) to 3 column (978px+) home page layout. + +The section fonts are from TypeKit: Museo Sans and Museo Slab Serif. + +*/ + +/* Base Styles */ + +/* Bold on headings, b, and strong */ +h1,h2,h3,h4,h5,h6,b,strong { font-weight: 800; } +/* Italic on i, em, and cite: */ +i,em,cite { font-style: italic; } +/* Dotted border and help cursor to abbr and acronym: */ +abbr,acronym { border-bottom: 1px dotted; cursor: help; } + +html { + background: #361F27; + font-size: 14px; + font-family: 'Roboto', sans-serif; + line-height: 1.5rem; + color: #0D090A; +} + +/* Body */ + +body { + display: flex; + flex-direction: column; +} + +/* Major Divisions */ + +/* Page (Containing Div) */ + +main { + background-color: #EAF2EF; + margin-bottom: 1rem; +} + +p, ul, ol, dl, h1,h2,h3,h4,h5,h6 { + display: block; + margin-block-start: 0px; + margin-block-end: 0px; + margin-inline-start: 0px; + margin-inline-end: 0px; + padding-block-start: 0px; + padding-block-end: 0px; + padding-inline-start: 0px; + padding-inline-end: 0px; + unicode-bidi: isolate; + list-style-position: outside; +} + +/* Header */ + +header { + background-color: #AB3665; + + h1 { + font-family: 'Roboto Slab', serif; + font-weight: 800; + a { + text-decoration: none; + color: #EAF2EF; + } + } + ul.accessibility { + display: none; + } + div.topline { + color: #EAF2EF; + text-align: center; + text-wrap: balance; + } +} + +/* Content */ + +section { + background-color: #EAF2EF; + padding: 1rem; + display: flex; + flex-direction: column; + &.foto-right { + display: flex; + flex-basis: 50%; + flex-direction: row; + gap: 2rem; + & div img { + object-fit: initial; + object-position: center; + aspect-ratio: 3 / 4; + } + & figure figcaption { + font-size: 0.8rem; + text-align: center; + } + } +} + +body#index main section { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + &.foto-right { + grid-template-columns: repeat(2, 1fr); + } +} + +/* Footer */ + +footer { + border-top: 1px solid #600; + background-color: #EAF2EF; + padding: 1rem; + font-size: 0.8rem; +} + +/* Navigation */ + +nav div { + font-family: 'Roboto', sans-serif; + text-align: center; + padding: 0.5rem; + background: #AB3665; + &.selected, &:hover { + background-color: #CAE6E8; + color: #AB3665; + & a { + color: #595855; + } + } + &.selected:hover { + background: #AB3665; + & a { + color: #fff; + } + } + a { + text-decoration:none; + color: #fff; + } +} + +/* Main Content */ + +section { + h1, h2, h3, h4, h5, h6 { + font-family: 'Roboto Slab', serif; + } + h1 { + font-size: 2rem; + line-height: 2rem; + margin-bottom: 0rem; + } + h2 { + font-size: 1.5rem; + margin-bottom: 1rem; + border-bottom: 1px #444 solid; + } + h3 { + font-size: 1.25rem; + margin-bottom: 0.5rem; + } + p { + margin-bottom: 0.75rem; + &.company { + margin-bottom: 0.5rem; + } + } + & * a { + text-decoration: none; + } +} + +section { + div:last-child p:last-child { + margin-bottom: 0rem; + } + p + table { + margin-bottom: 0rem; + } + ul li { + list-style-type: square; + list-style-position: outside; + margin-left: 2rem; + } + a { + color: #AB3665; + text-decoration: none; + &:visited { + color: #444; + } + } + * li ul li, h2 > ul li, h3 > ul li { + list-style-type: square; + list-style-position: outside; + margin-left: 2rem; + // text-indent: -1em; + } +} + +footer a { + color: #521945; + text-decoration: none; + &:visited { + color: #444; + } +} + +div.row + h2, ul + h2, ul + h3, ul + h4, ul + ul { + margin-top: 1rem; +} + +/* Job Tools Block */ + +body#resume main section { + display: flex; + flex-direction: column; + dl.tools { + background-color: #fff; + padding: 1rem; + display: table-row; + border: 1px #AB3665 solid; + margin: 1rem 0; + dt, dd { + font-size: 0.875rem; + line-height: 1.25rem; + display: table-cell; + } + dt { + font-weight: bold; + } + dd { + padding-left: 1rem; + } + } + p.company { + border-top: 1px #AB3665 solid; + font-size: 0.875rem; + } +} + +section { + h3.job, ul.job { + margin-bottom: 0.2rem; + } + ul.job { + display: table-row; + // border: 1px solid black; + flex-direction: row; + width: 100%; + gap: 1rem; + flex-wrap: nowrap; + & > li { + margin-left: 0rem; + list-style-type: none; + display: table-cell; + } + & > li + li { + padding-left: 1.5rem; + } + & > li + li::before { + font-family: "Material Symbols Outlined"; + content: "star"; + float: left; + text-indent: -1.25rem; + font-size: 1rem; + padding-top: 0.5rem; + } + } +} + +// body#resume main section { +// h2, h3, p { +// & > ul li { +// margin-left: 0rem; +// } +// } +// } + +// body#cv main section p { +// text-indent: -3rem; +// padding-left: 3rem; +// } + +/* General Table Formats */ + +th, td { + font-size: 0.8rem; +} + +tr { + & > th { + background-color: #ccc; + padding: 0.3rem; + font-weight: 800; + text-align: center; + } + + &:nth-child(odd) { + background-color:#eee; + } + + &:nth-child(even) { + background-color:#fff; + } +} +table { + &.general { + margin-bottom: 1rem; + border: 1px solid #ccc; + width: 100%; + &:last-child { + margin: 0rem; + border: 1px solid #ccc; + width: 100%; + } + } + &.tiny { + font-size: 0.25rem; + } + &.small > tr > td, &.small > th { + font-size: 0.5rem; + } + &.reg > td { + font-size: 0.75rem; + } + & .hide { + display: none; + } +} + +tr > td { + padding: 0.25rem; + vertical-align: top; +} + +/* Skills Tables */ + +table.skills tr { + & > td { + width: 60%; + padding-left: 10px; + } + & > td + td { + text-align: center; + width: 15%; + padding-left: 0px; + } + &.skilldiv { + background-color: #ddd; + & > td { + padding-left: 20px; + font-weight: 800; + padding-left: 7px; + } + } +} + +/* Resume Writing Tables */ + +table { + &.resumewriting tr th { + text-align: center; + width: 5%; + padding-left: 0px; + &.wide { + text-align: center; + width: 15%; + padding-left: 0px; + } + } +} + +/* Images */ + +img { + max-width: 100%; +} + +/* Grids */ + +/* Basic / 300px Grid */ + +@media screen and (max-width: 767px) { + + html { /* Set font / line height / background */ + line-height: 1.5rem; + font-size: 0.9rem; + } + + header { + order: 1; + height: 5rem; + padding: 1rem; + text-wrap: balance; + h1 { + text-align: center; + line-height: 2rem; + font-size: 2rem; + } + div.topline { + text-align: center; + } + } + + nav { + order: 3; + height: 2.5rem; + padding: 1rem; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; + div { + min-width: 66px; + } + } + + main { + order: 2; + min-width: 320px; /* Minimum set to width of mobile device */ + section { + h2, p { + margin-bottom: 0.5rem; + } + } + } + + footer { + order: 4; + font-size: 0.8rem; + line-height: 1.0rem; + } + + body#resume, body#cv { + main section { + h2, h3 { + padding-top: 0.5rem; + padding-bottom: 0rem; + } + } + } + + div.row, div.row h2 { + margin-top: 1.5rem; + } + + /* Print Design Portfolio */ + + body#printdesign { + h2 { + margin-top: 1.5rem; + font-size: 1.5rem; + line-height: 2rem; + } + h3 { + font-family: 'Roboto', sans-serif; + font-weight: 500; + margin-bottom: 1rem; + } + } + +} + +/* 748 Grid */ + +@media screen and (min-width: 768px) { + + body main { + min-width: 748px; /* Set Minimum Width of 748 px */ + } + + header { + order: 1; + height: 3.5rem; + padding: 1rem; + h1, p { + text-align: left; + } + h1 { + font-size: 1.75rem; + line-height: 2rem; + } + p { + font-size: 0.9rem; + line-height: 1.3rem; + } + div.topline { + color: #fff; + display: flex; /* Enable flexbox layout */ + justify-content: space-between; /* Align items at opposite ends */ + width: 100%; + + div.tagline, + div.contact { + text-wrap: balance; + } + } + + } + + nav { + order: 2; + padding: 1rem; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; + } + + main { + order: 3; + section { + h1 { + text-align: left; + line-height: 2rem; + font-size: 1.25rem; + } + ul.job { + & > li + li::before { + padding-top: 0.1rem; + } + } + } + } + + footer { + order: 4; + font-size: 0.8rem; + line-height: 1.0rem; + } + +} + +/* 978 Grid */ + +@media screen and (min-width: 1002px) { + + html { /* Set font / line height / background */ + line-height: 1.5rem; + font-size: 1rem; + } + + header { + order: 1; + height: 3.5rem; + padding: 1rem; + h1, p { + text-align: left; + } + h1 { + font-size: 1.75rem; + line-height: 2rem; + } + p { + font-size: 0.875rem; + line-height: 1.25rem; + } + } + + nav { + order: 2; + padding: 1rem; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; + } + + main { + order: 3; + } + + footer { + order: 4; + font-size: 0.8rem; + line-height: 1.0rem; + } + + body#home main section { + padding: 1rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; + } + + body main section h1 { + text-align: left; + line-height: 2rem; + font-size: 1.5rem; + } + +} + +/* 1218 Grid */ + +@media screen and (min-width: 1248px) { + + html { /* Set font / line height / background */ + line-height: 1.5rem; + font-size: 1rem; + } + + header { + order: 1; + height: 4rem; + padding: 1rem; + h1 { + text-align: left; + line-height: 2.5rem; + font-size: 2rem; + } + div.contact { + text-align: right; + } + } + + nav { + order: 2; + } + + main { + order: 3; + section h1 { + text-align: left; + line-height: 2rem; + font-size: 1.5rem; + } + } + + footer { + order: 4; + font-size: 0.8rem; + line-height: 1.0rem; + } + + body#home main section { + padding: 1rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + +} + +/* 1378 Grid */ + +@media screen and (min-width: 1408px) { + + html { /* Set font / line height / background */ + line-height: 1.5rem; + font-size: 1.25rem; + } + + header { + order: 1; + height: 4rem; + padding: 1rem; + h1 { + line-height: 3.25rem; + font-size: 3rem; + } + } + + nav { + order: 2; + padding: 1rem; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; + } + + main { + align-self: center; + order: 3; + } + + footer { + order: 4; + } + + body.pct main { + max-width: 1408px; + } + + body#home main section { + padding: 1rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + } + + body main section h1 { + text-align: left; + line-height: 2rem; + font-size: 1.5rem; + } + + tr > td, tr > th { + padding: 0.75rem; + } + + div.row + h2, ul + h2, ul + h3, ul + h4 { + margin-top: 2rem; + } + + body#printdesign { + h2 { + margin-top: 1.5rem; + font-size: 2.5rem; + line-height: 3rem; + } + h3 { + margin-bottom: 1.5rem; + font-size: 1.25rem; + line-height: 1.5rem; + } + } + +} diff --git a/_assets/media/audio/audio-readme.txt b/assets/audio/audio-readme.txt similarity index 98% rename from _assets/media/audio/audio-readme.txt rename to assets/audio/audio-readme.txt index e13b8a8..e604733 100644 --- a/_assets/media/audio/audio-readme.txt +++ b/assets/audio/audio-readme.txt @@ -1 +1 @@ -The audio/ folder should contain all of the audio files for a project. +The audio/ folder should contain all of the audio files for a project. diff --git a/assets/css/reset.scss b/assets/css/reset.scss new file mode 100644 index 0000000..cb41934 --- /dev/null +++ b/assets/css/reset.scss @@ -0,0 +1,5 @@ +--- +layout: none +--- + +@forward '../_sass/reset'; \ No newline at end of file diff --git a/assets/css/screen.scss b/assets/css/screen.scss new file mode 100644 index 0000000..82876ec --- /dev/null +++ b/assets/css/screen.scss @@ -0,0 +1,5 @@ +--- +layout: none +--- + +@forward '../_sass/screen'; \ No newline at end of file diff --git a/_assets/media/img/2005q3DCAAnewsletter_Page_1.png b/assets/img/2005q3DCAAnewsletter_Page_1.png similarity index 100% rename from _assets/media/img/2005q3DCAAnewsletter_Page_1.png rename to assets/img/2005q3DCAAnewsletter_Page_1.png diff --git a/_assets/media/img/201101GCFANewsletter_Page_01.png b/assets/img/201101GCFANewsletter_Page_01.png similarity index 100% rename from _assets/media/img/201101GCFANewsletter_Page_01.png rename to assets/img/201101GCFANewsletter_Page_01.png diff --git a/_assets/media/img/DCAA_Logo.png b/assets/img/DCAA_Logo.png similarity index 100% rename from _assets/media/img/DCAA_Logo.png rename to assets/img/DCAA_Logo.png diff --git a/_assets/media/img/GCFA_Logo.png b/assets/img/GCFA_Logo.png similarity index 100% rename from _assets/media/img/GCFA_Logo.png rename to assets/img/GCFA_Logo.png diff --git a/_assets/media/img/Logo Large Scan.jpg b/assets/img/Logo Large Scan.jpg similarity index 100% rename from _assets/media/img/Logo Large Scan.jpg rename to assets/img/Logo Large Scan.jpg diff --git a/_assets/media/img/agrigento.jpg b/assets/img/agrigento.jpg similarity index 100% rename from _assets/media/img/agrigento.jpg rename to assets/img/agrigento.jpg diff --git a/_assets/media/img/img-readme.txt b/assets/img/img-readme.txt similarity index 98% rename from _assets/media/img/img-readme.txt rename to assets/img/img-readme.txt index 89c72af..16cc1b9 100644 --- a/_assets/media/img/img-readme.txt +++ b/assets/img/img-readme.txt @@ -1,2 +1,2 @@ -The img/ folder should contain all of the image files for a project (.jpg, .png) that are called by -the HTML tag. (Images referred to in the CSS can be stored in the css/gfx/ sub-folder.) +The img/ folder should contain all of the image files for a project (.jpg, .png) that are called by +the HTML tag. (Images referred to in the CSS can be stored in the css/gfx/ sub-folder.) diff --git a/_assets/media/img/mount_etna.jpg b/assets/img/mount_etna.jpg similarity index 100% rename from _assets/media/img/mount_etna.jpg rename to assets/img/mount_etna.jpg diff --git a/_assets/js/jquery/jquery.js b/assets/js/jquery/jquery.js similarity index 99% rename from _assets/js/jquery/jquery.js rename to assets/js/jquery/jquery.js index 14fd647..83296fc 100644 --- a/_assets/js/jquery/jquery.js +++ b/assets/js/jquery/jquery.js @@ -1,16 +1,16 @@ -/*! - * jQuery JavaScript Library v1.5.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Wed Feb 23 13:55:29 2011 -0500 - */ +/*! + * jQuery JavaScript Library v1.5.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Wed Feb 23 13:55:29 2011 -0500 + */ (function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="
a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div
","
"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/_assets/js/js-readme.txt b/assets/js/js-readme.txt similarity index 97% rename from _assets/js/js-readme.txt rename to assets/js/js-readme.txt index cb4ffc9..c53543a 100644 --- a/_assets/js/js-readme.txt +++ b/assets/js/js-readme.txt @@ -1,5 +1,5 @@ -The js/ folder should contain all of the .js files for a project. - -The jquery/ sub-folder contains the jQuery JavaScript Library. - -The swfobject/ sub-folder contains SWFObject. +The js/ folder should contain all of the .js files for a project. + +The jquery/ sub-folder contains the jQuery JavaScript Library. + +The swfobject/ sub-folder contains SWFObject. diff --git a/_assets/js/respond.min.js b/assets/js/respond.min.js similarity index 99% rename from _assets/js/respond.min.js rename to assets/js/respond.min.js index b64a947..42eb9e1 100644 --- a/_assets/js/respond.min.js +++ b/assets/js/respond.min.js @@ -1,3 +1,3 @@ -/*! Respond.js v1.0.1pre: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ -(function(e,h){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=h;if(h){return}var u=e.document,r=u.documentElement,i=[],k=[],p=[],o={},g=30,f=u.getElementsByTagName("head")[0]||r,b=f.getElementsByTagName("link"),d=[],a=function(){var B=b,w=B.length,z=0,y,x,A,v;for(;z=F.minw)&&(!F.maxw||F.maxw&&D<=F.maxw)){if(!z[F.media]){z[F.media]=[]}z[F.media].push(k[F.rules])}}for(var y in p){if(p[y]&&p[y].parentNode===f){f.removeChild(p[y])}}for(var y in z){var G=u.createElement("style"),A=z[y].join("\n");G.type="text/css";G.media=y;if(G.styleSheet){G.styleSheet.cssText=A}else{G.appendChild(u.createTextNode(A))}C.appendChild(G);p.push(G)}f.insertBefore(C,B.nextSibling)},n=function(v,x){var w=c();if(!w){return}w.open("GET",v,true);w.onreadystatechange=function(){if(w.readyState!=4||w.status!=200&&w.status!=304){return}x(w.responseText)};if(w.readyState==4){return}w.send(null)},c=(function(){var v=false;try{v=new XMLHttpRequest()}catch(w){v=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return v}})();a();respond.update=a;function s(){j(true)}if(e.addEventListener){e.addEventListener("resize",s,false)}else{if(e.attachEvent){e.attachEvent("onresize",s)}}})(this,(function(f){if(f.matchMedia){return true}var e,i=document,c=i.documentElement,g=c.firstElementChild||c.firstChild,h=!i.body,d=i.body||i.createElement("body"),b=i.createElement("div"),a="only all";b.id="mq-test-1";b.style.cssText="position:absolute;top:-99em";d.appendChild(b);b.innerHTML='_';if(h){c.insertBefore(d,g)}b.removeChild(b.firstChild);e=b.offsetWidth==9;if(h){c.removeChild(d)}else{d.removeChild(b)}return e})(this)); - +/*! Respond.js v1.0.1pre: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ +(function(e,h){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=h;if(h){return}var u=e.document,r=u.documentElement,i=[],k=[],p=[],o={},g=30,f=u.getElementsByTagName("head")[0]||r,b=f.getElementsByTagName("link"),d=[],a=function(){var B=b,w=B.length,z=0,y,x,A,v;for(;z=F.minw)&&(!F.maxw||F.maxw&&D<=F.maxw)){if(!z[F.media]){z[F.media]=[]}z[F.media].push(k[F.rules])}}for(var y in p){if(p[y]&&p[y].parentNode===f){f.removeChild(p[y])}}for(var y in z){var G=u.createElement("style"),A=z[y].join("\n");G.type="text/css";G.media=y;if(G.styleSheet){G.styleSheet.cssText=A}else{G.appendChild(u.createTextNode(A))}C.appendChild(G);p.push(G)}f.insertBefore(C,B.nextSibling)},n=function(v,x){var w=c();if(!w){return}w.open("GET",v,true);w.onreadystatechange=function(){if(w.readyState!=4||w.status!=200&&w.status!=304){return}x(w.responseText)};if(w.readyState==4){return}w.send(null)},c=(function(){var v=false;try{v=new XMLHttpRequest()}catch(w){v=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return v}})();a();respond.update=a;function s(){j(true)}if(e.addEventListener){e.addEventListener("resize",s,false)}else{if(e.attachEvent){e.attachEvent("onresize",s)}}})(this,(function(f){if(f.matchMedia){return true}var e,i=document,c=i.documentElement,g=c.firstElementChild||c.firstChild,h=!i.body,d=i.body||i.createElement("body"),b=i.createElement("div"),a="only all";b.id="mq-test-1";b.style.cssText="position:absolute;top:-99em";d.appendChild(b);b.innerHTML='_';if(h){c.insertBefore(d,g)}b.removeChild(b.firstChild);e=b.offsetWidth==9;if(h){c.removeChild(d)}else{d.removeChild(b)}return e})(this)); + diff --git a/_assets/js/site.js b/assets/js/site.js similarity index 96% rename from _assets/js/site.js rename to assets/js/site.js index 1f7868a..7cf93c3 100644 --- a/_assets/js/site.js +++ b/assets/js/site.js @@ -1,13 +1,13 @@ -//Site JavaScript - -$(document).ready(function() { - $('body').addClass('hasjs'); - rpkwidescreen(); - $(window).resize(rpkwidescreen); - }); - -function rpkwidescreen() { - var rpkwidth = $(window).width(); - if(rpkwidth>1100) { $('body').addClass('widescreen'); } - else { $('body').removeClass('widescreen'); } -} +//Site JavaScript + +$(document).ready(function() { + $('body').addClass('hasjs'); + rpkwidescreen(); + $(window).resize(rpkwidescreen); + }); + +function rpkwidescreen() { + var rpkwidth = $(window).width(); + if(rpkwidth>1100) { $('body').addClass('widescreen'); } + else { $('body').removeClass('widescreen'); } +} diff --git a/_assets/js/swfobject/expressInstall.swf b/assets/js/swfobject/expressInstall.swf similarity index 100% rename from _assets/js/swfobject/expressInstall.swf rename to assets/js/swfobject/expressInstall.swf diff --git a/_assets/js/swfobject/index.html b/assets/js/swfobject/index.html similarity index 97% rename from _assets/js/swfobject/index.html rename to assets/js/swfobject/index.html index 56a8678..bfe7cfd 100644 --- a/_assets/js/swfobject/index.html +++ b/assets/js/swfobject/index.html @@ -1,28 +1,28 @@ - - - - SWFObject 2 static publishing example page - - - - - -
- - - - - -
-

Alternative content

-

Get Adobe Flash player

-
- -
- -
-
- - + + + + SWFObject 2 static publishing example page + + + + + +
+ + + + + +
+

Alternative content

+

Get Adobe Flash player

+
+ +
+ +
+
+ + diff --git a/_assets/js/swfobject/index_dynamic.html b/assets/js/swfobject/index_dynamic.html similarity index 97% rename from _assets/js/swfobject/index_dynamic.html rename to assets/js/swfobject/index_dynamic.html index 5ca0a55..0109a97 100644 --- a/_assets/js/swfobject/index_dynamic.html +++ b/assets/js/swfobject/index_dynamic.html @@ -1,17 +1,17 @@ - - - - SWFObject 2 dynamic publishing example page - - - - - -
-

Alternative content

-

Get Adobe Flash player

-
- - + + + + SWFObject 2 dynamic publishing example page + + + + + +
+

Alternative content

+

Get Adobe Flash player

+
+ + diff --git a/_assets/js/swfobject/src/expressInstall.as b/assets/js/swfobject/src/expressInstall.as similarity index 97% rename from _assets/js/swfobject/src/expressInstall.as rename to assets/js/swfobject/src/expressInstall.as index ce5973f..b98e592 100644 --- a/_assets/js/swfobject/src/expressInstall.as +++ b/assets/js/swfobject/src/expressInstall.as @@ -1,70 +1,70 @@ -/* SWFObject v2.2 is released under the MIT License - Express Install Copyright (c) 2007-2008 Adobe Systems Incorporated and its licensors. All Rights Reserved. -*/ - -System.security.allowDomain("fpdownload.macromedia.com"); - -var time = 0; -var timeOut = 5; // in seconds -var delay = 10; // in milliseconds -var int_id = setInterval(checkLoaded, delay); -var old_si = null; -var loaderClip = this.createEmptyMovieClip("loaderClip", 0); -var updateSWF = "http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?" + Math.random(); -loaderClip.loadMovie(updateSWF); - -function checkLoaded(){ - time += delay / 1000; - if (time > timeOut) { - // updater did not load in time, abort load and force alternative content - clearInterval(int_id); - loaderClip.unloadMovie(); - loadTimeOut(); - } - else if (loaderClip.startInstall.toString() == "[type Function]") { - // updater has loaded successfully AND has determined that it can do the express install - if (old_si == null) { - old_si = loaderClip.startInstall; - loaderClip.startInstall = function() { - clearInterval(int_id); - old_si(); - } - loadComplete(); - } - } -} - -function loadTimeOut() { - callbackSWFObject(); -} - -function callbackSWFObject() { - getURL("javascript:swfobject.expressInstallCallback();"); -} - -function loadComplete() { - loaderClip.redirectURL = _level0.MMredirectURL; - loaderClip.MMplayerType = _level0.MMplayerType; - loaderClip.MMdoctitle = _level0.MMdoctitle; - loaderClip.startUpdate(); -} - -function installStatus(statusValue) { - switch (statusValue) { - case "Download.Complete": - // Installation is complete. - // In most cases the browser window that this SWF is hosted in will be closed by the installer or otherwise it has to be closed manually by the end user. - // The Adobe Flash installer will attempt to reopen the browser window and reload the page containing the SWF. - break; - case "Download.Cancelled": - // The end user chose "NO" when prompted to install the new player. - // By default the SWFObject callback function is called to force alternative content. - callbackSWFObject(); - break; - case "Download.Failed": - // The end user failed to download the installer due to a network failure. - // By default the SWFObject callback function is called to force alternative content. - callbackSWFObject(); - break; - } -} +/* SWFObject v2.2 is released under the MIT License + Express Install Copyright (c) 2007-2008 Adobe Systems Incorporated and its licensors. All Rights Reserved. +*/ + +System.security.allowDomain("fpdownload.macromedia.com"); + +var time = 0; +var timeOut = 5; // in seconds +var delay = 10; // in milliseconds +var int_id = setInterval(checkLoaded, delay); +var old_si = null; +var loaderClip = this.createEmptyMovieClip("loaderClip", 0); +var updateSWF = "http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?" + Math.random(); +loaderClip.loadMovie(updateSWF); + +function checkLoaded(){ + time += delay / 1000; + if (time > timeOut) { + // updater did not load in time, abort load and force alternative content + clearInterval(int_id); + loaderClip.unloadMovie(); + loadTimeOut(); + } + else if (loaderClip.startInstall.toString() == "[type Function]") { + // updater has loaded successfully AND has determined that it can do the express install + if (old_si == null) { + old_si = loaderClip.startInstall; + loaderClip.startInstall = function() { + clearInterval(int_id); + old_si(); + } + loadComplete(); + } + } +} + +function loadTimeOut() { + callbackSWFObject(); +} + +function callbackSWFObject() { + getURL("javascript:swfobject.expressInstallCallback();"); +} + +function loadComplete() { + loaderClip.redirectURL = _level0.MMredirectURL; + loaderClip.MMplayerType = _level0.MMplayerType; + loaderClip.MMdoctitle = _level0.MMdoctitle; + loaderClip.startUpdate(); +} + +function installStatus(statusValue) { + switch (statusValue) { + case "Download.Complete": + // Installation is complete. + // In most cases the browser window that this SWF is hosted in will be closed by the installer or otherwise it has to be closed manually by the end user. + // The Adobe Flash installer will attempt to reopen the browser window and reload the page containing the SWF. + break; + case "Download.Cancelled": + // The end user chose "NO" when prompted to install the new player. + // By default the SWFObject callback function is called to force alternative content. + callbackSWFObject(); + break; + case "Download.Failed": + // The end user failed to download the installer due to a network failure. + // By default the SWFObject callback function is called to force alternative content. + callbackSWFObject(); + break; + } +} diff --git a/_assets/js/swfobject/src/expressInstall.fla b/assets/js/swfobject/src/expressInstall.fla similarity index 100% rename from _assets/js/swfobject/src/expressInstall.fla rename to assets/js/swfobject/src/expressInstall.fla diff --git a/_assets/js/swfobject/src/swfobject.js b/assets/js/swfobject/src/swfobject.js similarity index 97% rename from _assets/js/swfobject/src/swfobject.js rename to assets/js/swfobject/src/swfobject.js index 9378c8f..3fb7099 100644 --- a/_assets/js/swfobject/src/swfobject.js +++ b/assets/js/swfobject/src/swfobject.js @@ -1,777 +1,777 @@ -/*! SWFObject v2.2 - is released under the MIT License -*/ - -var swfobject = function() { - - var UNDEF = "undefined", - OBJECT = "object", - SHOCKWAVE_FLASH = "Shockwave Flash", - SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", - FLASH_MIME_TYPE = "application/x-shockwave-flash", - EXPRESS_INSTALL_ID = "SWFObjectExprInst", - ON_READY_STATE_CHANGE = "onreadystatechange", - - win = window, - doc = document, - nav = navigator, - - plugin = false, - domLoadFnArr = [main], - regObjArr = [], - objIdArr = [], - listenersArr = [], - storedAltContent, - storedAltContentId, - storedCallbackFn, - storedCallbackObj, - isDomLoaded = false, - isExpressInstallActive = false, - dynamicStylesheet, - dynamicStylesheetMedia, - autoHideShow = true, - - /* Centralized function for browser feature detection - - User agent string detection is only used when no good alternative is possible - - Is executed directly for optimal performance - */ - ua = function() { - var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF, - u = nav.userAgent.toLowerCase(), - p = nav.platform.toLowerCase(), - windows = p ? /win/.test(p) : /win/.test(u), - mac = p ? /mac/.test(p) : /mac/.test(u), - webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit - ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html - playerVersion = [0,0,0], - d = null; - if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) { - d = nav.plugins[SHOCKWAVE_FLASH].description; - if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+ - plugin = true; - ie = false; // cascaded feature detection for Internet Explorer - d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); - playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); - playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); - playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0; - } - } - else if (typeof win.ActiveXObject != UNDEF) { - try { - var a = new ActiveXObject(SHOCKWAVE_FLASH_AX); - if (a) { // a will return null when ActiveX is disabled - d = a.GetVariable("$version"); - if (d) { - ie = true; // cascaded feature detection for Internet Explorer - d = d.split(" ")[1].split(","); - playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; - } - } - } - catch(e) {} - } - return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac }; - }(), - - /* Cross-browser onDomLoad - - Will fire an event as soon as the DOM of a web page is loaded - - Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/ - - Regular onload serves as fallback - */ - onDomLoad = function() { - if (!ua.w3) { return; } - if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically - callDomLoadFunctions(); - } - if (!isDomLoaded) { - if (typeof doc.addEventListener != UNDEF) { - doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false); - } - if (ua.ie && ua.win) { - doc.attachEvent(ON_READY_STATE_CHANGE, function() { - if (doc.readyState == "complete") { - doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee); - callDomLoadFunctions(); - } - }); - if (win == top) { // if not inside an iframe - (function(){ - if (isDomLoaded) { return; } - try { - doc.documentElement.doScroll("left"); - } - catch(e) { - setTimeout(arguments.callee, 0); - return; - } - callDomLoadFunctions(); - })(); - } - } - if (ua.wk) { - (function(){ - if (isDomLoaded) { return; } - if (!/loaded|complete/.test(doc.readyState)) { - setTimeout(arguments.callee, 0); - return; - } - callDomLoadFunctions(); - })(); - } - addLoadEvent(callDomLoadFunctions); - } - }(); - - function callDomLoadFunctions() { - if (isDomLoaded) { return; } - try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early - var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span")); - t.parentNode.removeChild(t); - } - catch (e) { return; } - isDomLoaded = true; - var dl = domLoadFnArr.length; - for (var i = 0; i < dl; i++) { - domLoadFnArr[i](); - } - } - - function addDomLoadEvent(fn) { - if (isDomLoaded) { - fn(); - } - else { - domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+ - } - } - - /* Cross-browser onload - - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/ - - Will fire an event as soon as a web page including all of its assets are loaded - */ - function addLoadEvent(fn) { - if (typeof win.addEventListener != UNDEF) { - win.addEventListener("load", fn, false); - } - else if (typeof doc.addEventListener != UNDEF) { - doc.addEventListener("load", fn, false); - } - else if (typeof win.attachEvent != UNDEF) { - addListener(win, "onload", fn); - } - else if (typeof win.onload == "function") { - var fnOld = win.onload; - win.onload = function() { - fnOld(); - fn(); - }; - } - else { - win.onload = fn; - } - } - - /* Main function - - Will preferably execute onDomLoad, otherwise onload (as a fallback) - */ - function main() { - if (plugin) { - testPlayerVersion(); - } - else { - matchVersions(); - } - } - - /* Detect the Flash Player version for non-Internet Explorer browsers - - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description: - a. Both release and build numbers can be detected - b. Avoid wrong descriptions by corrupt installers provided by Adobe - c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports - - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available - */ - function testPlayerVersion() { - var b = doc.getElementsByTagName("body")[0]; - var o = createElement(OBJECT); - o.setAttribute("type", FLASH_MIME_TYPE); - var t = b.appendChild(o); - if (t) { - var counter = 0; - (function(){ - if (typeof t.GetVariable != UNDEF) { - var d = t.GetVariable("$version"); - if (d) { - d = d.split(" ")[1].split(","); - ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; - } - } - else if (counter < 10) { - counter++; - setTimeout(arguments.callee, 10); - return; - } - b.removeChild(o); - t = null; - matchVersions(); - })(); - } - else { - matchVersions(); - } - } - - /* Perform Flash Player and SWF version matching; static publishing only - */ - function matchVersions() { - var rl = regObjArr.length; - if (rl > 0) { - for (var i = 0; i < rl; i++) { // for each registered object element - var id = regObjArr[i].id; - var cb = regObjArr[i].callbackFn; - var cbObj = {success:false, id:id}; - if (ua.pv[0] > 0) { - var obj = getElementById(id); - if (obj) { - if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match! - setVisibility(id, true); - if (cb) { - cbObj.success = true; - cbObj.ref = getObjectById(id); - cb(cbObj); - } - } - else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported - var att = {}; - att.data = regObjArr[i].expressInstall; - att.width = obj.getAttribute("width") || "0"; - att.height = obj.getAttribute("height") || "0"; - if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); } - if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); } - // parse HTML object param element's name-value pairs - var par = {}; - var p = obj.getElementsByTagName("param"); - var pl = p.length; - for (var j = 0; j < pl; j++) { - if (p[j].getAttribute("name").toLowerCase() != "movie") { - par[p[j].getAttribute("name")] = p[j].getAttribute("value"); - } - } - showExpressInstall(att, par, id, cb); - } - else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF - displayAltContent(obj); - if (cb) { cb(cbObj); } - } - } - } - else { // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content) - setVisibility(id, true); - if (cb) { - var o = getObjectById(id); // test whether there is an HTML object element or not - if (o && typeof o.SetVariable != UNDEF) { - cbObj.success = true; - cbObj.ref = o; - } - cb(cbObj); - } - } - } - } - } - - function getObjectById(objectIdStr) { - var r = null; - var o = getElementById(objectIdStr); - if (o && o.nodeName == "OBJECT") { - if (typeof o.SetVariable != UNDEF) { - r = o; - } - else { - var n = o.getElementsByTagName(OBJECT)[0]; - if (n) { - r = n; - } - } - } - return r; - } - - /* Requirements for Adobe Express Install - - only one instance can be active at a time - - fp 6.0.65 or higher - - Win/Mac OS only - - no Webkit engines older than version 312 - */ - function canExpressInstall() { - return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312); - } - - /* Show the Adobe Express Install dialog - - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75 - */ - function showExpressInstall(att, par, replaceElemIdStr, callbackFn) { - isExpressInstallActive = true; - storedCallbackFn = callbackFn || null; - storedCallbackObj = {success:false, id:replaceElemIdStr}; - var obj = getElementById(replaceElemIdStr); - if (obj) { - if (obj.nodeName == "OBJECT") { // static publishing - storedAltContent = abstractAltContent(obj); - storedAltContentId = null; - } - else { // dynamic publishing - storedAltContent = obj; - storedAltContentId = replaceElemIdStr; - } - att.id = EXPRESS_INSTALL_ID; - if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; } - if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; } - doc.title = doc.title.slice(0, 47) + " - Flash Player Installation"; - var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn", - fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title; - if (typeof par.flashvars != UNDEF) { - par.flashvars += "&" + fv; - } - else { - par.flashvars = fv; - } - // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it, - // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work - if (ua.ie && ua.win && obj.readyState != 4) { - var newObj = createElement("div"); - replaceElemIdStr += "SWFObjectNew"; - newObj.setAttribute("id", replaceElemIdStr); - obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - obj.parentNode.removeChild(obj); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - createSWF(att, par, replaceElemIdStr); - } - } - - /* Functions to abstract and display alternative content - */ - function displayAltContent(obj) { - if (ua.ie && ua.win && obj.readyState != 4) { - // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it, - // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work - var el = createElement("div"); - obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content - el.parentNode.replaceChild(abstractAltContent(obj), el); - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - obj.parentNode.removeChild(obj); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - else { - obj.parentNode.replaceChild(abstractAltContent(obj), obj); - } - } - - function abstractAltContent(obj) { - var ac = createElement("div"); - if (ua.win && ua.ie) { - ac.innerHTML = obj.innerHTML; - } - else { - var nestedObj = obj.getElementsByTagName(OBJECT)[0]; - if (nestedObj) { - var c = nestedObj.childNodes; - if (c) { - var cl = c.length; - for (var i = 0; i < cl; i++) { - if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) { - ac.appendChild(c[i].cloneNode(true)); - } - } - } - } - } - return ac; - } - - /* Cross-browser dynamic SWF creation - */ - function createSWF(attObj, parObj, id) { - var r, el = getElementById(id); - if (ua.wk && ua.wk < 312) { return r; } - if (el) { - if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content - attObj.id = id; - } - if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML - var att = ""; - for (var i in attObj) { - if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries - if (i.toLowerCase() == "data") { - parObj.movie = attObj[i]; - } - else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword - att += ' class="' + attObj[i] + '"'; - } - else if (i.toLowerCase() != "classid") { - att += ' ' + i + '="' + attObj[i] + '"'; - } - } - } - var par = ""; - for (var j in parObj) { - if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries - par += ''; - } - } - el.outerHTML = '' + par + ''; - objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only) - r = getElementById(attObj.id); - } - else { // well-behaving browsers - var o = createElement(OBJECT); - o.setAttribute("type", FLASH_MIME_TYPE); - for (var m in attObj) { - if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries - if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword - o.setAttribute("class", attObj[m]); - } - else if (m.toLowerCase() != "classid") { // filter out IE specific attribute - o.setAttribute(m, attObj[m]); - } - } - } - for (var n in parObj) { - if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element - createObjParam(o, n, parObj[n]); - } - } - el.parentNode.replaceChild(o, el); - r = o; - } - } - return r; - } - - function createObjParam(el, pName, pValue) { - var p = createElement("param"); - p.setAttribute("name", pName); - p.setAttribute("value", pValue); - el.appendChild(p); - } - - /* Cross-browser SWF removal - - Especially needed to safely and completely remove a SWF in Internet Explorer - */ - function removeSWF(id) { - var obj = getElementById(id); - if (obj && obj.nodeName == "OBJECT") { - if (ua.ie && ua.win) { - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - removeObjectInIE(id); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - else { - obj.parentNode.removeChild(obj); - } - } - } - - function removeObjectInIE(id) { - var obj = getElementById(id); - if (obj) { - for (var i in obj) { - if (typeof obj[i] == "function") { - obj[i] = null; - } - } - obj.parentNode.removeChild(obj); - } - } - - /* Functions to optimize JavaScript compression - */ - function getElementById(id) { - var el = null; - try { - el = doc.getElementById(id); - } - catch (e) {} - return el; - } - - function createElement(el) { - return doc.createElement(el); - } - - /* Updated attachEvent function for Internet Explorer - - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks - */ - function addListener(target, eventType, fn) { - target.attachEvent(eventType, fn); - listenersArr[listenersArr.length] = [target, eventType, fn]; - } - - /* Flash Player and SWF content version matching - */ - function hasPlayerVersion(rv) { - var pv = ua.pv, v = rv.split("."); - v[0] = parseInt(v[0], 10); - v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" - v[2] = parseInt(v[2], 10) || 0; - return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; - } - - /* Cross-browser dynamic CSS creation - - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php - */ - function createCSS(sel, decl, media, newStyle) { - if (ua.ie && ua.mac) { return; } - var h = doc.getElementsByTagName("head")[0]; - if (!h) { return; } // to also support badly authored HTML pages that lack a head element - var m = (media && typeof media == "string") ? media : "screen"; - if (newStyle) { - dynamicStylesheet = null; - dynamicStylesheetMedia = null; - } - if (!dynamicStylesheet || dynamicStylesheetMedia != m) { - // create dynamic stylesheet + get a global reference to it - var s = createElement("style"); - s.setAttribute("type", "text/css"); - s.setAttribute("media", m); - dynamicStylesheet = h.appendChild(s); - if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) { - dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1]; - } - dynamicStylesheetMedia = m; - } - // add style rule - if (ua.ie && ua.win) { - if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) { - dynamicStylesheet.addRule(sel, decl); - } - } - else { - if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) { - dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}")); - } - } - } - - function setVisibility(id, isVisible) { - if (!autoHideShow) { return; } - var v = isVisible ? "visible" : "hidden"; - if (isDomLoaded && getElementById(id)) { - getElementById(id).style.visibility = v; - } - else { - createCSS("#" + id, "visibility:" + v); - } - } - - /* Filter to avoid XSS attacks - */ - function urlEncodeIfNecessary(s) { - var regex = /[\\\"<>\.;]/; - var hasBadChars = regex.exec(s) != null; - return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s; - } - - /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only) - */ - var cleanup = function() { - if (ua.ie && ua.win) { - window.attachEvent("onunload", function() { - // remove listeners to avoid memory leaks - var ll = listenersArr.length; - for (var i = 0; i < ll; i++) { - listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]); - } - // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect - var il = objIdArr.length; - for (var j = 0; j < il; j++) { - removeSWF(objIdArr[j]); - } - // cleanup library's main closures to avoid memory leaks - for (var k in ua) { - ua[k] = null; - } - ua = null; - for (var l in swfobject) { - swfobject[l] = null; - } - swfobject = null; - }); - } - }(); - - return { - /* Public API - - Reference: http://code.google.com/p/swfobject/wiki/documentation - */ - registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) { - if (ua.w3 && objectIdStr && swfVersionStr) { - var regObj = {}; - regObj.id = objectIdStr; - regObj.swfVersion = swfVersionStr; - regObj.expressInstall = xiSwfUrlStr; - regObj.callbackFn = callbackFn; - regObjArr[regObjArr.length] = regObj; - setVisibility(objectIdStr, false); - } - else if (callbackFn) { - callbackFn({success:false, id:objectIdStr}); - } - }, - - getObjectById: function(objectIdStr) { - if (ua.w3) { - return getObjectById(objectIdStr); - } - }, - - embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) { - var callbackObj = {success:false, id:replaceElemIdStr}; - if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) { - setVisibility(replaceElemIdStr, false); - addDomLoadEvent(function() { - widthStr += ""; // auto-convert to string - heightStr += ""; - var att = {}; - if (attObj && typeof attObj === OBJECT) { - for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs - att[i] = attObj[i]; - } - } - att.data = swfUrlStr; - att.width = widthStr; - att.height = heightStr; - var par = {}; - if (parObj && typeof parObj === OBJECT) { - for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs - par[j] = parObj[j]; - } - } - if (flashvarsObj && typeof flashvarsObj === OBJECT) { - for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs - if (typeof par.flashvars != UNDEF) { - par.flashvars += "&" + k + "=" + flashvarsObj[k]; - } - else { - par.flashvars = k + "=" + flashvarsObj[k]; - } - } - } - if (hasPlayerVersion(swfVersionStr)) { // create SWF - var obj = createSWF(att, par, replaceElemIdStr); - if (att.id == replaceElemIdStr) { - setVisibility(replaceElemIdStr, true); - } - callbackObj.success = true; - callbackObj.ref = obj; - } - else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install - att.data = xiSwfUrlStr; - showExpressInstall(att, par, replaceElemIdStr, callbackFn); - return; - } - else { // show alternative content - setVisibility(replaceElemIdStr, true); - } - if (callbackFn) { callbackFn(callbackObj); } - }); - } - else if (callbackFn) { callbackFn(callbackObj); } - }, - - switchOffAutoHideShow: function() { - autoHideShow = false; - }, - - ua: ua, - - getFlashPlayerVersion: function() { - return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; - }, - - hasFlashPlayerVersion: hasPlayerVersion, - - createSWF: function(attObj, parObj, replaceElemIdStr) { - if (ua.w3) { - return createSWF(attObj, parObj, replaceElemIdStr); - } - else { - return undefined; - } - }, - - showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) { - if (ua.w3 && canExpressInstall()) { - showExpressInstall(att, par, replaceElemIdStr, callbackFn); - } - }, - - removeSWF: function(objElemIdStr) { - if (ua.w3) { - removeSWF(objElemIdStr); - } - }, - - createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) { - if (ua.w3) { - createCSS(selStr, declStr, mediaStr, newStyleBoolean); - } - }, - - addDomLoadEvent: addDomLoadEvent, - - addLoadEvent: addLoadEvent, - - getQueryParamValue: function(param) { - var q = doc.location.search || doc.location.hash; - if (q) { - if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark - if (param == null) { - return urlEncodeIfNecessary(q); - } - var pairs = q.split("&"); - for (var i = 0; i < pairs.length; i++) { - if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { - return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1))); - } - } - } - return ""; - }, - - // For internal usage only - expressInstallCallback: function() { - if (isExpressInstallActive) { - var obj = getElementById(EXPRESS_INSTALL_ID); - if (obj && storedAltContent) { - obj.parentNode.replaceChild(storedAltContent, obj); - if (storedAltContentId) { - setVisibility(storedAltContentId, true); - if (ua.ie && ua.win) { storedAltContent.style.display = "block"; } - } - if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); } - } - isExpressInstallActive = false; - } - } - }; -}(); +/*! SWFObject v2.2 + is released under the MIT License +*/ + +var swfobject = function() { + + var UNDEF = "undefined", + OBJECT = "object", + SHOCKWAVE_FLASH = "Shockwave Flash", + SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", + FLASH_MIME_TYPE = "application/x-shockwave-flash", + EXPRESS_INSTALL_ID = "SWFObjectExprInst", + ON_READY_STATE_CHANGE = "onreadystatechange", + + win = window, + doc = document, + nav = navigator, + + plugin = false, + domLoadFnArr = [main], + regObjArr = [], + objIdArr = [], + listenersArr = [], + storedAltContent, + storedAltContentId, + storedCallbackFn, + storedCallbackObj, + isDomLoaded = false, + isExpressInstallActive = false, + dynamicStylesheet, + dynamicStylesheetMedia, + autoHideShow = true, + + /* Centralized function for browser feature detection + - User agent string detection is only used when no good alternative is possible + - Is executed directly for optimal performance + */ + ua = function() { + var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF, + u = nav.userAgent.toLowerCase(), + p = nav.platform.toLowerCase(), + windows = p ? /win/.test(p) : /win/.test(u), + mac = p ? /mac/.test(p) : /mac/.test(u), + webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit + ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html + playerVersion = [0,0,0], + d = null; + if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) { + d = nav.plugins[SHOCKWAVE_FLASH].description; + if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+ + plugin = true; + ie = false; // cascaded feature detection for Internet Explorer + d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); + playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); + playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); + playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0; + } + } + else if (typeof win.ActiveXObject != UNDEF) { + try { + var a = new ActiveXObject(SHOCKWAVE_FLASH_AX); + if (a) { // a will return null when ActiveX is disabled + d = a.GetVariable("$version"); + if (d) { + ie = true; // cascaded feature detection for Internet Explorer + d = d.split(" ")[1].split(","); + playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + } + } + catch(e) {} + } + return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac }; + }(), + + /* Cross-browser onDomLoad + - Will fire an event as soon as the DOM of a web page is loaded + - Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/ + - Regular onload serves as fallback + */ + onDomLoad = function() { + if (!ua.w3) { return; } + if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically + callDomLoadFunctions(); + } + if (!isDomLoaded) { + if (typeof doc.addEventListener != UNDEF) { + doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false); + } + if (ua.ie && ua.win) { + doc.attachEvent(ON_READY_STATE_CHANGE, function() { + if (doc.readyState == "complete") { + doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee); + callDomLoadFunctions(); + } + }); + if (win == top) { // if not inside an iframe + (function(){ + if (isDomLoaded) { return; } + try { + doc.documentElement.doScroll("left"); + } + catch(e) { + setTimeout(arguments.callee, 0); + return; + } + callDomLoadFunctions(); + })(); + } + } + if (ua.wk) { + (function(){ + if (isDomLoaded) { return; } + if (!/loaded|complete/.test(doc.readyState)) { + setTimeout(arguments.callee, 0); + return; + } + callDomLoadFunctions(); + })(); + } + addLoadEvent(callDomLoadFunctions); + } + }(); + + function callDomLoadFunctions() { + if (isDomLoaded) { return; } + try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early + var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span")); + t.parentNode.removeChild(t); + } + catch (e) { return; } + isDomLoaded = true; + var dl = domLoadFnArr.length; + for (var i = 0; i < dl; i++) { + domLoadFnArr[i](); + } + } + + function addDomLoadEvent(fn) { + if (isDomLoaded) { + fn(); + } + else { + domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+ + } + } + + /* Cross-browser onload + - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/ + - Will fire an event as soon as a web page including all of its assets are loaded + */ + function addLoadEvent(fn) { + if (typeof win.addEventListener != UNDEF) { + win.addEventListener("load", fn, false); + } + else if (typeof doc.addEventListener != UNDEF) { + doc.addEventListener("load", fn, false); + } + else if (typeof win.attachEvent != UNDEF) { + addListener(win, "onload", fn); + } + else if (typeof win.onload == "function") { + var fnOld = win.onload; + win.onload = function() { + fnOld(); + fn(); + }; + } + else { + win.onload = fn; + } + } + + /* Main function + - Will preferably execute onDomLoad, otherwise onload (as a fallback) + */ + function main() { + if (plugin) { + testPlayerVersion(); + } + else { + matchVersions(); + } + } + + /* Detect the Flash Player version for non-Internet Explorer browsers + - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description: + a. Both release and build numbers can be detected + b. Avoid wrong descriptions by corrupt installers provided by Adobe + c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports + - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available + */ + function testPlayerVersion() { + var b = doc.getElementsByTagName("body")[0]; + var o = createElement(OBJECT); + o.setAttribute("type", FLASH_MIME_TYPE); + var t = b.appendChild(o); + if (t) { + var counter = 0; + (function(){ + if (typeof t.GetVariable != UNDEF) { + var d = t.GetVariable("$version"); + if (d) { + d = d.split(" ")[1].split(","); + ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + } + else if (counter < 10) { + counter++; + setTimeout(arguments.callee, 10); + return; + } + b.removeChild(o); + t = null; + matchVersions(); + })(); + } + else { + matchVersions(); + } + } + + /* Perform Flash Player and SWF version matching; static publishing only + */ + function matchVersions() { + var rl = regObjArr.length; + if (rl > 0) { + for (var i = 0; i < rl; i++) { // for each registered object element + var id = regObjArr[i].id; + var cb = regObjArr[i].callbackFn; + var cbObj = {success:false, id:id}; + if (ua.pv[0] > 0) { + var obj = getElementById(id); + if (obj) { + if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match! + setVisibility(id, true); + if (cb) { + cbObj.success = true; + cbObj.ref = getObjectById(id); + cb(cbObj); + } + } + else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported + var att = {}; + att.data = regObjArr[i].expressInstall; + att.width = obj.getAttribute("width") || "0"; + att.height = obj.getAttribute("height") || "0"; + if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); } + if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); } + // parse HTML object param element's name-value pairs + var par = {}; + var p = obj.getElementsByTagName("param"); + var pl = p.length; + for (var j = 0; j < pl; j++) { + if (p[j].getAttribute("name").toLowerCase() != "movie") { + par[p[j].getAttribute("name")] = p[j].getAttribute("value"); + } + } + showExpressInstall(att, par, id, cb); + } + else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF + displayAltContent(obj); + if (cb) { cb(cbObj); } + } + } + } + else { // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content) + setVisibility(id, true); + if (cb) { + var o = getObjectById(id); // test whether there is an HTML object element or not + if (o && typeof o.SetVariable != UNDEF) { + cbObj.success = true; + cbObj.ref = o; + } + cb(cbObj); + } + } + } + } + } + + function getObjectById(objectIdStr) { + var r = null; + var o = getElementById(objectIdStr); + if (o && o.nodeName == "OBJECT") { + if (typeof o.SetVariable != UNDEF) { + r = o; + } + else { + var n = o.getElementsByTagName(OBJECT)[0]; + if (n) { + r = n; + } + } + } + return r; + } + + /* Requirements for Adobe Express Install + - only one instance can be active at a time + - fp 6.0.65 or higher + - Win/Mac OS only + - no Webkit engines older than version 312 + */ + function canExpressInstall() { + return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312); + } + + /* Show the Adobe Express Install dialog + - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75 + */ + function showExpressInstall(att, par, replaceElemIdStr, callbackFn) { + isExpressInstallActive = true; + storedCallbackFn = callbackFn || null; + storedCallbackObj = {success:false, id:replaceElemIdStr}; + var obj = getElementById(replaceElemIdStr); + if (obj) { + if (obj.nodeName == "OBJECT") { // static publishing + storedAltContent = abstractAltContent(obj); + storedAltContentId = null; + } + else { // dynamic publishing + storedAltContent = obj; + storedAltContentId = replaceElemIdStr; + } + att.id = EXPRESS_INSTALL_ID; + if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; } + if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; } + doc.title = doc.title.slice(0, 47) + " - Flash Player Installation"; + var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn", + fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title; + if (typeof par.flashvars != UNDEF) { + par.flashvars += "&" + fv; + } + else { + par.flashvars = fv; + } + // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it, + // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work + if (ua.ie && ua.win && obj.readyState != 4) { + var newObj = createElement("div"); + replaceElemIdStr += "SWFObjectNew"; + newObj.setAttribute("id", replaceElemIdStr); + obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf + obj.style.display = "none"; + (function(){ + if (obj.readyState == 4) { + obj.parentNode.removeChild(obj); + } + else { + setTimeout(arguments.callee, 10); + } + })(); + } + createSWF(att, par, replaceElemIdStr); + } + } + + /* Functions to abstract and display alternative content + */ + function displayAltContent(obj) { + if (ua.ie && ua.win && obj.readyState != 4) { + // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it, + // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work + var el = createElement("div"); + obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content + el.parentNode.replaceChild(abstractAltContent(obj), el); + obj.style.display = "none"; + (function(){ + if (obj.readyState == 4) { + obj.parentNode.removeChild(obj); + } + else { + setTimeout(arguments.callee, 10); + } + })(); + } + else { + obj.parentNode.replaceChild(abstractAltContent(obj), obj); + } + } + + function abstractAltContent(obj) { + var ac = createElement("div"); + if (ua.win && ua.ie) { + ac.innerHTML = obj.innerHTML; + } + else { + var nestedObj = obj.getElementsByTagName(OBJECT)[0]; + if (nestedObj) { + var c = nestedObj.childNodes; + if (c) { + var cl = c.length; + for (var i = 0; i < cl; i++) { + if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) { + ac.appendChild(c[i].cloneNode(true)); + } + } + } + } + } + return ac; + } + + /* Cross-browser dynamic SWF creation + */ + function createSWF(attObj, parObj, id) { + var r, el = getElementById(id); + if (ua.wk && ua.wk < 312) { return r; } + if (el) { + if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content + attObj.id = id; + } + if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML + var att = ""; + for (var i in attObj) { + if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries + if (i.toLowerCase() == "data") { + parObj.movie = attObj[i]; + } + else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword + att += ' class="' + attObj[i] + '"'; + } + else if (i.toLowerCase() != "classid") { + att += ' ' + i + '="' + attObj[i] + '"'; + } + } + } + var par = ""; + for (var j in parObj) { + if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries + par += ''; + } + } + el.outerHTML = '' + par + ''; + objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only) + r = getElementById(attObj.id); + } + else { // well-behaving browsers + var o = createElement(OBJECT); + o.setAttribute("type", FLASH_MIME_TYPE); + for (var m in attObj) { + if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries + if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword + o.setAttribute("class", attObj[m]); + } + else if (m.toLowerCase() != "classid") { // filter out IE specific attribute + o.setAttribute(m, attObj[m]); + } + } + } + for (var n in parObj) { + if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element + createObjParam(o, n, parObj[n]); + } + } + el.parentNode.replaceChild(o, el); + r = o; + } + } + return r; + } + + function createObjParam(el, pName, pValue) { + var p = createElement("param"); + p.setAttribute("name", pName); + p.setAttribute("value", pValue); + el.appendChild(p); + } + + /* Cross-browser SWF removal + - Especially needed to safely and completely remove a SWF in Internet Explorer + */ + function removeSWF(id) { + var obj = getElementById(id); + if (obj && obj.nodeName == "OBJECT") { + if (ua.ie && ua.win) { + obj.style.display = "none"; + (function(){ + if (obj.readyState == 4) { + removeObjectInIE(id); + } + else { + setTimeout(arguments.callee, 10); + } + })(); + } + else { + obj.parentNode.removeChild(obj); + } + } + } + + function removeObjectInIE(id) { + var obj = getElementById(id); + if (obj) { + for (var i in obj) { + if (typeof obj[i] == "function") { + obj[i] = null; + } + } + obj.parentNode.removeChild(obj); + } + } + + /* Functions to optimize JavaScript compression + */ + function getElementById(id) { + var el = null; + try { + el = doc.getElementById(id); + } + catch (e) {} + return el; + } + + function createElement(el) { + return doc.createElement(el); + } + + /* Updated attachEvent function for Internet Explorer + - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks + */ + function addListener(target, eventType, fn) { + target.attachEvent(eventType, fn); + listenersArr[listenersArr.length] = [target, eventType, fn]; + } + + /* Flash Player and SWF content version matching + */ + function hasPlayerVersion(rv) { + var pv = ua.pv, v = rv.split("."); + v[0] = parseInt(v[0], 10); + v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" + v[2] = parseInt(v[2], 10) || 0; + return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; + } + + /* Cross-browser dynamic CSS creation + - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php + */ + function createCSS(sel, decl, media, newStyle) { + if (ua.ie && ua.mac) { return; } + var h = doc.getElementsByTagName("head")[0]; + if (!h) { return; } // to also support badly authored HTML pages that lack a head element + var m = (media && typeof media == "string") ? media : "screen"; + if (newStyle) { + dynamicStylesheet = null; + dynamicStylesheetMedia = null; + } + if (!dynamicStylesheet || dynamicStylesheetMedia != m) { + // create dynamic stylesheet + get a global reference to it + var s = createElement("style"); + s.setAttribute("type", "text/css"); + s.setAttribute("media", m); + dynamicStylesheet = h.appendChild(s); + if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) { + dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1]; + } + dynamicStylesheetMedia = m; + } + // add style rule + if (ua.ie && ua.win) { + if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) { + dynamicStylesheet.addRule(sel, decl); + } + } + else { + if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) { + dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}")); + } + } + } + + function setVisibility(id, isVisible) { + if (!autoHideShow) { return; } + var v = isVisible ? "visible" : "hidden"; + if (isDomLoaded && getElementById(id)) { + getElementById(id).style.visibility = v; + } + else { + createCSS("#" + id, "visibility:" + v); + } + } + + /* Filter to avoid XSS attacks + */ + function urlEncodeIfNecessary(s) { + var regex = /[\\\"<>\.;]/; + var hasBadChars = regex.exec(s) != null; + return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s; + } + + /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only) + */ + var cleanup = function() { + if (ua.ie && ua.win) { + window.attachEvent("onunload", function() { + // remove listeners to avoid memory leaks + var ll = listenersArr.length; + for (var i = 0; i < ll; i++) { + listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]); + } + // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect + var il = objIdArr.length; + for (var j = 0; j < il; j++) { + removeSWF(objIdArr[j]); + } + // cleanup library's main closures to avoid memory leaks + for (var k in ua) { + ua[k] = null; + } + ua = null; + for (var l in swfobject) { + swfobject[l] = null; + } + swfobject = null; + }); + } + }(); + + return { + /* Public API + - Reference: http://code.google.com/p/swfobject/wiki/documentation + */ + registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) { + if (ua.w3 && objectIdStr && swfVersionStr) { + var regObj = {}; + regObj.id = objectIdStr; + regObj.swfVersion = swfVersionStr; + regObj.expressInstall = xiSwfUrlStr; + regObj.callbackFn = callbackFn; + regObjArr[regObjArr.length] = regObj; + setVisibility(objectIdStr, false); + } + else if (callbackFn) { + callbackFn({success:false, id:objectIdStr}); + } + }, + + getObjectById: function(objectIdStr) { + if (ua.w3) { + return getObjectById(objectIdStr); + } + }, + + embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) { + var callbackObj = {success:false, id:replaceElemIdStr}; + if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) { + setVisibility(replaceElemIdStr, false); + addDomLoadEvent(function() { + widthStr += ""; // auto-convert to string + heightStr += ""; + var att = {}; + if (attObj && typeof attObj === OBJECT) { + for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs + att[i] = attObj[i]; + } + } + att.data = swfUrlStr; + att.width = widthStr; + att.height = heightStr; + var par = {}; + if (parObj && typeof parObj === OBJECT) { + for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs + par[j] = parObj[j]; + } + } + if (flashvarsObj && typeof flashvarsObj === OBJECT) { + for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs + if (typeof par.flashvars != UNDEF) { + par.flashvars += "&" + k + "=" + flashvarsObj[k]; + } + else { + par.flashvars = k + "=" + flashvarsObj[k]; + } + } + } + if (hasPlayerVersion(swfVersionStr)) { // create SWF + var obj = createSWF(att, par, replaceElemIdStr); + if (att.id == replaceElemIdStr) { + setVisibility(replaceElemIdStr, true); + } + callbackObj.success = true; + callbackObj.ref = obj; + } + else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install + att.data = xiSwfUrlStr; + showExpressInstall(att, par, replaceElemIdStr, callbackFn); + return; + } + else { // show alternative content + setVisibility(replaceElemIdStr, true); + } + if (callbackFn) { callbackFn(callbackObj); } + }); + } + else if (callbackFn) { callbackFn(callbackObj); } + }, + + switchOffAutoHideShow: function() { + autoHideShow = false; + }, + + ua: ua, + + getFlashPlayerVersion: function() { + return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; + }, + + hasFlashPlayerVersion: hasPlayerVersion, + + createSWF: function(attObj, parObj, replaceElemIdStr) { + if (ua.w3) { + return createSWF(attObj, parObj, replaceElemIdStr); + } + else { + return undefined; + } + }, + + showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) { + if (ua.w3 && canExpressInstall()) { + showExpressInstall(att, par, replaceElemIdStr, callbackFn); + } + }, + + removeSWF: function(objElemIdStr) { + if (ua.w3) { + removeSWF(objElemIdStr); + } + }, + + createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) { + if (ua.w3) { + createCSS(selStr, declStr, mediaStr, newStyleBoolean); + } + }, + + addDomLoadEvent: addDomLoadEvent, + + addLoadEvent: addLoadEvent, + + getQueryParamValue: function(param) { + var q = doc.location.search || doc.location.hash; + if (q) { + if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark + if (param == null) { + return urlEncodeIfNecessary(q); + } + var pairs = q.split("&"); + for (var i = 0; i < pairs.length; i++) { + if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { + return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1))); + } + } + } + return ""; + }, + + // For internal usage only + expressInstallCallback: function() { + if (isExpressInstallActive) { + var obj = getElementById(EXPRESS_INSTALL_ID); + if (obj && storedAltContent) { + obj.parentNode.replaceChild(storedAltContent, obj); + if (storedAltContentId) { + setVisibility(storedAltContentId, true); + if (ua.ie && ua.win) { storedAltContent.style.display = "block"; } + } + if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); } + } + isExpressInstallActive = false; + } + } + }; +}(); diff --git a/_assets/js/swfobject/swfobject.js b/assets/js/swfobject/swfobject.js similarity index 99% rename from _assets/js/swfobject/swfobject.js rename to assets/js/swfobject/swfobject.js index 8eafe9d..b17981f 100644 --- a/_assets/js/swfobject/swfobject.js +++ b/assets/js/swfobject/swfobject.js @@ -1,4 +1,4 @@ -/* SWFObject v2.2 - is released under the MIT License -*/ +/* SWFObject v2.2 + is released under the MIT License +*/ var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab - -Testing of CSS Positioning - - - - - - - - - - - -
- - - - -
-
- -
-Test -
- - - + + +Testing of CSS Positioning + + + + + + + + + + + +
+ + + + +
+
+ +
+Test +
+ + + diff --git a/cv.html b/cv.html deleted file mode 100644 index d59c928..0000000 --- a/cv.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - Anthony Sansone: Curriculum Vitae - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
-
- -

Education

- -

PhD, Technical Communication, Illinois Institute of Technology, x2025

-

MS, Technical Communication and Information Design,
Illinois Institute of Technology, 2013

-

BA, Political Science, University of Wisconsin–Madison, 1994

-

ITIL Foundations Certification, 2006

- -
-
- -

Conference Talks

- -

Sansone, A. (2017, December 4). Writing for Scale: Streamlining API Documentation Maintenance [Speaker]. API The Docs Amsterdam, Amsterdam, Netherlands. https://pronovix.com/api-docs-amsterdam-2017#anthony

-

Sansone, A. (2018, April 18) Deploying OpenAPI within an Existing API [Speaker]. API the Docs Paris, Paris, France. - https://pronovix.com/event/api-docs-paris-2018#anthony

- -
-
- -

Publications

- -

Book Chapters

- -

Sansone, A. (2014). Game Design Documents: Changing Production Models, Changing Demands. In J. De Winter & R. Moeller (Eds.), - Computer Games and Technical Communication - (1st ed., pp. 109–124). Ashgate Publishing Company. - https://doi.org/10.4324/9781315573243

- -

Book Reviews

- -

Sansone, A. (2013). The Warcraft Civilization. Reconstruction, 13(3). https://web.archive.org/web/20140330234750/http://reconstruction.eserver.org/133/133_Sansone.shtml

- -
-
- -

Media Appearances

- -

Print

- -

Huynh, K. (2022, April 5). “We’re just getting stronger”: Daily Cardinal celebrates 130 years. The Capital Times.

- -

Kalk Darby, S. (2012, April 27). Daily Cardinal celebrates 120 years on UW-Madison campus. Wisconsin State Journal.

- -

Bauter, A. (2012, April 30). ‘Daily Cardinal’ alumni celebrate 120 years, pay tribute to Anthony Shadid. Isthmus.

- -

Bookmark. (2008). On Wisconsin, 109, 52.

- -

Hantschel, A. (1997, May). After the Fall. On Wisconsin, 21–31.

- -

Filak, V. (1996, April 21). Sansone weaves Web work, journalism. Wisconsin State Journal, 58.

- -

Podcast

- -

Interview with Anthony Sansone, Staff Technical Writer at MongoDB - The Importance of Onboarding - (L. Vass, Interviewer; season 1, episode 27). (2022, July 6). Pronovix. - https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding

- -

Confidence and Critical Thinking In TechWriting: Part 2 - (L. Vass, interviewer; season 1, episode 22). (September 2, 2021). Pronovix. - https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding

- -

Confidence and Critical Thinking Part 1: TechWriting Is Life-Long Learning - Interview with Anthony Sansone, Senior Technical Writer at MongoDB - (L. Vass, interviewer; season 1, episode 21). (August 18, 2021). Pronovix. - https://apithedocs.org/podcast/confidence-and-critical-thinking-part-1-techwriting-life-long-learning-interview-anthony

- -
-
- -

Academic Awards

- -

Graduate School Dean’s Fellowship 2011–12

- -
-
- -

Professional Awards

- -

Exemplary Service Award, EMC Corporation ($15,000 for exceptional service), 2012.

-

Arthur C. Nielsen Jr. Individual Awards, ACNielsen (4 x $1,000), 2000.

-

ART Awards for performance excellence, 1998–2004.

- -
-
- -

Professional Experience

- -

Google LLC, Lead Technical Writer, 2022–present.

-

MongoDB, Inc., Staff Technical Writer, 2015–2022.

-

IBM, Lead Technical Writer, 2013–2015.

-

DellEMC, Senior Technical Writer, 2007–2013.

-

The Nielsen Company, Implementation Manager, 1997–2005.

- -
-
- -

Volunteer Experience

- -

Daily Cardinal Alumni Association, Founder and President, 1998–present.

- -
-
- -

Instructional Experience

- -

Instructional Designer

-

Module on project management and communication practices for
technical writing certificate . Fall 2023 (Illinois Institute of Technology)

-

Onboarding facilitator: Technical Writing Department. 2018–2022 (MongoDB)

- -

Teaching assistant

-

Summer Science Institute, Summer 1993 (University of Wisconsin–Madison)

- -
- -
- - - - - - - - - diff --git a/cv.md b/cv.md new file mode 100644 index 0000000..5886551 --- /dev/null +++ b/cv.md @@ -0,0 +1,124 @@ +--- +title: Curriculum Vitae | Anthony T. Sansone +layout: default +id: cv +--- + +
+ +## Education + +PhD, Technical Communication, [http://www.iit.edu][iit], x2027 + +MS, Technical Communication and Information Design, [http://www.iit.edu][iit], 2013 + +BA, Political Science, [https://www.wisconsin.edu/][uw-madison], 1994 + +ITIL Foundations Certification, 2006 + +## Conference Talks + +Sansone, A. (2017, December 4). _Writing for Scale: Streamlining API Documentation Maintenance_ [Speaker]. API The Docs Amsterdam, Amsterdam, Netherlands. [https://pronovix.com/api-docs-amsterdam-2017%23anthony][atd-amsterdam] + +Sansone, A. (2018, April 18) _Deploying OpenAPI within an Existing API_ [Speaker]. API the Docs Paris, Paris, France. +[https://pronovix.com/event/api-docs-paris-2018%23anthony][atd-paris] + +## Publications + +### Book Chapters + +Sansone, A. (2014). Game Design Documents: Changing Production Models, Changing Demands. In J. De Winter & R. Moeller (Eds.), +Computer Games and Technical Communication_ +(1st ed., pp. 109–124). Ashgate Publishing Company. +[https://doi.org/10.4324/9781315573243][gd-book] + +### Book Reviews + +Sansone, A. (2013). The Warcraft Civilization. Reconstruction_, 13(3). [https://web.archive.org/web/20140330234750/http://reconstruction.eserver.org/133/133_Sansone.shtml][warcraft-book] + +## Media Appearances + +### Print + +Huynh, K. (2022, April 5). [https://captimes.com/news/education/daily-cardinal-uw-madison-college-newspaper/article_069d77e8-ea50-5ec0-a1d6-f1d716f3bc16.html][tct-130]. _The Capital Times_. + +Kalk Darby, S. (2012, April 27). [https://madison.com/news/local/education/university/daily-cardinal-celebrates-120-years-on-uw-madison-campus/article_564e11fa-9013-11e1-abf8-001a4bcf887a.html][wsj-120]. _Wisconsin State Journal_. + +Bauter, A. (2012, April 30). [https://isthmus.com/news/news/daily-cardinal-alumni-celebrate-120-years-pay-tribute-to-anthony-shadid/][isthmus-120]. _Isthmus_. + +Bookmark. (2008). _On Wisconsin_, 109, 52. + +Hantschel, A. (1997, May). After the Fall. _On Wisconsin_, 21–31. + +Filak, V. (1996, April 21). Sansone weaves Web work, journalism. _Wisconsin State Journal_, 58. + +### Podcast + +_Interview with Anthony Sansone, Staff Technical Writer at MongoDB - The Importance of Onboarding_ +(L. Vass, Interviewer; season 1, episode 27). (2022, July 6). Pronovix. +[https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding-Fn][atd-pod-1] + +_Confidence and Critical Thinking In TechWriting: Part 2_ +(L. Vass, interviewer; season 1, episode 22). (September 2, 2021). Pronovix. +[https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding][atd-pod-2] + +_Confidence and Critical Thinking Part 1: TechWriting Is Life-Long Learning - Interview with Anthony Sansone, Senior Technical Writer at MongoDB_ +(L. Vass, interviewer; season 1, episode 21). (August 18, 2021). Pronovix. +[https://apithedocs.org/podcast/confidence-and-critical-thinking-part-1-techwriting-life-long-learning-interview-anthony-v7aK-][atd-pod-3] + +## Academic Awards + +Graduate School Dean’s Fellowship 2011–2012 + +## Professional Awards + +Exemplary Service Award, EMC Corporation ($15,000 for exceptional service), 2012. + +Arthur C. Nielsen Jr. Individual Awards, ACNielsen (4 x $1,000), 2000. + +ART Awards for performance excellence, 1998–2004. + +## Professional Experience + +Google LLC, Lead Technical Writer, 2022–present. + +MongoDB, Inc., Staff Technical Writer, 2015–2022. + +IBM, Lead Technical Writer, 2013–2015. + +DellEMC, Senior Technical Writer, 2007–2013. + +The Nielsen Company, Implementation Manager, 1997–2005. + +## Volunteer Experience + +[Daily Cardinal Alumni Association][dcaa], Founder and President, 1998–present. + +## Instructional Experience + +### Instructional Designer + +Module on project management and communication practices for [technical writing certificate][iit-cert]. Fall 2023 (Illinois Institute of Technology) + +Onboarding facilitator: Technical Writing Department. 2018–2022 (MongoDB) + +### Teaching assistant + +Summer Science Institute, Summer 1993 (University of Wisconsin–Madison) + +
+ +[iit]: http://www.iit.edu +[uw-madison]: https://www.wisconsin.edu/ +[atd-amsterdam]: https://pronovix.com/api-docs-amsterdam-2017%23anthony +[atd-paris]: https://pronovix.com/event/api-docs-paris-2018%23anthony +[gd-book]: https://doi.org/10.4324/9781315573243 +[warcraft-book]: https://web.archive.org/web/20140330234750/http://reconstruction.eserver.org/133/133_Sansone.shtml +[tct-130]: https://captimes.com/news/education/daily-cardinal-uw-madison-college-newspaper/article_069d77e8-ea50-5ec0-a1d6-f1d716f3bc16.html +[wsj-120]: https://madison.com/news/local/education/university/daily-cardinal-celebrates-120-years-on-uw-madison-campus/article_564e11fa-9013-11e1-abf8-001a4bcf887a.html +[isthmus-120]: https://isthmus.com/news/news/daily-cardinal-alumni-celebrate-120-years-pay-tribute-to-anthony-shadid/ +[atd-pod-1]: https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding-Fn +[atd-pod-2]: https://apithedocs.org/podcast/interview-anthony-sansone-staff-technical-writer-mongodb-importance-onboarding +[atd-pod-3]: https://apithedocs.org/podcast/confidence-and-critical-thinking-part-1-techwriting-life-long-learning-interview-anthony-v7aK- +[dcaa]: http://www.supportthecardinal.org +[iit-cert]: https://www.iit.edu/academics/programs/technical-communication-certificate diff --git a/grids.htm b/grids.htm index 9b9123e..defefa6 100644 --- a/grids.htm +++ b/grids.htm @@ -1,112 +1,112 @@ - - - - - - - - - - - - Typographic Grid Example - - - - - - - - - -
- - - -
- -
-

Typographic Grids: Simple Concept, Tricky Execution

-

- Let’s face it: people inclined toward communication and design don’t usually think of math - as their strong suit. But the foundation of any well constructed grid is mathematical. -

-

- The good news is that the only math you need is addition and multiplication. If, for - example, your baseline grid is 18 pixels, then everything you do to enhance your design - (borders, margin, padding) must add up to 18 pixels or a multiple of 18 (36, 54, and so on). -

-

- While thinking this mathematically about design may not be fun, it also takes a lot of the - guesswork out of design. You don’t have to worry, for example, as to what to set the - line-height as on your list items or your headings or paragraphs. That’s - already been decided. -

-

- And when you do make the decision about your baseline grid, make sure that it’s an even - number. 16, not 15. 18, not 17. The simple reason for this is that browsers will put your - text right in the middle of the value you specify; an even number ensures that there is the - same amount of space above and below each line of text. See also the “Mind Your Math” - sidebar. -

-
- -
-

Mind Your Math

-
    -
  • - Don’t get mad, get even. When working with grids, look for numbers that - divide evenly into both 2 and 3 (e.g. 12, 18); numbers that divide into 2 and 3 that also - divide into 4 (e.g., 24, 32) and/or 5 (e.g., 30, 40) are even better (but harder to find - at small intervals). Numbers that divide into 2, 3, and 6 are somewhat easier to find, - being simply multiples of 6 (e.g., 6, 12, 18, 24). -
  • -
  • - A pixel might as well be a mile. They sound small, but look big. When - creating graphics to help gauge your grid alignment, go with colored bands, not grid - lines--as the lines themselves have dimension. This page features a graphic that's 36 pixels tall, split into two 18px-tall - bands. Use the same technique for images that guide vertical units and columns. -
  • -
-
- -
- - - - - -
- - - - + + + + + + + + + + + + Typographic Grid Example + + + + + + + + + +
+ + + +
+ +
+

Typographic Grids: Simple Concept, Tricky Execution

+

+ Let’s face it: people inclined toward communication and design don’t usually think of math + as their strong suit. But the foundation of any well constructed grid is mathematical. +

+

+ The good news is that the only math you need is addition and multiplication. If, for + example, your baseline grid is 18 pixels, then everything you do to enhance your design + (borders, margin, padding) must add up to 18 pixels or a multiple of 18 (36, 54, and so on). +

+

+ While thinking this mathematically about design may not be fun, it also takes a lot of the + guesswork out of design. You don’t have to worry, for example, as to what to set the + line-height as on your list items or your headings or paragraphs. That’s + already been decided. +

+

+ And when you do make the decision about your baseline grid, make sure that it’s an even + number. 16, not 15. 18, not 17. The simple reason for this is that browsers will put your + text right in the middle of the value you specify; an even number ensures that there is the + same amount of space above and below each line of text. See also the “Mind Your Math” + sidebar. +

+
+ +
+

Mind Your Math

+
    +
  • + Don’t get mad, get even. When working with grids, look for numbers that + divide evenly into both 2 and 3 (e.g. 12, 18); numbers that divide into 2 and 3 that also + divide into 4 (e.g., 24, 32) and/or 5 (e.g., 30, 40) are even better (but harder to find + at small intervals). Numbers that divide into 2, 3, and 6 are somewhat easier to find, + being simply multiples of 6 (e.g., 6, 12, 18, 24). +
  • +
  • + A pixel might as well be a mile. They sound small, but look big. When + creating graphics to help gauge your grid alignment, go with colored bands, not grid + lines--as the lines themselves have dimension. This page features a graphic that's 36 pixels tall, split into two 18px-tall + bands. Use the same technique for images that guide vertical units and columns. +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/index.md b/index.md index 7633423..52c03a6 100644 --- a/index.md +++ b/index.md @@ -1,58 +1,57 @@ ---- -title: Anthony T. Sansone -layout: default -id: index ---- - -
- -
- -I am a native of [Milwaukee][], [Wisconsin][] and now live in [Oak Park][], [Illinois][] with my family. - - -The [University of Wisconsin-Madison][] conferred my Bachelors degree in [Political Science][] in 1994. - -The [Illinois Institute of Technology][iit] conferred a Master's of Science degree in [Technical Communication and Information Design][tcid] in 2013. - -I enjoy difficult challenges. - -I created a weekly newsletter in high school back when computers were magic. In college, I secured computers and internet connections for all major student groups. From there, I helped restart three major student organizations in college: the student government, the student newspaper, and the yearbook. - -My professional career started in television news, where I developed the web site for an CBS affiliate. - -Switching to corporate life, I worked in communications as a web developer where I developed global standards for all web sites in the company. At the same company, I transitioned to a internal customer engineer where I traveled the world to teach employees how to use our global portal. My next opportunity came at a small startup to help manage their second-tier support. - -I left the fast-moving consumer goods industry soon after and moved into the computer storage industry. The dominant player in the market had me create RFPs, proposals, and decks. At this time, I finished my Master's degree. I moved on to another storage startup where I wrote online and print manuals. - -The next big shift was to database software at another small startup. This opportunity led to experiencing my first IPO. This position gave me the opportunity to engage with the greater technical writing community as a speaker, award jurist, and podcast guest. - -The latest transition led to leading the documentation efforts for a programming langugage and mobile app framework. This has been the most challenging and rewarding opportunity yet. I began my doctoral work after starting this job. - -Outside of work and education, I'm a parent, spouse, friend, woodturner, drummer, singer, reader, traveller, and gamer. - -Anything else about me can be found on [X][], [LinkedIn][] or [Facebook][]. Asking to be my friend or contact on any of these sites is fine, just remind me how we met! - -If we haven't met and you would like to meet, [reach out and schedule a call][reach-out]. - -
- -
-![Anthony Sansone in front of the Temple of Hercules in Agrigento, Sicily on 22 July 2022](media/img/agrigento.jpg) -Agrigento, Sicily, 22 July 2022 -
- -
- -[Facebook]: http://www.facebook.com/anthony.sansone -[iit]: http://www.iit.edu -[Illinois]: http://www.enjoyillinois.com -[LinkedIn]: http://www.linkedin.com/anthonysansone -[Milwaukee]: http://www.visitmilwaukee.org -[Oak Park]: http://www.oak-park.us -[Political Science]: http://www.polisci.wisc.edu -[reach-out]: https://calendly.com/a-t-sansone -[tcid]: http://www.iit.edu/csl/hum/programs/grad/tcid.shtml -[University of Wisconsin-Madison]: http://www.wisc.edu -[Wisconsin]: http://www.travelwisconsin.com -[X]: http://twitter.com/atsansone +--- +title: Anthony T. Sansone +layout: default +id: index +--- + +
+ +
+ +I am a native of [Milwaukee][], [Wisconsin][] and now live in [Oak Park][], [Illinois][] with my family. + +The [University of Wisconsin-Madison][] conferred my Bachelors degree in [Political Science][] in 1994. + +The [Illinois Institute of Technology][iit] conferred a Master's of Science degree in [Technical Communication and Information Design][tcid] in 2013. + +I enjoy difficult challenges. + +I created a weekly newsletter in high school back when computers were magic. In college, I secured computers and internet connections for all major student groups. From there, I helped restart three major student organizations in college: the student government, the student newspaper, and the yearbook. + +My professional career started in television news, where I developed the web site for an CBS affiliate. + +Switching to corporate life, I worked in communications as a web developer where I developed global standards for all web sites in the company. At the same company, I transitioned to a internal customer engineer where I traveled the world to teach employees how to use our global portal. My next opportunity came at a small startup to help manage their second-tier support. + +I left the fast-moving consumer goods industry soon after and moved into the computer storage industry. The dominant player in the market had me create RFPs, proposals, and decks. At this time, I finished my Master's degree. I moved on to another storage startup where I wrote online and print manuals. + +The next big shift was to database software at another small startup. This opportunity led to experiencing my first IPO. This position gave me the opportunity to engage with the greater technical writing community as a speaker, award jurist, and podcast guest. + +The latest transition led to leading the documentation efforts for a programming langugage and mobile app framework. This has been the most challenging and rewarding opportunity yet. I began my doctoral work after starting this job. + +Outside of work and education, I'm a parent, spouse, friend, woodturner, drummer, singer, reader, traveller, and gamer. + +Anything else about me can be found on [X][], [LinkedIn][] or [Facebook][]. Asking to be my friend or contact on any of these sites is fine, just remind me how we met! + +If we haven't met and you would like to meet, [reach out and schedule a call][reach-out]. + +
+ +
+![Anthony Sansone in front of the Temple of Hercules in Agrigento, Sicily on 22 July 2022](/assets/img/agrigento.jpg) +Agrigento, Sicily, 22 July 2022 +
+ +
+ +[Facebook]: http://www.facebook.com/anthony.sansone +[iit]: http://www.iit.edu +[Illinois]: http://www.enjoyillinois.com +[LinkedIn]: http://www.linkedin.com/anthonysansone +[Milwaukee]: http://www.visitmilwaukee.org +[Oak Park]: http://www.oak-park.us +[Political Science]: http://www.polisci.wisc.edu +[reach-out]: https://calendly.com/a-t-sansone +[tcid]: http://www.iit.edu/csl/hum/programs/grad/tcid.shtml +[University of Wisconsin-Madison]: http://www.wisc.edu +[Wisconsin]: http://www.travelwisconsin.com +[X]: http://twitter.com/atsansone diff --git a/nonprofit.html b/nonprofit.html index 7f55318..70b0153 100644 --- a/nonprofit.html +++ b/nonprofit.html @@ -1,105 +1,105 @@ - - - - - - - - - - - - Anthony Sansone: Non-Profit Management - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- -
- -

Working in Small Non-Profits

- -

Introduction

- -

Starting as an undergrad, I have worked at seven non-profit corporations, serving as an officer of four of those corporations, including twice as president. This is the advice I offer to start and manage non-profit organizations.

- -

Assumption

- -

This guide assumes that you know what you want your non-profit organization to accomplish; what it's reason for existing. If you don't know why you want to start and maintain a non-profit, I can't help you.

- -

Starting Up

- -

Non-profits have a range of things to complete to become a fully functional organization.

- -
    -
  • People -
      -
    • Board
    • -
    • Officers
    • -
    -
  • -
  • Incorporation -
      -
    • Federal
    • -
    • State
    • -
    -
  • -
  • Contact Details -
      -
    • Mailing Address
    • -
    • Web Site
    • -
    • Email
    • -
    • Telephone
    • -
    -
  • -
  • Non-Profit Tax Status
  • -
- -

More to Come...

- -
- -
- - - - - - - - + + + + + + + + + + + + Anthony Sansone: Non-Profit Management + + + + + + + + + + + +
+ +

Anthony T. Sansone

+ +
+
Designer. Writer. Board Member. Mentor. Educator.
+ +
+ +1 312 725 2450 + a.t.sansone@gmail.com +
+
+ + + +
+ +
+ +
+ +

Working in Small Non-Profits

+ +

Introduction

+ +

Starting as an undergrad, I have worked at seven non-profit corporations, serving as an officer of four of those corporations, including twice as president. This is the advice I offer to start and manage non-profit organizations.

+ +

Assumption

+ +

This guide assumes that you know what you want your non-profit organization to accomplish; what it's reason for existing. If you don't know why you want to start and maintain a non-profit, I can't help you.

+ +

Starting Up

+ +

Non-profits have a range of things to complete to become a fully functional organization.

+ +
    +
  • People +
      +
    • Board
    • +
    • Officers
    • +
    +
  • +
  • Incorporation +
      +
    • Federal
    • +
    • State
    • +
    +
  • +
  • Contact Details +
      +
    • Mailing Address
    • +
    • Web Site
    • +
    • Email
    • +
    • Telephone
    • +
    +
  • +
  • Non-Profit Tax Status
  • +
+ +

More to Come...

+ +
+ +
+ + + + + + + + diff --git a/portfolio.md b/portfolio.md new file mode 100644 index 0000000..2e57998 --- /dev/null +++ b/portfolio.md @@ -0,0 +1,39 @@ +--- +title: Portfolio | Anthony T. Sansone +layout: default +id: portfolio +--- + +
+ +# Print Portfolio + +## Logos + +
+
+

Logo for the Greater Chicago Ferret Association, redesigned 2010

+

Greater Chicago Ferret Association redesigned logo

+
+ +
+

Logo for the Daily Cardinal Alumni Association, designed 1998

+

Daily Cardinal Alumni Association logo

+
+
+ +## Newsletters + +
+
+

"Off the Paw", Greater Chicago Ferret Association, designed 2010

+

'Off the Paw', Greater Chicago Ferret Association newsletter front page

+
+ +
+

"Hot Type & Line Tape", Daily Cardinal Alumni Association, Q3 2005

+

'Hot Type & Line Tape', Daily Cardinal Alumni Association newsletter front page

+
+
+ +
diff --git a/printdesign.html b/printdesign.html deleted file mode 100644 index 7b9c23f..0000000 --- a/printdesign.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - Anthony Sansone: Print Portfolio - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- -
- -

Print Portfolio

- -

Logos

- -
-
-

Logo for the Greater Chicago Ferret Association, redesigned 2010

-

Greater Chicago Ferret Association redesigned logo

-
- -
-

Logo for the Daily Cardinal Alumni Association, designed 1998

-

Daily Cardinal Alumni Association logo

-
-
- -

Newsletters

- -
-
-

"Off the Paw", Greater Chicago Ferret Association, designed 2010

-

'Off the Paw', Greater Chicago Ferret Association newsletter front page

-
- -
-

"Hot Type & Line Tape", Daily Cardinal Alumni Association, Q3 2005

-

'Hot Type & Line Tape', Daily Cardinal Alumni Association newsletter front page

-
-
- -
- -
- - - - - - - - diff --git a/prototype-with-comments.htm b/prototype-with-comments.htm index 1659955..323ae53 100644 --- a/prototype-with-comments.htm +++ b/prototype-with-comments.htm @@ -1,308 +1,308 @@ - - - - - - - - - - - - - - - - - - - - - Page Title: Site Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
- - -
- -

Page Title

- -
- -
-
- - -
- - - - - - - - -
- - - - - - + + + + + + + + + + + + + + + + + + + + + Page Title: Site Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ +

Page Title

+ +
+ +
+
+ + +
+ + + + + + + + +
+ + + + + + diff --git a/prototype.htm b/prototype.htm index d52a1e1..b56842b 100644 --- a/prototype.htm +++ b/prototype.htm @@ -1,102 +1,102 @@ - - - - - - - Page Title: Site Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
-

Page Title

- -
- -
-
- -
- - - - - -
- - - - + + + + + + + Page Title: Site Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+

Page Title

+ +
+ +
+
+ +
+ + + + + +
+ + + + diff --git a/removed/css/300-CSS/demo-files/.DS_Store b/removed/css/300-CSS/demo-files/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 - - - - - - - - - - - Anthony Sansone: Resume - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- -
- -

Summary

-

Technologist with 25 years experience in the market research; FMCG; media; computer hardware, software and services; and supply chain industries engaged in nearly every facet of Technical Writing, Software Development, Application/Infrastructure Support and Client Implementation available as jack-of-all-trades to technology groups.

- -
-
- -

Achievements

-
    -
  • Transformed REST API deliverables for large-scale cloud applications using OpenAPI and Swagger-Core.
  • -
  • Presented at two API the Docs conferences (Amsterdam, Dec. 2017 and Paris, Apr. 2018) about converting to OpenAPI.
  • -
  • Developed documentation systems using document systems, wikis, and docs-as-code methods.
  • -
  • Developed and deployed web design standards for large multinational company.
  • -
  • Integrated four support ticket systems using custom code and email. Documented the resulting API.
  • -
  • Developed and implemented the onboarding and training for four documentation teams.
  • -
  • Onboarded and trained most of 30-plus person documentation team, reducing time to productivity from four months to four weeks.
  • -
  • Facilitating weekly Q&A sessions for new staff members in open forum.
  • -
  • Trained more than 100 people from 20 nations to use SOAP-based API for consumer-packaged goods industry portal.
  • -
  • Managed five support engineers that maintained four global sourcing Java web applications.
  • -
  • Recruited, managed, and trained customer success managers based around the globe.
  • -
  • Created and managed administration and support processes across many groups, companies, and countries.
  • -
  • Founded and manage board of directors for national non-profit.
  • -
- -
-
- -

Professional Experience

- -

Lead Technical Writer, Dart and Flutter

-

Google, LLC [dart.dev and flutter.dev]

- Develop user content and coach junior writers for USD 543 MM data platform company. -
    -
  • Document the Dart language and Flutter app framework.
  • -
  • Maintain web sites for language that see more than 1 MM users per month.
  • -
-
    -
  • Tools: macOS; Google Workspace; Adobe Photoshop 2023, Acrobat; Sublime Text 4; zsh; Vale; Jekyll; GCP; Firebase; Docker; Kubernetes; Markdown
  • -
- -
    -
  • Staff Technical Writer

  • -
  • Writing Coach and Mentor

  • -
-

MongoDB, Inc., August 2021 to July 2022

-

Senior Technical Writer (Cloud & API)

-

MongoDB, Inc., October 2015 to August 2021

- Develop user content and coach junior writers for USD 543 MM data platform company. -
    -
  • Implemented department style guide enforced using Vale.
  • -
  • Create copy and diagrams for Cloud Manager, Ops Manager, and Atlas. These tools manage MongoDB databases. Specialize in security (LDAP, Kerberos, FIM), data protection (backup, restore), and REST APIs.
  • -
  • Converting 100 REST API resources to the OpenAPI 3 specification.
  • -
  • Building VILT offering using Instruqt.
  • -
  • Created entire corpus for MongoDB Enterprise Kubernetes Operator.
  • -
  • Implemented onboarding and training practices for four documentation teams.
  • -
  • Onboarded and taught majority of 30-plus person documentation team.
  • -
  • Coach and mentor through weekly Q&A sessions for new staff members in open forum.
  • -
-
    -
  • Tools: Microsoft Windows 10, Office 2016, Visio 2016; macOS; Google G Suite; Adobe Photoshop, InDesign, Illustrator CC 2017, Acrobat DC; OmniGraffle; Sublime Text 3; zsh; Vale; Python; Sphinx; MongoDB Server, Cloud Manager, Ops Manager, Atlas, BI Connector, Compass; JIRA; AWS EC2; GCP; Azure; Slack; Chef; Docker; Kubernetes; OpenAPI, SAML, Federated Identity Management, Kerberos, Instruqt, swagger-core
  • -
- -

Lead Technical Writer

-

Cleversafe, Inc. (now IBM) [https://www.ibm.com/cloud/object-storage] September 2013 to October 2015

- Documented and diagrammed all products for an object-storage startup. -
    -
  • Refactored all existing API, hardware, and configuration documentation.
  • -
  • Converted 40-plus documents from Microsoft Word documents to docs-as-code hosted on Zurb.
  • -
-
    -
  • Tools: Microsoft Windows 7, 10, Office 2013, Visio 2013, SharePoint 365; Ubuntu 15; Adobe Photoshop, InDesign, Illustrator CC 2015, Acrobat DC; Sublime Text 2; bash; Java; Ruby; ASCIIdoctor; Awestruct; Zurb Foundation; Confluence; Rally
  • -
- -
    -
  • Senior Technical Writer

  • -
  • Linux Administrator [Contract]

  • -
-

Target Data Corporation [www.targetdatacorp.com] April 2013 to September 2013

- Created documentation for data analytics company focused on real estate. Covered operations, code, configuration, architecture, application, and capabilities. Managed Linux systems and writing shell scripts for data analytics company focused on real estate. -
    -
  • Documented BeanShell code, SQL queries and UNIX shell scripts that maintain ETL systems.
  • -
  • Converted XML settings files into standard OpenXML/Word documents.
  • -
  • Configured new CentOS servers for data center move including secure shell and FTP access and user access.
  • -
-
    -
  • Tools: Microsoft Windows 7, Office 2013, Visio 2007, SharePoint 365; CentOS 6; Mac OS X 10.7; Adobe Photoshop, InDesign, Illustrator CC; Screen-Scraper 6; NotePad++; TextPad 7; bash; Java; BeanShell; MySQL; HP Vertica
  • -
- - -

Senior Technical Writer

-

EMC Corporation / VCE Company, July 2007 to Present

-
    -
  • Document, edit, design and diagram application functionality, configuration, architecture, applications and capabilities for customers throughout central sales division
  • -
  • Document, edit, design and diagram proposals, white papers and solutions for customers
  • -
  • Advise sales staff on best means to present pursuasive material to clients based upon requirements provided and personal knowledge of industry, sourcing and company offerings
  • -
  • Work to improve knowledge management and collaboration using MediaWiki and Microsoft SharePoint
  • -
-
    -
  • Tools: Microsoft Windows XP, Windows Server 2003, Office, Visio 2010; Adobe Acrobat, Photoshop, InDesign, Illustrator CS3
  • -
- -
    -
  • Manager, Application Support

  • -
  • Manager, Technical Process

  • -
-

Agentrics LLC, November 2005 to May 2007

-
    -
  • Managed 24×7 Level 2 support, administration for 4 web-based Sourcing and Contract solutions for 14 of the top 25 largest global retailers and their thousands of suppliers: GenSource Negotiations (by GNX) [Oracle Exchange 6.2.3], GenSource Negotiations (by WWRE) [ezMarket 5.5.5], GenSource Sourcing [Emptoris Sourcing Portfolio 5.2 SP5] and GenSource Tools
  • -
  • Recruited, trained, mentored, managed 5 engineers and trained, mentored 20 Level 1 service desk staff
  • -
  • Developed, documented, trained and deployed ITIL-based processes and procedures
  • -
  • Documented and diagrammed application functionality, configuration, architecture, applications and capabilities for developers, engineers
  • -
  • Developed knowledge base for Level 1 service desk staff
  • -
  • Deployed new releases of all applications on Solaris and Windows-based servers
  • -
  • Assisted Product Management in risk assessment, requirements definition and customer communications
  • -
  • Worked to improve knowledge management, service management and collaboration using Siebel, JIRA, MediaWiki and Microsoft SharePoint
  • -
  • Managed Oracle AS-, WebSphere-, WebLogic-based J2EE applications
  • -
  • Monitored applications using SiteScope, Business Availability Center
  • -
-
    -
  • Tools: Oracle 9iAS, 10gAS, 8i RDBMS, 9i RDBMS, Exchange 6.2.3, Siebel 6.2, 7.8; BEA WebLogic 8.1 SP4; IBM WebSphere Application Server 5.1, Commerce Server 5.5, DB2 8.0; Bugzilla 2.1; Mercury/HP Managed Services, SiteScope 8, VUGen 8; Sun Solaris 8, 9, 10; Microsoft Windows Server 2003, Office, Visio 2003; PL/SQL; UNIX Korn, Bourne, Bourne Again Shell
  • -
- -
    -
  • Manager, Implementation

  • -
  • Global Administrator

  • -
-

VNU Marketing Information Group, March 2002 to October 2005

-
    -
  • Coordinated support, administration for 650 clients and 32,000 client users of Global extranet, ACNielsen Answers, the first business information portal and the platform for all ongoing content, data development and deployment for Consumer Packaged Goods industry
  • -
  • Worked on the deployment and support of first interactive, live decision support tool for the industry, Category Business Planner
  • -
  • Trained more than 100 users, administrators and support personnel from more than 20 nations throughout the Americas, Asia and Europe in use of and development with portal including WSDL, SOAP and SAML-based integrations
  • -
  • Developed, diagrammed, edited and maintained portal documentation including architecture, coding standards, integration guides, user guides, configuration guides and administration guides
  • -
  • Developed presentations and demos using Macromedia Flash, Microsoft Powerpoint, RoboDemo and Camtasia to demonstrate applications
  • -
  • Developed integration to coordinate regional, global ticketing systems using ETL on email-based messaging queues between systems
  • -
  • Managed, trained 5 implementation specialists based throughout the world in architecting and supporting regional offerings
  • -
  • Managed configuration of Windows and Vignette Portal-based client extranet
  • -
  • Managed systems architecture project including selection, negotiation, recommendation, acquisition, configuration of systems
  • -
-
    -
  • Tools: Vignette Application Portal 7.x; Macromedia Dreamweaver, Flash MX 2004; Adobe Photoshop 7.0; Microsoft Word, Excel, Outlook, Visio 2003; eHelp RoboHelp, RoboDemo; Microsoft Windows Server 2000, SQL Server 2000; AIX; Sun Solaris 8; Red Hat Enterprise Linux 3.5; Avensoft Perfect Tracker 7.0
  • -
- -

Web Developer

-

ACNielsen Corporation, September 1997 to March 2002

-
    -
  • Managed multinational, multilingual site of leading multinational market research corporation, including Perl (CGI), PHP and MySQL application and database design and development and Solaris system administration
  • -
  • Reported on site activity regularly with WebTrends Professional
  • -
  • Developed web standards for information architecture, development, design, content and reporting guidelines to 150 users worldwide
  • -
  • Documented processes, trained web developers from 12 nations
  • -
  • Coordinated support, administration of Epicentric 3.5/4.0 Portal-based Global intranet, ACNielsen@Work
  • -
-
    -
  • Tools: Epicentric Application Portal 4.x; Macromedia Dreamweaver, Flash MX, HomeSite 5.0; Adobe Photoshop 7.0; Microsoft Word, Excel, Outlook, Visio XP; Sun Solaris 8; WebTrends Professional 8; WebPosition; PHP; Perl; MySQL
  • -
- -
    -
  • Webmaster

  • -
  • Content Producer

  • -
-

Television Wisconsin, Inc. / WISC-TV3 & Murphy Entertainment Group, January 1996 to September 1997

-
    -
  • Redesign, managed content for broadcasts, general news web site
  • -
  • Designed, developed and implemented web site for clients
  • -
-
    -
  • Tools: HomeSite 4.0; Adobe Photoshop 4.0
  • -
- -
-
- -

College Experience

- -
    -
  • Vice President

  • -
  • General Manager

  • -
-

The Daily Cardinal Media Corporation, February 1995 to September 1997

-
    -
  • Managed award-winning Madison news site
  • -
  • Designed, deployed new LAN; negotiated free internet connectivity
  • -
  • Settled $240,000 debt within 2 years; collected $58,000 in past-due Accounts Receivable
  • -
  • Re-engineered systems, processes for accounting for the newspaper
  • -
  • Wrote, designed HR, promotional pieces including brochures, manuals, forms, four-color advertisements, maps using QuarkXPress, Adobe Photoshop and Adobe Illustrator
  • -
  • Co-authored articles of incorporation, by-laws; co-authored sales, style, personnel manuals; authored all position descriptions
  • -
-
    -
  • Tools: BBEdit 4.0; QuarkXPress 4.0; Adobe Illustrator 8.0, Photoshop 4.0; Microsoft Word 6, Excel 5; QuickBooks 6; Slackware Linux; Majordomo; Perl 4
  • -
- -
    -
  • Publisher

  • -
  • Editor-in-Chief

  • -
  • Managing Editor

  • -
-

The Wisconsin Badger Inc., December 1992 to January 1995

-
    -
  • Administered affairs of student annual including supervising staff of 40
  • -
  • Developed subscriptions, inventory and production management systems
  • -
  • Increased sales by 59%, settled $35,000 debt, administered $95,000 budget
  • -
  • Interviewed campus, state public figures for publication
  • -
  • Designed majority of publication using QuarkXPress and Adobe Photoshop
  • -
-
    -
  • Tools: QuarkXPress 4.0; Adobe Photoshop 4.0; Microsoft Word 6, Excel 5; Quicken 6
  • -
- -

Technical and Communications Consultant

-

Wisconsin Student Association, June 1991 to July 1992

-
    -
  • Developed branding; designed promotional pieces and graphics using QuarkXPress, Aldus FreeHand
  • -
  • Maintained, upgraded, purchased, supported MacOS computers (including upgrade from System 6 to System 7) and LAN
  • -
  • Trained and assisted 50 member staff in use of applications and network
  • -
-
    -
  • Tools: Adobe Photoshop 3.0, Aldus FreeHand 3.0, PageMaker 4.0; MacOS 6, 7
  • -
- -
    -
  • Production Manager

  • -
  • Graphics Editor

  • -
  • Reporter

  • -
-

The Daily Cardinal Newspaper Corporation, October 1990 to August 1991

-
    -
  • Designed, assigned infographics and advertisements for the Daily Cardinal, a 20,000+ daily
  • -
  • Oversaw, trained 10 graphic designers, typesetters, keyliners
  • -
  • Recommended, maintained, upgraded or repaired hardware, software
  • -
-
    -
  • Tools: Adobe Photoshop 3.0; Aldus FreeHand 3.0, PageMaker 4.0; FileMaker Pro 3.0; MacOS 5, 6
  • -
- -
-
- -

Awards

-
    -
  • Graduate School Dean Fellowship (2011–12)
  • -
  • 3 EMC Rewards (2009–11)
  • -
  • 4 Arthur C. Nielsen Jr. Individual Awards (2000)
  • -
  • 5 ART Awards for performance excellence (1998–2004)
  • -
  • Best News Web Site (2nd Place), Isthmus (1997)
  • -
- -
-
- -

Certifications

-
    -
  • ITIL Foundations
  • -
  • UNIX Systems and Network Administration
  • -
- -
-
- -

Professional Organizations

- -

Treasurer

-

Boulevard Pointe Condominium Association, April 2009 to September 2011

-
    -
  • Served as financial officer of 25-unit condominium complex with $105,000 annual budget
  • -
- -

Secretary

-

Greater Chicago Ferret Association, April 2009 to Present

-
    -
  • Serve on 9-member board to 250 member club of small animal owners
  • -
  • Found new location and secured lease for abandoned animal shelter; the first new location in 18 years with twice the square feet and only 33% more monthly cost
  • -
- -

Director

-

Wisconsin Alumni Association, July 1998 to July 2001

-
    -
  • Served on 25-member board to UW-Madison’s 250,000 alumni
  • -
- -

President, Founder

-

Daily Cardinal Alumni Association, March 1998 to Present

-
    -
  • Found college newspaper alumni association with 6,500 members
  • -
  • Chair 18 member board of directors of journalism, business professionals
  • -
  • Designed, managed communications email newsletter and web site using DreamWeaver MX, PHP, MySQL and DadaMail
  • -
  • Designed, wrote, edited newsletter using QuarkXPress 7, Adobe InDesign CS3, Photoshop CS3
  • -
  • Raised $125,000 for capital and scholarships for The Daily Cardinal
  • -
- -
-
- -

Education

- - -
-
- -

Skills

- -

Spoken and Written Languages

-

Basic speaking and writing abilities in various languages; a native speaker of U.S. English, with a mastery of World Englishes.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SkillProficiency
EnglishNative Speaker
FrenchBasic
SpanishBasic
PortugeseLearning
ItalianIntermediate
- -

Technical and Professional

-

Broad spectrum of technical and professional skills based upon 20+ years experience at the college and professional levels.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SkillYears Exp.Last UsedProficiency
Academic Writing72023Intermediate
Application Administration82023Advanced
Application Architecture112023Advanced
Budgeting252023Intermediate
Business Writing252023Expert
Content Management Systems112023Advanced
Database Design92007Intermediate
Database Development92007Intermediate
Graphic Design322023Expert
Information Architecture132023Advanced
Internationalization and Localization102007Advanced
Marketing252023Intermediate
Personnel Management202023Intermediate
Project Management202023Advanced
Technical Procurement222011Intermediate
Technical Support (Desktop)252023Expert
Technical Support (Enterprise)102007Expert
Technical Writing252023Expert
Training302023Expert
UNIX Server Administration152023Advanced
Web Application Development92007Intermediate
Web Development282023Expert
Windows Server Administration82007Intermediate
- -

Desktop Productivity Applications

-

Experienced user of Microsoft Office and most major web browsers and mail applications.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ApplicationVersionsYearsLast Proficiency
Productivity Application
Microsoft Excel3-365322023Expert
Microsoft PowerPoint2000-365242023Expert
Microsoft Project2000-200372007Intermediate
Microsoft Word3-365322023Expert
AppleWorks3-6.072005Intermediate
Financial Application
Intuit QuickBooks6, 99, 2000-200752004Intermediate
Intuit Quicken99, 2000-2011122011Advanced
Mail Application
Microsoft Outlook5.5-365142011Advanced
Mozilla Thunderbird0.7-3.042009Advanced
Web Browser
Mozilla Firefox0.8-Latest202023Expert
Microsoft Internet Explorer 2.0-11.0252021Expert
Safari3.0-Latest82023Intermediate
Google Chrome6.0-Latest162023Intermediate
Lynx31997Advanced
- -

Graphic and Web Design

-

Detailed knowledge of all areas, skills including: typography; page composition; infographics, including tables, charts, graphs and maps; four-color design, including separations; digital publishing and HTML; online and hard copy research; interviewing; reporting; copy editing; and creating and giving presentations.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ApplicationVersionsYearsLast Proficiency
Graphic Design
Adobe Acrobat1-DC302023Expert
Adobe Fireworks4-CS582007Intermediate
Adobe Illustrator3-25302023Intermediate
Adobe InDesignCS-25182023Expert
Adobe PageMaker3-7142003Expert
Adobe Photoshop3-25332023Advanced
Macromedia FreeHand3-11142005Expert
Microsoft Visio5-2016242023Advanced
QuarkXPress3.1-7.2142009Expert
Web Design
Instructional Design
Adobe Captivate142007Intermediate
- -

Web Development

-

Knowledgeable development professional with strong interests and aptitudes in database and programming languages.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ApplicationVersionsYearsLast Proficiency
Programming Languages
ANSI SQL122021Intermediate
C#12005Learning
Dart2-322023Basic
Java1.2-1862007Learning
JavaScript1.5-Latest142023Basic
MySQL3-8102019Intermediate
Perl6102007Basic
PHP3-592009Advanced
PL/SQL8i-9i32007Intermediate
Python2.5.1-3.072021Basic
Ruby1.8.6-3.452023Basic
SQL PL8.0122007Intermediate
Transact-SQL200032006Intermediate
Markup Languages
CSS1-3102023Advanced
HTML2-5202023Expert
RSS0.9.1, 0.9.2, 2.032007Advanced
SAML1-252007Basic
SGML52007Basic
WSDL42005Intermediate
XML62011Intermediate
Integrated Development Environments and Editors
Adobe Dreamweaver8-CS5112011Expert
Adobe HomeSite5.5102006Expert
BBEdit8.062000Advanced
GNU EMACS72002Intermediate
Sublime Text2-42023Advanced
TextPad5.4.2-8.1792020Expert
vi92023Intermediate
VS Code1.5-1.812023Advanced
Version Control Systems
CVS, WinCVS1.3-2.442007Basic
Git101-2.42023Advanced
Operating System Shells
bash242023Advanced
ksh32007Intermediate
wsh22007Intermediate
zsh132023Advanced
Internet Protocols
FTP202018Intermediate
HTTP1.0-2.0282023Advanced
IMAP72007Basic
LDAP102020Intermediate
POP152010Intermediate
STMP152010Intermediate
ajpv131.332007Intermediate
TNS12007Basic
iFS12007Basic
- -

Enterprise Applications and Servers

-

Solid experience with enterprise technologies for n-tier web-based applications, portals and tools.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ApplicationVersionsYearsLastProficiency
Database Systems
IBM DB28.0122007Intermediate
FileMaker Pro3-19332023Expert
Microsoft Access2000-201052007Basic
Microsoft SQL Server2000-200552010Intermediate
MySQL3-8102019Intermediate
Oracle8i-9i32007Intermediate
Directory Servers
Oracle Internet Directory9i32007Advanced
Microsoft Active Directory200332007Basic
Mail Servers
Microsoft Exchange Server200322006Basic
Application Servers
Adobe JRun3-432004Intermediate
Oracle WebLogic Server8.142007Intermediate
Cold Fusion Application Server3-732005Intermediate
IBM WebSphere Application Server5.122007Basic
IBM WebSphere Commerce Server5.622007Basic
Oracle Application Server9i, 10g32007Intermediate
Web Servers
Apache HTTPD Server0.8-2.4152018Advanced
Microsoft Internet Information Server4-672007Intermediate
Virtualization Systems
Oracle VirtualBox5.x-6.1.2282022Intermediate
VMware Server5.5-7.022007Basic
VMware Workstation5.5-7.062011Intermediate
Customer Relationship Management Applications
Oracle Siebel6.2, 7.832007Intermediate
Salesforce.com12007Learning
Web Applications and Portals
Agentrics ezMarket5.532007Advanced
Emptoris Sourcing Portfolio5.2 SP532007Advanced
Microsoft SharePoint2003, 200732007Intermediate
Oracle Exchange 6.2.332007Advanced
Vignette Application Portal3-7.152005Advanced
Monitoring Tools
HP Managed Services6.132007Advanced
HP SiteScope8.1.232007Intermediate
Web Analysis Tools
Google Analytics3-482023Basic
WebTrends Professional3-772004Advanced
Desktop Operating Systems
Helix1.732007Intermediate
Knoppix3.9-4.032007Intermediate
Linux282023Advanced
macOS5-10.14342023Advanced
Microsoft Windows3.1-11312023Expert
Server Operating Systems
Microsoft Windows ServerNT 4-2008 122009Intermediate
Red Hat Enterprise3, 442007Advanced
Oracle Solaris8-10102007Advanced
- -
- -
- - - - - - - - - diff --git a/resume.md b/resume.md new file mode 100644 index 0000000..ac450c8 --- /dev/null +++ b/resume.md @@ -0,0 +1,1391 @@ +--- +title: Resume | Anthony T. Sansone +layout: default +id: resume +--- + +{::nomarkdown} +
+ +

Summary

+

Technologist with 25 years experience in the market research; FMCG; media; computer hardware, software and services; and supply chain industries engaged in nearly every facet of Technical Writing, Software Development, Application/Infrastructure Support and Client Implementation available as jack-of-all-trades to technology groups.

+ +
+
+ +

Achievements

+
    +
  • Led team to highest ever developer satisfaction with documentation in four years.
  • +
  • Transformed REST API deliverables for large-scale cloud applications using OpenAPI and Swagger-Core.
  • +
  • Presented at two API the Docs conferences (Amsterdam, 2017 and Paris, 2018) about converting to OpenAPI.
  • +
  • Developed documentation systems using document systems, wikis, and docs-as-code methods.
  • +
  • Developed and deployed web design standards for large multinational company.
  • +
  • Integrated four support ticket systems using custom code and email. Documented the resulting API.
  • +
  • Developed and implemented the onboarding and training for four documentation teams.
  • +
  • Onboarded and trained most of 30-plus person documentation team, reducing time to productivity from four months to four weeks.
  • +
  • Facilitating weekly Q&A sessions for new staff members in open forum.
  • +
  • Trained more than 100 people from 20 nations to use SOAP-based API for consumer-packaged goods industry portal.
  • +
  • Managed five support engineers that maintained four global sourcing Java web applications.
  • +
  • Recruited, managed, and trained customer success managers based around the globe.
  • +
  • Created and managed administration and support processes across many groups, companies, and countries.
  • +
  • Founded and manage board of directors for national non-profit.
  • +
+ +
+
+ +

Professional Experience

+ +

Lead Technical Writer, Dart and Flutter

+

Google, LLC [dart.dev and docs.flutter.dev]

+Develop user content and coach junior writers for USD 543 MM data platform company. +
    +
  • Document the Dart language and Flutter app framework.
  • +
  • Maintain web sites for language that see more than 1 MM users per month.
  • +
+ +
+
Tools:
+
macOS; Google Workspace; Adobe Photoshop 2023, Acrobat; Sublime Text 4; zsh; Vale; Jekyll; GCP; Firebase; Docker; Kubernetes; Markdown
+
+ +
    +
  • Staff Technical Writer

  • +
  • Writing Coach and Mentor

  • +
+

August 2021 to July 2022

+

Senior Technical Writer (Cloud & API)

+

October 2015 to August 2021

+

MongoDB, Inc.

+Develop user content and coach junior writers for USD 543 MM data platform company. +
    +
  • Implemented department style guide enforced using Vale.
  • +
  • Create copy and diagrams for Cloud Manager, Ops Manager, and Atlas. These tools manage MongoDB databases. Specialize in security (LDAP, Kerberos, FIM), data protection (backup, restore), and REST APIs.
  • +
  • Converting 100 REST API resources to the OpenAPI 3 specification.
  • +
  • Building VILT offering using Instruqt.
  • +
  • Created entire corpus for MongoDB Enterprise Kubernetes Operator.
  • +
  • Implemented onboarding and training practices for four documentation teams.
  • +
  • Onboarded and taught majority of 30-plus person documentation team.
  • +
  • Coach and mentor through weekly Q&A sessions for new staff members in open forum.
  • +
+ +
+
Tools:
+
Microsoft Windows 10, Office 2016, Visio 2016; macOS; Google G Suite; Adobe Photoshop, InDesign, Illustrator CC 2017, Acroba; Sublime Text 3; zsh; Vale; Python; Sphinx; MongoDB Server, Cloud Manager, Ops Manager, Atlas, BI Connector, Compass; JIRA; AWS EC2; GCP; Azure; Sldck; Chef; Docker; Kubernetes; OpenAPI, SAML, Federated Identity Management, Kerberos, Instruqt, swagger-core
+
+ +

Lead Technical Writer

+

Cleversafe, Inc. (now IBM) [https://www.ibm.com/cloud/object-storage] September 2013 to October 2015

+Documented and diagrammed all products for an object-storage startup. +
    +
  • Refactored all existing API, hardware, and configuration documentation.
  • +
  • Converted 40-plus documents from Microsoft Word documents to docs-as-code hosted on Zurb.
  • +
+ +
+
Tools:
+
Microsoft Windows 7, 10, Office 2013, Visio 2013, SharePoint 36 Adobe Photoshop, InDesign, Illustrator CC 2015, Acrobat Ddd Sublime Text 2; bash; Java; Ruby; ASCIIdoctor; Awestruct; Zurb Foundation; Confluence; Rally
+
+ +
    +
  • Senior Technical Writer

  • +
  • Linux Administrator [Contract]

  • +
+

Target Data Corporation [www.targetdatacorp.com] April 2013 to September 2013

+Created documentation for data analytics company focused on real estate. Covered operations, code, configuration, architecture, application, and capabilities. Managed Linux systems and writing shell scripts for data analytics company focused on real estate. +
    +
  • Documented BeanShell code, SQL queries and UNIX shell scripts that maintain ETL systems.
  • +
  • Converted XML settings files into standard OpenXML/Word documents.
  • +
  • Configured new CentOS servers for data center move including secure shell and FTP access and user access.
  • +
+ +
Tools:
+
Microsoft Windows 7, Office 2013, Visio 2007, SharePoint 365; CentOS 6; Mac OS X 10.7; Adobe Photoshop, InDesign, Illustrator Cdd Screen-Scraper 6; NotePad++; TextPad 7; bash; Java; BeanShell; MySQL; HP Vertica
+
+ + +

Senior Technical Writer

+

EMC Corporation / VCE Company, July 2007 to Present

+
    +
  • Document, edit, design and diagram application functionality, configuration, architecture, applications and capabilities for customers throughout central sales division
  • +
  • Document, edit, design and diagram proposals, white papers and solutions for customers
  • +
  • Advise sales staff on best means to present pursuasive material to clients based upon requirements provided and personal knowledge of industry, sourcing and company offerings
  • +
  • Work to improve knowledge management and collaboration using MediaWiki and Microsoft SharePoint
  • +
+ +
+
Tools:
+
Microsoft Windows XP, Windows Server 2003, Office, Visio 2010; Adobe Acrobat, Photoshop, InDesign, Illustrator CS3
+
+ +
    +
  • Manager, Application Support

  • +
  • Manager, Technical Process

  • +
+

Agentrics LLC, November 2005 to May 2007

+
    +
  • Managed 24×7 Level 2 support, administration for 4 web-based Sourcing and Contract solutions for 14 of the top 25 largest global retailers and their thousands of suppliers: GenSource Negotiations (by GNX) [Oracle Exchange 6.2.3], GenSource Negotiations (by WWRE) [ezMarket 5.5.5], GenSource Sourcing [Emptoris Sourcing Portfolio 5.2 SP5] and GenSource Tools
  • +
  • Recruited, trained, mentored, managed 5 engineers and trained, mentored 20 Level 1 service desk staff
  • +
  • Developed, documented, trained and deployed ITIL-based processes and procedures
  • +
  • Documented and diagrammed application functionality, configuration, architecture, applications and capabilities for developers, engineers
  • +
  • Developed knowledge base for Level 1 service desk staff
  • +
  • Deployed new releases of all applications on Solaris and Windows-based servers
  • +
  • Assisted Product Management in risk assessment, requirements definition and customer communications
  • +
  • Worked to improve knowledge management, service management and collaboration using Siebel, JIRA, MediaWiki and Microsoft SharePoint
  • +
  • Managed Oracle AS-, WebSphere-, WebLogic-based J2EE applications
  • +
  • Monitored applications using SiteScope, Business Availability Center
  • +
+ +
+
Tools:
+
Oracle 9iAS, 10gAS, 8i RDBMS, 9i RDBMS, Exchange 6.2.3, Siebel 6.2, 7.8; BEA WebLogic 8.1 SP4; IBM WebSphere Application Server 5.1, Commerce Server 5.5, DB2 8.0; Bugzilla 2.1; Mercury/HP Managed Services, SiteScope 8, VUGen 8; Sun Solaris 8, 9, 10; Microsoft Windows Server 2003, Office, Visio 2003; PL/SQL; UNIX Korn, Bourne, Bourne Again Shell
+
+ +
    +
  • Manager, Implementation

  • +
  • Global Administrator

  • +
+

VNU Marketing Information Group, March 2002 to October 2005

+
    +
  • Coordinated support, administration for 650 clients and 32,000 client users of Global extranet, ACNielsen Answers, the first business information portal and the platform for all ongoing content, data development and deployment for Consumer Packaged Goods industry
  • +
  • Worked on the deployment and support of first interactive, live decision support tool for the industry, Category Business Planner
  • +
  • Trained more than 100 users, administrators and support personnel from more than 20 nations throughout the Americas, Asia and Europe in use of and development with portal including WSDl, SOAP and SAML-based integrations
  • +
  • Developed, diagrammed, edited and maintained portal documentation including architecture, coding standards, integration guides, user guides, configuration guides and administration guides
  • +
  • Developed presentations and demos using Macromedia Flash, Microsoft Powerpoint, RoboDemo and Camtasia to demonstrate applications
  • +
  • Developed integration to coordinate regional, global ticketing systems using ETL on email-based messaging queues between systems
  • +
  • Managed, trained 5 implementation specialists based throughout the world in architecting and supporting regional offerings
  • +
  • Managed configuration of Windows and Vignette Portal-based client extranet
  • +
  • Managed systems architecture project including selection, negotiation, recommendation, acquisition, configuration of systems
  • +
+ +
+
Tools:
+
Vignette Application Portal 7.x; Macromedia Dreamweaver, Flash MX 2004; Adobe Photoshop 7.0; Microsoft Word, Excel, Outlook, Visio 2003; eHelp RoboHelp, RoboDemo; Microsoft Windows Server 2000, SQL Server 2000; AIX; Sun Solaris 8; Red Hat Enterprise Linux 3.5; Avensoft Perfect Tracker 7.0
+
+ +

Web Developer

+

ACNielsen Corporation, September 1997 to March 2002

+
    +
  • Managed multinational, multilingual site of leading multinational market research corporation, including Perl (CGI), PHP and MySQL application and database design and development and Solaris system administration
  • +
  • Reported on site activity regularly with WebTrends Professional
  • +
  • Developed web standards for information architecture, development, design, content and reporting guidelines to 150 users worldwide
  • +
  • Documented processes, trained web developers from 12 nations
  • +
  • Coordinated support, administration of Epicentric 3.5/4.0 Portal-based Global intranet, ACNielsen@Work
  • +
+ +
+
Tools:
+
Epicentric Application Portal 4.x; Macromedia Dreamweaver, Flash MX, HomeSite 5.0; Adobe Photoshop 7.0; Microsoft Word, Excel, Outlook, Visio XP; Sun Solaris 8; WebTrends Professional 8; WebPosition; PHP; Perl; MySQL
+
+ +
    +
  • Webmaster

  • +
  • Content Producer

  • +
+

Television Wisconsin, Inc. / WISC-TV3 & Murphy Entertainment Group, January 1996 to September 1997

+
    +
  • Redesign, managed content for broadcasts, general news web site
  • +
  • Designed, developed and implemented web site for clients
  • +
+ +
+
Tools:
+
HomeSite 4.0; Adobe Photoshop 4.0
+
+ +
+
+ +

College Experience

+ +
    +
  • Vice President

  • +
  • General Manager

  • +
+

The Daily Cardinal Media Corporation, February 1995 to September 1997

+
    +
  • Managed award-winning Madison news site
  • +
  • Designed, deployed new LAN; negotiated free internet connectivity
  • +
  • Settled $240,000 debt within 2 years; collected $58,000 in past-due Accounts Receivable
  • +
  • Re-engineered systems, processes for accounting for the newspaper
  • +
  • Wrote, designed HR, promotional pieces including brochures, manuals, forms, four-color advertisements, maps using QuarkXPress, Adobe Photoshop and Adobe Illustrator
  • +
  • Co-authored articles of incorporation, by-laws; co-authored sales, style, personnel manuals; authored all position descriptions
  • +
+ +
+
Tools:
+
BBEdit 4.0; QuarkXPress 4.0; Adobe Illustrator 8.0, Photoshop 4.0; Microsoft Word 6, Excel 5; QuickBooks 6; Slackware Linux; Majordomo; Perl 4
+
+ +
    +
  • Publisher

  • +
  • Editor-in-Chief

  • +
  • Managing Editor

  • +
+

The Wisconsin Badger Inc., December 1992 to January 1995

+
    +
  • Administered affairs of student annual including supervising staff of 40
  • +
  • Developed subscriptions, inventory and production management systems
  • +
  • Increased sales by 59%, settled $35,000 debt, administered $95,000 budget
  • +
  • Interviewed campus, state public figures for publication
  • +
  • Designed majority of publication using QuarkXPress and Adobe Photoshop
  • +
+ +
+
Tools:
+
QuarkXPress 4.0; Adobe Photoshop 4.0; Microsoft Word 6, Excel 5; Quicken 6
+
+ +

Technical and Communications Consultant

+

Wisconsin Student Association, June 1991 to July 1992

+
    +
  • Developed branding; designed promotional pieces and graphics using QuarkXPress, Aldus FreeHand
  • +
  • Maintained, upgraded, purchased, supported MacOS computers (including upgrade from System 6 to System 7) and LAN
  • +
  • Trained and assisted 50 member staff in use of applications and network
  • +
+ +
+
Tools:
+
Adobe Photoshop 3.0, Aldus FreeHand 3.0, PageMaker 4.0; MacOS 6, 7
+
+ +
    +
  • Production Manager

  • +
  • Graphics Editor

  • +
  • Reporter

  • +
+

The Daily Cardinal Newspaper Corporation, October 1990 to August 1991

+
    +
  • Designed, assigned infographics and advertisements for the Daily Cardinal, a 20,000+ daily
  • +
  • Oversaw, trained 10 graphic designers, typesetters, keyliners
  • +
  • Recommended, maintained, upgraded or repaired hardware, software
  • +
+ +
+
Tools:
+
Adobe Photoshop 3.0; Aldus FreeHand 3.0, PageMaker 4.0; FileMaker Pro 3.0; MacOS 5, 6
+
+ +
+
+ +

Awards

+
    +
  • Graduate School Dean Fellowship (2011–12)
  • +
  • 3 EMC Rewards (2009–11)
  • +
  • 4 Arthur C. Nielsen Jr. Individual Awards (2000)
  • +
  • 5 ART Awards for performance excellence (1998–2004)
  • +
  • Best News Web Site (2nd Place), Isthmus (1997)
  • +
+ +
+
+ +

Certifications

+
    +
  • ITIL Foundations
  • +
  • UNIX Systems and Network Administration
  • +
+ +
+
+ +

Professional Organizations

+ +

Treasurer

+

Boulevard Pointe Condominium Association, April 2009 to September 2011

+
    +
  • Served as financial officer of 25-unit condominium complex with $105,000 annual budget
  • +
+ +

Secretary

+

Greater Chicago Ferret Association, April 2009 to Present

+
    +
  • Serve on 9-member board to 250 member club of small animal owners
  • +
  • Found new location and secured lease for abandoned animal shelter; the first new location in 18 years with twice the square feet and only 33% more monthly cost
  • +
+ +

Director

+

Wisconsin Alumni Association, July 1998 to July 2001

+
    +
  • Served on 25-member board to UW-Madison’s 250,000 alumni
  • +
+ +

President, Founder

+

Daily Cardinal Alumni Association, March 1998 to Present

+
    +
  • Found college newspaper alumni association with 6,500 members
  • +
  • Chair 18 member board of directors of journalism, business professionals
  • +
  • Designed, managed communications email newsletter and web site using DreamWeaver MX, PHP, MySQL and DadaMail
  • +
  • Designed, wrote, edited newsletter using QuarkXPress 7, Adobe InDesign CS3, Photoshop CS3
  • +
  • Raised $125,000 for capital and scholarships for The Daily Cardinal
  • +
+ +
+
+ +

Education

+ + +
+
+ +

Skills

+ +

Spoken and Written Languages

+

Basic speaking and writing abilities in various languages; a native speaker of U.S. English, with a mastery of World Englishes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SkillProficiency
EnglishNative Speaker
FrenchBasic
SpanishBasic
PortugeseLearning
ItalianIntermediate
+ +

Technical and Professional

+

Broad spectrum of technical and professional skills based upon 20+ years experience at the college and professional levels.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SkillYears Exp.Last UsedProficiency
Academic Writing72023Intermediate
Application Administration82023Advanced
Application Architecture112023Advanced
Budgeting252023Intermediate
Business Writing252023Expert
Content Management Systems112023Advanced
Database Design92007Intermediate
Database Development92007Intermediate
Graphic Design322023Expert
Information Architecture132023Advanced
Internationalization and Localization102007Advanced
Marketing252023Intermediate
Personnel Management202023Intermediate
Project Management202023Advanced
Technical Procurement222011Intermediate
Technical Support (Desktop)252023Expert
Technical Support (Enterprise)102007Expert
Technical Writing252023Expert
Training302023Expert
UNIX Server Administration152023Advanced
Web Application Development92007Intermediate
Web Development282023Expert
Windows Server Administration82007Intermediate
+ +

Desktop Productivity Applications

+

Experienced user of Microsoft Office and most major web browsers and mail applications.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationVersionsYearsLast Proficiency
Productivity Application
Microsoft Excel3-365322023Expert
Microsoft PowerPoint2000-365242023Expert
Microsoft Project2000-200372007Intermediate
Microsoft Word3-365322023Expert
AppleWorks3-6.072005Intermediate
Financial Application
Intuit QuickBooks6, 99, 2000-200752004Intermediate
Intuit Quicken99, 2000-2011122011Advanced
Mail Application
Microsoft Outlook5.5-365142011Advanced
Mozilla Thunderbird0.7-3.042009Advanced
Web Browser
Mozilla Firefox0.8-Latest202023Expert
Microsoft Internet Explorer 2.0-11.0252021Expert
Safari3.0-Latest82023Intermediate
Google Chrome6.0-Latest162023Intermediate
Lynx31997Advanced
+ +

Graphic and Web Design

+

Detailed knowledge of all areas, skills including: typography; page composition; infographics, including tables, charts, graphs and maps; four-color design, including separations; digital publishing and HTML; online and hard copy research; interviewing; reporting; copy editing; and creating and giving presentations.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationVersionsYearsLast Proficiency
Graphic Design
Adobe Acrobat1-DC302023Expert
Adobe Fireworks4-CS582007Intermediate
Adobe Illustrator3-25302023Intermediate
Adobe InDesignCS-25182023Expert
Adobe PageMaker3-7142003Expert
Adobe Photoshop3-25332023Advanced
Macromedia FreeHand3-11142005Expert
Microsoft Visio5-2016242023Advanced
QuarkXPress3.1-7.2142009Expert
Web Design
Instructional Design
Adobe Captivate142007Intermediate
+ +

Web Development

+

Knowledgeable development professional with strong interests and aptitudes in database and programming languages.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationVersionsYearsLast Proficiency
Programming Languages
ANSI SQL122021Intermediate
C#12005Learning
Dart2-322023Basic
Java1.2-1862007Learning
JavaScript1.5-Latest142023Basic
MySQL3-8102019Intermediate
Perl6102007Basic
PHP3-592009Advanced
PL/SQL8i-9i32007Intermediate
Python2.5.1-3.072021Basic
Ruby1.8.6-3.452023Basic
SQL PL8.0122007Intermediate
Transact-SQL200032006Intermediate
Markup Languages
CSS1-3102023Advanced
HTML2-5202023Expert
RSS0.9.1, 0.9.2, 2.032007Advanced
SAML1-252007Basic
SGML52007Basic
WSDl42005Intermediate
XML62011Intermediate
Integrated Development Environments and Editors
Adobe Dreamweaver8-CS5112011Expert
Adobe HomeSite5.5102006Expert
BBEdit8.062000Advanced
GNU EMACS72002Intermediate
Sublime Text2-42023Advanced
TextPad5.4.2-8.1792020Expert
vi92023Intermediate
VS Code1.5-1.812023Advanced
Version Control Systems
CVS, WinCVS1.3-2.442007Basic
Git101-2.42023Advanced
Operating System Shells
bash242023Advanced
ksh32007Intermediate
wsh22007Intermediate
zsh132023Advanced
Internet Protocols
FTP202018Intermediate
HTTP1.0-2.0282023Advanced
IMAP72007Basic
LDAP102020Intermediate
POP152010Intermediate
STMP152010Intermediate
ajpv131.332007Intermediate
TNS12007Basic
iFS12007Basic
+ +

Enterprise Applications and Servers

+

Solid experience with enterprise technologies for n-tier web-based applications, portals and tools.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationVersionsYearsLastProficiency
Database Systems
IBM DB28.0122007Intermediate
FileMaker Pro3-19332023Expert
Microsoft Access2000-201052007Basic
Microsoft SQL Server2000-200552010Intermediate
MySQL3-8102019Intermediate
Oracle8i-9i32007Intermediate
Directory Servers
Oracle Internet Directory9i32007Advanced
Microsoft Active Directory200332007Basic
Mail Servers
Microsoft Exchange Server200322006Basic
Application Servers
Adobe JRun3-432004Intermediate
Oracle WebLogic Server8.142007Intermediate
Cold Fusion Application Server3-732005Intermediate
IBM WebSphere Application Server5.122007Basic
IBM WebSphere Commerce Server5.622007Basic
Oracle Application Server9i, 10g32007Intermediate
Web Servers
Apache HTTPD Server0.8-2.4152018Advanced
Microsoft Internet Information Server4-672007Intermediate
Virtualization Systems
Oracle VirtualBox5.x-6.1.2282022Intermediate
VMware Server5.5-7.022007Basic
VMware Workstation5.5-7.062011Intermediate
Customer Relationship Management Applications
Oracle Siebel6.2, 7.832007Intermediate
Salesforce.com12007Learning
Web Applications and Portals
Agentrics ezMarket5.532007Advanced
Emptoris Sourcing Portfolio5.2 SP532007Advanced
Microsoft SharePoint2003, 200732007Intermediate
Oracle Exchange 6.2.332007Advanced
Vignette Application Portal3-7.152005Advanced
Monitoring Tools
HP Managed Services6.132007Advanced
HP SiteScope8.1.232007Intermediate
Web Analysis Tools
Google Analytics3-482023Basic
WebTrends Professional3-772004Advanced
Desktop Operating Systems
Helix1.732007Intermediate
Knoppix3.9-4.032007Intermediate
Linux282023Advanced
macOS5-10.14342023Advanced
Microsoft Windows3.1-11312023Expert
Server Operating Systems
Microsoft Windows ServerNT 4-2008 122009Intermediate
Red Hat Enterprise3, 442007Advanced
Oracle Solaris8-10102007Advanced
+ +
+ +{:/nomarkdown} diff --git a/resumewriting.html b/resumewriting.html index 8035c76..57d7f9e 100644 --- a/resumewriting.html +++ b/resumewriting.html @@ -1,593 +1,593 @@ - - - - - - - - - - - - Anthony Sansone: Writing a Resume - - - - - - - - - - - -
- -

Anthony T. Sansone

- -
-
Designer. Writer. Board Member. Mentor. Educator.
- -
- +1 312 725 2450 - a.t.sansone@gmail.com -
-
- - - -
- -
- -
- -

Resume Help

- -

What are you selling? What story are you telling?

-
    -
  • The resume is the movie trailer. -
      -
    • Include enough to grab attention, but keep really interesting stories vague, so you have something on which you can build in the cover letter and interview.
    • -
    -
  • -
  • What do you have to offer that is sufficiently unique to set you apart from someone else?
  • -
  • Feature the components which highlight you: such as listing job title above the company.
  • -
  • Try to put one or more points in the resume that will spur a question from the interviewer.
  • -
- -

Consider the Reader

- -

Machines

-

A resume will be read by a computer more often than by a person, whether it is a job site or a corporate human resources program. This means that you will need to treat your resume like a web site; try to optimize the content for certain keywords used in job descriptions. These keywords will need to occur with a reasonable amount of frequency.

- -

People

-

The reader will not know everything about the companies in and projects on which you worked. Be sure to provide quantifiable details about the companies which reflect well upon you. Be neither too vague nor too specific in activities in your resume. Write it as a tease; something that makes the interviewer will want to know more about you.

- -

Versions

-

You will need more than one version of your resume. Yes, that sucks. Start by creating a version that has everything you would ever include about yourself and your capabilities. Then, when applying for a particular position, remove the positions and skills that are not as relevant to the position you wish to acquire. It’s creative editing, plain and simple.

- -

Mechanicals

- -

File Format

-
    -
  • It will be necessary to prepare your resume in three file formats: HTML, Microsoft Word and plain ASCII text.
  • -
  • No PDF (usually). No Photoshop (yes, I’ve seen it done). No InDesign.
  • -
  • Most all corporate resume programs and job web sites can import or utilize Word or Text files.
  • -
  • Text files will need to have hard line breaks at 70 characters if you want them to look as you intended on job sites.
  • -
  • Many major job sites have WYSIWYG editors that let you format the resume in a form field; some will even let you paste in HTML source code to format it exactly the way you want.
  • -
  • This will mean that you will need to have and get comfortable with a straight text editor like TextWrangler (Mac), TextPad (Win) or gEdit (Linux) to make your text copy as clean as possible.
  • -
  • Even with all of this work, you will still need to enter parts of your resume into a form that job sites use to make your resume searchable by employers.
  • -
- -

Headline

-
    -
  • For a job web site, you will need to create a one-line summary of what you are and what you offer in 8 to 10 words.
  • -
  • This may mean re-entering the same resume under multiple headlines or variations under different headlines.
  • -
- -

Design

-
    -
  • Design for the screen first, then for print.
  • -
  • Your resume should be attractive (choose color and font carefully) and readable (use sufficient white space and emphasis).
  • -
- -

Length

-
    -
  • Length is immaterial, really. If you have the experience and skills to support the length, use it.
  • -
  • Again, the resume is on screen first, so length is less recognized.
  • -
- -

Language

-
    -
  • Use industry-relevant language to describe your experience and skills. -
      -
    • For Example: Saying you covered "higher education" in a position tells the reader that you understand universities and colleges and how they function. Saying you covered "transportation" tells the reader you know about road construction, mass transit and traffic patterns.
    • -
    -
  • -
  • Getting the jargon right sets your resume apart because it shows you actually know the employer’s business.
  • -
- -

Fonts

-
    -
  • Stay with no more than two typefaces: One sans-serif and one serif or two sans-serif.
  • -
  • Choose typefaces that are common across computers with Microsoft Office 2007/2010 (PC) and 2008/2011 (Mac).
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Font nameFont nameVariantsTypeMacPCPC SourceMac Source
ArialArialBlack, Bold, Bold Italic, Italic, RegularSans SerifYYXPOS X
Arial NarrowArial NarrowBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007OS X
CalibriCalibriBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
CandaraCandaraBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
CorbelCorbelBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
Franklin GothicFranklin GothicBook, Book ItalicSans SerifYYOffice 2007Office 2008
Franklin GothicFranklin GothicMedium, Medium ItalicSans SerifYYXPOffice 2008
Gill Sans MTGill Sans MTBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
Trebuchet MSTrebuchet MSBold, Bold Italic, Italic, RegularSans SerifYYXPOS X
Tw Cen MTTw Cen MTBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
VerdanaVerdanaBold, Bold Italic, Italic, RegularSans SerifYYXPOS X
CambriaCambriaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
ContantiaContantiaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
GeorgiaGeorgiaBold, Bold Italic, Italic, RegularSerifYYXPOS X
PerpetuaPerpetuaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
Segoe UISegoe UIBold, Bold Italic, Italic, RegularSerifYYOffice 2007OS X
Times New RomanTimes New RomanBold, Bold Italic, Italic, RegularSerifYYXPOS X
Webdings?????????RegularSymbolYXP
Wingdings?????????RegularSymbolYXP
Wingdings 2?????????RegularSymbolYOffice 2007
Wingdings 3?????????RegularSymbolYOffice 2007
Zapf DingbatsZapf DingbatsRegularSymbolYOS X
- -

Color

-
    -
  • Use basic color highlights to provide some visual appeal for the reader.
  • -
  • Your resume will be seen on the screen first; use of color or grayscale rules and/or text to break up and highlight the space is helpful.
  • -
- -

Organization

- -

Contact Details

- - - - - - - - - - - - - - - - - - - - - -
NameUse your formal name, the one with which you would sign a check.
Mailing Address - The mailing address is not strictly required any more. Not that many items will be mailed to you before an offer letter. -
    -
  • Use the address at which you can be reliably reached.
  • -
  • It is not necessary to provide a permanent and temporary address.
  • -
  • Keep your address consistent: use all abbreviations or none. All abbreviations work better.
  • -
-
Email AddressAlways use a non-UW and non-cryptic or strange email address.
TelephoneUse a number at which you can be reliably reached, usually a mobile phone.
Web Site -
    -
  • Use a personal web site—not a blog, unless it is directly relevant to your professional qualifications—with your resume and/or a portfolio or link to a portfolio.
  • -
  • Use a portfolio site or a Flickr / Vimeo / YouTube site for your work examples.
  • -
  • If you do not have these but do have a site on which you can search for your work, go to that site, do the search, copy that URL and run it through a URL shortener (bit.ly, Tiny URL, goo.gl, etc.) and use that as a URL.
  • -
  • Use a custom LinkedIn URL such as http://www.linkedin.com/yourname. This can be created at http://www.linkedin.com/myprofile?editwp= then clicking on the Edit link on Your Public Profile URL.
  • -
-
- -

Objective

-

Do not bother. Again, consider the reader. They will not care. Consider a Personal Summary.

- -

Personal Summary

-

This can be written in two ways: a sidebar with a list of skills and experience or an introductory paragraph explaining your unique qualifications.

- -

Education

-
    -
  • List your degree, year and relevant courses if they will highlight exceptional knowledge on your part.
  • -
  • Do not list your GPA. No one outside of a graduate school cares. Really. If you are on the Dean’s List, list that.
  • -
  • Education should come before Experience only if you do not have the demonstrative experience.
  • -
- -

Experience

-
    -
  • List the position above the company always. The resume is about you, not the company. -
      -
    • In cases where you post your resume on a personal web site, you may even want to remove the specific company name so people do not try to find or find out about you by calling these companies directly.
    • -
    • For Example: "Daily Cardinal" may become "College Newspaper at Major Public University".
    • -
    -
  • -
  • Keep all entries to bullet points starting with active verbs. -
      -
    • No one is interested that you just exist.
    • -
    • Jobs are about doing something. People want to hire you to do.
    • -
    • Avoid verbs like "assist," "help," "attend," "participate". They tell the reader little if anything. Think about the actual work you performed. Work is about doing.
    • -
    -
  • -
  • Optimize word choice. -
      -
    • Verbs like "emphasize" or "evaluate" tell very little.
    • -
    • These words force a "how" or "why" to be asked. Pick a word or phrase that would clarify what you did.
    • -
    -
  • -
  • Explain the company at which you worked and the projects in which you worked within the description of the work. Not everyone will know what these companies or projects are or were. -
      -
    • If it is a newspaper, list the circulation, market and print schedule.
    • -
    • If it is a company, list annual revenue, industry and client base.
    • -
    -
  • -
  • Use quantities with few colorful qualifiers. -
      -
    • Adjectives need to be explanatory or clarifying.
    • -
    • Adverbs may be more helpful.
    • -
    -
  • -
  • Include skills or tools sections with each position if it will clarify what you learned or first knew how to do something or how long ago you learned.
  • -
  • Include a special section highlighting projects or certain activities if it will show what you are capable of doing.
  • -
- -

Skills

-
    -
  • Skills are the most important part.
  • -
  • Skills are usually technical and language, but can include soft skills if they are written as a short phrase. -
      -
    • For Example: Knowing AP style could be listed as "Working Knowledge of Associated Press Style".
    • -
    -
  • -
  • These skills should be listed as skill, level, years used and year last used.
  • -
  • The level of proficiency should be listed using the guides in the following guides.
  • -
- -

Proficiency Levels

- -

Language Proficiency

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LevelTitle / UnderstandingDescription
1Beginning / NoviceA novice has extremely limited vocabulary and grammar, understands very little of the language when spoken normally, has difficulty making self understood by native speakers, and thus has serious problems in an immersion situation. A novice may be able to order food in a restaurant, buy a train ticket, and find lodging for the night, but only with great difficulty.
2Intermediate / SurvivorA survivor converses using basic vocabulary (time, date, weather, family, clothes); uses the present, past, and future tenses more or less correctly; and is aware of difficult grammar topics (e.g., subjunctive, relative pronouns), but either uses them incorrectly or awkwardly rearranges sentences in order to avoid them. Still needs to tote a dictionary and/or phrase book around, but can survive in an immersion situation: order food, give and receive directions, take a taxi, etc.
3Advanced / ConversationalistA conversationalist has the ability to converse about fairly abstract ideas, state opinions, read newspapers, understand the language when spoken normally (on TV, radio, film, etc.) with slight-to-moderate difficulty. Still has some trouble with specialized vocabulary and complicated grammar, but can reorganize sentences in order to communicate and figure out the majority of new vocabulary within the context.
4Fluent / DebaterA fluent speaker can participate in extended conversations, understand the language when spoken normally (on TV, radio, film, etc.), figure out meaning of words within context, debate, and use/understand complicated grammatical structures with little or no difficulty. Has good accent and understands dialects with slight-to-moderate difficulty.
5Mother Tongue / Native SpeakerSomeone who has spoken the language from at least the age of 5 (this age limit is subject to some debate: I've heard theories that a native speaker can have started learning the language as late as any time up to puberty). In theory, understands essentially everything in the language: all vocabulary, complicated grammatical structures, cultural references, and dialects. Has a native (i.e., invisible, "normal" in his/her region) accent.
-

Source

- -

Technical Proficiency

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LevelTitleKnowledgeTool UsageSharing
1BasicHas and uses the required functional and technical knowledge and skills necessary to do his or her jobChooses appropriate tools or technology for the taskHas the capability and knowledge base to share technical skills with others
2IntermediateHas and uses the required functional and technical knowledge and skills to do his or her job at a high level of accomplishment -
    -
  • Chooses appropriate tools or technology for tasks
  • -
  • Experiments with new processes, tools, or technologies to determine applicability
  • -
-
Provides opportunities for others to learn technical skills and concepts
3Advanced -
    -
  • Demonstrates an active interest in enhancing current skills and learning new ones
  • -
  • Applies advanced functional or technical knowledge to do his or her job at a high level of accomplishment
  • -
-
-
    -
  • Chooses appropriate tools or technology for tasks
  • -
  • Improves or redesigns processes, tools, or technologies to determine applicability
  • -
-
- Consistently shares expertise with others, teaching skills and explaining concepts -
4Expert -
    -
  • Demonstrates an avid interest in continuously enhancing current skills and learning new ones
  • -
  • Applies advanced functional or technical knowledge to process innovation and complex problem solving
  • -
  • Demonstrates an exemplary level of accomplishment in job performance
  • -
-
-
    -
  • Insightfully selects, combines, or invents appropriate tools or technology for tasks
  • -
  • Improves or redesigns processes, tools, or technologies
  • -
-
- Is sought out by others for technical expertise and knowledge and for troubleshooting of complex technical issues -
-

Source

-

Never be afraid to put your proficiency level as "Learning" when you are actually learning the skill. It adds to your keyword listing and demonstrates that you are not a dead end regarding your desire to improve in your career.

- -

References

-

Do not include the clichéd "References available upon request." They know. Most do not check references anyway.

- - -

Revisions

-

It is recommended that you revisit and repost your resume at least once every three months. Employee hunters key in on new and updated resumes. If you have had no bites in a while, make an update and repost.

- -
- -
- - - - - - - - + + + + + + + + + + + + Anthony Sansone: Writing a Resume + + + + + + + + + + + +
+ +

Anthony T. Sansone

+ +
+
Designer. Writer. Board Member. Mentor. Educator.
+ +
+ +1 312 725 2450 + a.t.sansone@gmail.com +
+
+ + + +
+ +
+ +
+ +

Resume Help

+ +

What are you selling? What story are you telling?

+
    +
  • The resume is the movie trailer. +
      +
    • Include enough to grab attention, but keep really interesting stories vague, so you have something on which you can build in the cover letter and interview.
    • +
    +
  • +
  • What do you have to offer that is sufficiently unique to set you apart from someone else?
  • +
  • Feature the components which highlight you: such as listing job title above the company.
  • +
  • Try to put one or more points in the resume that will spur a question from the interviewer.
  • +
+ +

Consider the Reader

+ +

Machines

+

A resume will be read by a computer more often than by a person, whether it is a job site or a corporate human resources program. This means that you will need to treat your resume like a web site; try to optimize the content for certain keywords used in job descriptions. These keywords will need to occur with a reasonable amount of frequency.

+ +

People

+

The reader will not know everything about the companies in and projects on which you worked. Be sure to provide quantifiable details about the companies which reflect well upon you. Be neither too vague nor too specific in activities in your resume. Write it as a tease; something that makes the interviewer will want to know more about you.

+ +

Versions

+

You will need more than one version of your resume. Yes, that sucks. Start by creating a version that has everything you would ever include about yourself and your capabilities. Then, when applying for a particular position, remove the positions and skills that are not as relevant to the position you wish to acquire. It’s creative editing, plain and simple.

+ +

Mechanicals

+ +

File Format

+
    +
  • It will be necessary to prepare your resume in three file formats: HTML, Microsoft Word and plain ASCII text.
  • +
  • No PDF (usually). No Photoshop (yes, I’ve seen it done). No InDesign.
  • +
  • Most all corporate resume programs and job web sites can import or utilize Word or Text files.
  • +
  • Text files will need to have hard line breaks at 70 characters if you want them to look as you intended on job sites.
  • +
  • Many major job sites have WYSIWYG editors that let you format the resume in a form field; some will even let you paste in HTML source code to format it exactly the way you want.
  • +
  • This will mean that you will need to have and get comfortable with a straight text editor like TextWrangler (Mac), TextPad (Win) or gEdit (Linux) to make your text copy as clean as possible.
  • +
  • Even with all of this work, you will still need to enter parts of your resume into a form that job sites use to make your resume searchable by employers.
  • +
+ +

Headline

+
    +
  • For a job web site, you will need to create a one-line summary of what you are and what you offer in 8 to 10 words.
  • +
  • This may mean re-entering the same resume under multiple headlines or variations under different headlines.
  • +
+ +

Design

+
    +
  • Design for the screen first, then for print.
  • +
  • Your resume should be attractive (choose color and font carefully) and readable (use sufficient white space and emphasis).
  • +
+ +

Length

+
    +
  • Length is immaterial, really. If you have the experience and skills to support the length, use it.
  • +
  • Again, the resume is on screen first, so length is less recognized.
  • +
+ +

Language

+
    +
  • Use industry-relevant language to describe your experience and skills. +
      +
    • For Example: Saying you covered "higher education" in a position tells the reader that you understand universities and colleges and how they function. Saying you covered "transportation" tells the reader you know about road construction, mass transit and traffic patterns.
    • +
    +
  • +
  • Getting the jargon right sets your resume apart because it shows you actually know the employer’s business.
  • +
+ +

Fonts

+
    +
  • Stay with no more than two typefaces: One sans-serif and one serif or two sans-serif.
  • +
  • Choose typefaces that are common across computers with Microsoft Office 2007/2010 (PC) and 2008/2011 (Mac).
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Font nameFont nameVariantsTypeMacPCPC SourceMac Source
ArialArialBlack, Bold, Bold Italic, Italic, RegularSans SerifYYXPOS X
Arial NarrowArial NarrowBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007OS X
CalibriCalibriBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
CandaraCandaraBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
CorbelCorbelBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
Franklin GothicFranklin GothicBook, Book ItalicSans SerifYYOffice 2007Office 2008
Franklin GothicFranklin GothicMedium, Medium ItalicSans SerifYYXPOffice 2008
Gill Sans MTGill Sans MTBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
Trebuchet MSTrebuchet MSBold, Bold Italic, Italic, RegularSans SerifYYXPOS X
Tw Cen MTTw Cen MTBold, Bold Italic, Italic, RegularSans SerifYYOffice 2007Office 2008
VerdanaVerdanaBold, Bold Italic, Italic, RegularSans SerifYYXPOS X
CambriaCambriaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
ContantiaContantiaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
GeorgiaGeorgiaBold, Bold Italic, Italic, RegularSerifYYXPOS X
PerpetuaPerpetuaBold, Bold Italic, Italic, RegularSerifYYOffice 2007Office 2008
Segoe UISegoe UIBold, Bold Italic, Italic, RegularSerifYYOffice 2007OS X
Times New RomanTimes New RomanBold, Bold Italic, Italic, RegularSerifYYXPOS X
Webdings?????????RegularSymbolYXP
Wingdings?????????RegularSymbolYXP
Wingdings 2?????????RegularSymbolYOffice 2007
Wingdings 3?????????RegularSymbolYOffice 2007
Zapf DingbatsZapf DingbatsRegularSymbolYOS X
+ +

Color

+
    +
  • Use basic color highlights to provide some visual appeal for the reader.
  • +
  • Your resume will be seen on the screen first; use of color or grayscale rules and/or text to break up and highlight the space is helpful.
  • +
+ +

Organization

+ +

Contact Details

+ + + + + + + + + + + + + + + + + + + + + +
NameUse your formal name, the one with which you would sign a check.
Mailing Address + The mailing address is not strictly required any more. Not that many items will be mailed to you before an offer letter. +
    +
  • Use the address at which you can be reliably reached.
  • +
  • It is not necessary to provide a permanent and temporary address.
  • +
  • Keep your address consistent: use all abbreviations or none. All abbreviations work better.
  • +
+
Email AddressAlways use a non-UW and non-cryptic or strange email address.
TelephoneUse a number at which you can be reliably reached, usually a mobile phone.
Web Site +
    +
  • Use a personal web site—not a blog, unless it is directly relevant to your professional qualifications—with your resume and/or a portfolio or link to a portfolio.
  • +
  • Use a portfolio site or a Flickr / Vimeo / YouTube site for your work examples.
  • +
  • If you do not have these but do have a site on which you can search for your work, go to that site, do the search, copy that URL and run it through a URL shortener (bit.ly, Tiny URL, goo.gl, etc.) and use that as a URL.
  • +
  • Use a custom LinkedIn URL such as http://www.linkedin.com/yourname. This can be created at http://www.linkedin.com/myprofile?editwp= then clicking on the Edit link on Your Public Profile URL.
  • +
+
+ +

Objective

+

Do not bother. Again, consider the reader. They will not care. Consider a Personal Summary.

+ +

Personal Summary

+

This can be written in two ways: a sidebar with a list of skills and experience or an introductory paragraph explaining your unique qualifications.

+ +

Education

+
    +
  • List your degree, year and relevant courses if they will highlight exceptional knowledge on your part.
  • +
  • Do not list your GPA. No one outside of a graduate school cares. Really. If you are on the Dean’s List, list that.
  • +
  • Education should come before Experience only if you do not have the demonstrative experience.
  • +
+ +

Experience

+
    +
  • List the position above the company always. The resume is about you, not the company. +
      +
    • In cases where you post your resume on a personal web site, you may even want to remove the specific company name so people do not try to find or find out about you by calling these companies directly.
    • +
    • For Example: "Daily Cardinal" may become "College Newspaper at Major Public University".
    • +
    +
  • +
  • Keep all entries to bullet points starting with active verbs. +
      +
    • No one is interested that you just exist.
    • +
    • Jobs are about doing something. People want to hire you to do.
    • +
    • Avoid verbs like "assist," "help," "attend," "participate". They tell the reader little if anything. Think about the actual work you performed. Work is about doing.
    • +
    +
  • +
  • Optimize word choice. +
      +
    • Verbs like "emphasize" or "evaluate" tell very little.
    • +
    • These words force a "how" or "why" to be asked. Pick a word or phrase that would clarify what you did.
    • +
    +
  • +
  • Explain the company at which you worked and the projects in which you worked within the description of the work. Not everyone will know what these companies or projects are or were. +
      +
    • If it is a newspaper, list the circulation, market and print schedule.
    • +
    • If it is a company, list annual revenue, industry and client base.
    • +
    +
  • +
  • Use quantities with few colorful qualifiers. +
      +
    • Adjectives need to be explanatory or clarifying.
    • +
    • Adverbs may be more helpful.
    • +
    +
  • +
  • Include skills or tools sections with each position if it will clarify what you learned or first knew how to do something or how long ago you learned.
  • +
  • Include a special section highlighting projects or certain activities if it will show what you are capable of doing.
  • +
+ +

Skills

+
    +
  • Skills are the most important part.
  • +
  • Skills are usually technical and language, but can include soft skills if they are written as a short phrase. +
      +
    • For Example: Knowing AP style could be listed as "Working Knowledge of Associated Press Style".
    • +
    +
  • +
  • These skills should be listed as skill, level, years used and year last used.
  • +
  • The level of proficiency should be listed using the guides in the following guides.
  • +
+ +

Proficiency Levels

+ +

Language Proficiency

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelTitle / UnderstandingDescription
1Beginning / NoviceA novice has extremely limited vocabulary and grammar, understands very little of the language when spoken normally, has difficulty making self understood by native speakers, and thus has serious problems in an immersion situation. A novice may be able to order food in a restaurant, buy a train ticket, and find lodging for the night, but only with great difficulty.
2Intermediate / SurvivorA survivor converses using basic vocabulary (time, date, weather, family, clothes); uses the present, past, and future tenses more or less correctly; and is aware of difficult grammar topics (e.g., subjunctive, relative pronouns), but either uses them incorrectly or awkwardly rearranges sentences in order to avoid them. Still needs to tote a dictionary and/or phrase book around, but can survive in an immersion situation: order food, give and receive directions, take a taxi, etc.
3Advanced / ConversationalistA conversationalist has the ability to converse about fairly abstract ideas, state opinions, read newspapers, understand the language when spoken normally (on TV, radio, film, etc.) with slight-to-moderate difficulty. Still has some trouble with specialized vocabulary and complicated grammar, but can reorganize sentences in order to communicate and figure out the majority of new vocabulary within the context.
4Fluent / DebaterA fluent speaker can participate in extended conversations, understand the language when spoken normally (on TV, radio, film, etc.), figure out meaning of words within context, debate, and use/understand complicated grammatical structures with little or no difficulty. Has good accent and understands dialects with slight-to-moderate difficulty.
5Mother Tongue / Native SpeakerSomeone who has spoken the language from at least the age of 5 (this age limit is subject to some debate: I've heard theories that a native speaker can have started learning the language as late as any time up to puberty). In theory, understands essentially everything in the language: all vocabulary, complicated grammatical structures, cultural references, and dialects. Has a native (i.e., invisible, "normal" in his/her region) accent.
+

Source

+ +

Technical Proficiency

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelTitleKnowledgeTool UsageSharing
1BasicHas and uses the required functional and technical knowledge and skills necessary to do his or her jobChooses appropriate tools or technology for the taskHas the capability and knowledge base to share technical skills with others
2IntermediateHas and uses the required functional and technical knowledge and skills to do his or her job at a high level of accomplishment +
    +
  • Chooses appropriate tools or technology for tasks
  • +
  • Experiments with new processes, tools, or technologies to determine applicability
  • +
+
Provides opportunities for others to learn technical skills and concepts
3Advanced +
    +
  • Demonstrates an active interest in enhancing current skills and learning new ones
  • +
  • Applies advanced functional or technical knowledge to do his or her job at a high level of accomplishment
  • +
+
+
    +
  • Chooses appropriate tools or technology for tasks
  • +
  • Improves or redesigns processes, tools, or technologies to determine applicability
  • +
+
+ Consistently shares expertise with others, teaching skills and explaining concepts +
4Expert +
    +
  • Demonstrates an avid interest in continuously enhancing current skills and learning new ones
  • +
  • Applies advanced functional or technical knowledge to process innovation and complex problem solving
  • +
  • Demonstrates an exemplary level of accomplishment in job performance
  • +
+
+
    +
  • Insightfully selects, combines, or invents appropriate tools or technology for tasks
  • +
  • Improves or redesigns processes, tools, or technologies
  • +
+
+ Is sought out by others for technical expertise and knowledge and for troubleshooting of complex technical issues +
+

Source

+

Never be afraid to put your proficiency level as "Learning" when you are actually learning the skill. It adds to your keyword listing and demonstrates that you are not a dead end regarding your desire to improve in your career.

+ +

References

+

Do not include the clichéd "References available upon request." They know. Most do not check references anyway.

+ + +

Revisions

+

It is recommended that you revisit and repost your resume at least once every three months. Employee hunters key in on new and updated resumes. If you have had no bites in a while, make an update and repost.

+ +
+ +
+ + + + + + + +