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

support more tags for posts #744

Closed
juzhiyuan opened this issue Nov 15, 2021 · 11 comments · Fixed by #849 or #861
Closed

support more tags for posts #744

juzhiyuan opened this issue Nov 15, 2021 · 11 comments · Fixed by #849 or #861
Assignees
Labels
good first issue Good for newcomers SEO

Comments

@juzhiyuan
Copy link
Member

Actual Behaviour

When I visit this post: https://apisix.apache.org/blog/2021/11/12/apisix-datadog , I noticed there has only one Tag called Technology. It's too common to use this as the only one tag IMO, and I just checked this page's Meta data, see

image

Expected Behaviour

After comparing with other sites' blogs, I would recommend we fulfill more tags. For the post above, I would recommend using DataDog,Monitoring,Observability as the tags.

Not only this post, we should update all posts.

@juzhiyuan juzhiyuan added good first issue Good for newcomers SEO labels Nov 15, 2021
@adarrssh
Copy link
Contributor

Hey, can I work on this issue?

@juzhiyuan
Copy link
Member Author

Hi @adarrssh, sure!

@adarrssh
Copy link
Contributor

Hey @juzhiyuan, Can you please elaborate more about this issue, Do I have to add tags like (DataDog, Monitoring, Observability) for this blog post only ( https://apisix.apache.org/blog/2021/11/12/apisix-datadog) or do I have to go through all the blogs of the APISIX website and add tags there too?

@juzhiyuan
Copy link
Member Author

Datadog is an example :) For better SEO, we need to improve more necessary Tags for as many posts as possible, you also could find more thoughts from @yzeng25

@adarrssh
Copy link
Contributor

Okay, thanks @juzhiyuan 😊.

@yzeng25
Copy link
Contributor

yzeng25 commented Jan 17, 2022

Hi @adarrssh ,

Thanks for bringing this up! I have had a conversation with @juzhiyuan about 4 months ago regarding on the similar issue. Here are some thoughts for you, hope it helps.

What are tags

We use tags to categorize blogs.

Tags’ mechanism

  1. Show up in tags page [1], ordered alphabetically.
  2. Gather blogs with the same tag.
  3. When click on a certain tag, redirects to a page containing all blogs with the tag

What tags do we have currently

Community: community related, e.g. "How to contribute to an open source project without writing code?"
Events: event-related, for example: online live stream, event previews, meetups, and online meeting, etc.
Interview: Interviews, e.g., Dr. Yang Li interview, Summer of Programming interview.
Practical Case: Best practices, easily confused with Technology. The factors that determine whether an article is a Technology or a Practical Case are: the content of the article and the subject of the description. For example, if the article is about "Running Apache APISIX on xxx platform", then it is a Practical Case; for example, if the article is about technical stuff, "Apache APISIX v.s. Envoy", then it is Technology.
Release: Release notes, this is better understood. It should be noted that the release notes inside the blog are polished, while the release notes inside the release are written by developers.
Security: Security vulnerability notification and methods to bypass security vulnerabilities, currently there are only two articles, very good to identify, generally have CVE-xxxxxxx is it.
Technology: Technical articles, easily confused with Practical Case. The factors that determine whether an article is a Technology or a Practical Case are: the content of the article and the subject of the description. For example, if the article is about "Running Apache APISIX on xxx platform", then it is a Practical Case; for example, if the article is about technical stuff, "Apache APISIX v.s. Envoy", then it is Technology.
User Case: User Case, this is also very straightforward. Please tell us how you use Apache APISIX and your feelings about Apache APISIX.

Ref: Blog Contributing Guide[2]

What tags do we want to have

I would suggest spilt the “Technology” tag into different ones, such as “Ecosystem”, “Observability”,”Monitoring”,”Logging” etc.

As @juzhiyuan suggests in the previous comments, the “Datadog” tag is indeed very precise. But this would result in a tag with only one blog under it. Think about this: if we were to add a tag for each specific brand, community, or product, the tags page [1] would look very messy.

