Improved SEO (meta tags support)
Mantenedores costumam responder em até 2 dias
@anikethsaha já está trabalhando nisso.
Desde 23/6/2020.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Feature request
What problem does this feature solve?
It improves SEO of pages generated by Docsify. It makes it easier for search engines to find the relevant content, and when a user shares a link to a Docsify page, the rendered preview is more accurate (title, description and image).
Example (diff pages, same SEO 😢 ):
What does the proposed API look like?
Marp allows you to write slides using Markdown, and each file has a small header like this:
---
marp: true
title: Marp CLI example
description: Hosting Marp slide deck on the web
theme: uncover
paginate: true
---
Docsify could have something similar that would allow us to define the meta tags of each page. Example:
---
<!-- Primary Meta Tags -->
meta-title: Site title: Page title
meta-description: This is the summary that appears on search engine results or preview links
<!-- Open Graph -->
meta-og-type:
meta-og-url:
meta-og-title:
meta-og-description:
meta-og-image: https://yourdomain.com/path/to/image.jpg
<!-- Twitter -->
meta-twitter-card:
meta-twitter-url:
meta-twitter-title:
meta-twitter-description:
meta-twitter-image: https://yourdomain.com/path/to/image.jpg
---
# Page title
And the _rest_ of the page.
- I think a syntax like this would be good enough for us. I would say the first two fields are the MVP, as that works everywhere.
- Then Open Graph would be helpful, because it allows you to define an image.
- And finally, with the lowest priority/importance, the Twitter meta tags, because if Twitter can't find them it will fallback to the Open Graph tags.
How should this be implemented in your opinion?
I checked if it was possible to hack it with the current Docsify version by hardcoding HTML tags in the .md file.
<!-- markdownlint-disable MD033 -->
<!-- SEO tags -->
<title>(TITLE) (SEPARATOR) Title of this page</title>
<meta name="title" content="(TITLE) (SEPARATOR) Title of this page">
<meta name="description" content="A description that is specific to this page.">
# TITLE_HERE

It didn't work. Those tags were added inside <body> ... <article>, but we need them to exist in the <head> section.
I propose this flow:
- When Docsify reads a Markdown file, it checks if it has a header.
- If it doesn't, then everything works as is.
- If it has, it will read each key (e.g.
meta-title) and override it's value.
Example:
Docsify detects a header. One key is
meta-dummy. Docsify doesn't know how to handle this key, so it skips it. The next key ismeta-title. Docsify knows how to handle this, so it goes tohead.meta.titleand replaces the default value with the value in the file header.
Are you willing to work on this yourself?
I don't think I have enough JS and Docsify knowledge to develop this feature. But I can (beta) test it!
- Linguagem predominante
- JavaScript
- Estrelas
- 31.5k
- Forks
- 5.8k
- Merge médio
- 2d 14h
- PRs com merge (30d)
- 5
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de docsifyjs/docsify
-
Query parameter values are truncated at a second equals signTalvez já em andamento @xu91102 assumiu há 22 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 2 dias
-
Bullet points beginning with inline math: subsequent text formatting not recognised correctlyAbertabug Triage
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 2 dias
-
Cached AJAX responses lose status metadata exposed through vm.route.responseTalvez já em andamento @xu91102 assumiu há 22 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 2 dias
-
In the Edge browser, the character `{docsify-updated}` is not replacedTalvez livre de novo @AmanUllah687 assumiu há 75 dias e não há nenhum pull request aberto. Abertawait for information
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
docsifyjs/docsify#2681 · 11 comentários ·
Mantenedores costumam responder em até 2 dias
-
Nested/Recursive includesAbertafeature request Triage
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
docsifyjs/docsify#2643 · 5 comentários ·
Mantenedores costumam responder em até 2 dias
Todas as issues de docsifyjs/docsify
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
maproulette/maproulette-frontend#2944 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
jaegertracing/jaeger-ui#4618 ·
Mantenedores costumam responder em até 1 dia
-
area:plugins enhancement platform:vscode
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
anthropics/claude-code#103166 ·
Mantenedores costumam responder em até 1 dia
-
Add: Kids Zone LogoAbertacheck:failed logos:add
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
-
[workshop-sim] Improve: Add verifiable checkpoint and bridge to Step 5 (What Are Agentic Workflows?)Abertafeedback simulation workshop
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
githubnext/gh-aw-workshop#4715 ·
Mantenedores costumam responder em até 1 dia