aqui-brain-dump


Nameaqui-brain-dump JSON
Version 1.0.6 PyPI version JSON
download
home_pagehttps://github.com/aquilesC/static_website_builder
SummaryCompile a set of notes into a browseable website
upload_time2024-10-15 12:15:20
maintainerNone
docs_urlNone
authorAquiles Carattino
requires_python>=3.8
licenseCopyright 2021 Aquiles Carattino Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords feed reader tutorial
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Static Website Builder

This is a very simple static website builder, which I use for building [aquiles.me](https://www.aquiles.me). The idea is to grab a bunch of markdown files and render them as HTML files. 

Building from scratch was easier than trying to adjust existing solutions to my own needs. I a releasing this package mostly to help others learn. 

The template was built using TalwindCSS, and is processed with PostCSS to make it minimal (11kb without compressing). 

## Entry Point
The program can be triggered by running the following command:

```bash
$ brain_dump
```

It assumes the following:

* Content Folder: ``content``
* Template Folder: ``templates``
* Static Folder: ``static``
* Output Folder: ``output``

You can see the [main function](https://github.com/aquilesC/static_website_builder/blob/master/aqui_brain_dump/main.py) to understand what it does.

## Core Ideas
I built this static generator so that small notes can quickly find their way online, lowering my barrier to pushing content to a website. Therefore, it all revolves around using plain markdown files (I author them using Obsidian), and compiling using two simple templates: one for the index page and one for each note/article. 

Each note that ends with ``.md`` will be transformed into a folder such as as ``/note/index.html`` and spaces will be transformed to underscores. 

!! warning
    I am not dealing with non-ascii characters in any way, which is a problem for URL's

Each note can have internal links, in which I use the wikilink syntax: ``[[ ]]``. Each link is then appended to the target page, so that lists of backlinks can be built. I find the idea of backlinks crucial for lowering the barrier, since new content can be automatically be shown on older content. 

Also, links to non-existing pages will force the creation of an 'empty' node that only displays backlinks. 

## Extra Markdown
There are some custom solutions embedded into the program. For example, wikilinks parse the presence of ``|`` as a separator for the href. In this way, ``[[target|link]]`` will show up as ``link`` but will be targeted at ``target``. The wikilinks also remove all the spaces and transform them to underscores to be consistent with how I deal with URL's. 

The frontmatter is separated using an initial ``---`` and final ``---``. The keyowrds used for the moment are: ``title`` and ``description``, which are used for the meta tags of the html, ``epistemic``, which adds a note at the top of each article to display the [epistemic status](https://www.aquiles.me/epistemic_status). Other fields are accepted but are not currently used when generating content.

I also make use of ``admonition`` to include images of different widths. The ``style.css`` defines two types of images: medium and small that can be used by inserting something like this in the markdown file:

    !!! image small
	    ![Aquiles Carattino](/Aquiles_Carattino.jpg) 

## Git-based creation and modification dates
Since my working flow is based on git, I use it to compute the creation and modification dates of each file. It is not super accurate, since it measures the moment a file was added to git and not really created on the computer. Normally the offset is lower than a day. This approach seems to give more consistent results than using the operating system's dates, and is compatible with Netlify. 

You can read more on my [about page](https://www.aquiles.me/about).

## License
The code is released under BSD 3 Clause License. See LICENSE for more information. You are free to use and re-distribute, provided that you aknowledge my work. Seems fair enough. 

Of course, if you are trying to learn from the program, or building on it, don't hesitate to reach out at **aqui.carattino@gmail.com** 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aquilesC/static_website_builder",
    "name": "aqui-brain-dump",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "feed, reader, tutorial",
    "author": "Aquiles Carattino",
    "author_email": "Aquiles Carattino <aqui.carattino@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/00/60/cfda254b2c4144290b7e32cb9c325f045780fef6f6b50b56083a2b25ee9c/aqui_brain_dump-1.0.6.tar.gz",
    "platform": null,
    "description": "# Static Website Builder\n\nThis is a very simple static website builder, which I use for building [aquiles.me](https://www.aquiles.me). The idea is to grab a bunch of markdown files and render them as HTML files. \n\nBuilding from scratch was easier than trying to adjust existing solutions to my own needs. I a releasing this package mostly to help others learn. \n\nThe template was built using TalwindCSS, and is processed with PostCSS to make it minimal (11kb without compressing). \n\n## Entry Point\nThe program can be triggered by running the following command:\n\n```bash\n$ brain_dump\n```\n\nIt assumes the following:\n\n* Content Folder: ``content``\n* Template Folder: ``templates``\n* Static Folder: ``static``\n* Output Folder: ``output``\n\nYou can see the [main function](https://github.com/aquilesC/static_website_builder/blob/master/aqui_brain_dump/main.py) to understand what it does.\n\n## Core Ideas\nI built this static generator so that small notes can quickly find their way online, lowering my barrier to pushing content to a website. Therefore, it all revolves around using plain markdown files (I author them using Obsidian), and compiling using two simple templates: one for the index page and one for each note/article. \n\nEach note that ends with ``.md`` will be transformed into a folder such as as ``/note/index.html`` and spaces will be transformed to underscores. \n\n!! warning\n    I am not dealing with non-ascii characters in any way, which is a problem for URL's\n\nEach note can have internal links, in which I use the wikilink syntax: ``[[ ]]``. Each link is then appended to the target page, so that lists of backlinks can be built. I find the idea of backlinks crucial for lowering the barrier, since new content can be automatically be shown on older content. \n\nAlso, links to non-existing pages will force the creation of an 'empty' node that only displays backlinks. \n\n## Extra Markdown\nThere are some custom solutions embedded into the program. For example, wikilinks parse the presence of ``|`` as a separator for the href. In this way, ``[[target|link]]`` will show up as ``link`` but will be targeted at ``target``. The wikilinks also remove all the spaces and transform them to underscores to be consistent with how I deal with URL's. \n\nThe frontmatter is separated using an initial ``---`` and final ``---``. The keyowrds used for the moment are: ``title`` and ``description``, which are used for the meta tags of the html, ``epistemic``, which adds a note at the top of each article to display the [epistemic status](https://www.aquiles.me/epistemic_status). Other fields are accepted but are not currently used when generating content.\n\nI also make use of ``admonition`` to include images of different widths. The ``style.css`` defines two types of images: medium and small that can be used by inserting something like this in the markdown file:\n\n    !!! image small\n\t    ![Aquiles Carattino](/Aquiles_Carattino.jpg) \n\n## Git-based creation and modification dates\nSince my working flow is based on git, I use it to compute the creation and modification dates of each file. It is not super accurate, since it measures the moment a file was added to git and not really created on the computer. Normally the offset is lower than a day. This approach seems to give more consistent results than using the operating system's dates, and is compatible with Netlify. \n\nYou can read more on my [about page](https://www.aquiles.me/about).\n\n## License\nThe code is released under BSD 3 Clause License. See LICENSE for more information. You are free to use and re-distribute, provided that you aknowledge my work. Seems fair enough. \n\nOf course, if you are trying to learn from the program, or building on it, don't hesitate to reach out at **aqui.carattino@gmail.com** \n",
    "bugtrack_url": null,
    "license": "Copyright 2021 Aquiles Carattino  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "Compile a set of notes into a browseable website",
    "version": "1.0.6",
    "project_urls": {
        "Homepage": "https://github.com/aquilesC/static_website_builder"
    },
    "split_keywords": [
        "feed",
        " reader",
        " tutorial"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "993335c64b05d2c6b56616d4bc317d801255b4508bb4e65c649387d15aa6395f",
                "md5": "1ef0688d3b7c820b3cf702d9866033de",
                "sha256": "0f3f1180d6c5d14b1ac58aaea1a47bfea9cde5bc2211f00888d144b9917789ab"
            },
            "downloads": -1,
            "filename": "aqui_brain_dump-1.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1ef0688d3b7c820b3cf702d9866033de",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 19527,
            "upload_time": "2024-10-15T12:15:18",
            "upload_time_iso_8601": "2024-10-15T12:15:18.940995Z",
            "url": "https://files.pythonhosted.org/packages/99/33/35c64b05d2c6b56616d4bc317d801255b4508bb4e65c649387d15aa6395f/aqui_brain_dump-1.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0060cfda254b2c4144290b7e32cb9c325f045780fef6f6b50b56083a2b25ee9c",
                "md5": "192ac8c2b28733f9dfa23e5b0a458b1a",
                "sha256": "e1744a0c53c60ec96774eedd07097afea0636251b36ba19aaa2d5e8647c8c578"
            },
            "downloads": -1,
            "filename": "aqui_brain_dump-1.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "192ac8c2b28733f9dfa23e5b0a458b1a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 16206,
            "upload_time": "2024-10-15T12:15:20",
            "upload_time_iso_8601": "2024-10-15T12:15:20.263319Z",
            "url": "https://files.pythonhosted.org/packages/00/60/cfda254b2c4144290b7e32cb9c325f045780fef6f6b50b56083a2b25ee9c/aqui_brain_dump-1.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-15 12:15:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aquilesC",
    "github_project": "static_website_builder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "aqui-brain-dump"
}
        
Elapsed time: 0.75585s