Кроме того, что предложил @MarceDev, я думаю, что есть несколько других способов сделать это:
- Использование замечание пользовательских компонентов или MDX
- Добавьте атрибут с именем className к сгенерированной уценке и наведите его на componentDidMount
Я думаю, что в приложении React первый подход - более «правильный» способ сделать это, его настройка требует немного больше, но взамен вы получаете гораздо больше гибкости.
Обе ссылки, которыми я поделился выше, имеют довольно подробное руководство по настройке.
Второй подход, напротив, часто не одобряется, потому что вы будете напрямую взаимодействовать с домом. Лично для чего-то простого, такого как личный блог, и того, что уценка генерируется вне вашего собственного кода, я бы не был слишком обеспокоен.
Для этого вы можете попробовать мой примечательный плагин , который придает атрибуты сгенерированной уценке.
Вы можете сделать что-то вроде:
{
resolve: `gatsby-transformer-remark`,
options: {
plugins: [
+ {
+ resolve:`gatsby-remark-default-html-attrs`,
+ options: {
+ "table": "table-class", // <table class="table-class">
// custom attributes
+ "table": {
+ className: "table-class",
+ style: "color: red;",
+ },
// select only the first table of a parent node
+ "table:first-of-type {
+ className: "table-class",
+ ...
+ }
+ }
+ }
],
}
}
Затем укажите имя этого класса на componentDidMount
:
// template.js
/* ... */
componentDidMount() {
if (typeof window == 'undefined') return;
const $table = document.querySelector('.table-class')
...
}
/* ... */