Git Product home page Git Product logo

cloudwithchris / hugo-creator Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 1.0 4.34 MB

The Hugo Creator theme is a custom theme that I have built for the Hugo Static Site generator. It is designed for content creators (e.g. Bloggers, Podcasters and Vloggers), allowing you to worry less about your website and focus more on your content creation!

Home Page: https://hugo-creator.cloudwithchris.com/

License: MIT License

Dockerfile 1.31% SCSS 6.78% JavaScript 20.12% HTML 70.64% Shell 1.14%
hugo hugo-theme hugo-blog-theme content-creators

hugo-creator's Introduction

Hugo Creator Theme

Netlify Status

About

Hugo Creator is a theme for the Hugo Static Site Generator. It is intended for content creators of all varieties. Whether you're a blogger, podcaster or YouTuber - The theme should hopefully meet your needs!

Example site

Example screenshot of the Hugo Creator Theme

Demo → hugo-creator.cloudwithchris.com

Install

Inside the folder of your Hugo project, run:

git submodule add https://github.com/CloudWithChris/hugo-creator themes/hugo-creator

Open config.yaml, change theme to "hugo-creator":

theme: "hugo-creator"

You can also specify which branch, tag or commit that you would like to reference. See Stack Overflow for further details.

Visual Studio Code provides a simple experience for managing your submodule dependency versions. The screenshot below shows this working for Cloud With Chris.

Example showing Cloud With Chris repo and Hugo Creator Git Repositories in Visual Studio Code. There is a tag version for the hugo-creator repository, which can easily be changed in the UI.

Usage

For further details on how to configure the theme and gain the most value from it, as well as selecting the best configuration option for your scenario, please view the Reference.

Contributing

Thank you so much for your consideration! This project welcomes contributions and suggestions. When you submit code changes, your submissions will be understood under the same MIT License that covers the project.

For detailed guidelines, including Feature Requests, Bug Reports and Code Contributions visit the Contributing Guide.

Sites using Hugo Creator

Have you adopted Hugo Creator as the theme for your site? We'd love to know! Proudly display your site in this list by submitting a Pull Request to this README file with your site name and URL!

License

Distributed under the MIT License. See License for more information.

hugo-creator's People

Contributors

