Как динамически хранить некоторые CSS, файл стиля шрифта, чтобы реагировать на общую папку? - PullRequest
0 голосов
/ 11 ноября 2019

Я работаю над проектом epub, используя электрон с реакции и использую epub для анализа файла epub. С помощью этого парсера я могу получить css, ttf эти файлы. Однако эти файлы не будут доступны в обычном режиме. Например, для html текущего раздела может потребоваться импортировать css, например <link href="flow0003.css" rel="stylesheet" type="text/css">, и этот файл css не будет загружен.

Чтобы обойти это, можно ли сохранить некоторые файлы, чтобы реагировать на общедоступныепапка динамически?

Я искал в Интернете, и это кажется невозможным из-за соображений безопасности. Я также искал подобный подход с электроном, и, похоже, нет доступных советов, так как этот проект использует электрон с реагировать.

Кстати, я могу динамически вводить стиль, подобный этому: Book.tsx

  useEffect(() => {
    const css = Object.values(book.manifest).filter(({ href }) => href.endsWith('.css'));

    Promise.all(css.map(c => getCss(book, c.id)))
      .then(arr => arr.join('\n'))
      .then(styles => {
        if (!ref.current) return;
        ref.current.setAttribute('style', styles);
      });
  }, [book]);

Однако вложенный имплант для файла шрифта все равно не будет работать.

Так что возможно для электрона с реакции, хранить таблицы стилей, файлы шрифтовв его общую папку (и также необходимо удалить ее позже)?

Я знаю, что возможно проанализировать данные img, style с помощью html. Например, используйте команду реагирования dom.setAttribute для динамического добавления таблицы стилей. Аналогично, для тега img данные изображения могут быть введены напрямую, например <img src={data:${mimeType};base64, ${imgData.toString('base64')}}>. Так есть ли эквивалентный способ загрузки font-face?

1 Ответ

0 голосов
/ 13 ноября 2019

Используйте электронику ipcMain и ipcRenderer для связи, и у электрона есть ресурсы для файловой системы.

...