{"id":37007080,"url":"https://github.com/jon48/webtrees-theme-rural","last_synced_at":"2026-01-14T00:46:24.272Z","repository":{"id":32446701,"uuid":"134196374","full_name":"jon48/webtrees-theme-rural","owner":"jon48","description":"Rural theme for webtrees","archived":false,"fork":false,"pushed_at":"2025-08-10T16:01:03.000Z","size":3326,"stargazers_count":12,"open_issues_count":6,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-10T17:29:39.150Z","etag":null,"topics":["theme","webtrees"],"latest_commit_sha":null,"homepage":null,"language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jon48.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-20T23:52:09.000Z","updated_at":"2025-08-10T16:01:06.000Z","dependencies_parsed_at":"2023-02-12T17:45:58.317Z","dependency_job_id":"6fd06a0c-464a-4b6d-8f36-fac32c8e5bb5","html_url":"https://github.com/jon48/webtrees-theme-rural","commit_stats":{"total_commits":76,"total_committers":1,"mean_commits":76.0,"dds":0.0,"last_synced_commit":"512624261864b897847703a15a3bfd853a371e68"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/jon48/webtrees-theme-rural","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jon48%2Fwebtrees-theme-rural","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jon48%2Fwebtrees-theme-rural/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jon48%2Fwebtrees-theme-rural/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jon48%2Fwebtrees-theme-rural/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jon48","download_url":"https://codeload.github.com/jon48/webtrees-theme-rural/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jon48%2Fwebtrees-theme-rural/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28406560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"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":["theme","webtrees"],"created_at":"2026-01-14T00:46:24.185Z","updated_at":"2026-01-14T00:46:24.254Z","avatar_url":"https://github.com/jon48.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Latest version](https://img.shields.io/github/v/release/jon48/webtrees-theme-rural)\n![Release date](https://img.shields.io/github/release-date-pre/jon48/webtrees-theme-rural)\n![Downloads](https://img.shields.io/github/downloads/jon48/webtrees-theme-rural/total)\n![License](https://img.shields.io/github/license/jon48/webtrees-theme-rural)\n\n# webtrees-theme-rural\nRural Theme for the **[webtrees](https://webtrees.net/)** application\n\n## Contents\n\n* [License](#license)\n* [Introduction](#introduction)\n* [System requirements](#system-requirements)\n* [Installation / Upgrading](#installation--upgrading)\n* [Customising](#customising)\n* [Development](#development)\n* [Issues / Security](#issues--security)\n* [Contacts](#contacts)\n\n### License\n\n* **webtrees-theme-rural: Rural Theme for webtrees**\n* Copyright (C) 2009 to 2024 Jonathan Jaubart.\n* Derived from **webtrees** - Copyright (C) 2010 to 2024  webtrees development team.\n* Derived from PhpGedView - Copyright (C) 2002 to 2010  PGV Development Team.\n\nThis program is free software; you can redistribute it and/or modify it under the\nterms of the GNU General Public License as published by the Free Software\nFoundation; either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\nSee the [LICENSE](LICENSE.md) included with this software for more detailed licensing information.\n\n\n### Introduction\n\nThe Rural theme has first been created for PhpGedView in 2009.\nIt has since then been migrated to **webtrees**, and followed the subsequent evolutions, up to the latest version.\nInitially embedded in a larger code base, I have extracted it to its own GitHub repository in 2018.\n\nThe Rural theme is mainly based on brown tones, as a tribute to the earth our ancestors used to cultivate, with some green, colour of nature. Contrary to other standard themes which use the full width of the screen, its characteristic layout is organised around the main genealogical content being wrapped within a responsive white panel on a brown background.\n\nThe header logo can be customised to any image (instructions below).\n\nHaving been a loyal companion to my **webtrees** experience for so many years now, I am happy to share the Rural theme and hope it can find its way to your list of themes.\n\n*Jonathan Jaubart*\n\n### System requirements\n\n**webtrees-theme-rural** shares the same requirements and system configuration as a standard **webtrees** installation.\n\nThe repository does not implement any browser compatibility testing, and the table below is only based on empirical testing. Please raise an issue if you experience display issues on a supported browser.\n\n| Browser             | Supported          |\n| ------------------- | ------------------ |\n| Chrome              | :heavy_check_mark: |\n| Edge                | :heavy_check_mark: |\n| Firefox             | :heavy_check_mark: |\n| Internet Explorer   | :x:                |\n| Safari (iOS)        | :heavy_check_mark: |\n\n\n### Installation / Upgrading\n\nThe installation or upgrade process follows the standard one for webtrees themes/modules.\n\n#### Versions up to 1.7\n\nSteps:\n\n1. Download the latest release compatible with your **webtrees** version from the [webtrees-theme-rural GitHub repository](https://github.com/jon48/webtrees-theme-rural/releases).\n2. Unzip the archive in the root of your webtrees installation. The zip file contains the full structure of folders, and will merge with your current one.\n3. Check if the folder `rural` is now present in the `/themes/` directory.\n4. Open **webtrees** and the Rural Theme should now be available in the list of themes.\n\n#### Versions from 2.0\n\nSteps:\n\n1. Download the latest release compatible with your **webtrees** version from the [webtrees-theme-rural GitHub repository](https://github.com/jon48/webtrees-theme-rural/releases).\n2. Unzip the archive in `/modules_v4/`.\n3. Check if the folder `myartjaub_ruraltheme` is now present in the `/modules_v4/` directory.\n4. Open **webtrees** and the Rural Theme should now be available in the list of themes.\n\n### Customising\n\nIt is possible to change the default webtrees logo in the header, and use a personal image instead.\nI am using a customised header on my own website.\n\n#### Versions up to 1.7\n\nReplace the image `/themes/rural/css-1.7.8/images/header.png` by a personal one.\nPlease make sure that the personal image does not exceed ***150px*** in height.\n\n#### Versions from 2.0\n\nReplace the image `/modules_v4/myartjaub_ruraltheme/resources/images/header.png` by a personal one.\nPlease make sure that the personal image does not exceed ***150px*** in height.\n\n#### Versions from 2.2\n\nAdd a personal image `header.png` in the folder `/modules_v4/myartjaub_ruraltheme/resources/images/`.\nThis image will not be overwritten by future upgrades of the theme.\nIt is recommended, but not mandatory, that the image does not exceed 150px in height. If that height is exceeded, the image will be automatically scaled down.\n\n### Development\n\nThe Rural theme is based on the **[Bootstrap](https://getbootstrap.com/)** framework, and from version 2.0, uses **[Sass](https://sass-lang.com/)** to code the stylesheets (**Less** in prior versions). **Composer** and **npm** are required to generate the stylesheets.\n\nIf you wish to contribute, or create your own version of the Rural theme, here are some hints (valid for versions 2.0 and above).\n\n#### Installation\n\nClone the repository to your local machine. You can either choose to create the directory directly in the `/modules_v4/` directory, or create it somewhere else, and symlink `/modules_v4/myartjaub_ruraltheme` to the newly created folder.\n\n```shell\ngit clone https://github.com/jon48/webtrees-theme-rural.git target_directory\n```\n\nIn the target directory, first install the Composer dependencies (do run in dev mode to be able to generate the stylesheets). The `fisharebest/webtrees` package is explicitly set to use sources to be able to generate the stylesheets, do not override that setting.\n\n```shell\ncomposer install\n```\n\nThen install the node dependencies (again, do run in dev mode to be able to generate the stylesheets)\n\n```shell\nnpm install\n```\n\n#### Folder structure\n\n```\n|-- build/                        -\u003e  Folder for intermediary build artefacts\n|-- node_modules/                 -\u003e  Node modules folder - do not alter\n|-- resources/                    -\u003e  Contains public resources, part of the final package \n|   |-- css/\n|   |   |-- rural.min.js          -\u003e  Rural Theme compiled stylesheet\n|   |-- images/\n|   |   |-- header.default.png    -\u003e  Default header image\n|   |-- views/\n|       |-- footer.phtml          -\u003e  HTML view to extend the footer with Rural images\n|       |-- style.css.phtml       -\u003e  Extra CSS stylesheet to load header image\n|-- src/\n|   |-- sass/                     -\u003e  Sass code\n|       |-- bootstrap/\n|       |   |-- _pre-default.scss -\u003e  Defines Bootstrap variable \n|       |   |-- config.scss       -\u003e  Defines Bootstrap modules to generates\n|       |-- resources/            -\u003e  Resources used during Sass compilation\n|       |   |-- images/           -\u003e  Images are inlined in the compiled stylesheet\n|       |-- rural/                -\u003e  Rural Theme specific Sass code\n|       |   |-- config.scss       -\u003e  Rural Theme Sass entry point\n|       |-- webtrees/\n|       |   |-- config.scss       -\u003e  Load specific mainstream webtrees CSS\n|       |-- _variables.scss       -\u003e  Defines global variables\n|       |--theme.scss             -\u003e  Sass entry point\n|-- vendor/                       -\u003e  Composer packages folder - do not alter\n|-- module.php                    -\u003e  Webtrees module entry point. Defines RuralTheme class.\n|-- webpack.mix.config.js         -\u003e  Global variables for Laravel Mix scripts\n|-- webpack.mix.js                -\u003e  Laravel Mix entry point\n|-- webpack.mix.rural.js          -\u003e  Lavarel Mix script to generate rural.min.css\n|-- webpack.mix.webtrees.js       -\u003e  Laravel Mix script to generate webtrees intermediary files\n```\n\n#### Build\n\nBefore building, make sure that the `fisharebest/webtrees` package is in the correct target **webtrees** version.\n\n```shell\ncomposer show fisharebest/webtrees\n```\n\nWhen ready to generate the stylesheets, run the following command. \n\n```shell\nnpm run production \n```\n\nLet it compile until the `rural.min.css` has been generated in `/modules_v4/myartjaub_ruraltheme/resources/css` folder. \n\nNPM modes are:\n\n- `production`: generates the `rural.min.css` file in production mode, and all required files. (Runs the `webtrees` and `rural` modes below, with the production flag)\n- `development`: generates the `rural.min.css` file in development mode, and all required files. (Runs the `webtrees` and `rural` modes below)\n- `webtrees`: generates intermediary CSS from the mainstream webtrees into the `/build/` folder. Those intermediary files are then injected in the main Rural theme CSS. Those files need to be generated once before running other modes, or after webtrees version has been updated via Composer. (Laravel Mix entry point: `webpack.mix.webtrees.js`)\n- `rural`: generates the `rural.min.css` file in development mode (not minified). Requires the `webtrees` mode to have run once. (Laravel Mix entry point: `webpack.mix.rural.js`)\n- `watch`: watches for changes in SASS code, and generate the `rural.min.css` file in development mode. Requires the `webtrees` mode to have run once. (Laravel Mix entry point: `webpack.mix.rural.js`)\n- `eslint` / `eslint-fix`: Respectively checks and automatically format JavaScript code to enforce Semi-Standard code style\n- `stylelint` / `stylelint-fix`: Respectively checks and automatically format CSS \u0026 SASS code to enforce StyleLint code style\n\n### Issues / Security\n\nIssues should be raised in the GitHub repository for **webtrees-theme-rural**.\n\nA [security policy document](SECURITY.md) has been issued for this repository.\n\n### Contacts\n\nGeneral questions on the standard **webtrees** software should be addressed to the\n[official forum](https://www.webtrees.net/index.php/forum).\n\nYou can contact the author (Jonathan Jaubart) of the **webtrees-theme-rural** projects through his personal [GeneaJaubart website](https://genea.jaubart.com/wt/) (link at the bottom of the page), or raise in issue in GitHub.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjon48%2Fwebtrees-theme-rural","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjon48%2Fwebtrees-theme-rural","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjon48%2Fwebtrees-theme-rural/lists"}