chrisreddington avatar dependabot[bot] avatar github-actions[bot] avatar mend-bolt-for-github[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

saintjul

hugo-creator's Issues

Consolidate image & banner template

Provide a general summary of the suggestion

There has already been a lot of work getting the images consistent across the site.

It feels like there’s one more iteration of improvements possible, by defining a central template to get used across so instances, rather than several templates which is tyre current case.

Context

Easter maintenance

Possible Implementation

Tbc - need to review Hugo docs

Your Environment

No response

[Feature]: Refactor & Consolidate Partials

Provide a general summary of the suggestion

Partials help with re-usability within Hugo Themes. While building cloudwithchris.com, some partials were cloned, rather than refactored for use. Multiple subfolders were made, which achieve similar objectives as well. Refactoring & Consolidating will help in overall maintenance and lower tech debt.

Context

As above.

Possible Implementation

To be reviewed.

Your Environment

No response

[Feature]: Review layout templates and drive re-use through partials

Provide a general summary of the suggestion

Having cleaned up and refactored several layout templates, there is an opportunity to consolidate some of the 'copy/paste' type code, and introduce additional partials. This will make it easier to introduce additional sections in the future, and easier maintenance.

Context

Makes maintenance of the theme easier in the long term.

Possible Implementation

N/A - To be reviewed.

Your Environment

No response

[Feature]: Add a 'live' functionality

Provide a general summary of the suggestion

Build in functionality that provides either an overlay, or a slightly different UI to prioritise displaying the current live stream. That way, if any users enter the site (e.g. to check on the latest episode, or existing blogs), they might be captured into the current stream.

Context

This could be a great way to engage users.

Dependencies

#22 (i.e. knowing which platforms we need to check if the user is live)

Possible Implementation

TBC

Your Environment

No response

[Feature]: Create Archetypes to easily scaffold example pages

Provide a general summary of the suggestion

Archetypes are a concept within Hugo, but not currently being used in the theme. Should be a fairly simple addition.

Context

It will make it easier to adopt the theme.

Possible Implementation

N/A

Your Environment

N/A

[Feature]: Refactor people/single.html

Provide a general summary of the suggestion

Lines 10 - 29 and 38 - 50 feel very verbose and hacky. Investigate an optimised route for this.

Context

Optimisations across the site.

Possible Implementation

TBC

Your Environment

No response

[Feature]: Refactor 'related items' into a smaller card

Provide a general summary of the suggestion

Currently, the related items partial uses the content-card partial.

While this is fine and works, it makes for quite a large section. Admitedly, this is at the bottom of the page so not a big problem, but still on the list to fix.

Context

As above

Possible Implementation

Something simple along the lines of https://bootsnipp.com/snippets/ZOA52 could work

Your Environment

No response

[Bug]: Investigate dependency on absolute URL

What happened?

The site currently depends on an absolute URL. While this works in principal, it makes an additional configuration overhead when trying to test in Dev/Test environments. Ideally, all URLs would be absolute.

Steps To Reproduce

N/A

What browsers are you seeing the problem on?

No response

Relevant log output

N/A

Anything else?

N/A

[Feature]: Lazy Loading of Images

Provide a general summary of the suggestion

The site currently loads all images on page load. However, Lazy Loading could be an option to further improve the TTI (Time to interactivity) score.

Some examples of this being referenced -

Context

Page load times are critical to SEO optimisation and user retention.

Possible Implementation

TBC

Your Environment

No response

[Feature]: Add Testing Capability to Validate Site Metadata

Provide a general summary of the suggestion

Based on recent experience, it can be quite a temperamental experience (i.e. to output the appropriate Hugo variables in the correct way for escaping strings for example).

To prevent against this, it is important to have a more thorough testing as part of the PR process.

Context

One of the great features of the theme is that it has a strong focus on SEO. However, as new features are introduced, contributors will need to update the site metadata templates.

Possible Implementation

  • Run hugo --minify with an example --baseURL in the GitHub Action. If there is a rendering issue, it will be caught there.
  • Could complete some linting on the build output
  • Could check that outputted URLs on the build output's JSON are well-formed.

Your Environment

No response

Update README

Definition of done:

  • Include an image which shows the status of the latest build
  • Include an image which shows the status of the latest release
    • #4 [Required dependency before completing above issue]
  • Include a link to an example site deployment (https://hugo-creator.cloudwithchris.com/)
    • #4 [Required dependency before completing above issue]
  • Include details on installation steps (similar to how other Hugo themes are installed)
  • Include a section on usage, which contains:
    • An example 'clean' output of the Site Config settings
    • A table showcasing the Field Name, Required, Description and Example (example of this on my other theme here
    • A section explaining the archetypes of the site, similar to the experience here
  • Include a section on getting started with contributing, which links to the contributing doc.
    • #5 [Required dependency before completing above issue]
  • Include a section on the license being used, which links to the license page.
  • Include a set of example sites that are being used, as well as a recommendation to add your site to the list if you use the theme.
  • Ensure that the readme meets the requirements to submit the theme to Hugo centrally (https://github.com/gohugoio/hugoThemesSiteBuilder/blob/main/README.md#readmemd)

[Feature]: Add flexibility for content card sizing

Provide a general summary of the suggestion

The same content-card partial is mostly re-used throughout the site. There is an opportunity to further consolidate (e.g. upcoming cards), so that all are standardised.

Additionally, there should then be flexibility to determine the sizing of the cards, as well as the content which is displayed in cards.

e.g. -
In the upcoming sessions, you may want to have 3 items on one row (so a col width of 4), with Title, Banner, Description and date for release
In the related topics, you may want to have 4 items on one row (so a col width of 3), only including title/banner
In the main area, you may want to have 2 items on a row (so a col width of 6), with all of the details.

Context

Give flexibility into the options of sizing content cards across the site.

Possible Implementation

  • Consolidate any additional content cards (i.e. upcoming/related cards) into the content-card.html partial (If not already done)
  • Provide a parameter to pass in to the partial (i.e. items per row), which is then used to calculate the column width.
  • Update any calls to that partial, passing in a Site Config variable to represent that area, as well as the items to show. Also make sure a default value is set in code, in case config is unset.

Your Environment

No response

[Feature]: Consider consolidating guest and host into a person archetype

Provide a general summary of the suggestion

Currently, guests and hosts are two separate archetypes. This works, but there may be a scenario where someone listed as a 'guest' is a 'host' on one video series, but not another. Similarly, the concept of host and guest does not translate to a blog post.

Context

As above.

Possible Implementation

  • Consolidate guest and host under the person archetype for episodes
  • Consolidate Author under the person archetype for blogs
  • Map the /guest/:name: and /host/:name paths to /person/:name

Your Environment

No response

[Feature]: Code Review + Refactor Site Metadata Partial

Provide a general summary of the suggestion

The site metadata partial has 'grown organically' (read: Been built quickly, and to serve a specific purpose when building cloudwithchris.com).

As the theme is intended to be reusable and a place for any to contribute, the code needs to be maintained. Site Metadata has plenty of room for optimisation, and refactoring for cleaner code.

Context

As above.

Possible Implementation

N/A - to be reviewed.

Your Environment

No response

[Feature]: A clear "Call To Action" section above the fold

Provide a general summary of the suggestion

The intent is to help drive users towards the Content Creator's community. For example,

  • If they're a Twitch Streamer, aim to get Twitch followers
  • If they're a YouTuber, aim to get YouTube subscribers
  • If they have a Discord server, aim to get additional users onto the server

Context

Content Creators aim to increase their influence. This feature is all about impacting that.

Possible Implementation

  • Could a banner section be appropriate?
  • Could something be done on the top right nav area?
  • Could there be a thin 'banner area' above the navbar for the critical call to actions (and can be dismissed?)

Your Environment

No response

[Feature]: Refactor layout templates to have definitions in order of top/main/bottom.

Provide a general summary of the suggestion

Several of the layout templates use a define keyword to render specific sections of each page. On some layouts, the main section is listed first, while in others, it may be top, or bottom.

Context

This makes no impact from a site rendering perspective, but could be re-ordered to aid with readability and consistency. Particularly if others will be contributing to the project.

Possible Implementation

Ensure that all layouts follow the pattern of Top/Main/Bottom.

Your Environment

No response

[Feature]: Search JS Refactor / Cleanup

Provide a general summary of the suggestion

The search.js JavaScript + Template is 'functional', but could be improved (Read: Fairly hacky at the moment).

I'd like to -

  • Look for opportunities to refactor the code and consolidate (e.g. there's lots of similar pieces of code around the pattern matching etc.)
  • Look for opportunities to integrate more with Hugo (e.g. have I missed a trick on using partials in the JS?)
  • Be able to display either an image or banner in each item. However, this has some additional requirements for accessibility/SEO -
    • Images must be lazy loaded
    • Images must have data in the alt and title attributes
    • Images must use the resized webp format appropriate for that size of grid

Context

Search is functional at the moment, but there are plenty of potential enhancements.

Possible Implementation

No response

Your Environment

No response

[Feature]: Introduce additional content formats for episodes

Provide a general summary of the suggestion

The theme has typically focused around episodic content (e.g. Podcasts, Video Series, etc.). Live streamers wouldn't necessarily have episodic content, but links to a stream.

A format for the site focused around Twitch streamers for example, could be an approach to work towards this milestone.

Context

Making the theme accessible for a broad range of content creators.

Possible Implementation

TBC

Your Environment

No response

Definition of done

  • #93
  • Livestreams
  • ...

[Feature]: Enhance PWA capability

Provide a general summary of the suggestion

There is currently a basic level of functionality with Progressive Web Apps (e.g. offline page, error page, etc.)

Would like to further improve on this, by -

  • Caching the posts from the first page of each content type (e.g. Homepage, Blogs, Episodes, Talks)
  • Notifications when there is a new post (i.e. RSS feed updated => Notification)

Context

Progressive Web Apps provide a brilliant opportunity.

Possible Implementation

For notifications - could investigate Azure Notification Hubs.

Your Environment

No response

[Bug]: Fix UI for search

What happened?

The majority of the site has been updated to the new UI, except search. This issue is to track the fix of that.

Steps To Reproduce

  1. Enter a search term.
  2. See the old UI.

What browsers are you seeing the problem on?

No response

Relevant log output

N/A

Anything else?

N/A

[Feature]: Optimise Dependencies

Provide a general summary of the suggestion

For any app, the larger the number of dependencies - The larger the attack surface, and potentially loading times.

For a Static Web App, an increased number of dependencies from remote sources has potential to increase the initial page load times. The aim of this issue is outlined in the 'Possible Implementation box.

Context

This should have a positive impact on page load times, and reducing site bloat.

Possible Implementation

Objectives -

  • Remove any unrequired dependencies
    • Consolidate the Bootstrap module mounts to only those which are required
    • Remove any unused JavaScript or CSS Libraries
  • Bring remaining remote sources into the theme
    • PodScribe
    • CookieConsent Form
    • Google Analytics
    • Microsoft Clarity
    • Update this post with any other dependencies
  • Check that there are no updated dependency versions of existing dependencies.

Your Environment

No response

[Feature]: Refactor exampleSite to leverage page bundles, rather than images etc. in /static

Provide a general summary of the suggestion

Per the discussion with the Hugo Community, plan to adjust individual page files to become page bundles.

  • Convert the exampleSite to use Page Bundles
  • Convert the Archetypes into a page bundle format
  • Review that the site logic still works (e.g. querying for people, linking of tags / series / related posts)
  • #29

Context

It will make management of pages easier for users in the long run.

Possible Implementation

Using Hugo Page Bundles

Your Environment

No response

[Feature]: Add UI testing capability

Provide a general summary of the suggestion

UI Testing is needed to ensure consistency when the community make contributions.

Context

N/A - as above.

Possible Implementation

Playwright could be useful here, and would be a preference.

https://playwright.dev/docs

Your Environment

No response

[Feature]: Build framework to enable/disable additional options

Provide a general summary of the suggestion

Currently, the site is geared around functionality that I have personally selected. For example, Google Analytics for overall site analytics, Microsoft Clarity for user behaviour, Giscus for Comments. There needs to be a more modular approach.

Context

This will make the them more flexibe to end-users needs.

Possible Implementation

  • Catalogue all existing external dependencies in this GitHub Issue
  • Group those dependencies by functionality (e.g. Comments, Analytics, etc.)
  • Build out an on/off configuration for the various categories of dependencies. This should/could be achieved by using the Site Config
  • Refactor the partials to have a 'main' partial for each category, which then reference the specific implementation dependencies (e.g. Google Analytics, Microsoft Clarity, etc.) for the per-dependency implementation.

Your Environment

No response

[Feature]: Implement framework for custom themes

Provide a general summary of the suggestion

There is currently a limited amount of customisation in the theme, namely the colour of two backgrounds. Ideally, there would be several variables that could be adjusted to tweak the theme. This would then enable users to contribute additional themes to the project as well.

Context

As above.

Possible Implementation

TBC - Unsure at the moment. Suggestions welcome. Should investigate other themes that have implemented this.

Your Environment

No response

[Feature]: Implement Semantic Versioning Strategy

Provide a general summary of the suggestion

This will be required, so that users of the theme can be clear on which version they're using, when there may be patches, breaking changes, etc.

Context

As above.

Possible Implementation

Several GitHub actions that implement this in different ways. Need to consider what can be used in conjunction with the work that has been put into place with the labels and automated release notes capability.

Your Environment

No response

[Feature]: Refactor list pages to use dynamic titles & content

Provide a general summary of the suggestion

Currently, the theme is geared towards the Cloud With Chris setup, and uses my own hard-coded Titles & Content on pages.

To Do:

Context

Need this so that it can be re-used across different sites.

Possible Implementation

Instead, refactor to use the markdown Title & content of the relevant _index.md file.

Your Environment

No response

[Feature]: Enhance Accessibility Testing within PR flow

Provide a general summary of the suggestion

Accessibility is a core aim of the theme, making sure that content is accessible to all.

Context

Accessibility is something that all of us are responsible for, and have a duty to work on. To ensure the theme continues to aim for high standards, this should be a part of the PR check.

Possible Implementation

  • Microsoft Accessibility Insights as part of PR flow
  • Google LightHouse as part of PR Flow

Your Environment

No response

[Feature]: Add PRs to Project Board automatically

Provide a general summary of the suggestion

This will help track in-flight items, and reduce manual effort on project admin.

Context

As above.

Possible Implementation

Refactor of the existing Issues GH Action Workflow.

Your Environment

No response

[Feature]: Remove Go from CodeQL GitHub Action Workflow

Provide a general summary of the suggestion

The Go variant of the CodeQL GitHub Action workflow fails, causing the workflow to look like it's failing. this should be removed as it's unable to execute, and giving a false view on the workflow success.

Context

As above.

Possible Implementation

Remove Go from the matrix setup.

Your Environment

No response

[Feature]: Investigate redesigned homepage landing area

Provide a general summary of the suggestion

Depending on the screensize, the current design means the carousel can essentially take up the whole of the view 'above the fold'.

Ideally, i'd like to have a few items of content available (e.g. a banner in the carousel, as well as a few featured items). Think of it similar to a news / magazine.

Example for inspiration - https://bootsnipp.com/snippets/1d3X9

Context

This gives the user more potential options of interest.

Possible Implementation

  • Consider whether to get rid of the 'upcoming' idea, or to merge it into this?
    • e.g. Have 'featured' items in the carousel, most recent in one column, upcoming in another?

Your Environment

No response

[Feature]: Add customisable homepage banner area

Provide a general summary of the suggestion

The banner area of the homepage currently displays the latest episode. It would be great to enable more flexibility.

Ideally, the homepage should have the option for several types of headers -

  • Latest Episode
  • Latest Blog
  • Carousel of featured items

Context

The theme is currently not as flexible as it potentially could be. When it's adopted across users with different content creation needs, this may be required (e.g. some users will have blogs, not podcasts, videos, etc.)

Possible Implementation

Utilise a layout partial for the header and refactor.

Your Environment

No response

[Feature]: How To use Archetype and create a nice list

Provide a general summary of the suggestion

Looking to extend your idea with "persons" archetype and modify for author and then provide a list of Authors and authored blog posts.

I use a "post" archetype and looking to understand HUGO more to create an Author list page

Context

Would be nice to understand how it works so that other archetypes can used and create our own lists.

Possible Implementation

No response

Your Environment

Hugo Extended
Testing with bootstrap theme
Happy to share content

[Feature]: Add PWA Capability

Provide a general summary of the suggestion

The concept of a Progressive Web App is to make modern apps available across many platforms easily. The request is to add Progressive Web App capability to the Theme (and can be configurable as a yes/no option).

Context

From a Content Creator perspective, this could be valuable - i.e. having an easy-to-access app for end-users to install on their devices.

Possible Implementation

  • Configurable via Config Settings (i.e. on / off)
  • Review requirements for PWA to be valid

Your Environment

No response

[Feature]: Review Site JSON-LD implementation schema.org for optimisation

Provide a general summary of the suggestion

While the separate issue #61 refers to refactoring the entire partial file, there is a separate piece of work to align to best practices for the structure of site metadata built via JSON-LD.

There is a need to review the updated frontmatter for each section type, and then ensure that it is appropriately handled within JSON-LD. E.g. Are all appropriate details for a person being passed through (e.g. Name, Image, sameAs properties, etc.). This is inconsistent in current implementation.

Context

Improving upon the JSON-LD implementation will have a positive benefit upon SEO performance.

Possible Implementation

  • Review schemas at schema.org. Cross reference with each Section (e.g. Blog, Episode, Person, Talk) and ensure that each appropriate property is rendered.
  • Ensure that the PR template is updated. Any time that a change is made to a section (i.e. property added/deleted to existing section, or new section added), that the owner has made the appropriate changes in the JSON-LD to reflect this (i.e. added the new references, removed old, etc.)

Implemented Schemas

Considered but not implemented

Your Environment

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.