{"id":13739348,"url":"https://isobar-idev.github.io/code-standards/","last_synced_at":"2025-05-08T19:33:58.049Z","repository":{"id":1539432,"uuid":"1843144","full_name":"isobar-us/code-standards","owner":"isobar-us","description":"Isobar Front-end development coding standards. Memorize them BY HEART.","archived":false,"fork":false,"pushed_at":"2016-11-10T18:22:55.000Z","size":13264,"stargazers_count":1339,"open_issues_count":25,"forks_count":421,"subscribers_count":105,"default_branch":"master","last_synced_at":"2025-04-08T14:08:40.509Z","etag":null,"topics":["best-practices","css","css3","html","html5","isobar","javascript"],"latest_commit_sha":null,"homepage":"https://isobar-us.github.io/code-standards/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isobar-us.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-03T15:55:05.000Z","updated_at":"2024-12-29T14:28:03.000Z","dependencies_parsed_at":"2022-07-14T20:30:36.826Z","dependency_job_id":null,"html_url":"https://github.com/isobar-us/code-standards","commit_stats":null,"previous_names":["isobar-idev/code-standards"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isobar-us%2Fcode-standards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isobar-us%2Fcode-standards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isobar-us%2Fcode-standards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isobar-us%2Fcode-standards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isobar-us","download_url":"https://codeload.github.com/isobar-us/code-standards/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253135465,"owners_count":21859648,"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","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":["best-practices","css","css3","html","html5","isobar","javascript"],"created_at":"2024-08-03T04:00:32.990Z","updated_at":"2025-05-08T19:33:57.658Z","avatar_url":"https://github.com/isobar-us.png","language":"HTML","readme":"#  Isobar Front-end Development Standards and Guidelines\n\n## License:\n\nAll content licensed under Creative Commons Attribution 3.0 Unported License\n\n## Summary:\n\nThis document contains guidelines for web applications built by the Front-end development practice of Isobar. It is to be readily available to anyone who wishes to check or contribute to the iterative progress of our discipline's best practices.\n\nThis document's primary motivation is two-fold: \n\n 1. code consistency and \n 2. best practices. \n\nBy maintaining consistency in coding styles and conventions, we can ease the burden of legacy code maintenance, and mitigate risk of breakage in the future. By adhering to best practices, we ensure optimized page loading, performance and maintainable code.\n\nWe hope to encourage other developers to think about how to best standardize their approaches to development, to propose their own ideas for debate and for inclusion in our version of the document, and to adapt our standards for their own unique development practices. What better way of achieving consensus on how best to develop in our discipline than through feedback from members of that discipline themselves?\n\n## Intent for Build and Content\n\nWe hope to separate the structure of the document from the content contained in the standards themselves. Effectively, our goal is to be able to easily update the content without having to worry about the structure.\n\nThis also enables pull requests to focus on content and forks to the content to be easily re-branded.\n\n## Viewing the Document\n\nTo view the latest, you can just clone locally:\n\n```bash\ngit clone git://github.com/isobar-idev/code-standards.git\n```\n\nTo make changes using the process in place, please use the build process. The next few sections describe this build process.\n\n## Building the Document\n\n### Requirements\n\nThe build system uses [Grunt.js](http://gruntjs.com) via [Node.js](http://nodejs.org/) and [SASS](http://sass-lang.com/) via [libsass](http://libsass.org/).\n\nFirst, install [Node.js](http://nodejs.org) from their Web site.\n\n### Build Details\n\nWe are using [Grunt](https://github.com/gruntjs/) to run the [Assemble](https://github.com/assemble/assemble/) task to parse, populate variables, and combine files for the HTML, Markdown, and [Handlebars](http://handlebarsjs.com/) templates.\n\n\u003e Note: [Assemble](http://assemble.io) is an exceptionally active and flexible framework for building static HTML pages. It allows the usage of Handlebars, Markdown, and HTML files so we can gradually migrate to Markdown content files over time.\n\n\u003e We suggest you check out [Assemble](http://assemble.io) as well.\n\nThe Gruntfile (`grunt.js`) includes the build for the multi-lingual copies of the document. There is a variable for `standards.defaultLanguage` which will determine what language the default `index.html` is rendered in.\n\nTo start with a clean slate, the Gruntfile has a `cleanup` task which will remove the previously generated `index.html` and associated language files.\n\nThere is also a `watch` task if you like to work that way.\n\n### Execute the Build\n\nRun `'npm install'` from the command line of the project directory to install all the node dependencies. You may need to occasionally re-run this command as new dependencies are added.\n\n\u003e Windows: You may need to manually run `npm install -g grunt` and `npm install -g grunt-cli` to correctly set the path variables required to run grunt from the command line.\n\nRun `'grunt'` from the command line of the project directory to run the build process.\n\n### Structure of Page Content\n\nThe `*.html` files in the root are generated via `grunt` and should not be edited directly. There is one file per language, by language code.\n\n```\n./en.html\n./es.html\n./ru.html\n...\n```\nFinally, the `standards.defaultLanguage` setting determines which `*.html` file will be copied to the `index.html` file.\n\n\u003e Note: In the near future the layout and templates will be updated to include the i18l language menus. \n\n#### Content\n\nThe content is written in Markdown files and the build converts it to HTML. Example:\n\n```\n./src/content/[lang]/css.md\n./src/content/[lang]/general.md\n./src/content/[lang]/html.md\n```\n\n...and so on.\n\nEach of the `.md` files contained within these directories is a portion of the final output file. We have separated the different sections that make up the page into individual files so that it is easier to edit.\n\n#### Including A Content File\n\nThe content files are included as partials and the data and order is defined in the following folder and files:\n\n```\n./src/content/[lang]/build/[lang].hbs\n./src/content/[lang]/build/data.json\n```\n\nThe `data.json` file has special significance to Assemble, *do not rename this file*.\n\n#### Page Layout (Presentation)\n\nThe main layout is a Handlebars file that the content is injected into and language specific attributes are updated.\n\nThe file is `./src/_layouts/main.hbs`.\n\n### Structure of CSS\n\nThe CSS files are generated via LibSass from the SCSS files located in the SCSS folder, which is run as part of the Grunt task.\n\n\n### Deploy\n\nBecause github pages only serve static content, you must push your generated files to the gh-pages branch for updates to appear online. \n\n","funding_links":[],"categories":["Generic"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/isobar-idev.github.io%2Fcode-standards%2F","html_url":"https://awesome.ecosyste.ms/projects/isobar-idev.github.io%2Fcode-standards%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/isobar-idev.github.io%2Fcode-standards%2F/lists"}