{ "info": { "author": "Nathan Scott", "author_email": "natejms@outlook.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Internet" ], "description": "Ampersand\n=========\n\nThe really, *really* minimalistic static site generator. Manage\ntranslations statically, without any pesky JavaScript for rendering\ndynamic chunks of localized text.\n\nFeatures\n--------\n\n- Separate key phrases (or everything, for that matter) into \u201cmodals\u201d\n and localized content files.\n- Create includes such as site-wide headers and footers to reduce\n repetition.\n- Avoid copy and pasting the same content several times with global\n translations.\n- Keep things simple with Mustache templates.\n- Extend Ampersand with plugins written in Python.\n\nThe problem\n-----------\n\nTraditionally, managing translations of a website statically would look\nsomething like this:\n\n::\n\n __ root\n |\n |__ scripts\n | |__ scripts.js\n |\n |__ styles\n | |__ styles.css\n |\n |__ lang\n |__ en\n | |__ index.html\n | |__ about.html\n | |__ ...\n |\n |__ fr\n |__ index.html\n |__ about.html\n |__ ...\n\nHere, we have a website with two or more English pages that we also\ntranslated into French. This works, but what happens when I want to make\nsome changes to ``index.html``? Now, I need to copy those changes over\nto the ``fr`` folder and adapt. When these phrases are wrapped with new\nUI components, It gets worse the more languages you add.\n\nThe solution\n------------\n\nA problem like this would take a static site generator to solve, but not\njust any static site generator would do the trick. This generator must\nhave a focus on translation, allowing you to build several copies of the\nsame page based on different localization files.\n\nNow, you can leave the translation to the globalization team and focus\non your code.\n\nPhilosophy\n----------\n\nSo as you can tell, Ampersand is a pretty straightforward static site\ngenerator. Some may even argue that it doesn\u2019t do much. This is because\nAmpersand is a *minimalistic* static site generator. But of course, all\nstatic site generators mention minimalism in their mission statement so\nsaying it here doesn\u2019t mean much. Never the less, Ampersand aims to do\nwhat it\u2019s supposed to do without jumping through too many hoops that\ndon\u2019t help it achieve its goal.\n\nInstallation\n------------\n\nSetting up Ampersand is fairly simple if you have ``pip``. For those of\nyou who don\u2019t, `python.org`_ has it documented.\n\n::\n\n $ pip install ampersand\n\nFor a bleeding edge and developer version, you can clone the repository:\n\n::\n\n $ git clone https://github.com/natejms/ampersand.git\n $ cd ampersand\n $ pip install .\n\nTo learn more about the usage of Ampersand, check out `the\ndocumentation`_\n\nContributing\n------------\n\nInterested in making a contribution? Here\u2019s a few places where you might\nbe able to help out:\n\n- Contribute patches and help develop new features\n- Develop a plugin for Ampersand\n- Work to improve the documentation\n- Help spread the word\n\nMore information can be found in the CONTRIBUTING.md file of this\nrepository.\n\n.. _python.org: https://packaging.python.org/installing/\n.. _the documentation: https://github.com/natejms/ampersand/wiki\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/natejms/ampersand", "keywords": "ampersand amp static site generator localization globalization translation", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ampersand", "package_url": "https://pypi.org/project/ampersand/", "platform": "", "project_url": "https://pypi.org/project/ampersand/", "project_urls": { "Homepage": "http://github.com/natejms/ampersand" }, "release_url": "https://pypi.org/project/ampersand/0.5.2/", "requires_dist": [ "future", "pystache" ], "requires_python": "", "summary": "The really, really minimalistic static site generator", "version": "0.5.2" }, "last_serial": 3361230, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "d12605a4477a11c380af32b2399beac5", "sha256": "96ae188656f9f9b5f3df05af65b2f39149c2205b07271832ac8d0a874c98ee18" }, "downloads": -1, "filename": "ampersand-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d12605a4477a11c380af32b2399beac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5197, "upload_time": "2017-05-15T23:31:13", "url": "https://files.pythonhosted.org/packages/fa/1b/6ac8551439593e259201dd8369e0a3bc2f92bdba74a71c361749ba958cdf/ampersand-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0dad3d118d93695c861616b300b8500f", "sha256": "c04b0063570a14289d36a051b1de27aa6e21eb5cf3d812eaf8c10f47492058c4" }, "downloads": -1, "filename": "ampersand-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0dad3d118d93695c861616b300b8500f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7964, "upload_time": "2017-05-17T23:22:13", "url": "https://files.pythonhosted.org/packages/b8/fa/6eb42ab21b64862c1604a236d27b672327f9a72c6532cb6da947cc67d73e/ampersand-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d21d2ad343d5f551fe727333ef3aa0b", "sha256": "886baf3302f54f3ea59a08e59ad46b68ed0b3dc97d5a65e37c77895abb9dffcd" }, "downloads": -1, "filename": "ampersand-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2d21d2ad343d5f551fe727333ef3aa0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5657, "upload_time": "2017-05-17T23:23:58", "url": "https://files.pythonhosted.org/packages/b4/c5/be56273dcd0cef03c0cff26d0237c11713a0f583e1a5b43c19e66227bdc7/ampersand-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6d8e2699f827561b4b7f96eead119cd9", "sha256": "013913ce9dd6ac454ec7bf9c1b3e4d38032cc263117d387dc78b1cc5803c731a" }, "downloads": -1, "filename": "ampersand-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6d8e2699f827561b4b7f96eead119cd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8032, "upload_time": "2017-05-30T19:54:57", "url": "https://files.pythonhosted.org/packages/01/98/3340986046e0428419884e581017b20395cd9083abcf0c6f45b87680f2b0/ampersand-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d926c0609255ef53f7d3cd40ab97c9cc", "sha256": "67b12664900b891a9ba28882e444aef19637f69e1ce6c7c7d014566712bc6ee2" }, "downloads": -1, "filename": "ampersand-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d926c0609255ef53f7d3cd40ab97c9cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5691, "upload_time": "2017-05-30T19:54:59", "url": "https://files.pythonhosted.org/packages/87/d8/244c43d87564c9d46f40f375b2c33909ab6be73972bfcc5743b91d0d18b4/ampersand-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5865c6f2195b537cd9cb0a03e81ac00b", "sha256": "2e8d1e9d48b8e8afa11dbc64c5ff37a18687800de8443079c4ee0271898a1701" }, "downloads": -1, "filename": "ampersand-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5865c6f2195b537cd9cb0a03e81ac00b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9894, "upload_time": "2017-06-17T14:22:32", "url": "https://files.pythonhosted.org/packages/18/d9/fca600b7731d20e592e4d316de26a37e961e7dfde28b65882e8602fa7f2e/ampersand-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a17d8b91a0e42a30ec109c180a48df9f", "sha256": "0c0fbd0b46a07979b2d1c0b082078dd9a211f396c7ac7c3ba294f81f3463c8ab" }, "downloads": -1, "filename": "ampersand-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a17d8b91a0e42a30ec109c180a48df9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6877, "upload_time": "2017-06-17T14:22:33", "url": "https://files.pythonhosted.org/packages/2c/87/10d8c55bde0325c95c02124f2e6d277b964416351811c2a068da02fb9dee/ampersand-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "bdfbffd8eed6d3052dfbf89ab5e1ae40", "sha256": "0d186e646c96b1e15a6bf32b55a65de8c1a2506ea0d469253eb8a5943bd9c36b" }, "downloads": -1, "filename": "ampersand-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bdfbffd8eed6d3052dfbf89ab5e1ae40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10903, "upload_time": "2017-07-23T01:20:31", "url": "https://files.pythonhosted.org/packages/a5/f8/e7b858b2daf5a4c0a6233508a6301d460324f40359548a61928fd6a8eb52/ampersand-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "deb46c9ff783b58b959041e3b5e637a4", "sha256": "5056742b288b78efb74afb22c225287d8cbbd6af972acb6fd14f669eaf550295" }, "downloads": -1, "filename": "ampersand-0.5.0.tar.gz", "has_sig": false, "md5_digest": "deb46c9ff783b58b959041e3b5e637a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8158, "upload_time": "2017-07-23T01:20:31", "url": "https://files.pythonhosted.org/packages/83/d8/8498e2eddaa3547cc68840c9303359c2db649c1af817a54da4e5d084931a/ampersand-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "15bb61b5f60ac36d4ba9050152f87b79", "sha256": "8af887ddaf1a229da9146abe02b5ae9574d3251901c1273759324c0a5845bdb0" }, "downloads": -1, "filename": "ampersand-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "15bb61b5f60ac36d4ba9050152f87b79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10906, "upload_time": "2017-07-23T16:03:17", "url": "https://files.pythonhosted.org/packages/e6/cc/70baa0c19fde33dedf4e58f99d497d5126a0a192b95e9ab4c701d647a238/ampersand-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd917f3b523e5f7772a62fcc1433fb2e", "sha256": "ebc83141f85ee541223cbaf518c179611d0ddb56b174607340b33e10495600b7" }, "downloads": -1, "filename": "ampersand-0.5.1.tar.gz", "has_sig": false, "md5_digest": "dd917f3b523e5f7772a62fcc1433fb2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8159, "upload_time": "2017-07-23T16:03:19", "url": "https://files.pythonhosted.org/packages/e5/9e/65b2de1e53156c09721a29cf7130d26ca3de686c6d3b8ebdadefe23167e2/ampersand-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "e14c02befcc8a727ffbbee0c03251dc1", "sha256": "0d384eb678a8695cb2220d33e00e868368ece083e936c22eb7bb41f32f7ce9fb" }, "downloads": -1, "filename": "ampersand-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e14c02befcc8a727ffbbee0c03251dc1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11750, "upload_time": "2017-11-24T16:08:47", "url": "https://files.pythonhosted.org/packages/4d/7b/66755d6dd3157eb764f2e14e680360c93647ebd9f5998232e8ff7e73b9f5/ampersand-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a47db90f4f70af7fb0581d905415a48", "sha256": "f08a9649305304a1299efd1f532cefd9e5d9adecd62db460c8864b515322e213" }, "downloads": -1, "filename": "ampersand-0.5.2.tar.gz", "has_sig": false, "md5_digest": "6a47db90f4f70af7fb0581d905415a48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8800, "upload_time": "2017-11-24T16:08:48", "url": "https://files.pythonhosted.org/packages/e7/19/f6f8537d17ac90f8c8bacd7431b67be5ca28fefe0d53d7ccb0b596f69d17/ampersand-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e14c02befcc8a727ffbbee0c03251dc1", "sha256": "0d384eb678a8695cb2220d33e00e868368ece083e936c22eb7bb41f32f7ce9fb" }, "downloads": -1, "filename": "ampersand-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e14c02befcc8a727ffbbee0c03251dc1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11750, "upload_time": "2017-11-24T16:08:47", "url": "https://files.pythonhosted.org/packages/4d/7b/66755d6dd3157eb764f2e14e680360c93647ebd9f5998232e8ff7e73b9f5/ampersand-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a47db90f4f70af7fb0581d905415a48", "sha256": "f08a9649305304a1299efd1f532cefd9e5d9adecd62db460c8864b515322e213" }, "downloads": -1, "filename": "ampersand-0.5.2.tar.gz", "has_sig": false, "md5_digest": "6a47db90f4f70af7fb0581d905415a48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8800, "upload_time": "2017-11-24T16:08:48", "url": "https://files.pythonhosted.org/packages/e7/19/f6f8537d17ac90f8c8bacd7431b67be5ca28fefe0d53d7ccb0b596f69d17/ampersand-0.5.2.tar.gz" } ] }