{"id":22057072,"url":"https://github.com/fspoettel/blaupause","last_synced_at":"2025-05-12T16:02:35.441Z","repository":{"id":12541232,"uuid":"15211293","full_name":"fspoettel/blaupause","owner":"fspoettel","description":"[NOT MAINTAINED] Use https://github.com/netlify-templates/victor-hugo instead","archived":false,"fork":false,"pushed_at":"2023-01-14T01:10:30.000Z","size":12119,"stargazers_count":73,"open_issues_count":24,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-15T02:08:38.437Z","etag":null,"topics":["hugo","npm-scripts","pwa","starter-kit"],"latest_commit_sha":null,"homepage":"https://blaupause.felics.me/","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/fspoettel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-15T21:40:12.000Z","updated_at":"2024-02-27T23:08:31.000Z","dependencies_parsed_at":"2023-01-14T12:30:29.999Z","dependency_job_id":null,"html_url":"https://github.com/fspoettel/blaupause","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspoettel%2Fblaupause","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspoettel%2Fblaupause/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspoettel%2Fblaupause/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspoettel%2Fblaupause/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fspoettel","download_url":"https://codeload.github.com/fspoettel/blaupause/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227370656,"owners_count":17770706,"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":["hugo","npm-scripts","pwa","starter-kit"],"created_at":"2024-11-30T16:16:04.485Z","updated_at":"2024-11-30T16:16:04.971Z","avatar_url":"https://github.com/fspoettel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blaupause\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/fspoettel/blaupause.svg)](https://greenkeeper.io/)\n\n\u003e blaupause is a [hugo](https://gohugo.io) starter kit based on npm scripts, webpack and postcss. It helps with setting up a modern web development stack and adds offline support via a service worker.\n\n## In the box\n\n* [hugo](https://gohugo.io) with a layout boilerplate\n* build process managed via npm scripts\n* _Development Mode_: sourcemaps, [browserSync](http://www.browsersync.io/) live-reloading environment and debugging helpers\n* _Production Mode_: optimized builds, offline support via a service worker\n\n### JavaScript\n\n* [webpack@4](http://webpack.github.io)\n* [babel@7](babeljs.io) with `babel-env`\n* [eslint with airbnb config](http://eslint.org/)\n* [jest unit tests](https://facebook.github.io/jest/)\n\n### CSS\n\n* [autoprefixer](https://github.com/postcss/autoprefixer)\n* [pstcss-import](http://cssnext.io/)\n* [stylelint with standard config](http://stylelint.io/)\n* [sanitize.css](https://github.com/10up/sanitize.css)\n\n### Images/SVG\n\n* Automatic svg sprites via [svg-sprite](https://github.com/jkphl/svg-sprite)\n* Hugo partial to embed svg sprite\n\n### Dev Tools\n\n* [editorConfig](http://editorconfig.org/)\n* [travis](https://travis-ci.org)\n\n## Installation\n\nThis project depends on [NodeJS](http://nodejs.org/) being installed on your machine. If the Hugo binary is not yet available on your `$PATH`, it will be installed during `npm install`.\n\nTo initiate a new site, run:\n\n1. `git clone https://github.com/felics/blaupause project`\n1. `cd project`\n1. `npm install`\n1. `npm start`\n\n## Tasks \u0026 Task Configuration\n\nTasks are managed via [nps](https://github.com/kentcdodds/nps) and live in `package-scripts.js`. The following tasks are exposed in `package.json`:\n\n#### `npm start`\n\nCompiles all assets and starts a development server. Whenever you change a source file, the BrowserSync instance will reload your connected browsers with the changes. Sourcemaps are enabled.\n\n#### `npm run start:staging`\n\nSame as `npm:start`, but with production-ready assets. No sourcemaps, resources are optimized and gzipped.\n\n#### `npm run build`\n\nBuilds all content and assets from `src` to `public`. Generates a production-ready build:\n\n* The `production` baseUrl is applied by hugo\n* Draft entries are not included\n* Source maps are omitted\n* JS \u0026 CSS is minified, `NODE_ENV=production` is passed to the javascript build\n* A service worker is added to the build\n* Debug console statement called with `utils/debug` are stripped\n\n#### `npm run build:clean`\n\nRemoves the `public`-folder (executed automatically when running `npm run build` or `npm start`).\n\n#### `npm run lint`\n\nRuns eslint \u0026 stylelint against your code.\n\n#### `npm run test`\n\nRuns jest unit tests\n\n## Hugo Partials\n\n### image/svg\n\nReference a SVG-symbol from `/static/svg/sprite.symbol.svg` by ID. The SVG build task will look for `.svg`-files in `src/img` and sub-directories. Usage:\n\n``` html\n  \u003cdiv class=\"icon\"\u003e{{ partial \"media/svg\" (dict \"id\" \"the-icon\" \"class\" \"optional-class\") }}\u003c/div\u003e\n```\n\n## Offline Support\n\nThe service worker in `src` provides basic offline capabilities and follows a `networkFirst` strategy for static files and a `cacheFirst` strategy for google fonts and images. This means that visitors will always see the latest content and styles when a network connection is available. After the first visit, webfonts and images will be served from the cache and visited pages will work offline. The last cached version of the page will be served in the event that a user has no network connection. If you do not have dynamic content and changing static files, consider configuring workbox to use precaching. That way, your whole page will work offline once a single URL is visited.\n\n## Deploying to Netlify\n\nNetlify is the easiest deploy option for blaupause. To get started, you have to:\n\n* Push your clone to your own GitHub repository.\n* [Create a new site on Netlify](https://app.netlify.com/start) and link the repository.\n\nNow Netlify will build and deploy your site whenever you push to git.\n\nYou can also click this button:\n\n[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/fspoettel/blaupause)\n\nIt is also possible to roll your own deploy with CircleCI and AWS as an alternative.\n\n## Adding Netlify CMS\n\nTo add Netlify CMS, add the following files to the repo and configure according to the netlify-cms docs.\n\n### /hugo/static/admin/index.html\n\n``` html\n\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003cmeta charset=\"utf-8\" /\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /\u003e\n  \u003ctitle\u003eContent Manager\u003c/title\u003e\n\n  \u003c!-- Include the styles for the Netlify CMS UI, after your own styles --\u003e\n  \u003clink rel=\"stylesheet\" href=\"https://unpkg.com/netlify-cms@^0.7.0/dist/cms.css\" /\u003e\n\n\u003c/head\u003e\n\u003cbody\u003e\n  \u003c!-- Include the script that builds the page and powers Netlify CMS --\u003e\n  \u003cscript src=\"https://unpkg.com/netlify-cms@^0.7.0/dist/cms.js\"\u003e\u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### /hugo/static/admin/config.yml\n\n``` yaml\nbackend:\n  name: github # git-gateway if using Netlify Identity integration\n  repo:  fspoettel/blaupause\n  branch: master\n  base_url: # See https://github.com/vencax/netlify-cms-github-oauth-provider or remove if using Netlify Identity\npublish_mode: editorial_workflow\nmedia_folder: \"hugo/static/assets\"\npublic_folder: \"/assets\"\ncollections: # See netlify-cms docs\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffspoettel%2Fblaupause","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffspoettel%2Fblaupause","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffspoettel%2Fblaupause/lists"}