{"id":43636476,"url":"https://github.com/rigon/rigon.github.io","last_synced_at":"2026-02-04T17:34:18.536Z","repository":{"id":221665622,"uuid":"755032108","full_name":"rigon/rigon.github.io","owner":"rigon","description":"Ricardo Gonçalves homepage","archived":false,"fork":false,"pushed_at":"2025-03-13T22:38:59.000Z","size":21085,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T23:29:09.685Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.rigon.uk/","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/rigon.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":"2024-02-09T09:45:45.000Z","updated_at":"2025-03-13T22:39:03.000Z","dependencies_parsed_at":"2025-03-13T23:36:17.183Z","dependency_job_id":null,"html_url":"https://github.com/rigon/rigon.github.io","commit_stats":null,"previous_names":["rigon/rigon.github.io"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rigon/rigon.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigon%2Frigon.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigon%2Frigon.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigon%2Frigon.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigon%2Frigon.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rigon","download_url":"https://codeload.github.com/rigon/rigon.github.io/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigon%2Frigon.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29091954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-02-04T17:34:17.268Z","updated_at":"2026-02-04T17:34:18.530Z","avatar_url":"https://github.com/rigon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bootstrap 5 + WebPack 5 = Boilerplate\n\nThis is a professional front-end template for building web apps and sites faster, without having to create the basic\nsetup on your own, every time you start a new project.\n\nThe template is based on the [Bootstrap Framework](http://getbootstrap.com/) in version 5 and\nuses [Webpack](https://webpack.js.org/) in version 5 as a flexible and modern module bundler. All common features for\nfront-end projects (like SCSS compilation, minifying of Assets, etc.) are included out of the box.\n\nIn addition to the basic front-end project setup, I added some cool features like a configurable image resizing command\nto make generating responsive images a breeze.\n\n## Table of Contents\n\n1. [Requirements](#1-requirements)\n1. [Quick Start](#2-quick-start)\n1. [Environment Configuration](#3-environment-configuration)\n1. [Adding Google Fonts](#4-adding-google-fonts)\n1. [Adding Responsive Images](#5-adding-responsive-images)\n1. [Image Credits](#6-image-credits)\n\n## 1. Requirements\n\nThe boilerplate needs [Node.js](https://nodejs.org/en/) to be installed on your system. It was tested with version 12\nand newer.\n\n## 2. Quick Start\n\n1. Clone the repository into a new folder for your new project.\n\n   ```bash\n   git clone git@github.com:noreading/bootstrap5-webpack-boilerplate.git my-project\n   ```\n2. Remove the .git directory to add your own CVS later.\n\n   ```bash\n   rm -rf .git\n   ```\n\n3. Update the package.json.\n\n   ```JSON\n      {\n        \"name\": \"my-project\",\n        \"description\": \"A description of my new project\",\n        \"author\": \"Your Name\",\n        \"license\": \"MIT\"\n      }\n   ```\n\n4. Install needed dependencies\n\n   ```bash\n   npm install\n   ```\n\n5. Run webpack\n\n   ```bash\n   npm run dev\n   ```\n\n   The dev command will start Webpack and tell it to watch for changes in JS and SCSS files, to recompile the needed\n   assets.\n\n   If you want to compile all assets for production usage, run the following command.\n\n   ```bash\n   npm run build\n   ```\n\n   This command tells webpack to run in production mode and compiles all of the assets in a minified version, to deliver\n   smaller files for your users.\n\n## 3. Environment Configuration\n\nIf you use sensitive information in your code, like API keys or encryption tokens, you should never store those in your\ncode repository. This could lead to a security issue, especially if the repository is public.\n\nTherefore, I included the [dotenv-webpack](https://github.com/mrsteele/dotenv-webpack) plugin in this boilerplate, that\nenables you to store all your sensitive information in a `.env` file, that is ignored by git.\n\nThe `.env.default` file should contain all the variables that your application needs, but without the real data and\nshould contain either empty variables or default values that can be used by everyone. The variables will get replaced\nduring asset compilation so that only those variables are added, that are referenced in your code.\n\nIt is a common scheme to use an uppercase syntax for environment variables, as you can see in the example below.\nComments inside of .env files start with a hash.\n\n```\n# GOOGLE APIs\n\nGOOGLE_MAPS_API_KEY=vEVmihkWZ2fqedyHQT***************\nYOUTUBE_API_KEY=TnJ8YOfVuL9bbFH83T13N****************\n\n# CACHING\nCACHE_ENABLED=false\nCACHE_TIMEOUT=3600\n```\n\nYou can test the usage of environment variables by editing the `.envt` file and changing the value of `HELLO`. After\nre-compiling the assets you should see a message in the developer console, as soon as you visit the demo page.\n\n**Important:**\n\nAfter each change of the `.env` file you need to reload Webpack, as the environment is only loaded once per runtime. If\nyou've got an active `npm run dev` command, you need to stop and re-run it, for the changes to take effect.\n\n## 4. Adding Google Fonts\n\nIf you want to add fonts from [fonts.google.com](https://fonts.google.com/), you should follow a few easy steps.   \nThe boilerplate uses the [Roboto](https://fonts.google.com/specimen/Roboto) as an example.\n\n1. Download the required font families as ZIP files from [fonts.google.com](https://fonts.google.com/).\n2. Extract the files and copy the folders to `/fonts/` in the theme directory.\n3. Generate the formats \"eot\", \"woff\" and \"woff2\" using [transfonter.org](https://transfonter.org/) and save them.\n4. Open the file `src/scss/_fonts.scss` and use the mixin `googleFont()` to add the fonts.\n\nThe mixin has 4 parameters.\n\n| Name | Type | Description  |\n|:-----|:-----|:-------------|\n| name | `String` | The name of the font, used as value for `font-family` properties. |\n| folder | `String` | The name of the folder, that is extracted from the ZIP file. |\n| files | `String` | The first part of font filenames. |\n| weights | `List` | The list of weights, that should be loaded. |\n\nExample:\n\n```scss\n@include googleFont((\n  \"name\": \"IBM Plex Sans\",\n  \"folder\": \"IBM_Plex_Sans\",\n  \"files\": \"IBMPlexSans\",\n  \"weights\": (300, 400, 700)\n));\n```\n\nThere is also a second mixin, that can handle multiple fonts at once. This reduces the amount of code needed, if your\nwebsite or application requires multiple fonts to be loaded.\n\nExample:\n\n```scss\n@include googleFonts((\n  (\n    \"name\": \"Roboto\",\n    \"folder\": \"Roboto\",\n    \"files\": \"Roboto\",\n    \"weights\": (300, 400, 700)\n  ),\n  (\n    \"name\": \"Besley\",\n    \"folder\": \"Besley\",\n    \"files\": \"Besley\",\n    \"weights\": (300, 400, 700)\n  ),\n));\n```\n\n## 5. Adding Responsive Images\n\n### 5.1 What is it?\n\nThis boilerplate includes a command to resize images based on a configuration file, to get rid of the hassle to care\nabout the responsive image sizes manually. One of the benefits of this process is that it works on all major operating\nsystems, without the need to do any manual installations.\n\nIf you want to use the resizing feature, please edit the file `images.config.js` in the root directory and change all\nsettings to your needs. You can add multiple collections with different configurations for greatest flexibility.\n\nIn order for this command to work properly you need to have \"clean\" filenames for your images, that don't match the\npatterns used to create the resized filenames automatically. The filenames get a postfix, based on the resizing settings\nfor the images width and height.\n\nFilenames, that will be recognized as original images, are as follows.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eAllowed Filename\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003emy-image.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSimple filenames\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003emy-image-1982-to-2018.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFilenames including numbers, also at the end.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003emy-image-400x200-tablet.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFilenames including dimensions, but not at the end.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003emy-image_400x200.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFilenames including dimensions, but using an underscore.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nFilenames, that will **not** be recognized as original images, are as follows.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eProhibited Filename\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n      \u003cth align=\"left\"\u003ePattern\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003eyour-image-w200.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eResized using a fixed width only\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{filename}-w{width}.{extension}\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003eyour-image-h400.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eResized using a fixed height only\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{filename}-h{height}.{extension}\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003eyour-image-200x400.jpg\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eResized using a fixed width and height\u003c/td\u003e\n      \u003ctd valgin=\"top\"\u003e{filename}-{width}x{height}.{extension}\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\nYou can use a [test tool](https://regex101.com/r/6f2cEu/4) to check if your filenames will work correctly, by adding one\nfilename per line into the \"Test Strings\" field. This helps to ensure that none of your images will be deleted.\n\nYou can use the regular expression to test files on your local machine, too. On Linux and Mac operating systems you can\ncheck if any image in a folder would conflict with the resizing tool by using the following command:\n\n```bash\nfind ./ | grep -E \".*\\-([0-9]+x[0-9]+|w[0-9]+|h[0-9]+)\\.[a-z]+$\"\n```\n\nAll files that are listed should get renamed, following the rules you can see in the tables above.\n\n---\n\n### 5.2 The Configuration\n\nThe responsive image configuration is saved in the `images.config.js` file, located in the root directory of the\nproject.\n\n#### 5.2.1 Global Settings\n\nThe configuration has some global settings, that you should set to your personal preferences.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eOption\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDefault\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003euseTrash\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMoves files to the trash instead of deleting them directly, when using the \"recreate\" or \"remove\" argument.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### 5.2.2 Collections\n\nThe configuration uses **collections** which include a set of configuration options to resize images. This allows you to\ndefine different resizing rules for multiple directories.\n\nEach collection has the following options.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eOption\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n      \u003cth align=\"left\"\u003eRequired\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDefault\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003ename\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe name of the collection, to identify it in error messages, etc.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eyes\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003esource\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe source directory of the image files that should get resized.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eyes\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003erecursive\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eResize images in subdirectories, too?\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eno\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003esizes\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe configurations for image sizes that get created.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eyes\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### 5.2.3 Sizes\n\nEach collection has the option \"sizes\" which includes a set of configurations for different image sizes that will be\ngenerated. Width and height are optional, if at least one of them is set.\n\nEach size has the following options.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eOption\u003c/th\u003e\n      \u003cth align=\"left\"\u003eType\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n      \u003cth align=\"left\"\u003eRequired\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDefault\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003ename\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{string}\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe name of the size, to identify it in error messages, etc.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eyes\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003ewidth\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{number}\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe width of the resized image.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eno\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003eheight\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{number}\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe height of the resized image.\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eno\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003efit\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{string}\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe method by which the image should fit.\u003cbr /\u003e\u003cbr /\u003e\n        \u003ccode\u003ecover\u003c/code\u003e\u003cbr /\u003eCrop to cover both provided dimensions.\u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003econtain\u003c/code\u003e\u003cbr\u003eEmbed within both provided dimensions.\u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003efile\u003c/code\u003e\u003cbr /\u003eIgnore the aspect ratio of the input and stretch to both provided dimensions.\u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003einside\u003c/code\u003e\u003cbr /\u003ePreserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified.\u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003eoutside\u003c/code\u003e\u003cbr /\u003ePreserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified.\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eno\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003ecover\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003eposition\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e{string}\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eThe position When using a fit of \"cover\" or \"contain\"\u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003eleft\u003c/code\u003e, \u003ccode\u003eright\u003c/code\u003e, \u003ccode\u003etop\u003c/code\u003e, \u003ccode\u003ebottom\u003c/code\u003e, \u003ccode\u003ecenter\u003c/code\u003e, \u003ccode\u003eleft top\u003c/code\u003e, \u003ccode\u003eright top\u003c/code\u003e, \u003ccode\u003eleft bottom\u003c/code\u003e, \u003ccode\u003eright bottom\u003c/code\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eno\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003ecenter\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n---\n\n### 5.3 The Command Line Arguments\n\nThe resizing command supports different arguments to remove resized images, recreate all images, etc.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eCommand\u003c/th\u003e\n      \u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003enpm run images\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eCreates all resized versions of a file that are missing.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003enpm run images recreate\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eRemoves the resized versions of all files and recreates them.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003enpm run images remove\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eRemoves the resized versions of all files.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n**Important:**\n\nThe recreation and removal arguments will force the command to remove all images it detects as being resized versions (\nby their filename). If you use other tools for your images that add postfixes to the filenames, this might lead to false\npositives, so please backup your files before you run this.\n\n```bash\nnpm run images remove\n```\n\n---\n\n## 6. Image Credits\n\nAll placeholder images used in the `index.html` file are downloaded from [pexels.com](https://www.pexels.com/),\nand [pixabay.com](https://pixabay.com/). Those are two fantastic collections of free stock photos from photographers\naround the globe.\n\nIf you're one of the photographers and would like to change the linked website or get an image removed from the\nboilerplate, please shoot me an email to code@dominik-hanke.de and I'll update it as soon as possible.\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"left\"\u003eCarousel Image\u003c/th\u003e\n      \u003cth align=\"left\"\u003ePhotographer\u003c/th\u003e\n      \u003cth align=\"left\"\u003eWebsite\u003c/th\u003e\n      \u003cth align=\"left\"\u003eImage Source\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e1\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/@kailash-kumar-212268\"\u003ekailash kumar\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.facebook.com/kailashkumarphotogrphy/\"\u003efacebook page\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/photo/white-sheep-on-farm-693776/\"\u003epexels.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e2\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/Cleverpix-2508959/\"\u003eCleverpix\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.cleverpix.com.au/\"\u003ecleverpix.com.au\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/sunset-tree-water-silhouette-1373171/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e3\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/GregMontani-1014946/\"\u003eGregMontani\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        -\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/desert-morocco-dunes-sand-2435404/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cbr /\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003cth align=\"left\"\u003eAlbum Photo\u003c/th\u003e\n    \u003cth align=\"left\"\u003ePhotographer\u003c/th\u003e\n    \u003cth align=\"left\"\u003eWebsite\u003c/th\u003e\n    \u003cth align=\"left\"\u003eImage Source\u003c/th\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e1\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/skeeze-272447/\"\u003eskeeze\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        -\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/landscape-panorama-scenic-clouds-2278315/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e2\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/@shottrotter\"\u003eshottrotter\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"http://www.shottrotter.be/\"\u003eshottrotter.be\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/photo/photo-of-person-walking-on-deserted-island-934718/\"\u003epexels.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e3\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/sasint-3639875/\"\u003esasint\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"http://www.pixartasia.com/\"\u003epixartasia.com\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/elephant-animals-asia-large-1822636/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e4\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/Walkerssk-1409366/\"\u003eWalkerssk\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"http://www.walkers.sk/\"\u003ewalkers.sk\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/cinque-terre-italy-houses-color-1859688/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e5\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/users/Marcocarli-4847725/\"\u003eMarcocarli\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        -\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://pixabay.com/en/mountain-alpine-wild-emperor-2444712/\"\u003epixabay.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e6\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/@jaymantri\"\u003eJaymantri\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://jaymantri.com/\"\u003ejaymantri.com\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/photo/nature-forest-trees-fog-4827/\"\u003epexels.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e7\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/@veeterzy\"\u003eveeterzy\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.instagram.com/veeterzy?ref=pexels\"\u003einstagram profile\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/photo/road-landscape-nature-forest-39811\"\u003epexels.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e8\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/@pok-rie-33563\"\u003ePok Rie\u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        -\n      \u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003ca href=\"https://www.pexels.com/photo/brown-wooden-footbridge-on-body-of-water-during-sunrise-129441/\"\u003epexels.com\u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigon%2Frigon.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frigon%2Frigon.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigon%2Frigon.github.io/lists"}