All logic is shown using graze.social nodes. Posts for testing the provided logic works as expected are included, but may not return the expected results if you have other logic in the feed definition.
not just link embeds, but also links only in the text?
Inside an "all of these" logic node: regex node looking for posts where the facet features uri is missing \. (a period symbol) and an "any of these" logic node. Inside the "any of these" node: an embed missing link node (which looks for links that have embeds) and a regex looking for post where the link card url contains ".gif?" (gifs can look like links, so it's ok if it has an embed link *if* that is a gif link)\
This logic set is available as a custom node in graze.social - just search "Exclude All Links" under the 'custom' tab in the feed editor.
don't want posts that quote posts with links either? add this logic. in graze.social, this requires using the JSON view of the feed definition.
"All of these" logic node with "exclude all links" custom node and a regex node that looks for posts missing a period in the hydrated_metadata.quote_post.record.facets[*].features[*].uri field. This field needs to be added manually by going to the JSON view and replacing "text" entry with the above under the "regex_matches".