{ "info": { "author": "yc", "author_email": "iyanchuan@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "OfflineDoc: \u79bb\u7ebf\u6587\u6863\u751f\u6210\u5668\n\n## \u7531\u6765\n\n\u4f5c\u4e3a\u4e00\u4e2a\u7a0b\u5e8f\u5458\uff0c\u6bcf\u5929\u7684\u5de5\u4f5c\u6253\u4ea4\u9053\u6700\u591a\u7684\u9664\u4e86\u5199\u4ee3\u7801\uff0c\u4f30\u8ba1\u5c31\u662f\u67e5\u6587\u6863\u4e86\u3002mongodb \u6709\u4e2a update modifier \u53c8\u5fd8\u8bb0\u683c\u5f0f\u8981\u6c42\u4e86\uff0cdjango \u7684 model \u90fd\u6709\u54ea\u4e9b field \u7c7b\u578b\uff0c\u90fd\u5f97\u67e5\u6587\u6863\u3002\u8981\u505a\u5230\u9ad8\u6548\u5de5\u4f5c\uff0c\u4e0d\u9700\u8981\u80cc\u4e0b\u6240\u6709\u77e5\u8bc6\uff0c\u53ea\u9700\u8981\u77e5\u9053\u4ec0\u4e48\u65f6\u5019\u8be5\u7528\u4ec0\u4e48\u4e1c\u897f\uff0c\u53bb\u54ea\u91cc\u627e\u9700\u8981\u7684\u4e1c\u897f\u3002\n\n\u53bb\u54ea\u91cc\u67e5\u6587\u6863\u5462\uff1f\u5f88\u591a\u60c5\u51b5\u4e0b\u4f60\u4e0d\u4f1a\u53bb google\uff0c\u56e0\u4e3a\u4f60\u77e5\u9053\u4f60\u8981\u627e\u7684\u5c31\u5728**\u5b98\u65b9\u6587\u6863**\u91cc\u3002\u6240\u4ee5\u9047\u5230\u4e00\u95e8\u65b0\u8bed\u8a00\u3001\u4e00\u4e2a\u65b0\u5e93\uff0c\u6211\u63a8\u8350\u7684\u5b66\u4e60\u65b9\u5f0f\u5c31\u662f\u628a\u5b98\u65b9\u6587\u6863\u5927\u81f4\u770b\u4e00\u904d\uff0c\u8fd9\u6837 \u4ee5\u540e\u9047\u5230\u95ee\u9898\u5927\u6982\u5c31\u4f1a\u77e5\u9053\u5b98\u65b9\u6587\u6863\u91cc\u6709\u6ca1\u6709\u8fd9\u65b9\u9762\u7684\u8d44\u6599\u3002\n\n\u5b98\u65b9\u6587\u6863\u662f\u6700\u5168\u9762\u6743\u5a01\u7684\u6587\u6863\uff0c\u4e00\u822c\u90fd\u662f\u5728\u7ebf HTML \u9875\u9762\u65b9\u5f0f\u5448\u73b0\u3002\u6211\u5f88\u559c\u6b22\u6d4f\u89c8 HTML \u7248\u672c\u7684\u6587\u6863\uff1a\u4e0d\u9700\u8981\u989d\u5916\u8f6f\u4ef6\u6216\u63d2\u4ef6\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u6d4f\u89c8\u5668\uff1b\u56fe\u6587\u5e76\u8302\uff0c\u800c\u4e14\u5927\u90e8\u5206\u524d\u7aef\u7684\u8fd8\u5728\u6587\u6863\u4e2d\u81ea\u5e26 demo\u3002\u6211\u7ecf\u5e38\u6c89\u6d78\u5728 python\u3001django\u3001angular.js\u3001pymongo \u7684\u5728\u7ebf\u6587\u6863\u91cc\uff0c\u6536\u83b7\u9887\u4e30\u3002\n\n\u770b\u8d77\u6765\u5f88\u597d\u3002\u4f46\u662f\uff0c\u5728\u7ebf\u6587\u6863\u6709\u51e0\u4e2a\u81f4\u547d\u7684\u7f3a\u70b9\uff1a\n\n1. \u79bb\u7ebf\u65e0\u6cd5\u4f7f\u7528\u3002\u8fd9\u6837\u4f60\u5728\u65e0\u7f51\u7edc\u7684\u73af\u5883\u4e0b\u5c31\u6ca1\u6cd5\u67e5\u6587\u6863\u5199\u4ee3\u7801\u4e86\u3002\n2. \u9f9f\u901f\u7f51\u7edc\u5bfc\u81f4\u67e5\u6587\u6863\u65f6\u95f4\u5927\u90e8\u5206\u6d6a\u8d39\u5728\u7b49\u5f85\u7f51\u7edc I/O \u4e0a\u4e86\u3002\u4e0d\u53ef\u5fcd\u3002\n3. \u5927\u90e8\u5206\u53ea\u63d0\u4f9b\u6700\u65b0\u7248\u672c\u6587\u6863\uff0c\u4e0d\u63d0\u4f9b\u5386\u53f2\u6587\u6863\u3002\u7ef4\u62a4\u65e7\u4ee3\u7801\u65f6\u67e5\u6587\u6863\u5f88\u75db\u82e6\u3002\n\n\u7531\u6b64\u51fa\u73b0\u4e86\u4e00\u4e9b\u4e13\u95e8\u7ed9\u7a0b\u5e8f\u5458\u770b\u7684\u6587\u6863\u670d\u52a1\uff0c\u5982 http://devdocs.io/ \u548c https://readthedocs.org/ \u3002\u4f3c\u4e4e\u5f88\u4e0d\u9519\uff0c\u4f46\u662f\uff0c\u8fd9\u4e24\u4e2a\u670d\u52a1\u4e5f\u6709\u7f3a\u70b9\uff1a\n\ndevdocs.io:\n\n1. \u6309\u81ea\u5df1\u683c\u5f0f\u6392\u7248\u4e86\u6587\u6863\u3002\u5b98\u65b9\u6587\u6863\u7684\u6392\u7248\u548c\u5185\u5bb9\u624d\u662f\u738b\u9053\u3002\n2. \u652f\u6301\u9879\u76ee\u5c11\uff0c\u7248\u672c\u65e7\uff0c\u589e\u52a0\u9879\u76ee\u56f0\u96be\u3002\u7531\u4e8e\u6709\u4e00\u5957\u6392\u7248\uff0c\u66f4\u65b0\u5c82\u80fd\u4e0d\u56f0\u96be\u3002\n\nreadthedocs.org:\n\n1. \u53ea\u652f\u6301\u6709 sphinx \u7f16\u5199\u7684\u6587\u6863\u7684\u9879\u76ee\n\n\u8fd9\u4e24\u8005\u90fd\u6709\u4e00\u4e2a\u81f4\u547d\u7684\u7f3a\u70b9\uff1a\u65e0\u6cd5\u7075\u6d3b\u6dfb\u52a0\u81ea\u6709\u9879\u76ee\uff08\u4f8b\u5982\u516c\u53f8\u5185\u90e8\u9879\u76ee\uff09\uff1b\u65e0\u6cd5\u6dfb\u52a0\u8bf8\u5982 amcharts \u672c\u8eab\u6839\u672c\u4e0d\u63d0\u4f9b\u6587\u6863\u751f\u6210\u65b9\u6cd5\u7684\u9879\u76ee\u3002\n\n\u6240\u4ee5\u624d\u6709\u4e86 OfflineDoc \u7684\u8bde\u751f\u3002OfflineDoc \u7684\u76ee\u6807\u662f\u7528\u7b80\u5355\u7684\u65b9\u5f0f\u53bb\u751f\u6210\u3001\u5b9a\u671f\u66f4\u65b0\u79bb\u7ebf\u6587\u6863\uff0c\u5e76\u89e3\u51b3\u4e0a\u8ff0\u96be\u9898\u3002\n\n\n## \u4ecb\u7ecd\n\nOfflineDoc \u652f\u6301\u7684\u9879\u76ee\u7c7b\u578b\u6709\uff1a\n\n1. Git \u9879\u76ee\n2. SVN \u9879\u76ee\n3. \u5176\u5b83\u6709 HTML \u6587\u6863\u7684\u4efb\u610f\u9879\u76ee\n\n\u5bf9 Git \u548c SVN \u9879\u76ee\uff0cOfflineDoc \u4f1a\u53d6\u51fa\u6e90\u7801\uff0c\u5982\u679c\u8be5\u9879\u76ee\u6709\u81ea\u8eab\u7684\u6587\u6863\u751f\u6210\u65b9\u6cd5\uff08Sphinx\u3001jekyl\u3001make\u3001Rake \u7b49\uff09\uff0c\u4f1a\u5229\u7528\u76f8\u5e94\u65b9\u5f0f\u751f\u6210\u548c\u5b98\u65b9\u4e00\u6837\u7684 HTML \u6587\u6863\uff1b\u5bf9\u5176\u4f59\u4e0d\u63d0\u4f9b\u6587\u6863\u751f\u6210\u65b9\u6cd5\u7684\u6d41\u6c13\u9879\u76ee\uff0c\u53ea\u8981\u5176\u6709\u5728\u7ebf HTML \u6587\u6863\uff0c\u5c31\u4f1a\u4f7f\u7528 wget \u955c\u50cf\u5927\u6cd5\u5168\u90e8\u6293\u4e0b\u6765\u3002\n\n\n## \u4f7f\u7528\n\n\u9996\u5148\u5b89\u88c5\uff08\u63a8\u8350\u4f7f\u7528 virtualenv\uff09\uff1a\n\n mkdir -p ~/envs\n virtualenv ~/envs/od\n source ~/envs/od/bin/activate\n pip install offlinedoc\n\n\u6700\u7ec8\u663e\u793a \"Successfully installed ...\" \u4e4b\u7c7b\u8868\u793a\u6b63\u786e\u5b89\u88c5\u4e86\u3002\u7531\u4e8e\u5185\u7f6e\u4e86\u4e8c\u5341\u591a\u4e2a\u5e38\u7528\u9879\u76ee\uff0c\u5728\u751f\u6210\u5b83\u4eec\u7684\u6587\u6863\u524d\u9700\u8981\u5b89\u88c5\u4e00\u4e9b\u5e93\uff08\u4ee5 ubuntu \u4e3a\u4f8b\uff09\uff1a\n\n1. nodejs\uff1a`sudo apt-get install nodejs`\u3002\u6216\u8005\u76f4\u63a5\u53bb\u5b98\u7f51\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u3002\n2. grunt \u548c bower\uff1a`sudo npm install -g grunt-cli && sudo npm install bower -g`\n3. \u7f16\u8bd1\u4f9d\u8d56\u5305\uff1a`sudo apt-get install build-essential python-dev ruby1.9.1-dev git-core default-jre`\n4. jekyll\uff1a`sudo gem install jekyll`\n\n\u5b89\u88c5\u597d\u4e4b\u540e\uff0c\u5728 shell \u4e0b\u8f93\u5165 `od.py` \u56de\u8f66\u770b\u770b\uff1a\n\n OfflineDoc: Offline documents generating tool\n Usage: od.py [arg] ...\n od.py new - create a project and place data into \n od.py update [module [version]] - update a project in (optional specific module, version)\n od.py index - rebuild index html files in \n od.py serve - simple http server for (alias python -m SimpleHTTPServer)\n od.py clear - clear all data in (alias rm -rf )\n od.py list [dir] - list all modules (optional with custom modules in a dir)\n od.py auth - setup github auth for a project\n od.py version - current version\n od.py help - prints this info\n\n Turn on debug mode:\n ODDEBUG=1 od.py [arg] ...\n\n\u666e\u904d\u4f7f\u7528\u6d41\u7a0b\u662f\u8fd9\u6837\uff1a\n\n1. \u9009\u62e9\u4e00\u4e2a\u5927\u5206\u533a\u76ee\u5f55\u7528\u6765\u5b58\u653e\u79bb\u7ebf\u6587\u6863\uff0c\u6bd4\u5982 `/var/data/od`\uff0c\u5219\u4f7f\u7528 `od.py new /var/data/od` \u521d\u59cb\u5316\u4e4b\uff1a\n\n $od.py new /var/data/od\n Project created, here's an example nginx config:\n\n server {\n listen 80;\n server_name localhost.doc;\n access_log off;\n error_log /dev/null;\n root /var/data/od/public;\n location = /index.html { expires epoch; }\n location ~ ^/[^\\/]+/index.html$ { expires epoch; }\n }\n\n \u4f1a\u663e\u793a\u4e00\u4e2a nginx \u914d\u7f6e\u793a\u4f8b\uff0c\u628a\u8fd9\u5757\u52a0\u5165 nginx \u914d\u7f6e\u540e\uff0c\u5c31\u53ef\u4ee5\u7f51\u9875\u6d4f\u89c8\u751f\u6210\u597d\u7684\u79bb\u7ebf\u6587\u6863\u4e86\u3002\u5f53\u7136\u9700\u8981\u5b89\u88c5 nginx\uff0c\u4e0d\u8fc7 OfflineDoc \u4e5f\u6709\u81ea\u5e26\u4e00\u4e2a\u5c0f http \u670d\u52a1\u5668\u4f9b\u6587\u6863\u6d4f\u89c8\u3002\n2. github \u8ba4\u8bc1\uff1a`od.py auth /var/data/od`\u3002\u7531\u4e8e\u90e8\u5206\u5185\u7f6e\u9879\u76ee\u6258\u7ba1\u5728 github \u4e0a\uff0cOfflineDoc \u6709\u7528\u5230 github \u7684 api \u63a5\u53e3\uff0c\u6240\u4ee5\u9700\u8981\u5728\u8be5\u6570\u636e\u76ee\u5f55\u4e2d\u4fdd\u5b58\u4e00\u4e2a github \u8d26\u53f7\u4fe1\u606f\u3002\u53ef\u4ee5\u82b1\u4e00\u4e24\u5206\u949f\u53bb\u521b\u5efa\u4e00\u4e2a github \u8d26\u53f7\u3002\n3. \u5f00\u59cb\u66f4\u65b0\uff1a`od.py update /var/data/od`\u3002\u8fd9\u4f1a\u628a\u5185\u7f6e\u7684\u4e8c\u5341\u591a\u4e2a\u9879\u76ee\u7684\u51e0\u4e4e\u6240\u6709\u7248\u672c\u7684\u79bb\u7ebf\u6587\u6863\u90fd\u751f\u6210\u51fa\u6765\uff0c\u5f53\u7136\u662f\u6bd4\u8f83\u82b1\u65f6\u95f4\u7684\u3002\u53ef\u4ee5\u9009\u62e9\u6027\u751f\u6210\u3002\u6bd4\u5982 `od.py update /var/data/od bootstrap` \u4f1a\u53ea\u751f\u6210 bootstrap \u6240\u6709\u7248\u672c\u7684\u6587\u6863\uff0c\u6267\u884c `od.py update /var/data/od bootstrap 2.3.2` \u53ea\u4f1a\u751f\u6210 bootstrap 2.3.2 \u7248\u672c\u7684\u6587\u6863\u3002\n4. \u751f\u6210\u7d22\u5f15\uff1a`od.py index /var/data/od`\u3002\u8fd9\u6b65\u4e0d\u662f\u5fc5\u987b\u7684\u3002\u5f53\u4f60\u5355\u72ec\u66f4\u65b0\u4e86\u67d0\u4e2a\u9879\u76ee\u7684\u6587\u6863\u65f6\uff0c\u6d4f\u89c8\u5668\u91cc\u6ca1\u6709\u770b\u5230\u53d8\u5316\uff0c\u53ef\u4ee5\u6267\u884c\u6b64\u547d\u4ee4\u91cd\u65b0\u751f\u6210\u6240\u6709\u9879\u76ee\u7684\u7d22\u5f15\u9875\u9762\u3002\n5. \u6d4f\u89c8\u6587\u6863\uff1a`od.py serve /var/data/od`\u3002\u8fd9\u4f1a\u5728\u672c\u673a 8000 \u7aef\u53e3\u542f\u52a8\u4e00\u4e2a http \u670d\u52a1\uff0c\u8bbf\u95ee\u5373\u53ef\u770b\u5230\u751f\u6210\u597d\u7684\u6587\u6863\u3002\n6. \u67e5\u770b\u76ee\u524d\u5df2\u6709\u9879\u76ee\u5217\u8868\u53ca\u6700\u65b0\u7248\u672c\uff1a`od.py list /var/data/od` \u4e0d\u52a0\u6700\u540e\u4e00\u4e2a\u53c2\u6570\u4f1a\u53ea\u663e\u793a\u5185\u7f6e\u9879\u76ee\u5217\u8868\uff0c\u52a0\u4e0a\u4f1a\u663e\u793a\u5728\u90a3\u4e2a\u6570\u636e\u76ee\u5f55\u4e2d\u7684\u7248\u672c\u53f7\uff0c\u800c\u4e14\u8be5\u6570\u636e\u76ee\u5f55\u4e2d\u7684\u81ea\u5b9a\u4e49\u9879\u76ee\u3002\n\n\u5982\u679c\u9047\u5230\u95ee\u9898\uff0c\u53ef\u4ee5\u628a `ODDEBUG=1` \u52a0\u5728 `od.py` \u547d\u4ee4\u524d\u9762\uff0c\u4f8b\u5982\uff1a`ODDEBUG=1 od.py update /var/data/od`\uff0c\u8fd9\u6837\u4f1a\u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\uff0c\u65b9\u4fbf\u6392\u67e5\u3002\u9519\u8bef\u4fe1\u606f\u53ef\u4ee5\u8d34\u5230 https://github.com/ichuan/OfflineDoc/issues \u3002\n\n\u53ef\u4ee5\u628a\u66f4\u65b0\u547d\u4ee4\u653e\u5165 crontab\uff0c\u6bcf\u65e5\u66f4\u65b0\uff0c\u8fd9\u6837\u5c31\u80fd\u65f6\u523b\u4fdd\u6301\u6587\u6863\u6700\u65b0\u3002\n\n\u8fd9\u91cc\u6709\u4e2a\u66f4\u65b0\u5b8c\u6bd5\u540e\u7684\u7ad9\u70b9\u4f9b\u53c2\u8003\uff1ahttp://doc.ichuan.net/\n\n\n## \u6269\u5c55\n\n\u9664\u4e86\u8fd9\u4e9b\uff0cOfflineDoc \u8fd8\u652f\u6301\u81ea\u5b9a\u4e49\u9879\u76ee\u548c\u7d22\u5f15\u9875\u9762\u4e3b\u9898\u81ea\u5b9a\u4e49\u3002\n\n\u5173\u4e8e\u81ea\u5b9a\u4e49\u9879\u76ee\uff0c\u53ef\u4ee5\u53c2\u8003\u751f\u6210\u7684\u6570\u636e\u76ee\u5f55 /var/data/od \u4e2d\u7684 module \u76ee\u5f55\uff0c\u5176\u4e2d\u6709\u56db\u4e2a\u793a\u4f8b\uff0c\u5206\u522b\u5bf9\u5e94 git\u3001svn\u3001\u5355 html \u9875\u9762\u4e2a\u9700\u8981 wget \u955c\u50cf\u7684\u9879\u76ee\u3002\u81ea\u5b9a\u4e49\u6a21\u5757\u7684\u6587\u4ef6\u540d\u4ee5\u4e0b\u5212\u7ebf\u5f00\u5934\u7684\u8bdd\u662f\u4f1a\u88ab OfflineDoc \u5ffd\u7565\u7684\u3002\n\n\u5173\u4e8e\u81ea\u5b9a\u4e49\u4e3b\u9898\uff0c\u53ef\u4ee5\u53c2\u8003 OfflineDoc \u6e90\u7801\uff0c\u540c\u6837\u5728\u6570\u636e\u76ee\u5f55\u4e0b\u7684 theme \u76ee\u5f55\u4e2d\u6dfb\u52a0\u81ea\u5df1\u7684 jinja2 \u6a21\u677f\u6587\u4ef6\uff0cOfflineDoc \u751f\u6210\u7d22\u5f15\u65f6\u4f1a\u4f18\u5148\u4f7f\u7528\u6b64\u76ee\u5f55\u7684\u6a21\u677f\u6587\u4ef6\uff0c\u800c\u975e\u7cfb\u7edf\u5185\u7f6e\u3002\n\n\n## \u8d21\u732e\n\n\u76ee\u524d\u6709\u4e0b\u9762\u51e0\u5757\u9700\u8981\u5e2e\u5fd9\u5b8c\u5584\uff1a\n\n1. \u9664\u4e86\u73b0\u5728\u5185\u7f6e\u7684\u4e8c\u5341\u591a\u4e2a\uff0c\u7ee7\u7eed\u8865\u5145\u5e38\u7528\u7684\u6587\u6863\n2. \u5176\u5b83\u4e3b\u9898\u6a21\u677f\uff08\u4f8b\u5982 bootstrap \u98ce\u683c\u7b49\uff09\n3. \u4f7f\u7528\uff0c\u6307\u51fa\u9047\u5230\u7684 bug\n4. \u6269\u5c55\u5f00\u53d1\u6587\u6863\n5. \u5355\u5143\u6d4b\u8bd5\n6. \u5404\u9879\u76ee\uff08module\uff09\u72ec\u7acb\u7684\u73af\u5883\uff08virtualenv, nvm, rvm\uff09", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ichuan/OfflineDoc", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "OfflineDoc", "package_url": "https://pypi.org/project/OfflineDoc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/OfflineDoc/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ichuan/OfflineDoc" }, "release_url": "https://pypi.org/project/OfflineDoc/0.0.14/", "requires_dist": null, "requires_python": null, "summary": "Offline documents generating tool", "version": "0.0.14" }, "last_serial": 1834114, "releases": { "0.0.14": [ { "comment_text": "", "digests": { "md5": "92c54419c05373406aa25b3faac0d1aa", "sha256": "1bcf1d58af871043a4721c80c2d9ca79a8394b66f4b122da6baaeb29cb498f9f" }, "downloads": -1, "filename": "OfflineDoc-0.0.14.macosx-10.11-intel.exe", "has_sig": false, "md5_digest": "92c54419c05373406aa25b3faac0d1aa", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 105453, "upload_time": "2015-11-26T02:55:15", "url": "https://files.pythonhosted.org/packages/9c/a7/9b3d9a9f143a239dccab75f2e564bcdabe724a602cdf365d2758b11ff691/OfflineDoc-0.0.14.macosx-10.11-intel.exe" }, { "comment_text": "", "digests": { "md5": "72a5ee35ad42b5262a66c86cc6d8002b", "sha256": "66ee4ff3be2706f60e1551befbf8e044a5e53b888e7bacdd4a016a86ea02d0ce" }, "downloads": -1, "filename": "OfflineDoc-0.0.14.tar.gz", "has_sig": false, "md5_digest": "72a5ee35ad42b5262a66c86cc6d8002b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18821, "upload_time": "2015-11-26T02:54:58", "url": "https://files.pythonhosted.org/packages/aa/7b/7bdc7b1914cc5c33a6a4daa147355acb7765b52f800b06f0d3e7bb560f08/OfflineDoc-0.0.14.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "92c54419c05373406aa25b3faac0d1aa", "sha256": "1bcf1d58af871043a4721c80c2d9ca79a8394b66f4b122da6baaeb29cb498f9f" }, "downloads": -1, "filename": "OfflineDoc-0.0.14.macosx-10.11-intel.exe", "has_sig": false, "md5_digest": "92c54419c05373406aa25b3faac0d1aa", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 105453, "upload_time": "2015-11-26T02:55:15", "url": "https://files.pythonhosted.org/packages/9c/a7/9b3d9a9f143a239dccab75f2e564bcdabe724a602cdf365d2758b11ff691/OfflineDoc-0.0.14.macosx-10.11-intel.exe" }, { "comment_text": "", "digests": { "md5": "72a5ee35ad42b5262a66c86cc6d8002b", "sha256": "66ee4ff3be2706f60e1551befbf8e044a5e53b888e7bacdd4a016a86ea02d0ce" }, "downloads": -1, "filename": "OfflineDoc-0.0.14.tar.gz", "has_sig": false, "md5_digest": "72a5ee35ad42b5262a66c86cc6d8002b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18821, "upload_time": "2015-11-26T02:54:58", "url": "https://files.pythonhosted.org/packages/aa/7b/7bdc7b1914cc5c33a6a4daa147355acb7765b52f800b06f0d3e7bb560f08/OfflineDoc-0.0.14.tar.gz" } ] }