Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(code): Add ability to disable SEO optimization for titles #555

Merged
merged 3 commits into from
Nov 8, 2024

Conversation

obenjiro
Copy link
Contributor

@obenjiro obenjiro commented Nov 7, 2024

In out service we use YFM for email content. To be exact we compile YFM to HTML and then send it to email. The problem is that we don't inline or send CSS with email so hiddenDesc for title is visible to user and user sees 2 titles.

This PR allowed us to disable this SEO optimisation with disableSEOFixForTitles option.

disableSEOFixForTitles: false (default)

html: '<h2 id="test1" data-line="2" class="line"><a href="#test1" class="yfm-anchor" aria-hidden="true" target="_blank" rel="noreferrer noopener"><span class="visually-hidden" data-no-index="true">test1</span></a>test1</h2>\n',

disableSEOFixForTitles: true

html: '<h2 id="test1" data-line="2" class="line">test1</h2>\n',

const linkTokens = createLinkTokens(state, customId, anchorTitle, setId, href);

inlineToken.children?.unshift(...linkTokens);
if (!disableSEOFixForTitles) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Думаю ты хотел не этого.
В данном случае ты полностью отключил генерацию ссылок на якорях.

СЕО оптимизация лежит внутри createLinkTokens и она просто добавляет текст. Стоит точечно отключить именно ее.
Либо, если все-таки нужно отключить генерацию ссылок, обрати внимание, что ниже в

 if (supportGithubAnchors) {

генерируется еще одна

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, нужно именно ссылки удалить (они не имеет смысла без контента), там просто тогда пустая ссылка будет.

А вот по поводу supportGithubAnchors я думал что

supportGithubAnchors != SEOAnchorFix

Могу вырезать supportGithubAnchors при флаге disableSEOFixForTitles. Тут просто как скажешь

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну по сути тогда это логика disableAnchors.

Но имей в виду, что пустые ссылки имеют смысл.
На этих ссылках генерируется параметр id, за счет чего к одному и тому же месту в документе можно подскроллиться по разным якорям. (Один якорь на h1, остальные здесь же на невидимых ссылках)

Copy link
Contributor Author

@obenjiro obenjiro Nov 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я за то чтобы флаг disableAnchorsHiddenContent (удалял anchor и контент) только для первой ветки

Если я захочу удалить anchors для Github я выставлю флаг supportGithubAnchors: false

@@ -76,12 +76,14 @@ const removeCustomIds = (token: Token) => {
interface Options {
extractTitle?: boolean;
supportGithubAnchors?: boolean;
disableSEOFixForTitles?: boolean;
Copy link
Member

@3y3 3y3 Nov 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disableAnchorsHiddenContent

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@3y3 3y3 merged commit 4f3f098 into diplodoc-platform:master Nov 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants