Fortran-FOSS-Programmers / ford

Automatically generates FORtran Documentation from comments within the code.
https://forddocs.readthedocs.io
GNU General Public License v3.0
402 stars 131 forks source link

Update to fontawesome v6 #635

Open blaylockbk opened 5 months ago

blaylockbk commented 5 months ago

Any ideas on how it might be possible to use Fontawesome v6 instead of the default v4 in FORD?

Simply adding this to the <head> works

<head>
  ...
  <script src="https://kit.fontawesome.com/XXXXXXXXXX.js" crossorigin="anonymous"></script>
</head>

but I can't find a FORD configuration to add additional content to <head> during the page build.

blaylockbk commented 5 months ago

For now, I just wrote a simple python program that replaces text in every html file:

from pathlib import Path

def replace_text(old, new):
    """Replace text in all html files.

    Parameters
    ----------
    old, new : str
        The string to look for and the string to replace it with.
    """
    files = Path("site/").rglob("*.html")

    for file_path in sorted(files):
        # Read the content of the file
        with open(file_path, "r") as file:
            content = file.read()

        # Write the modified content back to the file
        with open(file_path, "w") as file:
            file.write(content.replace(old, new))

# -----------------------
# Add Font Awesome v6 Kit
old = "</head>"
new = """  <script src="https://kit.fontawesome.com/XXXXXX.js" crossorigin="anonymous"></script>
  </head>
"""
replace_text(old, new, files="all")
print("🔧 Added support for Font Awesome v6.")

I just run this after creating my FORD docs.

ZedThree commented 3 months ago

This is sort of two issues:

  1. Upgrading bundled fontawesome to v6: I've just not found time to do this. Their website doesn't make it super obvious.
  2. Giving users more control over the HTML: again, I'd love to do this, just haven't found the time.

PRs are always welcome! :)