{"id":13621775,"url":"https://github.com/devcows/hugo-universal-theme","last_synced_at":"2025-10-19T22:04:06.717Z","repository":{"id":9340545,"uuid":"61122259","full_name":"devcows/hugo-universal-theme","owner":"devcows","description":"Universal theme for Hugo, it stands out with its clean design and elegant typography.","archived":false,"fork":false,"pushed_at":"2025-03-16T17:12:49.000Z","size":11813,"stargazers_count":838,"open_issues_count":51,"forks_count":578,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-04-04T08:49:20.390Z","etag":null,"topics":["blog-theme","css","html","hugo","hugo-theme","javascript","theme","universal"],"latest_commit_sha":null,"homepage":"https://devcows.github.io/hugo-universal-theme","language":"CSS","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/devcows.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"ryanfox1985","patreon":"ryanfox1985","custom":"https://paypal.me/ryanfox1985","bitcoin":"1My6zRZA4YKdX78aiZKZhWUWfFmCSDafZ6"}},"created_at":"2016-06-14T12:47:40.000Z","updated_at":"2025-04-01T15:48:50.000Z","dependencies_parsed_at":"2023-02-11T00:45:40.422Z","dependency_job_id":"18a51712-68e9-4b0f-8122-2a2bb300528b","html_url":"https://github.com/devcows/hugo-universal-theme","commit_stats":{"total_commits":229,"total_committers":70,"mean_commits":"3.2714285714285714","dds":0.7510917030567685,"last_synced_commit":"11d5d7de6a1e5de802d1729775daf37dc58e5cc5"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcows%2Fhugo-universal-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcows%2Fhugo-universal-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcows%2Fhugo-universal-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcows%2Fhugo-universal-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devcows","download_url":"https://codeload.github.com/devcows/hugo-universal-theme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248420083,"owners_count":21100309,"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":["blog-theme","css","html","hugo","hugo-theme","javascript","theme","universal"],"created_at":"2024-08-01T21:01:10.450Z","updated_at":"2025-10-19T22:04:01.690Z","avatar_url":"https://github.com/devcows.png","language":"CSS","readme":"# Universal Theme for Hugo\n\n[![Code Climate](https://codeclimate.com/github/devcows/hugo-universal-theme/badges/gpa.svg)](https://codeclimate.com/github/devcows/hugo-universal-theme)\n\nUniversal is a clean and stylish website template built with [Bootstrap](https://getbootstrap.com/docs/3.4/getting-started/). It stands out with its clean design and elegant typography.\n\nDemo site: [https://devcows.github.io/hugo-universal-theme](https://devcows.github.io/hugo-universal-theme/)\n\nSponsor this project:\n- [https://paypal.me/ryanfox1985](https://paypal.me/ryanfox1985)\n- [https://www.patreon.com/ryanfox1985](https://www.patreon.com/ryanfox1985)\n- BTC wallet\n```\n1My6zRZA4YKdX78aiZKZhWUWfFmCSDafZ6\n```\n\nThis Hugo theme was ported from [Bootstrapious](http://bootstrapious.com/p/universal-business-e-commerce-template) for training and fun. It has a very nice and customizable landing page, a comments system by Disqus, site search by Google, contact forms by Formspree, Google Analytics, and optional widgets for the sidebar.\n\n![screenshot](https://raw.githubusercontent.com/devcows/hugo-universal-theme/master/images/screenshot.png)\n\n\n## Table of Contents\n\n- [Universal Theme for Hugo](#universal-theme-for-hugo)\n  - [Table of Contents](#table-of-contents)\n  - [Features](#features)\n  - [Installation](#installation)\n  - [Configuration](#configuration)\n    - [Language](#language)\n    - [Style](#style)\n    - [Comments](#comments)\n    - [Google Analytics](#google-analytics)\n    - [Logo](#logo)\n    - [Contact form](#contact-form)\n    - [Menu](#menu)\n    - [Sidebar widgets](#sidebar-widgets)\n    - [Top bar](#top-bar)\n    - [Blog post thumbnails](#blog-post-thumbnails)\n    - [Landing page](#landing-page)\n      - [Carousel](#carousel)\n      - [Features](#features-1)\n      - [Testimonials](#testimonials)\n      - [See more](#see-more)\n      - [Clients](#clients)\n      - [Recent posts](#recent-posts)\n      - [Footer](#footer)\n        - [About us](#about-us)\n        - [Recent posts](#recent-posts-1)\n        - [Contact](#contact)\n    - [Meta tags](#meta-tags)\n  - [Usage](#usage)\n  - [Contributing](#contributing)\n  - [License](#license)\n  - [Thanks](#thanks)\n\n## Features\n\n* Responsive design\n* Customizable landing page\n  * Carousel\n  * Testimonials\n  * Features\n  * Customers\n  * Recent posts\n* Contact form by Formspree\n* Google search\n* Disqus comments\n* Google Analytics\n\n\n## Installation\n\nGo to the directory where you have your Hugo site and run:\n\n```\n$ mkdir themes\n$ cd themes\n$ git clone https://github.com/devcows/hugo-universal-theme\n```\n\nFor more information read the official [setup guide](https://gohugo.io/installation/) of Hugo.\n\n\n## Configuration\n\nAfter installing the Universal theme successfully, we recommend you to take a look at the [exampleSite](//github.com/devcows/hugo-universal-theme/tree/master/exampleSite) directory. You will find a working Hugo site configured with the Universal theme that you can use as a starting point for your site.\n\nFirst, let's take a look at the [config.toml](//github.com/devcows/hugo-universal-theme/tree/master/exampleSite/config.toml). It will be useful to learn how to customize your site. Feel free to play around with the settings.\n\n\n### Language\n\nAvailable translations are in the `/i18n` directory. You can configure the language modifying the following key.\n\n```toml\ndefaultContentLanguage = \"en\"\n```\n\n### Style\n\nYou can change the color of the theme by modifying the following key.\n\n```toml\nstyle = \"default\"\n```\n\nAvailable options are: `default` (light-blue), `blue`, `green`, `marsala`, `pink`, `red`, `turquoise`, `violet`.\nThere is the possibility to override the CSS and set your custom styles, override this file `static/css/custom.css` in your site.\n\n\n### Comments\n\nThe optional comments system is powered by [Disqus](https://disqus.com). If you want to enable comments, create an account in Disqus and write down your shortname.\n\n```toml\n[services]\n[services.disqus]\nShortname = \"devcows\"\n```\n\nYou can disable the comments system by leaving the `Shortname` empty.\n\n\n### Google Analytics\n\nYou can optionally enable Google Analytics. Type your tracking code in the ``.\n\n```toml\n[services]\n[services.googleAnalytics]\nid = \"UA-XXXXX-X\"\n```\n\nLeave the `id` key empty to disable it.\n\n### Logo\n\nA logo can be selected, two parameters `logo` and `logo_small` can be defined. By default `logo` is used for medium and big screens and the `logo_small` value will be used when the site is rendered on small screens. Also there is the possibility to disable the logo and render a alternative text.\n\n```toml\n[params]\n    disabled_logo = false\n    logo_text = \"Universal\"\n\n    logo = \"img/logo.png\"\n    logo_small = \"img/logo-small.png\"\n```\n\n### Contact form\n\nYou can optionally create a contact page and include a contact form.\n\nA contact page is just like a regular Hugo page. But it must include the field `id` with the value `contact`.\n\n```toml\n+++\ntitle = \"Contact\"\nid = \"contact\"\n+++\n```\n\nYou can enable or disable the Google Maps widget on the contact page by setting `params.enableGoogleMaps` to `true` or `false` in `config.toml`. Make sure to also provide a valid `googleMapsApiKey` if you decide to enable the widget – otherwise it likely won't work. By clicking on the pin, Google Maps opens a route description with the coordinates `latitude` and `longitude`. Additionally, you can define the `direction` if you want to have another destination for the directions or the Google Maps entry of your company. If `enableGoogleMaps` is set to `false` on the other hand, the subsequent `googleMapsApiKey`, `latitude`, `longitude` and `direction` will be ignored.\n\nExample configuration:\n\n```toml\n[params]\n    enableGoogleMaps = true\n    googleMapsApiKey = \"site_key_for_google_maps\"\n\n    latitude = \"-12.043333\"\n    longitude = \"-77.028333\"\n    direction = \"Desamparados Station, Distrito de Lima 15001, Peru\"\n```\n\nSince Hugo sites are static, the contact form uses [Formspree](https://formspree.io/) as a proxy. The form makes a POST request to their servers to send the actual email. Formspree and the submissions for the free plan are limited, [checkout the plans for details](https://formspree.io/plans).\n\nTo enable the form in the contact page, just type your Formspree email in the `config.toml` file, and specify whether to use ajax(paid) to send request or plain HTTP POST(free). Also there is the possibility to enable a captcha using recaptcha.\n\n```toml\n[params]\n    email = \"your@email.com\"\n    contact_form_ajax = false\n\n    enableRecaptchaInContactForm = true\n    googleRecaptchaKey = \"site_key_for_google_recaptcha\"\n```\n\n### Menu\n\nYou can also define the menu items that will appear in the top bar. Edit the `[[params.menu]]` entries to create your menu.\n\n```toml\n[[params.menu]]\n    name = \"Contact\"\n    url  = \"/contact\"\n    weight = 4\n```\n\nThe `weight` parameter will determine the order of the menu entries. A top level menu item can contain a dropdown with \nan optional image, sections and multiple columns of menu items.\n\nTo create a single list of menu items in the dropdown, first give your top level menu item unique identifier:\n\n```toml\n[[menu.main]]\n    name       = \"Home\"\n    identifier = \"menu.home\"\n    url        = \"/\"\n    weight     = 1\n```\n\nNow create additional menu items and use the above unique identifier as the value for the parent attribute:\n\n```\n[[menu.main]]\n    name       = \"Option 1: Default Page\"\n    url        = \"/\"\n    weight     = 1\n    parent     = \"menu.home\"\n\n[[menu.main]]\n    name       = \"Option 2: Application\"\n    url        = \"/\"\n    weight     = 2\n    parent     = \"menu.home\"\n```\n\nIt is also possible to display a dropdown menu with 4 columns. This theme supports 2 variations:\n* 4 columns of menu items with sections\n* 2 column wide image + 2 columns of menu items with sections\n\nTo display 4 columns of menu items, start using sections. Sections are menu items treated special by this theme:\n\n```\n[[menu.main]]\n    name       = \"All Pages\"\n    identifier = \"menu.allpages\"\n    url        = \"\"\n    weight     = 4\n\n[[menu.main]]\n    name       = \"Home\"\n    identifier = \"section.ap-home\"\n    url        = \"\"\n    weight     = 1\n    parent     = \"menu.allpages\"\n    post       = 1\n\n[[menu.main]]\n    name       = \"Portfolio\"\n    identifier = \"section.ap-portfolio\"\n    url        = \"\"\n    weight     = 1\n    parent     = \"menu.allpages\"\n    post       = 2\n\n[[menu.main]]\n    name       = \"Shop\"\n    identifier = \"section.ap-shop\"\n    url        = \"\"\n    weight     = 1\n    parent     = \"menu.allpages\"\n    post       = 3\n\n[[menu.main]]\n    name       = \"Blog\"\n    identifier = \"section.ap-blog\"\n    url        = \"\"\n    weight     = 3\n    parent     = \"menu.allpages\"\n    post       = 4\n\n[[menu.main]]\n    name       = \"Blog Listing Big\"\n    url        = \"/blog/\"\n    weight     = 1\n    parent     = \"section.ap-blog\"\n\n```\n\nThe above example shows a reduced version of the *All Pages* menu item from the example site. As you can see,\nwe first create menu items with an identifier starting with `section.`. If you create entries like this, these\nwill appear as section headers in your drop down. \n\nEach of these entries contain values for both the `weight` and `post` attribute. The `post` attribute is hijacked\nto indicate in which column a section will be put in. Within a column, the `weight` value is respected to show the\nsections top to bottom.\n\nUse to the unique section identifier (e.g. `section.ap-blog`) as the `parent` value to add a menu item to a specific\nsection. Using `weight` and `post` on the sections allow you to balance the columns with approximately the same\namount of entries.\n\nTo display a 2 column wide image and 2 columns of menu items, the process is similar as above. However, we hijack\nthe `url` field of the top level menu item to link the image from our static assets:\n\n```\n[[menu.main]]\n    name       = \"Portfolio\"\n    identifier = \"menu.portfolio\"\n    url        = \"/img/template-homepage.png\"\n    weight     = 3\n```\n\nWhen a `url` is filled in, only column 1 and 2 (the `post` value in the section menu items) will be displayed.\nWhen using an image, don't configure section menu items in column 3 or 4. **These will not be rendered.**\n\n**Important:** Do not change the `identifier` key of existing menu entries!\n\n\n### Sidebar widgets\n\nYou can enable/disable the sidebar widgets that will be shown in the blog section. The following widgets are currently available:\n\n* Search bar (powered by Google)\n* Categories list\n* Tags list\n\nYou can enable/disable them under `params.widgets`.\n\n```toml\n[params.widgets]\n    search = true\n    categories = true\n    tags = true\n```\n\n### Top bar\n\nThe top bar is typically used to provide contact information and social links. It is disabled by default, and it can be enabled inside the `params.topbar` settings.\n\n```toml\n[params.topbar]\n    enable = true\n    text = \"\u003cp\u003eContact us on +420 777 555 333 or hello@universal.com.\u003c/p\u003e\"\n```\n\nThe `text` shows up on the left side and accepts HTML.\n\nThe social links on the right side are configured as a top-level menu.\n\n```toml\n[[menu.topbar]]\n    weight = 1\n    name = \"GitHub\"\n    url = \"https://github.com/devcows/hugo-universal-theme\"\n    pre = \"\u003ci class='fas fa-2x fa-github'\u003e\u003c/i\u003e\"\n\n[[menu.topbar]]\n    weight = 2\n    name = \"Facebook\"\n    url = \"http://facebook.com\"\n    pre = \"\u003ci class='fas fa-2x fa-facebook'\u003e\u003c/i\u003e\"\n```\n\n### Menu behavior\n\nThe dropdown menu is displayed by default when the user clicks on the menu item. However, you can also use the `dropdown_mouse_over` setting to change this behavior and use the mouse over instead.\n\n```toml\n[params]\n    dropdown_mouse_over = true\n```\n\n### Blog post thumbnails\n\nAfter creating a new post you can define a banner by entering the relative path to the image.\n\n```toml\nbanner = \"img/banners/banner-4.jpg\"\n```\n\nIt must contain a relative path to the banner inside the `static` directory.\n\n\n### Landing page\n\nThe landing page consists in many sections that can be activated and configured individually. Let's go through all sections from top to bottom.\n\n#### Carousel\n\nThe carousel content is configured in the data directory.\n\n```\ndata\n└── carousel\n    ├── customizable.yaml\n    ├── design.yaml\n    ├── features.yaml\n    └── multipurpose.yaml\n```\n\nEach carousel entry is represented as a YAML file inside `data/carousel`. Let's see the `customizable.yaml` as an example of a carousel entry.\n\n```yaml\nweight: 4\ntitle: \"Easy to customize\"\ndescription: \u003e\n  \u003cul class=\"list-style-none\"\u003e\n    \u003cli\u003e7 preprepared colour variations.\u003c/li\u003e\n    \u003cli\u003eEasily to change fonts\u003c/li\u003e\n  \u003c/ul\u003e\nimage: \"img/carousel/template-easy-code.png\"\nhref: \"https://devcows.github.io/hugo-universal-theme/\"\n```\n\nThe `weight` field determines the position of the entry. `title` is a text-only field. The `description` field accepts HTML code. The `image` must contain the relative path to the image inside the `static` directory. The optional `href` field contains a relative or absolute url that the user will be redirected to when clicking the carousel (specific to each carousel item).\n\nOnce the carousel is configured, some options can be defined like: auto play, speed, etc. in the `config.toml` file.\n\n```toml\n[params.carouselHomepage]\n    enable = true\n    auto_play = true\n    slide_speed = 2000\n    pagination_speed = 1000\n```\n\n#### Features\n\nFeatures are also defined in the `data` directory just like the carousel:\n\n```\ndata\n└── features\n    ├── consulting.yaml\n    ├── email.yaml\n    ├── print.yaml\n    ├── seo.yaml\n    ├── uiux.yaml\n    └── webdesign.yaml\n```\n\nThe content of the `consulting.yaml` example feature file looks like this:\n\n```yaml\nweight: 4\nname: \"Consulting\"\nicon: \"fas fa-lightbulb\"\nurl: \"\"\ndescription: \"Fifth abundantly made Give sixth hath. Cattle creature i be don't them behold green moved fowl Moved life us beast good yielding. Have bring.\"\n```\n\nThe meaning of the individual YAML keys is as follows:\n\n| Key | Description |\n| --- | ----------- |\n| `weight` | A means to set the order of multiple features; features with a lower `weight` are displayed first (left to right, top to bottom) |\n| `name` | The title text below the feature icon; Markdown is supported |\n| `icon` | The CSS class of the feature icon; in this example we have used icons powered by [FontAwesome](https://fontawesome.com/icons) |\n| `url` | An optional URL the feature icon should point to; if specified, the icon will become a clickable hyperlink |\n| `description` | A short text below the title text to describe the feature; Markdown is supported |\n\nOnce you have completed your features, enable them in the `config.toml` file. Also the number of elements per row can be defined, by default is 3 (choose a divisor of 12 like 2, 3, 4 or 6).\n\n```toml\n[params.features]\n    enable = true\n    cols = 3\n```\n\n#### Testimonials\n\nTestimonials are defined in the `data` directory.\n\n```\ndata\n└── testimonials\n    ├── 1.yaml\n    ├── 2.yaml\n    ├── 3.yaml\n    ├── 4.yaml\n    └── 5.yaml\n```\n\nYou can add as many testimonials files as you want. Be sure you fill in all fields as in the following example.\n\n```yaml\ntext: \"One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.\"\nname: \"John McIntyre\"\nposition: \"CEO, TransTech\"\navatar: \"img/testimonials/person-1.jpg\"\n```\n\nThen, enable it in the configuration file and add a title and subtitle.\n\n```toml\n[params.testimonials]\n    enable = true\n    title = \"Testimonials\"\n    subtitle = \"We have worked with many clients and we always like to hear they come out from the cooperation happy and satisfied. Have a look what our clients said about us.\"\n```\n\n\n#### See more\n\nThis section is used to provide a link to another place. It can be an external site, or a page or post within your Hugo site.\n\nYou can enable it in the configuration file.\n\n```toml\n[params.see_more]\n    enable = true\n    icon = \"far fa-file-alt\"\n    title = \"Do you want to see more?\"\n    subtitle = \"We have prepared for you more than 40 different HTML pages, including 5 variations of homepage.\"\n    link_url = \"http://your-site.com/more\"\n    link_text = \"Check other homepages\"\n```\n\n\n#### Clients\n\nThe clients section is used to show a list of logos of companies you have collaborated with. The clients are defined in the `data` directory as YAML files.\n\n```\ndata\n└── clients\n    ├── 1.yaml\n    ├── 2.yaml\n    ├── 3.yaml\n    ├── 4.yaml\n    ├── 5.yaml\n    └── 6.yaml\n```\n\nEach client file contains the following information.\n\n```yaml\nname: \"customer-1\"\nimage: \"img/clients/customer-1.png\"\nurl: \"http://www.customer-1.com\"\n```\n\nThe `name` of the client. `image` is a relative path to the logo inside the `static` directory. And `url` is an optional field in case you want to link the logo to the client's website.\n\nThen, you can enable the section in the configuration file.\n\n```toml\n[params.clients]\n    enable = true\n    title = \"Our Partners\"\n    subtitle = \"We have proudly collaborated with the following companies.\"\n```\n\n#### Recent posts\n\nThe recent posts sections shows the four latest published blog posts, with their featured image and an optional summary. It defaults to show recent posts from all [main sections](https://gohugo.io/functions/where/#mainsections). This is either the section with the most posts or can be set explicitly in the configuration file (see linked docs).\n\nYou can enable it in the configuration file.\n\n```toml\nsummaryLength = 70\n\n[params.recent_posts]\n    enable = true\n    title = \"From our blog\"\n    subtitle = \"Pellen\"\n    hide_summary = false\n```\n\nRecent posts use `.Summary` property and by default, Hugo automatically takes the first 70 words of your content as its summary and stores it into the `.Summary` page variable for use in your templates. You may customize the summary length by setting summaryLength in your site configuration.\nWhen setting the `hide_summary` configuration property to `true` the summary will be hidden on the recent posts as well as the blogs list page.\n\n#### Footer\n\nIn the footer there are three blocks customizables: `About us`, `Recent posts` and `contact`. Each block can be set via parameters.\n\n##### About us\n\nA text can be defined, in case there is no text defined the entire block will be hidden:\n\n```toml\n[params]\n    about_us = \"\u003cp\u003ePellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.\u003c/p\u003e\"\n```\n\n##### Recent posts\n\nRecent posts block can be enabled or disabled (hidden).\n\n```toml\n[params.footer.recent_posts]\n    enable = true\n```\n\n##### Contact\n\nIn contact section there is a button to redirect to contact page, there is the possibility to customize the url also a contact text can be defined, in case there is no text defined the entire block will be hidden:\n\n```toml\n[params]\n    contact_url = \"/contact\"\n    address = \"\"\"\u003cp class=\"text-uppercase\"\u003e\u003cstrong\u003eUniversal Ltd.\u003c/strong\u003e\n        \u003cbr\u003e13/25 New Avenue\n        \u003cbr\u003eNewtown upon River\n        \u003cbr\u003e45Y 73J\n        \u003cbr\u003eEngland\n        \u003cbr\u003e\n        \u003cstrong\u003eGreat Britain\u003c/strong\u003e\n      \u003c/p\u003e\n      \"\"\"\n```\n\n### Meta tags\n\nThe following [HTML metadata](https://www.w3schools.com/tags/tag_meta.asp) can be set for every page. While the default value for some of them can be defined in `config.toml`, all of these properties can also be set through the respective [Hugo front matter variables](https://gohugo.io/content-management/front-matter/#front-matter-variables):\n\n| HTML meta `name`/`property`                              | Hugo front matter variable | Default variable in `config.toml` |\n| :------------------------------------------------------- | :------------------------- | :-------------------------------- |\n| `article:author`                                         | `facebook_author`          | -                                 |\n| `article:publisher`                                      | `facebook_site`            | `facebook_site`                   |\n| `author`                                                 | `author`                   | -                                 |\n| `description` / `og:description` / `twitter:description` | `description`              | `defaultDescription`              |\n| `keywords`                                               | `keywords`                 | `defaultKeywords`                 |\n| `og:image` / `twitter:image`                             | `banner`                   | `default_sharing_image`           |\n| `title` / `og:title` / `twitter:title`                   | `title`                    | -                                 |\n| `twitter:creator`                                        | `twitter_author`           | -                                 |\n| `twitter:site`                                           | `twitter_site`             | `twitter_site`                    |\n\nBesides, certain [Open Graph](https://ogp.me/) metadata is automatically set:\n\n- `article:published_time`, `article:modified_time`, `og:updated_time` and `article:expiration_time` are set based on [Hugo's (predefined) front matter variables `date`, `publishDate`, `lastmod` and `expiryDate`](https://gohugo.io/content-management/front-matter/#predefined).\n- `article:section` and `article:tag` are set based on [Hugo's `categories` and `tags` taxonomies](https://gohugo.io/content-management/taxonomies/#default-taxonomies). Since there can only be one `article:section`, only the first element of the `categories` array is used as `article:section`.\n\nYou can set default values for all pages in the `config.toml` file as below:\n\n```toml\n[params]\n    defaultKeywords = [\"devcows\", \"hugo\", \"go\"]\n    defaultDescription = \"Site template made by Devcows using Hugo\"\n    default_sharing_image = \"img/sharing-default.png\"\n    facebook_site = \"https://www.facebook.com/GolangSociety/\"\n    twitter_site = \"GoHugoIO\"\n```\n\nThe resulting HTML will be the following:\n\n```html\n\u003cmeta name=\"keywords\" content=\"devcows, hugo, go\"\u003e\n\u003cmeta name=\"description\" content=\"Site template made by Devcows using Hugo\"\u003e\n\u003cmeta property=\"og:description\" content=\"Site template made by Devcows using Hugo\"\u003e\n\u003cmeta property=\"og:image\" content=\"img/sharing-default.png\"\u003e\n\u003cmeta property=\"og:image:type\" content=\"image/png\"\u003e\n\u003cmeta property=\"og:image:width\" content=\"800\"\u003e\n\u003cmeta property=\"og:image:height\" content=\"420\"\u003e\n\u003cmeta property=\"article:publisher\" content=\"https://www.facebook.com/GolangSociety/\"\u003e\n\u003cmeta name=\"twitter:description\" content=\"Site template made by Devcows using Hugo\"\u003e\n\u003cmeta name=\"twitter:site\" content=\"@GoHugoIO\"\u003e\n```\n\nYou can also override the default values from the `config.toml` by setting the respective keys in the individual pages front matter. As an example, here's the front matter from the [`faq.md` file](exampleSite/content/faq.md) in the [`exampleSite` directory](exampleSite):\n\n```yaml\n+++\ntitle = \"FAQ\"\ndescription = \"Frequently asked questions\"\nkeywords = [\"FAQ\",\"How do I\",\"questions\",\"what if\"]\n+++\n```\n\nWhich results in the following HTML:\n\n```html\n\u003ctitle\u003eFAQ\u003c/title\u003e\n\u003cmeta name=\"keywords\" content=\"FAQ,How do I,questions,what if\"\u003e\n\u003cmeta name=\"description\" content=\"Frequently asked questions\"\u003e\n\u003cmeta property=\"og:description\" content=\"Frequently asked questions\"\u003e\n\u003cmeta name=\"twitter:description\" content=\"Frequently asked questions\"\u003e\n```\n\nIf your site needs a custom Javascript library or CSS style you can override this file `layouts/partials/custom_headers.html` with the proper content like:\n\n```html\n\u003cscript src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js\"\u003e\u003c/script\u003e\n```\n\n## Usage\n\nIn order to see your site in action, run Hugo's built-in local server.\n\n```\n$ hugo server -w\n```\n\nNow enter [`localhost:1313`](http://localhost:1313) in the address bar of your browser.\n\nFor more information check out the official [Hugo documentation](http://gohugo.io/overview/usage/).\n\n\n## Contributing\n\nDid you find a bug or do you have an idea for a new feature? Feel free to use the [issue tracker](https://github.com/devcows/hugo-universal-theme/issues) to let us know. Or make a [pull request](https://github.com/devcows/hugo-universal-theme/pulls) directly.\n\n\n## License\n\nThis port is released under the MIT License. Check the [original theme license](http://bootstrapious.com/p/universal-business-e-commerce-template) for additional licensing information.\n\n\n## Thanks\n\nThanks to [Steve Francia](https://github.com/spf13) for creating Hugo and the awesome community around the project. And also thanks to [Bootstrapious](http://bootstrapious.com/) for creating this awesome theme.\n","funding_links":["https://github.com/sponsors/ryanfox1985","https://patreon.com/ryanfox1985","https://paypal.me/ryanfox1985","1My6zRZA4YKdX78aiZKZhWUWfFmCSDafZ6","https://www.patreon.com/ryanfox1985"],"categories":["CSS"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevcows%2Fhugo-universal-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevcows%2Fhugo-universal-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevcows%2Fhugo-universal-theme/lists"}