From 3e31f380818b5ec2775bf3453af0a332d5b60e0b Mon Sep 17 00:00:00 2001 From: Mark Pilgrim Date: Wed, 12 May 2010 13:51:02 -0400 Subject: [PATCH] Add local cover image because Amazon URLs are so unstable. Also, add cover image to every page. --- i/cover.jpg | Bin 0 -> 17400 bytes index.html | 2 +- installing-python.html | 1 + j/plug.html | 1 + publish | 7 ++++--- strings.html | 6 +++--- 6 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 i/cover.jpg create mode 100644 j/plug.html diff --git a/i/cover.jpg b/i/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a74e3a2d5d4149cb6b49def38e71769544bd8504 GIT binary patch literal 17400 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 gTable of Contents (expand) -

Also available on dead trees!
Dive Into Python 3
+

Also available on dead trees!
Dive Into Python 3

    diff --git a/installing-python.html b/installing-python.html index 59df064..411ea68 100755 --- a/installing-python.html +++ b/installing-python.html @@ -8,6 +8,7 @@ body{counter-reset:h1 0} .i{list-style:none;margin:0;padding:0} #which{padding-top:1.75em} h2,.i>li{clear:both} +#divingin,#which{clear:none} diff --git a/j/plug.html b/j/plug.html new file mode 100644 index 0000000..1ef1fe2 --- /dev/null +++ b/j/plug.html @@ -0,0 +1 @@ +

    Also available on dead trees!
    Dive Into Python 3
    diff --git a/publish b/publish index e4803c9..87db9f2 100755 --- a/publish +++ b/publish @@ -115,13 +115,14 @@ java -jar util/yuicompressor-2.4.2.jar build/dip3.css > build/$revision.css && \ # put CSS inline and remove unused CSS properties on a page-by-page basis # minimize URLs by stripping "http:" prefix # add asynchronous Google Analytics script in head (after inline styles) -echo "inlining CSS, minimizing URLs, adding evil tracking code" +echo "inlining CSS, minimizing URLs, adding evil tracking code and affiliate links" ga=`cat j/ga.js` +plug=`cat j/plug.html` for f in build/*.html; do css=`python2.5 util/lesscss.py "$f" "build/$revision.css"` || die "Failed to remove unused CSS" mobilecss=`python2.5 util/lesscss.py "$f" "build/m-$revision.css"` || die "Failed to remove unused CSS" printcss=`python2.5 util/lesscss.py "$f" "build/p-$revision.css"` || die "Failed to remove unused CSS" - sed -i -e "s|||g" -e "s|||g" -e "s|||g" -e "s||${ga}|g" "$f" || die "Failed to inline CSS" + sed -i -e "s|||g" -e "s|||g" -e "s|||g" -e "s||${ga}|g" -e "s|

    |${plug}

    |g" "$f" || die "Failed to inline CSS" done # set file permissions (hg resets these, don't know why) @@ -129,7 +130,7 @@ chmod 755 build/examples build/j build/i build/d && \ chmod 644 build/*.html build/*.css build/*.txt build/*.zip build/examples/* build/examples/.htaccess build/j/* build/j/.htaccess build/i/* build/i/.htaccess build/d/.htaccess build/.htaccess || die "Failed to reset file permissions" # ship it! -#die "Aborting without publishing" +die "Aborting without publishing" echo -n "publishing" rsync -essh -a build/d/.htaccess build/*.zip diveintomark.org:~/web/diveintopython3.org/d/ && \ echo -n "." && \ diff --git a/strings.html b/strings.html index 829536a..478c0df 100755 --- a/strings.html +++ b/strings.html @@ -250,13 +250,13 @@ experience of years.

     >>> query = 'user=pilgrim&database=master&password=PapayaWhip'
    ->>> a_list = query.split('&')                            
    +>>> a_list = query.split('&')                                        
     >>> a_list
     ['user=pilgrim', 'database=master', 'password=PapayaWhip']
    ->>> a_list_of_lists = [v.split('=', 1) for v in a_list]  
    +>>> a_list_of_lists = [v.split('=', 1) for v in a_list if '=' in v]  
     >>> a_list_of_lists
     [['user', 'pilgrim'], ['database', 'master'], ['password', 'PapayaWhip']]
    ->>> a_dict = dict(a_list_of_lists)                       
    +>>> a_dict = dict(a_list_of_lists)                                   
     >>> a_dict
     {'password': 'PapayaWhip', 'user': 'pilgrim', 'database': 'master'}