How does the reader / read guideline badges work?

AI 生成的摘要

The discussion revolves around how the “read guideline” badge works on Discourse sites. cregox asks how the badge is awarded, as they read the guidelines but didn’t receive it. zogstrip responds that the badge is awarded when a user reaches the bottom of the /faq page. However, cregox disputes this, saying that they’ve read the guidelines multiple times without receiving the badge.

grahamperrin explores the possibility that reading the guidelines at either the /faq or /guidelines URL could award the badge. zogstrip confirms that, according to the code, reading either URL should be effective.

wolftune raises a concern about the badge being awarded for visiting /faq instead of /guidelines when an external FAQ is set up. sam suggests disabling the badge in admin/badges, but wolftune wants to keep the badge active only for visiting /guidelines. They find a workaround by hiding the /faq links using CSS customization.

I’m not the biggest reader out there, but I do read a lot (and I love the whole “need to read” concept behind discourse! :slight_smile: ). I did read guidelines and got no badge (on other discourse sites).

How exactly do they work? Why might I not be getting 'em?

It’s awarded whenever you reach the bottom of the page.

I’ve read somewhere (couldn’t find it now) that’s not it and there are other measures taken to prevent precisely that. Also, I did reach bottom many times, so it’s not working.

I’m pretty sure it’s based solely on the user reaching the bottom of the /faq page :wink:

Reading this alongside Why is Guidelines called FAQ? Can we link to GUIDELINES and FAQ from hamburger menu? (2015-11-13)

For badge grant purposes, was/is it equally effective to read the content at the /guidelines URL?

I ask because Discourse Meta shows that I read the guidelines only twenty minutes ago, but I recall seeing the guidelines – or something very similar, with the public park metaphor – months earlier.

It is, of course, possible that my earlier reading of /faq or /guidelines was at a different Discourse site, or that the earlier reading was partial (not enough for the badge). But I’m curious about URL equivalence.

According to the code it should work if you read either /faq or /guidelines

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/components/watch-read.js.es6#L10

Can we turn off the granting of this badge for FAQ?

We use a different FAQ link to an actual FAQ and have /guidelines go to the Guidelines. I found that users are still getting granted this badge by merely visiting /about/faq even though that just redirects to a different real FAQ. We want to have this badge only granted for visiting /guidelines.

You can enable or disable whatever badge you want in admin/badges it has [ ] Enable badge of every system badge.

Well, I want the badge, but I want it to be granted only for visiting /guidelines and not for visiting /faq (this is when we have set an external FAQ so that “Guidelines” shows up again in the nav system).

Anyway, I found an adequate workaround: I used a CSS customization to hide the faq links so that it’s unlikely for anyone to go to any FAQ at all:

.faq-link, .nav-item-faq {
    display: none !important;

If we want an FAQ separately from Guidelines, we can add links in other ways, distinct from the specific classes. And this way, we get to keep the badge active for reading the Guidelines.