{"id":19114597,"url":"https://github.com/goodguyry/bella","last_synced_at":"2025-08-14T00:05:10.395Z","repository":{"id":10385146,"uuid":"12533095","full_name":"goodguyry/bella","owner":"goodguyry","description":"A Python script to take the redundancy out of Sass.","archived":false,"fork":false,"pushed_at":"2013-12-09T05:20:02.000Z","size":168,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-14T00:04:08.155Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goodguyry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-02T06:05:18.000Z","updated_at":"2013-12-09T05:20:04.000Z","dependencies_parsed_at":"2022-09-12T21:01:20.494Z","dependency_job_id":null,"html_url":"https://github.com/goodguyry/bella","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/goodguyry/bella","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goodguyry%2Fbella","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goodguyry%2Fbella/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goodguyry%2Fbella/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goodguyry%2Fbella/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goodguyry","download_url":"https://codeload.github.com/goodguyry/bella/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goodguyry%2Fbella/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270336686,"owners_count":24566779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T04:43:53.809Z","updated_at":"2025-08-14T00:05:09.355Z","avatar_url":"https://github.com/goodguyry.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Bella\n===================\n\nA Python script to take the redundancy out of executing the ```sass --watch``` command. Contributions welcomed and appreciated.\n\n## Installation\n\n#### Using Git\n\nClone the repo into the directory of your chosing and run the setup file (with no options).\n\n```bash\ngit clone https://github.com/goodguyry/bella.git \u0026\u0026 cd bella \u0026\u0026 source setup\n```\n\n#### Git-free\n\nDownload the files into the directory of your chosing and run the setup file (with no options).\n\n```bash\ncurl -#L https://github.com/goodguyry/bella/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,LICENSE} \u0026\u0026 source setup\n```\n\n#### Setup Options\n\nAlternatively, you can run ```./setup``` from within the project root to set the files into place. There are three options available:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-h\u003c/code\u003e, \u003ccode\u003e--help\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003ePrints usage information\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e--dev-mode\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eSymlink files in place (default is copy)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e--no-global\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eSupress copying/syncing the example global file\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nDuring setup, [.bella_global](https://github.com/goodguyry/bella/blob/master/docs/bella_global) is copied to your home folder and [bella](https://github.com/goodguyry/bella/blob/master/bella) is copied to ~/.bin (the directory is created if it doesn't already exist).\n\n### Use\n\nOnce in **~/.bin**, Bella can be run from the root of your site:\n\n```\nbella\n```\n\nThe following optional arguments are available to override your [configuration files](https://github.com/goodguyry/bella#configuration-files):\n\n```python\nbella -w \u003cwatchFile\u003e -p \u003cprocessedFile\u003e -e \u003cenvironment\u003e -s \u003cstyle\u003e\nUse -d or --directory to watch an entire directory.\n```\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-w\u003c/code\u003e, \u003ccode\u003e--watchFile\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe file (without extention) you want Sass to watch\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-p\u003c/code\u003e, \u003ccode\u003e--processedFile\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe filename (without extention) you want Sass to give the processed (CSS) file\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-e\u003c/code\u003e, \u003ccode\u003e--environment\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eSwitch away from your default environment\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-s\u003c/code\u003e, \u003ccode\u003e--style\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eOne of the \u003ca href=\"#sass\"\u003eSass style options\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-d\u003c/code\u003e, \u003ccode\u003e--directory\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eTells Bella to watch the directory paths instead of individual files\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nIf you've got your [configuration files](https://github.com/goodguyry/bella#configuration-files) set right, you should only need the options when switching environments...\n\n```\nbella -e deploy\n```\n\n... or if you want to watch a file other than the default input file...\n\n```\nbella -w print\n```\n\n... or if you want to change the name of the processed file...\n\n```\nbella -p main\n```\n\n... or to watch an entire directory.\n\n```\nbella -d\n```\n\nThe settings are applied in this order:\n\n1. bella_global\n2. bella.config\n3. Optional command line arguments\n\n**Screenshot** *(based on the configuration in the following section):*\n\n![](http://i.imgur.com/9b5vEuC.png)\n\n### Configuration files\n\nThe configuration files (bella_global and bella.config) are python dictionary files.\n\n[bella_global](https://github.com/goodguyry/bella/blob/master/docs/bella_global):\nThis is a great place to define your environment settings, as those usually won't change from project to project.\n\n```python\n# From bella_global\n\n# Global configuration file\n# Served from home directory\n# If not present in the user's home directory,\n#   all configuration setting must be in bella.config\n\n{\n\n  'defaults': {\n    'environment': 'develop',\n    'precision': 4,\n    'watchFile': 'core',\n    'addMinToFilename': True,\n    'addMaxToFilename': True\n  },\n\n  'develop': {\n    'style': 'expanded',\n    'lineNumbers': True\n  },\n\n  'deploy': {\n    'style': 'compressed',\n    'lineNumbers': False\n  }\n\n}\n```\n\n[bella.config](https://github.com/goodguyry/bella/blob/master/bella.config):\nProject-specific settings to override the global defaults. This file is required and must be in your project root.\n\n```python\n# From bella.config\n\n# Local configuration file\n# Required to be served from the project's root directory\n\n{\n\n  \"paths\": {\n    \"cssPath\":\"_/css/\",\n    \"sassPath\": \"_/sass/\"\n  }\n\n}\n\n```\n\n**Bella-specific settings**\n\n\n```environment``` is the default environment; the environment can be either _develop_ or _deploy_.\n\n```watchFile``` is the file (without extention) you want Sass to watch; the processed (output) file will be named the same as the watchFile unless overridden by the ```-o``` command line option.\n\n```addMinToFilename``` and ```addMaxToFilename``` will append _min_ or _max_ (respectively) to the processed CSS file's name; _max_ when not compressed, _min_ when compressed (e.g, default.min.css).\n\n```paths``` are the relative paths (from the root) to the Sass and CSS files (with trailing slashes).\n\n**\u003ca name=\"sass\"\u003e\u003c/a\u003eSass-specific settings** ([from the Sass reference](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html))\n\n```precision``` sets the number of digits of precision. For example, if this is 3, 3.1415926 will be printed as 3.142.\n\n```style``` should be one of the following:\n\n- nested (default)\n- expanded (typical human-made CSS style)\n- compact (takes up less space than Nested or Expanded)\n- compressed (takes up the minimum amount of space possible)\n\n```lineNumbers```: When set to true, causes the line number and file where a selector is defined to be emitted into the compiled CSS as a comment. Useful for debugging, especially when using imports and mixins.\n\n\n##FAQ\n\n#### Are there better ways of doing this?\n\nProbaby.\n\n#### Well, then why Python?\n\nThis was originally written as a Bash script, to get aquainted with Bash; this was the first project idea that came to mind. Once I was finished, I decided it needed to be rewritten in a more accessible way (the Bash script required Bash 4). So here we are... I should probably mention that this is my first Python script/project.\n\n#### Why not Compass or [your favorite Sass framework/application]?\n\nI just wanted a bare-bones, dead simple way of doing it. I definitely understand this isn't for everyone. Frankly, it's for me, but you're free to use it if you find it useful.\n\n#### Who is Bella?\n\n[Bella](http://i.imgur.com/Nhu87.jpg) is my 7-year-old Wirehaired Pointer. She's the bacon to my eggs; the peanut butter to my jelly.\n\n---\n\nNote: This is my first Python script, so I am probably using it in naive ways - especially regarding it's distribution and installation. I appreciate any help or guidance you can contribute.\n\n---\n\nCopyright (c) Ryan Domingue. Distributed under MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodguyry%2Fbella","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoodguyry%2Fbella","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoodguyry%2Fbella/lists"}