From 90f6e85f8689f09644b3a060541d0d5b3defa2e0f39a910e2212bc3ededeef89 Mon Sep 17 00:00:00 2001 From: Nicholas Johnson Date: Wed, 9 Nov 2022 00:00:00 +0000 Subject: Remove Python scripts Using Hugo's configDir is more elegant. css/ was moved to assets so it isn't published when processing Gemini. Files in static/ are always published. Files in assets/ are only published when invoked in a template. --- README.md | 7 +-- assets/css/style.css | 111 +++++++++++++++++++++++++++++++++++++++++++++ layouts/partials/head.html | 2 +- scripts/clean.py | 32 ------------- scripts/generate.py | 62 ------------------------- static/css/style.css | 111 --------------------------------------------- 6 files changed, 113 insertions(+), 212 deletions(-) create mode 100644 assets/css/style.css delete mode 100644 scripts/clean.py delete mode 100644 scripts/generate.py delete mode 100644 static/css/style.css diff --git a/README.md b/README.md index e51c11f..41b81c9 100644 --- a/README.md +++ b/README.md @@ -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/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..913eab6 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,111 @@ +/* + nicksphere-gmi Generates a Gemini capsule from existing files + Copyright (C) 2021 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 . +*/ + +* { + margin: 0; + padding: 0; + font-size: 18px; +} + +body { + line-height: 1.4; + background-color: black; + color: lightgray; + padding: 30px; + font-family: Arial, Helvetica, sans-serif; + margin: 0 auto; /* remove default styling */ +} + +@media only screen and (min-width: 40em) { + body { + max-width: 40em; + } +} + +h1 { color: #ff0000; font-size: 22px; } +h2 { color: #66ff00; font-size: 20px; } +h3 { color: #ff007f; font-size: 18px; } +h4 { color: #ff007f; font-size: 18px; } +h5 { color: #ff007f; font-size: 18px; } +h6 { color: #ff007f; font-size: 18px; } + +p { + overflow-wrap: break-word; +} + +a { + color: #0091ea; + text-decoration: none; /* remove default styling */ +} + +a:hover { + color: black; + background-color: #004eff; +} + +pre { + color: #ffffba; + overflow: auto; + line-height: normal; +} + +body > header { + margin-bottom: 2em; +} + +#logo { + line-height: normal; +} + +body > footer { + margin-top: 2em; +} + +body > footer p { + margin-bottom: 0em; +} + +blockquote p { + margin-bottom: 0em; +} + +ol { + list-style: decimal inside none; +} + +ul { + list-style: disc inside none; +} + +p, pre, ul, ol, blockquote { + margin-bottom: 1.4em; +} + +nav ul { + list-style: none; +} + +#return { + margin-bottom: 2em; +} + +@media (pointer: coarse) { + .navlink { + margin-bottom: 1em; + } +} 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 @@ - + {{ $.Site.Title }} \ 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 . -''' - -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 . -''' - -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) diff --git a/static/css/style.css b/static/css/style.css deleted file mode 100644 index 913eab6..0000000 --- a/static/css/style.css +++ /dev/null @@ -1,111 +0,0 @@ -/* - nicksphere-gmi Generates a Gemini capsule from existing files - Copyright (C) 2021 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 . -*/ - -* { - margin: 0; - padding: 0; - font-size: 18px; -} - -body { - line-height: 1.4; - background-color: black; - color: lightgray; - padding: 30px; - font-family: Arial, Helvetica, sans-serif; - margin: 0 auto; /* remove default styling */ -} - -@media only screen and (min-width: 40em) { - body { - max-width: 40em; - } -} - -h1 { color: #ff0000; font-size: 22px; } -h2 { color: #66ff00; font-size: 20px; } -h3 { color: #ff007f; font-size: 18px; } -h4 { color: #ff007f; font-size: 18px; } -h5 { color: #ff007f; font-size: 18px; } -h6 { color: #ff007f; font-size: 18px; } - -p { - overflow-wrap: break-word; -} - -a { - color: #0091ea; - text-decoration: none; /* remove default styling */ -} - -a:hover { - color: black; - background-color: #004eff; -} - -pre { - color: #ffffba; - overflow: auto; - line-height: normal; -} - -body > header { - margin-bottom: 2em; -} - -#logo { - line-height: normal; -} - -body > footer { - margin-top: 2em; -} - -body > footer p { - margin-bottom: 0em; -} - -blockquote p { - margin-bottom: 0em; -} - -ol { - list-style: decimal inside none; -} - -ul { - list-style: disc inside none; -} - -p, pre, ul, ol, blockquote { - margin-bottom: 1.4em; -} - -nav ul { - list-style: none; -} - -#return { - margin-bottom: 2em; -} - -@media (pointer: coarse) { - .navlink { - margin-bottom: 1em; - } -} -- cgit v1.2.3