mirror of
https://github.com/notion-enhancer/notion-enhancer.git
synced 2025-04-07 14:09:03 +00:00
51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
/*
|
|
* notion-enhancer: right to left
|
|
* (c) 2021 obahareth <omar@omar.engineer> (https://omar.engineer)
|
|
* (c) 2021 dragonwocky <thedragonring.bod@gmail.com> (https://dragonwocky.me/)
|
|
* (https://notion-enhancer.github.io/) under the MIT license
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
export default async function ({ web }, db) {
|
|
const pageContentSelector = `
|
|
.notion-page-content >
|
|
div[data-block-id]:not([dir]):not(.notion-column_list-block):not(.notion-collection_view_page-block),
|
|
[placeholder="Untitled"]:not([dir]),
|
|
.notion-column-block > div[data-block-id]:not([dir]),
|
|
.notion-collection_view-block:not([dir]),
|
|
.notion-table-view:not([dir]),
|
|
.notion-board-view:not([dir]),
|
|
.notion-gallery-view:not([dir])`,
|
|
listItemSelector = `
|
|
div[placeholder="List"]:not([style*="text-align: start"]),
|
|
div[placeholder="To-do"]:not([style*="text-align: start"]),
|
|
div[placeholder="Toggle"]:not([style*="text-align: start"])`,
|
|
inlineEquationSelector =
|
|
'.notion-text-equation-token .katex-html:not([style*="direction: rtl;"])';
|
|
|
|
const autoAlignText = () => {
|
|
document
|
|
.querySelectorAll(pageContentSelector)
|
|
.forEach(($block) => $block.setAttribute('dir', 'auto'));
|
|
document.querySelectorAll(listItemSelector).forEach(($item) => {
|
|
$item.style['text-align'] = 'start';
|
|
});
|
|
document.querySelectorAll(inlineEquationSelector).forEach(($equation) => {
|
|
$equation.style.direction = 'rtl';
|
|
$equation.style.display = 'inline-flex';
|
|
$equation.style.flexDirection = 'row-reverse';
|
|
for (const $symbol of $equation.children) {
|
|
$symbol.style.direction = 'ltr';
|
|
}
|
|
});
|
|
};
|
|
web.addDocumentObserver(autoAlignText, [
|
|
pageContentSelector,
|
|
listItemSelector,
|
|
inlineEquationSelector,
|
|
]);
|
|
await web.whenReady();
|
|
autoAlignText();
|
|
}
|