If we take a step back, take it as a sort of “Observability” or “Monitoring”, and add other blogs under the same tag. That is better in my opinion. In other words, we would expect tags’ granary (how fine-grained it is) reach the function field level, but not dive into a specific brand, community, or product.

More complicated case

Do we need 2 or more tags for a blog? It is technically supported to do so, but it is also hard for maintenance. Take “Datadog” as an example again, if we were to spilt Technology” tag into different ones, such as “Ecosystem”, “Observability”,”Monitoring”,”Logging”, it fits in more than 1 tag. Do we choose the best fit tag or all fitting tags?

Reference

[1]https://apisix.apache.org/blog/tags

[2]https://apisix.apache.org/docs/general/blog

@adarrssh
Copy link
Contributor

Thank you very much @yzeng25 for this detailed explaination.

@adarrssh
Copy link
Contributor

image

Hey, I added some more tags and the output is that all the tags are coming in the same line (see image for better reference), will this be an issue in SEO optimization?.

@adarrssh
Copy link
Contributor

I investigated some other blog sites and all of them are using tags in different lines, like this one https://www.freecodecamp.org/news/how-to-build-reusable-components-with-props-in-react/
image

@juzhiyuan
Copy link
Member Author

Let's seek help from @yzeng25

@yzeng25
Copy link
Contributor

yzeng25 commented Jan 20, 2022

image

Hey, I added some more tags and the output is that all the tags are coming in the same line (see image for better reference), will this be an issue in SEO optimization?.

No, that is totally fine :)

SkyeYoung pushed a commit to SkyeYoung/apisix-website that referenced this issue Mar 3, 2022
* Update CHANGELOG.md

* Update CHANGELOG.zh-CN.md

* Update CHANGELOG.md

* Update CHANGELOG.zh-CN.md

* Update CHANGELOG.md

* feat: update deploy docs

