diff options
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | assets/css/style.css (renamed from static/css/style.css) | 0 | ||||
-rw-r--r-- | layouts/partials/head.html | 2 | ||||
-rw-r--r-- | scripts/clean.py | 32 | ||||
-rw-r--r-- | scripts/generate.py | 62 |
5 files changed, 2 insertions, 101 deletions
@@ -7,12 +7,7 @@ $ git clone https://git.nicksphere.ch/hugo-theme-nicksphere themes/hugo-theme-ni ``` ## Generate The Blog -Since Hugo can't separate the Gemtext and HTML output by itself, this theme uses two scripts to handle the output: - -* `python3 themes/hugo-theme-nicksphere/scripts/generate.py` outputs the site and the capsule -* `python3 themes/hugo-theme-nicksphere/scripts/clean.py` removes previously generated output - -If the correct media types, output formats, markup settings, and outputs are not specified in config.toml, the above scripts may fail or the blog may render correctly. Have a look at the [nicksphere repository](https://git.nicksphere.ch/nicksphere/tree/config.toml) for ideas on how to set up your config.toml. +In order to render the blog in Gemini and Web format, it's best to render it with separate configs. Have a look at the [the Nicksphere repo](https://git.nicksphere.ch/nicksphere) for an example. ## License GPLv3 or later diff --git a/static/css/style.css b/assets/css/style.css index 913eab6..913eab6 100644 --- a/static/css/style.css +++ b/assets/css/style.css diff --git a/layouts/partials/head.html b/layouts/partials/head.html index bc92fc2..e0fa95e 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -4,6 +4,6 @@ <meta name="description" content="{{ $.Site.Params.description }}"> <meta name="keywords" content="{{ $.Site.Params.keywords }}"> <meta name="theme-color" content="#000"> - <link rel="stylesheet" type="text/css" href="/css/style.css"> + <link rel="stylesheet" type="text/css" href="{{ (resources.Get "css/style.css").RelPermalink }}"> <title>{{ $.Site.Title }}</title> </head>
\ No newline at end of file diff --git a/scripts/clean.py b/scripts/clean.py deleted file mode 100644 index 8e81376..0000000 --- a/scripts/clean.py +++ /dev/null @@ -1,32 +0,0 @@ -''' - nicksphere Generates a Gemini capsule from existing files - Copyright (C) 2022 Nicholas Johnson - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. -''' - -import os -import shutil - - -if __name__ == '__main__': - root_dir = os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)), os.pardir)), os.pardir)) - output_dir = os.path.join(root_dir, "public") - gemini_output_dir = os.path.join(root_dir, "capsule") - html_output_dir = os.path.join(root_dir, "website") - - # delete output directories - shutil.rmtree(output_dir, ignore_errors=True) - shutil.rmtree(gemini_output_dir, ignore_errors=True) - shutil.rmtree(html_output_dir, ignore_errors=True) diff --git a/scripts/generate.py b/scripts/generate.py deleted file mode 100644 index 26553c9..0000000 --- a/scripts/generate.py +++ /dev/null @@ -1,62 +0,0 @@ -''' - nicksphere Generates a Gemini capsule from existing files - Copyright (C) 2022 Nicholas Johnson - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. -''' - -import os -import subprocess -import shutil - - -if __name__ == '__main__': - root_dir = os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)), os.pardir)), os.pardir)) - output_dir = os.path.join(root_dir, "public") - gemini_output_dir = os.path.join(root_dir, "capsule") - html_output_dir = os.path.join(root_dir, "website") - - # detect static Gemini files - os.chdir(os.path.join(root_dir, "static")) - static_gemini_files = [os.path.join(root, name) for root, dirs, files in os.walk(".") for name in files if name.endswith(".gmi")] - - # generate output directory - os.chdir(root_dir) - subprocess.run("hugo") - - # generate Gemini output directory - try: - shutil.copytree(output_dir, gemini_output_dir, ignore=shutil.ignore_patterns("*.html"), dirs_exist_ok=True) - except shutil.Error: - pass - - os.chdir(os.path.join(root_dir, "static")) - - os.chdir(gemini_output_dir) - os.remove("robots.txt") - os.remove("sitemap.xml") - shutil.move(os.path.join("gemini_atom", "atom.xml"), "atom.xml") - os.rmdir("gemini_atom") - for file in static_gemini_files: - shutil.copy(os.path.join(output_dir, file), file) - - # generate HTML output directory - try: - shutil.copytree(output_dir, html_output_dir, ignore=shutil.ignore_patterns("*.gmi", "gemini_atom"), dirs_exist_ok=True) - except shutil.Error: - pass - - os.chdir(html_output_dir) - for file in static_gemini_files: - shutil.copy(os.path.join(output_dir, file), file) |