{"id":16528553,"url":"https://github.com/tobilen/horst","last_synced_at":"2025-03-03T07:44:09.857Z","repository":{"id":96318824,"uuid":"71007316","full_name":"tobilen/horst","owner":"tobilen","description":"Frontend Asset Pipeline, based off of https://github.com/vigetlabs/gulp-starter","archived":false,"fork":false,"pushed_at":"2017-02-15T23:18:45.000Z","size":21524,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T19:17:42.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/tobilen.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-15T18:57:29.000Z","updated_at":"2016-10-30T18:22:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"a949d258-ef30-4e88-ba22-b626f20d2a0f","html_url":"https://github.com/tobilen/horst","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilen%2Fhorst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilen%2Fhorst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilen%2Fhorst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobilen%2Fhorst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobilen","download_url":"https://codeload.github.com/tobilen/horst/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241629739,"owners_count":19993707,"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":[],"created_at":"2024-10-11T17:40:50.270Z","updated_at":"2025-03-03T07:44:09.833Z","avatar_url":"https://github.com/tobilen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Heavily modified Version of Gulp Starter\n\n## Basisinstallation\nUm das Projekt bauen zu können, werden folgende Programme benötigt.\n\n###NodeJS \n```\nInstaller von https://nodejs.org/\n```\n\n###npm installatieren/ aktualisieren\n```bash\nnpm install -g npm\n```\n\n###python (v2.7.x)\n```\n\u003e Installer von https://www.python.org/\n```\n\n##Cleanup: Um den modules-Ordner zu löschen\nBei Windows kann es bei zu langen Dateinamen zu Problemen kommen. Dabei hilft ein Nodejs Modul \"rimraf\".\nInstallation (https://www.npmjs.com/package/rimraf)\n```bash\nnpm install rimraf -g\n```\n\nStarten (ohne Sicherheitsfrage ist dann rekursiv alles Weg)\t\n```bash\nrimraf \u003cpath\u003e\n```\n```bash\nrimraf node_modules\n```\n\n## Projekt laufen lassen\nEinmalig\t\n```\nnpm install\n```\n\nFür die Entwicklung (mit autoreload bei Resourcenänderungen)\n```bash\nnpm run development\n```\n\nFür die Vorbereitung der Produktion\n```bash\nnpm run production\n```\n\n\n## Bower/Webpack Integration\nAny Bower Package can be integrated via \n```\nrequire('packagename')\n```\nBy default, packages \"main\" files will be used. Can be modified in projects bower.json in the overrides-section\n## Bootstrap\nBootstrap is included by default as npm package.\n\nTo remove, delete it from package.json\n\nBootstrap Variables can be overriden in ./src/stylesheets/bs-overrides.scss\n\n## Modernizr\nModernizr is included by default as npm package\n\nTo remove, delete it from package.json\n\nYou can set which parts of Modernizr to include by editing .modernizrrc\n\nA list of possible options can be found here: https://github.com/Modernizr/Modernizr/blob/master/lib/config-all.json\n\n## Magnolia Light Module\nTo add assets (js, css, fonts, images) to lightmodule, run\n```\nnpm run lightmodule\n```\n*Lightmodule folder name has to be specified in \"gulpfile.js/config.json\" for the root object!!*\n\n\n####\n\n\n\n# ![Gulp Starter](extras/demo/src/images/gulp-starter-logo.png)\n\nGulp Starter is a delicious blend of tasks and build tools poured into [Gulp](http://gulpjs.com/) to form a full-featured modern asset pipeline. It can be used as-is as a static site builder, or can be configured and integrated into your own development environment and site or app structure. The [extras](./extras) folder contains configuration details for Rails and Craft, with more to follow. [Check out the compiled demo](http://vigetlabs.github.io/gulp-starter/) and play with [the source files](extras/demo)!\n\n```bash\ngit clone https://github.com/vigetlabs/gulp-starter.git MyApp\ncd MyApp\nnpm install\nnpm start\n```\n\nFeatures | Tools Used\n------ | -----\n**CSS** | [Sass](http://sass-lang.com/) ([Libsass](http://sass-lang.com/libsass) via [node-sass](https://github.com/sass/node-sass)), [Autoprefixer](https://github.com/postcss/autoprefixer), [CSSNano](https://github.com/ben-eb/cssnano), Source Maps\n**JavaScript** | [Babel](http://babeljs.io/), [Webpack](http://webpack.github.io/)\n**HTML** | [Nunjucks](https://mozilla.github.io/nunjucks/), [gulp-data](https://github.com/colynb/gulp-data), or bring your own\n**Images** | Compression with [imagemin](https://www.npmjs.com/package/gulp-imagemin)\n**Icons** | Auto-generated [SVG Sprites](https://github.com/w0rm/gulp-svgstore) and/or [Icon Fonts](https://www.npmjs.com/package/gulp-iconfont)\n**Fonts** | Folder and `.sass` mixin for including WebFonts\n**Live Updating** | [BrowserSync](http://www.browsersync.io/), [Webpack Dev Middleware](https://github.com/webpack/webpack-dev-middleware), [Webpack Hot Middleware](https://github.com/glenjamin/webpack-hot-middleware)\n**Production Builds** | JS and CSS are [uglified](https://github.com/terinjokes/gulp-uglify) and [minified](http://cssnano.co/), [filename md5 hashing (reving)](https://github.com/sindresorhus/gulp-rev), [file size reporting](https://github.com/jaysalvat/gulp-sizereport), local production [Express](http://expressjs.com/) server for testing builds.\n**JS Testing** | [Karma](http://karma-runner.github.io/0.12/index.html), [Mocha](http://mochajs.org/), [Chai](http://chaijs.com/), and [Sinon](http://sinonjs.org/), Example [Travis CI](https://travis-ci.org/) integration\n**Deployment** | Quickly deploy `public` folder to gh-pages with [`gulp-gh-pages`](https://github.com/shinnn/gulp-gh-pages)\n\n## Usage\nMake sure Node installed. I recommend using [NVM](https://github.com/creationix/nvm) to manage versions. \n\nThis has been tested on Node `0.12.x` - `5.9.0`, and should work on newer versions as well. [File an issue](https://github.com/vigetlabs/gulp-starter/issues) if it doesn't!\n\n#### Install Dependencies\n```bash\nnpm install\n```\n\n#### Run development tasks:\n```\nnpm start\n```\nAliases: `npm run gulp`, `npm run development`\n\nThis is where the magic happens. The perfect front-end workflow. This runs the default gulp task, which starts compiling, watching, and live updating all our files as we change them. BrowserSync will start a server on port 3000, or do whatever you've configured it to do. You'll be able to see live changes in all connected browsers. Don't forget about the additional BrowserSync tools available on port 3001!\n\nWhy run this as an npm script? NPM scripts add ./node_modules/bin to the path when run, using the packages version installed with this project, rather than a globally installed ones. Never `npm install -g` and get into mis-matched version issues again. These scripts are defined in the `scripts` property of `package.json`.\n\n#### Run in tests in watch mode:\n```bash\nnpm run test:watch\n```\n\n#### Run tests once:\n```bash\nnpm run test\n```\n\n#### Build production files:\n```bash\nnpm run production\n```\n\n### Running the Demo\nBy default, the files in `src` are pretty minimal. If you're just exploring and would like to play with the [demo](http://vigetlabs.github.io/gulp-starter/) files, the files available in `extras/demo`. Just replace `src` and `config.json` with the ones in `extras/demo`, or simply check out the `demo` branch.\n\n```\ngit checkout demo\nnpm start\n```\n\n### Starting a fresh project\nIf you plan on using this to start a new project, be sure and clear out the `git` data start a fresh history:\n\n```bash\nrm -rf .git \u0026\u0026 git init\ngit commit -m \"Initialized with Gulp Starter\"\n```\n\n## Configuration\nDirectory and top level settings are convienently exposed in `gulpfile.js/config.json`. Use this file to update paths to match the directory structure of your project, and to adjust task options.\n\nAll task configuration objects have `src` and `dest` directories specfied. These are relative to `root.src` and `root.dest` respectively. Each configuration also has an extensions array. This is used for file watching, and file deleting/replacing.\n\n**If there is a feature you do not wish to use on your project, simply delete the configuration, and the task will be skipped.**\n\nNot all configuration is exposed here. For advanced task configuration, you can always edit the tasks themselves in `gulpfile.js/tasks`.\n\n### Start compiling, serving, and watching files\n```\nnpm run gulp\n```\n\n(or `npm run development`)\n\nThis runs `gulp` from `./node_modules/bin`, using the version installed with this project, rather than a globally installed instance. All commands in the package.json `scripts` work this way. The `gulp` command runs the `default` task, defined in `gulpfile.js/tasks/default.js`.\n\nAll files will compile in development mode (uncompressed with source maps). [BrowserSync](http://www.browsersync.io/) will serve up files to `localhost:3000` and will stream live changes to the code and assets to all connected browsers. Don't forget about the additional BrowserSync tools available on `localhost:3001`!\n\nTo run any other existing task, simply add the task name after the `gulp` command. Example:\n\n```bash\nnpm run gulp production\n```\n\n## Asset Task Details\nA `README.md` with details about each asset task are available in their respective folders in the `src` directory:\n\n- [JavaScript](src/javascripts)\n- [Stylesheets](src/stylesheets)\n- [HTML](src/html)\n- [Fonts](src/fonts)\n- [Images](src/images)\n- [Icon Font](src/icons#iconfont-task)\n- [SVG Sprite](src/icons#svg-sprite-task)\n- [Static Files (favicons, app icons, etc.)](src/static)\n\n## Additional Task Details\n\n### Build production-ready files\n```\nnpm run production\n```\n\nThis will compile revisioned and compressed files to `./public`. To build production files and preview them localy, run\n\n```\nnpm run demo\n```\n\nThis will start a static server that serves your production files to http://localhost:5000. This is primarily meant as a way to preview your production build locally, not necessarily for use as a live production server.\n\n### Run JavaScript Tests\n```\nnpm run test\n```\nTest files located in `__tests__` folders are picked up and run using\n[Karma](http://karma-runner.github.io/0.12/index.html), [Mocha](http://mochajs.org/), [Chai](http://chaijs.com/), and [Sinon](http://sinonjs.org/). The test script right now first compiles a production build, and then, if successful runs Karma. This is nice when using something like [Travis CI](https://travis-ci.org/vigetlabs/gulp-starter) in that if an error occurs during the build step, Travis alerts me that it failed. To pass, the files have to compile properly AND pass the JS tests.\n\n### Deploy to gh-pages\n```\nnpm run deploy\n```\nThis task compiles production code and then uses [gulp-gh-pages](https://github.com/shinnn/gulp-gh-pages) to push the contents of your `dest.root` to a `gh-pages` (or other specified) branch, viewable at http://[your-username].github.io/[your-repo-name]. Be sure to update the `homepage` property in your `package.json`.\n\nGitHub Pages isn't the most robust of hosting solutions (you'll eventually run into relative path issues), but it's a great place to quickly share in-progress work, and you get it for free.\n\n[Surge.sh](http://surge.sh/) might be a good alternative for production-ready static hosting to check out, and is just as easy to deploy to. Where ever you're deploying to, all you need to do is `npm run gulp production` and transfer the contents of the `public` folder to your server however you see fit.\n\nFor non-static sites (Rails, Craft, etc.), make sure the `production` task runs as part of your deploy process.\n\nOriginal Blog Post: https://www.viget.com/articles/gulp-browserify-starter-faq\n\n***\n\n\u003ca href=\"http://code.viget.com\"\u003e\n  \u003cimg src=\"http://code.viget.com/github-banner.png\" alt=\"Code At Viget\"\u003e\n\u003c/a\u003e\n\nVisit [code.viget.com](http://code.viget.com) to see more projects from [Viget.](https://viget.com)\n\n\n\n## Project specials\n\n### SPA Navigation\n\n    Diese wird dynamisch erzeugt und benötigt die Attribute \"data-spa-navi-id\" und \"data-spa-navi-title\". Erzeugt wird diese durch clonen des Elements mit dem Attribut \"data-spa-navi-element\".\nDer Aufbau erfolgt in der app.js nach DOM Ready.\nBeispiel\n```\n   id=\"{{ module.id }}\" data-spa-navi-title=\"{{ module.headline }}\" data-spa-navi-id=\"{{ module.id }}\"\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobilen%2Fhorst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobilen%2Fhorst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobilen%2Fhorst/lists"}