* feat: separate build and run to 2 scripts (apache#600)

* feat: separate build and run

* doc: update doc about build and run

* doc: update doc about build and run

* Update schema-sync.sh

* Update develop.md

* Update develop.zh-CN.md

Co-authored-by: 琚致远 <juzhiyuan@apache.org>

* feat: remove unused dist folder

* doc: add etcd api version tips (apache#604)

* doc: add etcd version tips(apache#602)

* Update README.md

* Update README.zh-CN.md

Co-authored-by: 琚致远 <juzhiyuan@apache.org>

* Update deploy.md

* Update deploy.zh-CN.md

* feat(docs): update deploy docs

* feat(doc): added tip in deploy

* feat(doc): update run part in deploy

* feat(doc): added FAQ about how to redeploy

* fix: 2.0 release issues (apache#606)

* fix: remove json schema generation  from ci

* fix: use json schema generated from APISIX v2.0

* fix: ant-design/ant-design/issues/27396

* fix: using relative path to read conf (apache#617)

* fix: using  relative path

* fix path

* fix path

* feat: support custom server host, port and DAG lib path (apache#625)

* feat: support custom server port and dag lib path

* test: custom host

* test: add test case

* fix bug

* test

* test

* test

* feat support config etcd endpoints

* Update conf.json

* Update conf.go

* Update test-api.yml

* Update deploy.md

* Update deploy.zh-CN.md

* Update deploy.md

* Update conf.json

Co-authored-by: 琚致远 <juzhiyuan@apache.org>

* feat(doc): update config file

* feat(doc): update Note

* feat(docs): update NOTE

* feat(doc): update ETCD endpoints

* Update deploy.md

* feat: refactor folders (apache#629)

* feat: refactor api & frontend

* feat: remove some actions

* feat: added - v2.0

* feat: added ignored files for checker

* feat: trigger ci

* feat: trigger CI

* feat: added conf.json

* fix: build dashboard

* feat: remove demo temp

* feat: update build.sh

* chore: improve issue template and vscode (apache#660)

* test: add e2e test for field hosts in `route` api (apache#612)

* feat: ETCD cluster and APISIX cluster for CI

* feat: add test cases

* feat: add upstream service in docker compose

* fix: comment

* test: add test cases

* fix: code format

* test: add ci

* fix ci

* fix ci

* fix ci

* fix: remove consumer test

* test: sleep for sync

* test: e2e as an independent subproject

* fix CI error

* test: run docker

* fix: remove json schema generate script in docker build

* fix: check host and hosts config together

* fix ci

* test: add test cases for `host` in route

* remove useless code

* fix: using relative path to read conf (apache#617)

* fix: using  relative path

* fix path

* fix path

* fix conf path

* fix ci error

* fix etcd ip

* fix: code format

* run backend e2e test ci on v2 branch

* fix: code format

* fix: code format

* fix: CI error

* test: remove deploy CI again

* remove useless codes

* fix: go fmt

* test: don't use `go fmt`

* fix: code format

* fix: var name

* fix lint

* fix CI error

* debug

* fix: docker container name

* fix CI error

* fix CI error

* test: add more test cases

* fix CI error

* chore: remove useless code

* fix: go fmt

* fix: refactor test code

* fix: check body

* fix small issue

* fix: update docker compose

* fix CI

* test

* test

* test: build image first

* test: revert subnet ip in docker compose

* fix by review

* fix: docker compose

* test: add test cases

* fix: remove useless code

* fix: code format

* test: code format

* feat: added e2e test for Login page (apache#619)

* feat: added Front-end e2e test YAML file

* feat: added login e2e test

* feat: update Login.e2e.js

* Update Login.e2e.js

* feat: added e2e readme

* feat: added licence

* feat: added  start-server-and-test package

* feat: update login test case

* Update frontend-e2e-test.yml

* feat: added logout test case

* Update frontend-e2e-test.yml

* feat: added login failed with empty input

* feat: update CI

* feat: update text

* feat: added public.js

* feat: change logout timeout

* feat: Added e2e test documentation link to development.md

* Update develop.md

* Update develop.zh-CN.md

* Update README.md

Co-authored-by: 琚致远 <juzhiyuan@apache.org>

* CI: collect golang unit test code coverage (apache#654)

* fix: promethus incorrect value when update route (apache#666)

* feat: deploy with Docker (apache#657)

* feat: added Docker

* feat: added License header

* feat: added line in docs

* Update test-docker.yml

* feat(doc): update docs

* feat: added extra line

* feat: added Go Proxy in Dockerfile

* feat: update Dockerfile

* chore: update docs

* fix: copy correct files

* feat: improve Dockerfile

* Revert "feat: improve Dockerfile"

This reverts commit c68a4c4e479147e65efae4611ba162bd2c465928.

* fix run fail

* feat: update docs

* fix: compatible with Golang conf

* Squashed commit of the following:

commit 94450bf6ad52cdcac8d527c7e7fbf9e8fa1c4ab3
Author: litesun <7sunmiao@gmail.com>
Date:   Tue Nov 3 10:19:04 2020 +0800

    fix: promethus incorrect value when update route (apache#666)

commit de8bdbf6ff867a05dffbd05151b1ba07603f46d2
Author: nic-chen <33000667+nic-chen@users.noreply.github.com>
Date:   Tue Nov 3 07:50:29 2020 +0800

    CI: collect golang unit test code coverage (apache#654)

commit 722c0fdeddbc34723f730e36a4cff004889f7093
Author: litesun <7sunmiao@gmail.com>
Date:   Tue Nov 3 00:03:06 2020 +0800

    feat: added e2e test for Login page (apache#619)

    * feat: added Front-end e2e test YAML file

    * feat: added login e2e test

    * feat: update Login.e2e.js

    * Update Login.e2e.js

    * feat: added e2e readme

    * feat: added licence

    * feat: added  start-server-and-test package

    * feat: update login test case

    * Update frontend-e2e-test.yml

    * feat: added logout test case

    * Update frontend-e2e-test.yml

    * feat: added login failed with empty input

    * feat: update CI

    * feat: update text

    * feat: added public.js

    * feat: change logout timeout

    * feat: Added e2e test documentation link to development.md

    * Update develop.md

    * Update develop.zh-CN.md

    * Update README.md

    Co-authored-by: 琚致远 <juzhiyuan@apache.org>

commit 915ce8300b8138eb986737e6df1201fff63d3b57
Author: nic-chen <33000667+nic-chen@users.noreply.github.com>
Date:   Mon Nov 2 21:13:34 2020 +0800

    test: add e2e test for field hosts in `route` api (apache#612)

    * feat: ETCD cluster and APISIX cluster for CI

    * feat: add test cases

    * feat: add upstream service in docker compose

    * fix: comment

    * test: add test cases

    * fix: code format

    * test: add ci

    * fix ci

    * fix ci

    * fix ci

    * fix: remove consumer test

    * test: sleep for sync

    * test: e2e as an independent subproject

    * fix CI error

    * test: run docker

    * fix: remove json schema generate script in docker build

    * fix: check host and hosts config together

    * fix ci

    * test: add test cases for `host` in route

    * remove useless code

    * fix: using relative path to read conf (apache#617)

    * fix: using  relative path

    * fix path

    * fix path

    * fix conf path

    * fix ci error

    * fix etcd ip

    * fix: code format

    * run backend e2e test ci on v2 branch

    * fix: code format

    * fix: code format

    * fix: CI error

    * test: remove deploy CI again

    * remove useless codes

    * fix: go fmt

    * test: don't use `go fmt`

    * fix: code format

    * fix: var name

    * fix lint

    * fix CI error

    * debug

    * fix: docker container name

    * fix CI error

    * fix CI error

    * test: add more test cases

    * fix CI error

    * chore: remove useless code

    * fix: go fmt

    * fix: refactor test code

    * fix: check body

    * fix small issue

    * fix: update docker compose

    * fix CI

    * test

    * test

    * test: build image first

    * test: revert subnet ip in docker compose

    * fix by review

    * fix: docker compose

    * test: add test cases

    * fix: remove useless code

    * fix: code format

    * test: code format

commit 94d024544df0caff6aef69f6ca9792954a285304
Author: 琚致远 <juzhiyuan@apache.org>
Date:   Mon Nov 2 13:17:42 2020 +0800

    chore: improve issue template and vscode (apache#660)

* Revert "Squashed commit of the following:"

This reverts commit 93d38eef07058f5c65ac1eb83aac9d04ec12d24d.

* feat: remove output from ignore files

Co-authored-by: nic-chen <johz@163.com>

* feat: use web instead of frontend (apache#674)

* feat: use web instead of frontend

* feat: rename frontend to web

* feat: remove all frontend to web

* feat: support get plugin schema based on schema_type (apache#651)

* feat: support get plugin schema based on schema_type

* fix: ci errors

* fix: run error casued by api-breaker.lua

* fix: get schema_type from query and add some test

* fix: update schema.json file

* fix: update validate to support schematype

* fix: properties:{} validate failed

* fix: some code errors refer to the review

* test: add linter for manager api (apache#655)

* test: add go lint

* fix lint

* fix by review

* fix errors

* test: run lint on v2.0

* fix: text format

* fix: os check

* fix typo

* fix: fmt --> log

* fix log

* fix: unnecessary nil check around range for lint

* fix: trigger lint for push to branch v2.0

* feat: update plugin to 1.0.10

* fix: enable HTTPS setting unsuccessful in Route (apache#692)

* fix: wrong stepHeader after edit MatchingRules

* feat: disable plugin orchestration when select forcehttps

* feat: update Route transform

* feat: cache Front-end e2e CI node_modules (apache#696)

* chore: refactor `conf` of `manager api` (apache#693)

* feat: refactor conf

* fix default listen port

* fix build and run scripts

* fix: docs

* chore: remove useless file

* fix docker for test

* fix CI

* fix CI

* fix ci

* fix: `-c` conf dir  -->  `-p` work dir

* fix go test error

* fix conf

* fix: revert changes

* fix: remove useless comment

* fix: remove useless comment

* doc: add comment for config

* doc: todo

* fix: config format

* fix: if secret use default value, should generate a random string to replace it.

* fix comment style

* fix: change web dir in docker file

* doc: update comments

* fix:bug that dirty data exists after updating route and wrong mod for prod env (apache#704)

* fix: route bug, dirty data exists after updating

* fix mod for env

* fix mod for env

* fix error log

* fix error log

* chore: refactor error log for `manager api` (apache#689)

* chore: refactor log

* fix: custom log by conf

* feat: add error log

* fix default config

* fix CI fail

* fix: should not save log to file by default

* test: add test case

* test: add test case

* fix CI fail

* fix error

* fix CI

* fix error

* fix according to reviews

* test: more test cases

* fix error

* chore: use `/dev/stdout` as default log file path

* fix typo

* fix docker for logs dir

* fix CI fail

* fix: delete useless files

* fix: change file name

* bugfix: dashboard 2.0 failed to fetch ssl certificate not found  (apache#719)

* fix: set ssl status, since it's default 0

* add test cases

* test: add test cases

* fix: update test cases

* fix: test case fail

* test: remove hosts in hosts setting

* fix: according review

* fix: according review

* chore: add comment

* fix: update order (apache#744)

* feat(Consumer): use username instead of id (apache#742)

* feat(Consumer): use username instead of id

* feat: remove duplicated var

* chore: exit if any error and specify the download file name when download by `wget`. (apache#751)

fix apache#646

* fix: an error will occur if `pass_host` is set to `node` when creating upstream (apache#750)

* fix: bug apache#749

* fix: bug apache#749

* test: add test cases

* fix: CI

* fix: CI fail

* test: add e2e test cases for upstream (apache#738)

* fix: react warnings (apache#747)

* fix: update json schema (apache#754)

* chore: move the Dockerfile to `test` folder, because it was used for testing (apache#753)

* feat: convert uri to uris (apache#740)

* feat: deploy with docker (apache#701)

* feat: added deploy with docker CD

* feat: docker deploy test

* fix: CI

* fix: path of `config.yaml`

* fix: CI fail

* docs: update doc for docker deploy

* fix: typo

* fix: add EOF && trigger  CD

Co-authored-by: nic-chen <johz@163.com>
Co-authored-by: kv <gxthrj@163.com>

* fix: invalid values from the manager-api (apache#736)

* feat: return None when timestamp is invalid

* chore: added TODO

* docs: add makefile && modify  develop and deploy  docs (apache#729)

* docs: add makefile && modify  develop and deploy  docs

* docs: Make the makefile clearer

* docs: modify frontend to web

* doc: two blankline between commands

* doc: remove blanklien EOF

* docs: remove make run/stop in makefile

* docs: make readme readable

* docs: declear in readme

* docs: make readme readable

* docs: remove dependencies in readme

* docs: check english desc

* docs: style adjust

* docs: sync makefile desc

* docs: remove blank

* docs: style adjust

* docs: remove ENV=local in deploy

* fix: modify lint ci

* docs: unify go-lint

* docs: check all text

* docs: makefile Aligned

* docs: update style

* docs: add markdown code style

* docs: fix  syntax

* docs: remove Self-referencing

* docs: user guide

* docs: use header

* docs: style fix

* docs: add desc

* docs: modify 'pack' to 'package'

* docs: unify manager-api

* docs: mv Install to Installation

* docs: node to Node.js

* docs: source codes to Source Codes

* docs: Source Codes

* fix: mkdir -p ./output/logs in makefile build

* feat: support specifying APISIX path to generate json schema (apache#765)

* feat: support specifying APISIX path to generate json schema

* doc: update doc about schema sync

* fix: doc

* fix: errors

* fix: error according to test

* test

* no message

* test

* fix: remove debug

* test: add consumer e2e test (apache#735)

* add consumer e2e test
add public method "PartialBody"

* test: add end with EOL

* add test data plane to case 2
delete some useless code

* modify code style

* fix: makefile build error (apache#767)

* fix: used dashboard add consumer of jwt, would have an error when get the jwt token (apache#768)

* feat: update changelog (apache#771)

* Update CHANGELOG.md

* Update CHANGELOG.zh-CN.md

* docs: update change log

Co-authored-by: nic-chen <johz@163.com>

* fix: consumer schema for auth plugin (apache#770)

* fix: consumer schema for auth plugin

* fix: update by jsonschema

* fix: json schema

* fix: doc (apache#772)

* fix: doc (apache#774)

* feat: remove CD for PR

* fix: closed WatchResponse channel when cancel function is called (apache#779) (apache#795)

* ci: fix CI naming (apache#799)

* fix: make cli test more compatible (apache#798)

* test: fix e2e test unstable (apache#800)

* fix: double scroll bar in plugin page (apache#801)

* feat(docs): improve README & Deploy (apache#785)

* feat(doc): update README & deploy

* feat(docs): added FAQ

* fix: linkx

* feat(docs): update deploy with docker

* feat(docs): update FAQ

* feat: update README

* feat: update README

* feta: update README

* fix: link

* feat: update deploy with docker

* feat(docs): added tip for some users

* feat(doc): improve deploy with docker

* feat(docs): improve deploy with docker

* feat(doc): update run with docker

* feat(doc): improve deploy

* feat(doc): added more info

* feat(doc): added more info

* feat(doc): remove extra info

* feat: added more detailed

* fix: CI fail according `api/conf/conf.yaml ` is  changed.

* fix: revert changed

* feat(docs): improve English version

* feat(docs): use frontend instead, just like backend

* feat(docs): remove extra statements

* feat(docs): update typo

* feat(docs): remove startup with message

* feat: update CI's name

Co-authored-by: nic-chen <johz@163.com>

* feat: skip puppeteer chromium download when build (apache#808)

* feat(Makefile): update release-src (apache#816)

* ci: fix CI fail (apache#818)

* ci: fix CI fail

* ci: fix CI fail

* ci: fix CI fail

* test: add e2e test for config route with service_id or upstream_id (apache#810)

* test: add e2e test for config route with service_id or upstream_id

* test: fix route test

* test: fix route test

* test: fix route test

* test: fix route test format

* test: fix route test format

* test: fix test format

* test: add test on data plane

* test: fix test conflict

* feat: install signal handler for graceful shutdown (apache#737) (apache#796)

* Revert "test: add consumer e2e test (apache#735)" (apache#829)

This reverts commit c140f41acdc90b53db3b349f63a43503666a76fe.

* feat: add a hanlder unit test for upstream and remove init

* append license

* revert unreviewed pr (apache#841)

Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com>
Co-authored-by: 琚致远 <juzhiyuan@apache.org>
Co-authored-by: jiayx <jiayx@users.noreply.github.com>
Co-authored-by: nic-chen <johz@163.com>
Co-authored-by: liuxiran <belovedxixi@126.com>
Co-authored-by: YuanSheng Wang <membphis@gmail.com>
Co-authored-by: kv <gxthrj@163.com>
Co-authored-by: idbeta <idbeta@gmail.com>
Co-authored-by: Peter Zhu <starszcan@gmail.com>
Co-authored-by: EnableAsync <43645467+EnableAsync@users.noreply.github.com>
Co-authored-by: ShiningRush <277040271@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers SEO
Projects
None yet
3 participants