feat: sanitize all yaml

This commit is contained in:
knoflook 2022-03-18 13:59:14 +01:00
parent bac9bbd7b3
commit 2fbc952a72
Signed by: knoflook
GPG Key ID: D6A1D0E8FC4FEF1C

View File

@ -5,7 +5,6 @@ from hashlib import md5
from ast import literal_eval as make_tuple from ast import literal_eval as make_tuple
from pathlib import Path from pathlib import Path
from urllib.parse import urlparse from urllib.parse import urlparse
from re import sub
import arrow import arrow
import feedparser import feedparser
@ -14,7 +13,8 @@ import requests
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from slugify import slugify from slugify import slugify
from re import compile as re_compile from re import compile as re_compile
yamlre = re_compile('"') from re import sub
yamlre = re_compile('[_\?:\'\[\]\{\}\#\&\*\!\|\>\`\"\%]')
def write_etag(feed_name, feed_data): def write_etag(feed_name, feed_data):
@ -121,12 +121,12 @@ def sanitize_yaml (frontmatter):
#some fields are lists #some fields are lists
l = [] l = []
for i in v: for i in v:
i = yamlre.sub('\\"', i) i = yamlre.sub(r'\\\g<0>', i)
l.append(i) l.append(i)
frontmatter[k] = l frontmatter[k] = l
else: else:
v = yamlre.sub('\\"', v) v = yamlre.sub(r'\\\g<0>', v)
frontmatter[k] = v frontmatter[k] = v
return frontmatter return frontmatter