Compare commits

...
Sign in to create a new pull request.

2 commits

2 changed files with 25 additions and 10 deletions

View file

@ -60,6 +60,7 @@ class HighlightRenderer(mistune.HTMLRenderer):
return highlight(code, lexer, formatter)
return '<pre><code>' + mistune.escape(code) + '</code></pre>'
markdown = mistune.create_markdown(renderer=HighlightRenderer())
@ -79,9 +80,9 @@ def fwrite(filename, text):
f.write(text)
def log(msg, *args):
def log(msg, *log_args):
"""Log message with specified arguments."""
sys.stderr.write(msg.format(*args) + "\n")
sys.stderr.write(msg.format(*log_args) + "\n")
def truncate(text, words=25):
@ -99,10 +100,12 @@ def read_headers(text):
def rfc_2822_format(date_str):
"""Convert yyyy-mm-dd date string to RFC 2822 format date string."""
# Use datetime.datetime.strptime() with the correct format string
d = datetime.datetime.strptime(date_str, "%Y-%m-%d")
dtuple = d.timetuple()
dtimestamp = time.mktime(dtuple)
return utils.formatdate(dtimestamp)
# Convert the timetuple to a timestamp
timestamp = time.mktime(d.timetuple())
# Return the formatted timestamp
return utils.formatdate(timestamp)
def slugify(value):
@ -111,11 +114,10 @@ def slugify(value):
underscores) and converts spaces to hyphens. Also strips leading and
trailing whitespace.
"""
value = (
unicodedata.normalize("NFKD", value).encode("ascii", "ignore").decode("ascii")
)
value = re.sub("[^\w\s-]", "", value).strip().lower()
return re.sub("[-\s]+", "-", value)
value = unicodedata.normalize("NFKD", value).encode("ascii", "ignore").decode("ascii")
value = re.sub(r"[^\w\s-]", "", value) # Remove non-word characters and spaces
value = re.sub(r"\s+", "-", value) # Replace multiple spaces with a single hyphen
return value.lower() # Convert to lowercase
def read_content(filename):

13
test/test_slugify.py Normal file
View file

@ -0,0 +1,13 @@
import unittest
import makesite
class SlugifyTest(unittest.TestCase):
def test_slugify(self):
self.assertEqual(makesite.slugify('NginX est brillant'), 'nginx-est-brillant')
self.assertEqual(makesite.slugify('Bilan hébergement 2023'), 'bilan-hebergement-2023')
self.assertEqual(makesite.slugify('Sécurisation Docker : des pistes'), 'securisation-docker-des-pistes')
self.assertEqual(makesite.slugify('Il court, il court, le furet'), 'il-court-il-court-le-furet')
self.assertEqual(makesite.slugify('De GNU/Linux à gnuSystemlinuxdGnomeOs'), 'de-gnulinux-a-gnusystemlinuxdgnomeos')
self.assertEqual(makesite.slugify('Au fait... mon téléphone'), 'au-fait-mon-telephone')