diff options
| -rw-r--r-- | docs/api-guide/authentication.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/exceptions.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/parsers.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/permissions.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/renderers.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/requests.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/responses.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/reverse.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/serializers.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/settings.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/status-codes.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/throttling.md | 2 | ||||
| -rw-r--r-- | docs/api-guide/views.md | 2 | ||||
| -rw-r--r-- | docs/static/css/drf-styles.css | 15 | ||||
| -rw-r--r-- | docs/static/css/prettify.css | 30 | ||||
| -rw-r--r-- | docs/static/js/prettify.js | 28 | ||||
| -rw-r--r-- | docs/template.html | 4 | ||||
| -rw-r--r-- | docs/topics/credits.md | 117 | ||||
| -rw-r--r-- | docs/tutorial/1-serialization.md | 1 | ||||
| -rwxr-xr-x | mkdocs.py | 4 |
20 files changed, 183 insertions, 42 deletions
diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 45da2c55..ca29bc4d 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -1,3 +1,5 @@ +<a class="github" href="authentication.py"></a> + # Authentication Authentication is the mechanism of associating an incoming request with a set of identifying credentials, such as the user the request came from, or the token that it was signed with. The [permission] and [throttling] policies can then use those credentials to determine if the request should be permitted. diff --git a/docs/api-guide/exceptions.md b/docs/api-guide/exceptions.md index d41327c6..bb3ed56e 100644 --- a/docs/api-guide/exceptions.md +++ b/docs/api-guide/exceptions.md @@ -1,3 +1,5 @@ +<a class="github" href="exceptions.py"></a> + # Exceptions diff --git a/docs/api-guide/parsers.md b/docs/api-guide/parsers.md index 2edc11de..5e2344a3 100644 --- a/docs/api-guide/parsers.md +++ b/docs/api-guide/parsers.md @@ -1,3 +1,5 @@ +<a class="github" href="parsers.py"></a> + # Parsers ## .parse(request) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index 8b137891..2e15107c 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -1 +1,3 @@ +<a class="github" href="permissions.py"></a> +# Permissions
\ No newline at end of file diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index 5a66da69..1cd6d1a0 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -1,3 +1,5 @@ +<a class="github" href="renderers.py"></a> + # Renderers ## .render(response) diff --git a/docs/api-guide/requests.md b/docs/api-guide/requests.md index 67ddfdac..6746bb20 100644 --- a/docs/api-guide/requests.md +++ b/docs/api-guide/requests.md @@ -1,3 +1,5 @@ +<a class="github" href="request.py"></a> + # Requests > If you're doing REST-based web service stuff ... you should ignore request.POST. diff --git a/docs/api-guide/responses.md b/docs/api-guide/responses.md index 38f6e8cb..6c279f17 100644 --- a/docs/api-guide/responses.md +++ b/docs/api-guide/responses.md @@ -1,3 +1,5 @@ +<a class="github" href="response.py"></a> + # Responses > Unlike basic HttpResponse objects, TemplateResponse objects retain the details of the context that was provided by the view to compute the response. The final output of the response is not computed until it is needed, later in the response process. diff --git a/docs/api-guide/reverse.md b/docs/api-guide/reverse.md index 5a1d6e26..6e42b68e 100644 --- a/docs/api-guide/reverse.md +++ b/docs/api-guide/reverse.md @@ -1,3 +1,5 @@ +<a class="github" href="reverse.py"></a> + # Returning URIs from your Web APIs > The central feature that distinguishes the REST architectural style from other network-based styles is its emphasis on a uniform interface between components. diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index 377b0c10..38a1e560 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -1,3 +1,5 @@ +<a class="github" href="serializers.py"></a> + # Serializers > Expanding the usefulness of the serializers is something that we would diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index 1411b9ec..ae8dce76 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -1,3 +1,5 @@ +<a class="github" href="settings.py"></a> + # Settings Configuration for REST framework is all namespaced inside the `API_SETTINGS` setting. diff --git a/docs/api-guide/status-codes.md b/docs/api-guide/status-codes.md index c1d45905..6693c79f 100644 --- a/docs/api-guide/status-codes.md +++ b/docs/api-guide/status-codes.md @@ -1,3 +1,5 @@ +<a class="github" href="status.py"></a> + # Status Codes > 418 I'm a teapot - Any attempt to brew coffee with a teapot should result in the error code "418 I'm a teapot". The resulting entity body MAY be short and stout. diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index 8b137891..e3a66c83 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -1 +1,3 @@ +<a class="github" href="throttling.py"></a> +# Throttling diff --git a/docs/api-guide/views.md b/docs/api-guide/views.md index dd1dbebe..43924544 100644 --- a/docs/api-guide/views.md +++ b/docs/api-guide/views.md @@ -1,3 +1,5 @@ +<a class="github" href="views.py"></a> + > Django's class based views are a welcome departure from the old-style views. > > — [Reinout van Rees][cite] diff --git a/docs/static/css/drf-styles.css b/docs/static/css/drf-styles.css index fcc60532..a0566790 100644 --- a/docs/static/css/drf-styles.css +++ b/docs/static/css/drf-styles.css @@ -10,7 +10,18 @@ body { padding-bottom: 40px; } +pre { + font-size: 12px; +} + +a.github { + float: right; + margin-top: -12px; +} +a.github:hover { + text-decoration: none; +} /* Preserve the spacing of the navbar across different screen sizes. */ .navbar-inner { @@ -63,7 +74,7 @@ blockquote { border-left: none; } - blockquote:before { +blockquote:before { display: block; content: "\201C"; font-size: 80px; @@ -73,7 +84,7 @@ blockquote { color: #7a7a7a; } - blockquote p:last-child { +blockquote p:last-child { color: #999999; font-size: 14px; display: block; diff --git a/docs/static/css/prettify.css b/docs/static/css/prettify.css new file mode 100644 index 00000000..d437aff6 --- /dev/null +++ b/docs/static/css/prettify.css @@ -0,0 +1,30 @@ +.com { color: #93a1a1; } +.lit { color: #195f91; } +.pun, .opn, .clo { color: #93a1a1; } +.fun { color: #dc322f; } +.str, .atv { color: #D14; } +.kwd, .prettyprint .tag { color: #1e347b; } +.typ, .atn, .dec, .var { color: teal; } +.pln { color: #48484c; } + +.prettyprint { + padding: 8px; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +.prettyprint.linenums { + -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; + -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; + box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; +} + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin: 0 0 0 33px; /* IE indents via margin-left */ +} +ol.linenums li { + padding-left: 12px; + color: #bebec5; + line-height: 20px; + text-shadow: 0 1px 0 #fff; +}
\ No newline at end of file diff --git a/docs/static/js/prettify.js b/docs/static/js/prettify.js new file mode 100644 index 00000000..eef5ad7e --- /dev/null +++ b/docs/static/js/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c< +f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&& +(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r= +{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length, +t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b=== +"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value", +m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m= +a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue= +j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m, +250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit", +PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})(); diff --git a/docs/template.html b/docs/template.html index 42d030d3..a4b4d4b4 100644 --- a/docs/template.html +++ b/docs/template.html @@ -7,6 +7,7 @@ <meta name="author" content=""> <!-- Le styles --> + <link href="{{ base_url }}/css/prettify.css" rel="stylesheet"> <link href="{{ base_url }}/css/bootstrap.css" rel="stylesheet"> <link href="{{ base_url }}/css/bootstrap-responsive.css" rel="stylesheet"> <link href="{{ base_url }}/css/drf-styles.css" rel="stylesheet"> @@ -15,7 +16,7 @@ <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> - <body> + <body onload="prettyPrint()"> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> @@ -102,6 +103,7 @@ ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src="{{ base_url }}/js/jquery-1.8.1-min.js"></script> + <script src="{{ base_url }}/js/prettify.js"></script> <script src="{{ base_url }}/js/bootstrap-dropdown.js"></script> <script src="{{ base_url }}/js/bootstrap-scrollspy.js"></script> <script src="{{ base_url }}/js/bootstrap-collapse.js"></script> diff --git a/docs/topics/credits.md b/docs/topics/credits.md index f85b80d2..c20f5246 100644 --- a/docs/topics/credits.md +++ b/docs/topics/credits.md @@ -2,43 +2,44 @@ The following people have helped make REST framework great. -* Tom Christie <tomchristie> -* Marko Tibold <markotibold> -* Paul Bagwell <pbgwl> -* Sébastien Piquemal <sebpiq> -* Carmen Wick <cwick> -* Alex Ehlke <aehlke> -* Alen Mujezinovic <flashingpumpkin> -* Carles Barrobés <txels> -* Michael Fötsch <mfoetsch> -* David Larlet <david> -* Andrew Straw <astraw> -* Zeth <zeth> -* Fernando Zunino <fzunino> -* Jens Alm <ulmus> -* Craig Blaszczyk <jakul> -* Garcia Solero <garciasolero> -* Tom Drummond <devioustree> -* Danilo Bargen <gwrtheyrn> -* Andrew McCloud <amccloud> -* Thomas Steinacher <thomasst> -* Meurig Freeman <meurig> -* Anthony Nemitz <anemitz> -* Ewoud Kohl van Wijngaarden <ekohl> -* Michael Ding <yandy> -* Mjumbe Poe <mjumbewu> -* Natim <natim> -* Sebastian Żurek <sebzur> -* Benoit C <dzen> -* Chris Pickett <bunchesofdonald> -* Ben Timby <btimby> -* Michele Lazzeri <michelelazzeri-nextage> -* Camille Harang <mammique> -* Paul Oswald <poswald> -* Sean C. Farley <scfarley> -* Daniel Izquierdo <izquierdo> -* Can Yavuz <tschan> -* Shawn Lewis <shawnlewis> +* Tom Christie - [tomchristie] +* Marko Tibold - [markotibold] +* Paul Bagwell - [pbgwl] +* Sébastien Piquemal - [sebpiq] +* Carmen Wick - [cwick] +* Alex Ehlke - [aehlke] +* Alen Mujezinovic - [flashingpumpkin] +* Carles Barrobés - [txels] +* Michael Fötsch - [mfoetsch] +* David Larlet - [david] +* Andrew Straw - [astraw] +* Zeth - [zeth] +* Fernando Zunino - [fzunino] +* Jens Alm - [ulmus] +* Craig Blaszczyk - [jakul] +* Garcia Solero - [garciasolero] +* Tom Drummond - [devioustree] +* Danilo Bargen - [gwrtheyrn] +* Andrew McCloud - [amccloud] +* Thomas Steinacher - [thomasst] +* Meurig Freeman - [meurig] +* Anthony Nemitz - [anemitz] +* Ewoud Kohl van Wijngaarden - [ekohl] +* Michael Ding - [yandy] +* Mjumbe Poe - [mjumbewu] +* Natim - [natim] +* Sebastian Żurek - [sebzur] +* Benoit C - [dzen] +* Chris Pickett - [bunchesofdonald] +* Ben Timby - [btimby] +* Michele Lazzeri - [michelelazzeri-nextage] +* Camille Harang - [mammique] +* Paul Oswald - [poswald] +* Sean C. Farley - [scfarley] +* Daniel Izquierdo - [izquierdo] +* Can Yavuz - [tschan] +* Shawn Lewis - [shawnlewis] +* Alec Perkins - [alecperkins] Many thanks to everyone who's contributed to the project. @@ -55,11 +56,49 @@ Continuous integration testing is managed with [Travis CI][travis-ci]. To contact the author directly: * twitter: [@_tomchristie][twitter] -* mail: [tom@tomchristie.com][email] +* email: [tom@tomchristie.com][email] [email]: mailto:tom@tomchristie.com [twitter]: http://twitter.com/_tomchristie [bootstrap]: http://twitter.github.com/bootstrap/ [markdown]: http://daringfireball.net/projects/markdown/ [github]: github.com/tomchristie/django-rest-framework -[travis-ci]: https://secure.travis-ci.org/tomchristie/django-rest-framework
\ No newline at end of file +[travis-ci]: https://secure.travis-ci.org/tomchristie/django-rest-framework +[tomchristie]: https://github.com/tomchristie +[markotibold]: https://github.com/markotibold +[pbgwl]: https://github.com/pbgwl +[sebpiq]: https://github.com/sebpiq +[cwick]: https://github.com/cwick +[aehlke]: https://github.com/aehlke +[flashingpumpkin]: https://github.com/flashingpumpkin +[txels]: https://github.com/txels +[mfoetsch]: https://github.com/mfoetsch +[david]: https://github.com/david +[astraw]: https://github.com/astraw +[zeth]: https://github.com/zeth +[fzunino]: https://github.com/fzunino +[ulmus]: https://github.com/ulmus +[jakul]: https://github.com/jakul +[garciasolero]: https://github.com/garciasolero +[devioustree]: https://github.com/devioustree +[gwrtheyrn]: https://github.com/gwrtheyrn +[amccloud]: https://github.com/amccloud +[thomasst]: https://github.com/thomasst +[meurig]: https://github.com/meurig +[anemitz]: https://github.com/anemitz +[ekohl]: https://github.com/ekohl +[yandy]: https://github.com/yandy +[mjumbewu]: https://github.com/mjumbewu +[natim]: https://github.com/natim +[sebzur]: https://github.com/sebzur +[dzen]: https://github.com/dzen +[bunchesofdonald]: https://github.com/bunchesofdonald +[btimby]: https://github.com/btimby +[michelelazzeri-nextage]: https://github.com/michelelazzeri-nextage +[mammique]: https://github.com/mammique +[poswald]: https://github.com/poswald +[scfarley]: https://github.com/scfarley +[izquierdo]: https://github.com/izquierdo +[tschan]: https://github.com/tschan +[shawnlewis]: https://github.com/shawnlewis +[alecperkins]: https://github.com/alecperkins diff --git a/docs/tutorial/1-serialization.md b/docs/tutorial/1-serialization.md index 3d6615d9..610d8ed1 100644 --- a/docs/tutorial/1-serialization.md +++ b/docs/tutorial/1-serialization.md @@ -8,6 +8,7 @@ This tutorial will walk you through the building blocks that make up REST framew Before we do anything else we'll create a new virtual environment, using [virtualenv]. This will make sure our package configuration is keep nicely isolated from any other projects we're working on. + :::bash mkdir ~/env virtualenv --no-site-packages ~/env/tutorial source ~/env/tutorial/bin/activate @@ -24,6 +24,7 @@ else: main_header = '<li class="main"><a href="#{{ anchor }}">{{ title }}</a></li>' sub_header = '<li><a href="#{{ anchor }}">{{ title }}</a></li>' +code_label = r'<a class="github" href="https://github.com/tomchristie/django-rest-framework/blob/restframework2/djangorestframework/\1"><span class="label label-info">\1</span></a>' page = open(os.path.join(docs_dir, 'template.html'), 'r').read() @@ -66,4 +67,7 @@ for (dirpath, dirnames, filenames) in os.walk(docs_dir): os.makedirs(build_dir) output = page.replace('{{ content }}', content).replace('{{ toc }}', toc).replace('{{ base_url }}', base_url).replace('{{ suffix }}', suffix).replace('{{ index }}', index) output = re.sub(r'a href="([^"]*)\.md"', r'a href="\1%s"' % suffix, output) + output = re.sub(r'<pre><code>:::bash', r'<pre class="prettyprint lang-bsh">', output) + output = re.sub(r'<pre>', r'<pre class="prettyprint lang-py">', output) + output = re.sub(r'<a class="github" href="([^"]*)"></a>', code_label, output) open(build_file, 'w').write(output.encode('utf-8')) |
