[Feature Request]: Disable "Books" Button in the TOP #2624

Closed
opened 2026-02-05 04:38:50 +03:00 by OVERLORD · 11 comments
Owner

Originally created by @christianhz01 on GitHub (Feb 2, 2022).

Describe the feature you'd like

Removing the books button above

Describe the benefits this feature would bring to BookStack users

I would like users to access a book exclusively via a shelf in order to have a clear structure and separation of topics. For example, if you have the shelf "Team1" and "Team2" and both teams have different books with the name "Documentation", you can not distinguish via the tab books, which belongs where.

Additional context

No response

Originally created by @christianhz01 on GitHub (Feb 2, 2022). ### Describe the feature you'd like Removing the books button above ### Describe the benefits this feature would bring to BookStack users I would like users to access a book exclusively via a shelf in order to have a clear structure and separation of topics. For example, if you have the shelf "Team1" and "Team2" and both teams have different books with the name "Documentation", you can not distinguish via the tab books, which belongs where. ### Additional context _No response_
OVERLORD added the 🔨 Feature Request label 2026-02-05 04:38:50 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Feb 2, 2022):

Hi @christianhz01,

For example, if you have the shelf "Team1" and "Team2" and both teams have different books with the name "Documentation", you can not distinguish via the tab books, which belongs where.

It should be noted that books don't specifically belong to a single shelf, they can be part of multiple shelves. When accessed in certain ways (Directly from link) the context of the shelf won't be shown to the user at all, it's only shown when accessed via a shelf. Due to this I'd still recommend keeping book names somewhat unique ("Team 1 Documentation").

I'm not really looking to provide options for each UI element within BookStack.
For customization we have the visual theme system for those happy to hack.
Alternatively, as a simpler solution, you could add the following to the "Custom HTML Head Content" option within the settings:

<style>
	header a[href$="/books"] {
		display: none;
	}
</style>

Note, these kind of tweaks are not supported so could possibly break upon upgrade.

@ssddanbrown commented on GitHub (Feb 2, 2022): Hi @christianhz01, > For example, if you have the shelf "Team1" and "Team2" and both teams have different books with the name "Documentation", you can not distinguish via the tab books, which belongs where. It should be noted that books don't specifically belong to a single shelf, they can be part of multiple shelves. When accessed in certain ways (Directly from link) the context of the shelf won't be shown to the user at all, it's only shown when accessed via a shelf. Due to this I'd still recommend keeping book names somewhat unique ("Team 1 Documentation"). I'm not really looking to provide options for each UI element within BookStack. For customization we have the [visual theme system](https://github.com/BookStackApp/BookStack/blob/development/dev/docs/visual-theme-system.md) for those happy to hack. Alternatively, as a simpler solution, you could add the following to the "Custom HTML Head Content" option within the settings: ```html <style> header a[href$="/books"] { display: none; } </style> ``` Note, these kind of tweaks are not supported so could possibly break upon upgrade.
Author
Owner

@christianhz01 commented on GitHub (Feb 2, 2022):

Hi @ssddanbrown ,

thanks, that sounds like a possible solution. I'll let you know when I've been able to test it.

LG

@christianhz01 commented on GitHub (Feb 2, 2022): Hi @ssddanbrown , thanks, that sounds like a possible solution. I'll let you know when I've been able to test it. LG
Author
Owner

@christianhz01 commented on GitHub (Feb 2, 2022):

@ssddanbrown In wich file I have to make this change?

@christianhz01 commented on GitHub (Feb 2, 2022): @ssddanbrown In wich file I have to make this change?
Author
Owner

@ssddanbrown commented on GitHub (Feb 2, 2022):

@ssddanbrown In wich file I have to make this change?

No file, it's an option within the settings of BookStack when logged in with an admin account.

@ssddanbrown commented on GitHub (Feb 2, 2022): > @ssddanbrown In wich file I have to make this change? No file, it's an option within the settings of BookStack when logged in with an admin account.
Author
Owner

@christianhz01 commented on GitHub (Feb 2, 2022):

Thanks, it is working :D

@christianhz01 commented on GitHub (Feb 2, 2022): Thanks, it is working :D
Author
Owner

@christianhz01 commented on GitHub (Feb 15, 2022):

Hi @ssddanbrown ,

I have something additional to the topic: If you would be redirected automatically from "https://wiki.xy.de/books" to "https://wiki.xy.de", you could avoid errors or queries of the users, which are caused by the "unknown page", which would not actually be directly callable. My first thought was a redirect in Apache, unfortunately this only works for /books and all subpages (according to my knowledge), I would need this function without being redirected from a subpage, otherwise you could also call another content. Would you think of a solution? Maybe also solvable with the custom HTML header?

Christian

@christianhz01 commented on GitHub (Feb 15, 2022): Hi @ssddanbrown , I have something additional to the topic: If you would be redirected automatically from "https://wiki.xy.de/books" to "https://wiki.xy.de", you could avoid errors or queries of the users, which are caused by the "unknown page", which would not actually be directly callable. My first thought was a redirect in Apache, unfortunately this only works for /books and all subpages (according to my knowledge), I would need this function without being redirected from a subpage, otherwise you could also call another content. Would you think of a solution? Maybe also solvable with the custom HTML header? Christian
Author
Owner

@ssddanbrown commented on GitHub (Feb 15, 2022):

Hi @christianhz01,
I don't understand what's meant by this:

you could avoid errors or queries of the users, which are caused by the "unknown page", which would not actually be directly callable.

Nor do I understand what you're attempting to achieve. You might need to explain the above line a little further since I don't know what errors are being referred to here.

@ssddanbrown commented on GitHub (Feb 15, 2022): Hi @christianhz01, I don't understand what's meant by this: > you could avoid errors or queries of the users, which are caused by the "unknown page", which would not actually be directly callable. Nor do I understand what you're attempting to achieve. You might need to explain the above line a little further since I don't know what errors are being referred to here.
Author
Owner

@christianhz01 commented on GitHub (Feb 15, 2022):

@ssddanbrown I have expressed myself somewhat incorrectly. "unknown page" is not an error but the normal /books page, I have with "unknown page" only meant that the user does not actually know the /books page, because the button is hidden at the top right. However, the user can come over hard-coded URLs on the /books page. To prevent this, I had the idea with the redirect.

@christianhz01 commented on GitHub (Feb 15, 2022): @ssddanbrown I have expressed myself somewhat incorrectly. "unknown page" is not an error but the normal /books page, I have with "unknown page" only meant that the user does not actually know the /books page, because the button is hidden at the top right. However, the user can come over hard-coded URLs on the /books page. To prevent this, I had the idea with the redirect.
Author
Owner

@ssddanbrown commented on GitHub (Feb 15, 2022):

Think you should be able to do this via the weberver without affecting child URLs. Have not tested it but for apache I think it would be something like this:

RedirectMatch 302 ^/books$ https://www.example.com/
@ssddanbrown commented on GitHub (Feb 15, 2022): Think you should be able to do this via the weberver without affecting child URLs. Have not tested it but for apache I think it would be something like this: ``` RedirectMatch 302 ^/books$ https://www.example.com/ ```
Author
Owner

@christianhz01 commented on GitHub (Feb 15, 2022):

Thanks a lot, that's exactly what I was looking for 😃

@christianhz01 commented on GitHub (Feb 15, 2022): Thanks a lot, that's exactly what I was looking for 😃
Author
Owner

@CrowLin commented on GitHub (Jul 24, 2024):

Thanks, it works for me. 😃

@CrowLin commented on GitHub (Jul 24, 2024): Thanks, it works for me. 😃
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#2624