Please use the Question Tags to state the name and full version number of the Story Format you are using, as answers can vary based on this information. I will assume you are using Harlowe v2.1.0 which is the default story format for the Twine v2.2,1 application.
You can use a Story Variable to track if the Reader has chosen to enable the option or not, the Conditional Statements recipe in the Twine Cookbook shows you how to do that using a (set:) macro, it also shows how to conditionally show content based on the current value of the variable.
note: Ideally the initialisation of such story variables should be done within your project's startup tagged special passage.
You can use the (link:) macro combined with a (set:) macro to allow the Reader to change the current value of the story variable. The following example assumes that you have previously initialised a Boolean $showExplicit variable to a either true or false within your startup tagger passage, depending on what you want the default to be.
(link: "Enable Explicit Content")[
(set: $showExplicit to true)
]
(link: "Hide Explicit Content")[
(set: $showExplicit to false)
]
... then you can use the technique show in the previously linked recipe to conditionally show content based on the current value of $showExplicit like both of the following examples demonstrate.
(if: $showExplicit)[The variable equals true, show the Explicit Content]\
(else:)[Show the Non-explicit Content]
or
(unless: $showExplicit)[The variable equals false, show the Non-explicit Content]
(else:)[Show the Explicit Content]