Есть ли способ экспортировать стили Stylebot в стильный формат в Chrome?
Вся история такова: я ненавижу белый фон Chrome, и когда я открываю новую вкладку или нажимаю на ссылку, экран становится белым, жгучие глаза. Расширение stylebot не позволяет изменять цвета на новой вкладке или при загрузке белых экранов.
У Firefox такой проблемы нет, когда я устанавливаю на него полные темные темы (те старые темы). Итак, теперь я хочу оставить Chrome позади и начать использовать Firefox. Но, как мы все знаем, у Stylebot нет версии Firefox.
Я не нашел такого хорошего дополнения, как Stylebot для Firefox, и те, что близко к Stylebot, содержат ошибки и портят сайты.
Поэтому я подумал о том, чтобы взять свои пресеты в Chrome Stylebot и экспортировать их в стильный стиль расширения. Я не знаю, возможно ли это, и я действительно ничего не знаю ни о каком типе кодирования. Если это работает как-то, это было бы золотым!
Я отказался от попыток изменить белый фон Chrome, потому что это было слишком хлопотно. Некоторые изменения работали для белого экрана загрузки, но не для новой вкладки. Даже расширения, которые изменяют новую вкладку на любой другой URL, не работали. Он всегда показывает белый экран до окончания загрузки.
Так... кто-нибудь может мне помочь?
2 ответа
Я сам смотрю на это. Итак, Стильный экспорт / импорт в следующем формате - это включает два примера из userstyles.org и один, который я сделал очень быстро:
[
{
"sections": [
{
"urls": [],
"urlPrefixes": [],
"domains": [
"myjetbrains.com"
],
"regexps": [],
"code": "body.global { /*etc */}"
}
],
"url": "http://userstyles.org/styles/133921",
"updateUrl": "https://userstyles.org/styles/chrome/133921.json",
"md5Url": "https://update.userstyles.org/133921.md5",
"originalMd5": "7963f3cfdce94512ebd74a0098a56b38",
"name": "YouTrack Dark TV Style",
"method": "saveStyle",
"enabled": true,
"id": 1
},
{
"sections": [
{
"urls": [],
"urlPrefixes": [],
"domains": [],
"regexps": [],
"code": "/* 4chan - Midnight Caek */\r\n@namespace url(http://www.w3.org/1999/xhtml);"
},
{
"urls": [],
"urlPrefixes": [],
"domains": [
"4chan.org"
],
"regexps": [],
"code": "/* hides Captcha table row */\r\n\r\n/* body background and text color */\r\nhtml, body { /*etc */}"
},
{
"urls": [],
"urlPrefixes": [],
"domains": [
"dis.4chan.org"
],
"regexps": [],
"code": "body { /*etc */}"
}
],
"url": "http://userstyles.org/styles/65821",
"updateUrl": "https://userstyles.org/styles/chrome/65821.json?ik-passtoggle=ik-No",
"md5Url": "https://update.userstyles.org/65821.md5",
"originalMd5": "d34520a7525de8e0c174d466697c50db",
"name": "4chan - Midnight Caek",
"method": "saveStyle",
"enabled": true,
"id": 2
},
{
"method": "saveStyle",
"name": "stackoverflow improvement",
"enabled": true,
"sections": [
{
"urls": [],
"urlPrefixes": [],
"domains": [
"usersuper.ru"
],
"regexps": [],
"code": "body{background:#ddd;}\n"
}
],
"updateUrl": null,
"md5Url": null,
"url": null,
"originalMd5": null,
"id": 3
}
]
Stylebot позволяет создавать резервные копии и экспортировать их стили в этом формате JSON:
{
"abcnews.go.com":{
"_enabled":true,
"_rules":{
"div.t_callout":{
"display":"none"
}
}
},
"boingboing.net":{
"_enabled":true,
"_rules":{
"#next-post-thumbnails":{
"display":"none"
}
}
}
}
Должно быть довольно просто написать некоторый код для циклического просмотра возвращенного JSON Stylebot и сгенерировать для него CSS в формате Stylish. Я на самом деле собираюсь заняться этим когда-нибудь и опубликую свои материалы, если когда-нибудь доберусь до них.
ВНИМАНИЕ:
Прежде чем импортировать преобразованный json в стильный / стилус, сначала сделайте резервную копию существующих настроек. Я только подтвердил это на моих экспортированных настройках, и это может содержать ошибки!
Я только что написал скрипт для преобразования stylebot json в стильный / стилус json.
Чтобы использовать скрипт, вам нужно установить Python 3. Предполагая, что вы загрузили скрипт как s2s.py
запустите скрипт с:
python3 s2s.py stylebot.json -o stylus.json -e utf-8
-o
а также -e
аргументы необязательны.
Я знаю, что это некрасивый код, но кого это волнует:P
import argparse
import json
def stylebot_to_stylus(source='sb.json', target='stylus.json', encoding='utf-8'):
with open(source, encoding=encoding) as f:
data = json.load(f)
result_list = []
item_id = 1
for domain_name in data:
item_dict = {}
item_dict["id"] = item_id
item_id += 1
item_dict["enabled"] = data[domain_name]['_enabled']
item_dict["name"] = domain_name
# only one section for each domain (group)
sections = []
section0 = {}
section0['urls'] = []
section0['domains'] = []
# add the domain or the group of domains
if ',' in domain_name:
for addr in domain_name.split(sep=','):
section0['domains'].append(addr.strip())
else:
section0['domains'].append(domain_name)
css_rule = ''
# construct a css rule for each domain (group)
for selector in data[domain_name]['_rules']:
css_rule += selector + '{'
for attr in data[domain_name]['_rules'][selector]:
css_rule += attr + ':'
css_rule += data[domain_name]['_rules'][selector][attr] + ';'
css_rule += '}'
section0['code'] = css_rule
sections.append(section0)
item_dict['sections'] = sections
result_list.append(item_dict)
with open(target, "w", encoding=encoding) as of:
of.write(json.dumps(result_list))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("source",
help="input json file, exported from Stylebot[Lite]")
parser.add_argument('-o', '--output',
help='output json file, can be imported to Stylus')
parser.add_argument('-e', '--encoding',
help='output json file, can be imported to Stylus')
args = parser.parse_args()
src = args.source
out = args.output if args.output else 'stylus_output.json'
enc = args.encoding if args.encoding else 'utf-8'
stylebot_to_stylus(src, out, enc)