{"id":25647307,"url":"https://github.com/pprevos/hugo-thirdhemisphere","last_synced_at":"2025-08-15T18:49:33.006Z","repository":{"id":87646582,"uuid":"272287287","full_name":"pprevos/hugo-thirdhemisphere","owner":"pprevos","description":"SEO-optimised simple Hugo theme using the Bulma CSS framework","archived":false,"fork":false,"pushed_at":"2021-10-09T09:10:54.000Z","size":1103,"stargazers_count":24,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T05:43:35.569Z","etag":null,"topics":["hugo-theme"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/pprevos.png","metadata":{"files":{"readme":"readme.org","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":"2020-06-14T21:35:51.000Z","updated_at":"2024-09-28T03:08:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"b68fd804-b668-4c73-acb3-6e366c070c65","html_url":"https://github.com/pprevos/hugo-thirdhemisphere","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pprevos%2Fhugo-thirdhemisphere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pprevos%2Fhugo-thirdhemisphere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pprevos%2Fhugo-thirdhemisphere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pprevos%2Fhugo-thirdhemisphere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pprevos","download_url":"https://codeload.github.com/pprevos/hugo-thirdhemisphere/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249094939,"owners_count":21211837,"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-theme"],"created_at":"2025-02-23T11:28:58.824Z","updated_at":"2025-04-15T15:20:29.891Z","avatar_url":"https://github.com/pprevos.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+title: Third Hemisphere Hugo Theme\n\nThis [[https://gohugo.io/][Hugo]] theme create websites optimised for search engines.\n\n* Features\n- Simple one-column design\n- Uses [[https://bulma.io/][Bulma CSS]], based on the work by\n  [[https://www.pakstech.com/blog/create-hugo-theme/][Päktech]]\n- Optimised for technical SEO, mimicking the functionality of the\n  [[https://yoast.com/][Yoast SEO Wordpress plugin]]\n- Optimised for use with [[htttps://orgmode.org/][Org-Mode]].\n- Control over which additional Javascript and CSS is loaded using page\n  variables.\n\nThe following pages use this theme:\n\n- [[https://lucidmanager.org/][The Lucid Manager]]\n- [[https://horizonofreason.com/][The Horizon of Reason]]\n\n* Getting started\nAt the root of your Hugo project, run:\n\n#+begin_src shell\ngit submodule add https://github.com/pprevos/hugo-thirdhemisphere themes\n#+end_src\n\n* Org mode optimisation\nEmacs [[https://orgmode.org/][Org mode]] is the most powerful markdown\nlanguage in existence. Hugo can parse Org-Mode files out-of-the-box.\n\nThe =archetypes= folder contains a template for new Org mode pages,\nwhich includes all theme-specific page variables.\n\nRead\n[[https://lucidmanager.org/productivity/create-websites-with-org-mode-and-hugo/][this\narticle]] for more information on how to use Org-Mode and Hugo.\n\n** Hero images\n   :PROPERTIES:\n   :CUSTOM_ID: hero-images\n   :END:\nThe =index.html= and =404.html= pages use hero images.\n\nThe hero image for the index page is set in the =heroindex= site\nparameter in the configuration file.\n\nThe hero image for the 404 page is set in the =hero404= site parameter\nin the configuration file.\n\n** Taxonomies\n   :PROPERTIES:\n   :CUSTOM_ID: taxonomies\n   :END:\nThe theme uses the category and tag taxonomies. Ideally, each category\nand tag should have an index file that specifies a title, a featured\nimage and a description.\n\n** Shortcodes\n   :PROPERTIES:\n   :CUSTOM_ID: shortcodes\n   :END:\n*** Contact form\n    :PROPERTIES:\n    :CUSTOM_ID: contact-form\n    :END:\nTo enable the contact form, create a =contact.md= or =contact.org= page\nin the =content= folder with the appropriate title and set the layout to\n=page=, a plain page with only a header and footer. You can use this\ntemplate for other pages that don't require a featured image and author\ninformation.\n\nThe contact from shortcode enables a form by assigning an endpoint that\nprocesses the data. The example below uses\n[[https://formspree.io/][Formspree]], but this can be any other\nendpoint.\n\n={{\u003c contact-form \"https://formspree.io/{form_id}\" \u003e}}=\n\n*** Image Slider\n    :PROPERTIES:\n    :CUSTOM_ID: image-slider\n    :END:\nThis shortcode provides a simple image slider. Place all images for the\nslider in one folder and call the shortcode as follows:\n\n={{\u003c slider \"image folder location\" \u003e}}=\n\nThe activate the Javascript code for the slider, also set the =slider=\nvariable to =true= in your config file.\n\n*** Bibliography\n    :PROPERTIES:\n    :CUSTOM_ID: bibliography\n    :END:\nThis shortcode can create a bibliography from a JSON file, filtered by a\nkeyword.\n\nYou can export a BibTeX file to JSON withe the powerful\n[[https://pandoc.org/][Pandoc software]]:\n\n=pandoc bibliography.bib -t csljson -o bibliography.json=\n\nYou can also export from your favourite bibliography manager, such as\nZotero, but make sure you select CSL JSON or the shortcode will be able\nto parse the content.\n\nThe JSON file in your data folder needs to be named =bibliography.json=.\n\nTo show the bibliography, use the following shortcode:\n\n={{\u003c bibliography \"keyword\" \u003e}}=\n\nThe entries will show in the order in which they appear in the JSON\nfile.\n\nIf you want to show all entries in the bibliography, then omit the\nkeyword parameter.\n\n*** Categories\n    :PROPERTIES:\n    :CUSTOM_ID: categories\n    :END:\nThe categories shortcode lists all article categories, a description and\nan icon, for use in the homepage and/or about page.\n\nYou can add an icon to this summary by setting the =icon= variable in\nthe relevant index file.\n\n** Search-Engine Optimisation\n   :PROPERTIES:\n   :CUSTOM_ID: search-engine-optimisation\n   :END:\nGoogle's mission is to \"to organise the world's information and make it\nuniversally accessible and useful\". This means that each page needs to\nhave:\n\n- Quality content\n- Good UX \u0026 UI\n- Flawless security\n- Effective PR and social\n- Technical excellence\n\nThis purpose of this theme is to help achieve these goals.\n\n*** robots.txt\n    :PROPERTIES:\n    :CUSTOM_ID: robots.txt\n    :END:\nAny files that have the =private= option set to =true= are disallowed.\nYou need to set the =enableRobotsTXT= site parameter to =true= to enable\nthis functionality.\n\n*** Sitemap\n    :PROPERTIES:\n    :CUSTOM_ID: sitemap\n    :END:\nAny files that have the =private= option set to =true= are excluded from\nthe sitemap.\n\n*** Robots meta tags\n    :PROPERTIES:\n    :CUSTOM_ID: robots-meta-tags\n    :END:\nThe robots meta tag for all files is set to =index, follow=. For any\nfiles that have the =private= option set to =true=, the tag is set to\n=noindex, nofollow=.\n\n*** Canonical links\n    :PROPERTIES:\n    :CUSTOM_ID: canonical-links\n    :END:\nEach page contains a self-referencing\n[[https://yoast.com/rel-canonical/][canonical link]]. Index pages\ncontain an alternate link to the relevant RSS file.\n\n*** Internationalisation\n    :PROPERTIES:\n    :CUSTOM_ID: internationalisation\n    :END:\nEach page contains an alternate self-referencing link wit the site\nlanguage code.\n\n*** Structured Data\n    :PROPERTIES:\n    :CUSTOM_ID: structured-data\n    :END:\nThe theme uses the built-in Open Graph and Twitter card templates.\nContent pages also have the\n[[https://developers.google.com/search/docs/data-types/article][article\nschema]] in JSON-LD format. This schema uses the:\n\n- Title or SEO title of the page\n- Page description\n- Featured images\n- Published date\n- Last modified date\n- Site author or page author\n- Publishing organisation\n- Site logo (favicon)\n\n*** Content optimisation\n    :PROPERTIES:\n    :CUSTOM_ID: content-optimisation\n    :END:\nThis theme contains a partial template that assesses the content of a\npage, which is useful when writing a new page and trying to optimise it\nfor a keyword.\n\nThe SEO assessment only appears when running the site on localhost, and\nwhen the =seo= page parameter is set to =true=.\n\n#+caption: Example of SEO assessment.\n[[file:images/seo-example.png]]\n\n**** Keyphrase\n     :PROPERTIES:\n     :CUSTOM_ID: keyphrase\n     :END:\nThe key phrase should be [[https://yoa.st/34i][between 1 and 4 words]].\nYou will need to do some research to find the ideal phrase. You should\nonly use [[https://yoa.st/33x][each keyphrase once]] on your site.\n\n**** Slug\n     :PROPERTIES:\n     :CUSTOM_ID: slug\n     :END:\nThe [[https://yoa.st/33o][page slug]] of the page should ideally contain\nthe keyphrase.\n\n**** Meta description\n     :PROPERTIES:\n     :CUSTOM_ID: meta-description\n     :END:\nThe [[https://yoa.st/34d][meta description]] is a summary of the page,\nbetween 120 and 156 characters long. The keyphrase should\n[[https://yoa.st/33k][appear in the meta description]].\n\n**** Title\n     :PROPERTIES:\n     :CUSTOM_ID: title\n     :END:\nEach page can have two titles, the one displayed on the page in the =h1=\nheader and an optional separate version for the title tag. To set a\nseparate title for a page, use the =seotitle= option. The ideal\n[[https://yoa.st/34h][title width]] is between 50 and 60 characters, and\nit should contain the [[https://yoa.st/33g][keyphrase]].\n\n**** Featured image\n     :PROPERTIES:\n     :CUSTOM_ID: featured-image\n     :END:\nYou can define a featured image with the =images= parameter. This image\nshould be at least 800 pixels wide with an aspect ratio of 3:2. The\nimage is used in the structured data page summary on index pages. The\ntemplate assigns the meta description to the [[https://yoa.st/33c][alt\nand title tags]].\n\n**** Content\n     :PROPERTIES:\n     :CUSTOM_ID: content\n     :END:\nThe [[https://yoa.st/34n][content length]] need to be at least 300 words\nand contain the [[https://yoa.st/33e][keyphrase]] appears in first\nparagraph. Ideally, the key phrase should be mentioned a few times\nthroughout the text.\n\nAt least one [[https://yoa.st/33m][heading]] needs to contain the\nkeyphrase.\n\n** Logo\n   :PROPERTIES:\n   :CUSTOM_ID: logo\n   :END:\nThe logo image is a square png file that is used in the navigation bar\nand as the favicon. The location of the logo file is identified in the\nparams section of the config file, e.g. =logo = \"/favicon.png\"=.\n\n** RSS - Really Simple Syndication\n   :PROPERTIES:\n   :CUSTOM_ID: rss---really-simple-syndication\n   :END:\nThe RSS template has been enhanced to remove the author e-mail. The RSS\nfeed shows the full content of each regular page instead of only the\nsummary. Each index category and tag has its own feed. Pages with the\n=private= parameter set to =true= are excluded from the RSS feed.\n\n** Mathematical formulas\n   :PROPERTIES:\n   :CUSTOM_ID: mathematical-formulas\n   :END:\nIf you like to typeset mathematical equations on your website, the set\nthe =math= parameter to =true=. This setting loads\n[[https://www.mathjax.org/][MathJax]] so you can display beautiful\nmathematics.\n\n** Sharing Buttons\n   :PROPERTIES:\n   :CUSTOM_ID: sharing-buttons\n   :END:\nEach page shows simple sharing buttons for either Facebook, Twitter,\nReddit or LinkedIn.\n\nTo enable these buttons, set the relevant site parameters to =true= in\nthe site configuration. For Twitter, you need to set the username\nwithout the @-symbol, e.g. =\"pprevos\"=\n\n** Social Media links\n   :PROPERTIES:\n   :CUSTOM_ID: social-media-links\n   :END:\nThe social media menu in the site configuration provides icons and links\nto your profiles in the footer.\n\nYou can find the relevant icons on the\n[[https://fontawesome.com/icons?d=gallery][Font Awesome]] website,\ne.g. \"=fab fa-github=\".\n\n** Copyright statement\n   :PROPERTIES:\n   :CUSTOM_ID: copyright-statement\n   :END:\nA copyright statement appears in the central footer column with the\nappropriate icon. The =copyright= variable holds the copyright statement\ntext, which can include HTML.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpprevos%2Fhugo-thirdhemisphere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpprevos%2Fhugo-thirdhemisphere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpprevos%2Fhugo-thirdhemisphere/lists"}