Slug journey

./discourse-featured-tiles/javascripts/discourse/components/featured-tiles.gjs:52:      loadParams.tags = featuredTags;
./discourse-featured-tiles/javascripts/discourse/components/featured-tiles.gjs:127:        @tagName=""

./discourse-new-topic-dropdown/javascripts/discourse/components/custom-topic-dropdown.js:55:    let tags;
./discourse-new-topic-dropdown/javascripts/discourse/components/custom-topic-dropdown.js:63:        tags = settings.custom_option_tags
./discourse-new-topic-dropdown/javascripts/discourse/components/custom-topic-dropdown.js:76:          tags = null;
./discourse-new-topic-dropdown/javascripts/discourse/components/custom-topic-dropdown.js:84:    composerOptions["tags"] = tags;

./discourse-tag-icons/test/acceptance/post-body-tag-icons-test.js:7:function makeHashtagHTML(tag) {
./discourse-tag-icons/test/acceptance/tag-icons-test.js:10:  topicResponse.tags = ["tag1", "Tag2", "newsman"];

./discourse-tag-icons/javascripts/discourse/initializers/tag-icons.js:18:  const tagName = params.tagName || "a";
./discourse-tag-icons/javascripts/discourse/initializers/tag-icons.js:27:      path = `/tag/${tag}`;
./discourse-tag-icons/about.json:3:	"about_url": "https://meta.discourse.org/t/tag-icons/109757",

./discourse-tag-group-topic-filter/test/acceptance/filter-tag-test.gjs:12:    this.set("tagName", "exampleTag");
./discourse-tag-group-topic-filter/javascripts/discourse/components/filter-tag.gjs:15:  get tagName() {
./discourse-tag-group-topic-filter/javascripts/discourse/components/custom-filter.gjs:28:      this.selectedTags = [currentRoute.attributes?.tag.id];
./discourse-tag-group-topic-filter/javascripts/discourse/components/custom-filter.gjs:30:    if (currentRoute.name === "tags.intersection") {

./discourse-category-groups-component/javascripts/discourse/components/categories-groups.gjs:245:                                    @tagName="h4"

./discourse-compact-nav/spec/system/compact_nav_spec.rb:20:    visit "/tag/bananas"
./discourse-compact-nav/javascripts/discourse/api-initializers/navigation-bar-override.js:13:  const isTagPage = routeName === "tag.show";

./Fakebook/javascripts/discourse/api-initializers/discourse-fakebook.gjs:7:import TopicTags from "../components/topic-tags";
./Fakebook/javascripts/discourse/components/topic-tags.gjs:1:import discourseTags from "discourse/helpers/discourse-tags";

./DiscoTOC/spec/system/discotoc_timeline_user_spec.rb:145:  it "timeline will not appear automatically if auto_TOC_tags is set to a different tag" do
./DiscoTOC/javascripts/discourse/components/toc-heading.gjs:24:    const typeClass = this.args.item.tagName
./DiscoTOC/javascripts/discourse/services/toc-processor.js:124:    const topicTags = topic.tags || [];

./discourse-topic-excerpts/spec/system/topic_list_item_spec.rb:48:    visit("/tag/#{tag.name}") # Visit tag included in enabled_tags setting
./discourse-topic-excerpts/javascripts/discourse/services/excerpt-state.js:27:    const overrideInTag = enabledTags.includes(this.discovery.tag?.id);

./discourse-new-topic-button-theme-component/javascripts/discourse/components/custom-header-topic-button.gjs:26:    if (this.router.currentRoute.attributes?.tag?.id) {
./discourse-new-topic-button-theme-component/javascripts/discourse/components/custom-header-topic-button.gjs:67:      tags: this.currentTag,

./discourse-redditish-theme/javascripts/discourse/connectors/before-main-outlet/custom-category-banner.gjs:4:import CustomTagBanner from "../../components/custom-tag-banner";
./discourse-redditish-theme/javascripts/discourse/connectors/topic-list-item/item.gjs:15:import discourseTags from "discourse/helpers/discourse-tags";
./discourse-redditish-theme/javascripts/discourse/connectors/after-main-outlet/custom-right-sidebar.gjs:4:import SidebarAboutTag from "../../components/sidebar-about-tag";
./discourse-redditish-theme/javascripts/discourse/components/custom-tag-banner.gjs:23:                <a href="/tag/{{this.tag}}">
./discourse-redditish-theme/javascripts/discourse/components/add-to-sidebar.gjs:33:          (savedTag) => savedTag.name === tag.name
./discourse-redditish-theme/javascripts/discourse/components/sidebar-about-tag.gjs:98:    {{#if this.tagId}}
./discourse-redditish-theme/javascripts/discourse/components/sidebar-about-category.gjs:56:      tags: this.tag?.id,
./discourse-redditish-theme/javascripts/discourse/components/fake-input-create.gjs:38:        tags: this.tag?.id,
./discourse-redditish-theme/javascripts/discourse/components/custom-category-banner.gjs:14:    return this.router.currentRoute?.attributes?.tag;
./discourse-redditish-theme/javascripts/discourse/components/sidebar-welcome.gjs:30:      tags: this.args.tag?.id,
./discourse-redditish-theme/javascripts/discourse/components/sidebar-latest-topics.gjs:9:import discourseTags from "discourse/helpers/discourse-tags";

./discourse-sidebar-new-topic-button/javascripts/discourse/components/sidebar-new-topic-button.gjs:45:      tags: this.tag?.id,

./discourse-docs-card-filter/javascripts/discourse/components/tag-wrapper.gjs:11:  @discourseComputed("tagOrders", "tag.id")
./discourse-docs-card-filter/javascripts/discourse/components/cards-filter.gjs:59:          pluginTags.includes(`${tag.id}`) && !currentTags.includes(tag.id)

./discourse-homepage-feature-component/javascripts/discourse/components/featured-homepage-topics.gjs:147:        tags: [`${settings.featured_tag}`],

./discourse-central-theme/javascripts/discourse/connectors/below-site-header/top-blocks.gjs:21:      case "tags":

./discourse-discover-theme/spec/system/anon_discover_spec.rb:28:    expect(page).to have_css("button[data-tag-name='#{tag.name}'].--active")
./discourse-discover-theme/javascripts/discourse/components/navigation-list.gjs:42:      tagName: object.tag[0],
./discourse-discover-theme/javascripts/discourse/components/navigation-list.gjs:53:      tagName: locale.tag[0],

./discourse-remove-dashes-from-tag-names/javascripts/discourse/api-initializers/remove-dashes-from-tag-names.js:4:import { defaultRenderTag } from "discourse/lib/render-tag";
./discourse-remove-dashes-from-tag-names/javascripts/discourse/api-initializers/remove-dashes-from-tag-names.js:9:    const result = defaultRenderTag(tag, params);

./discourse-gated-topics-in-category/javascripts/discourse/connectors/topic-above-post-stream/topic-in-gated-category.gjs:10:      @tags={{this.model.tags}}
./discourse-gated-topics-in-category/javascripts/discourse/components/topic-in-gated-category.gjs:37:    const gatedByTag = this.tags?.some((t) => this.enabledTags.includes(t));

./discourse-showcased-categories/spec/system/showcased_categories_spec.rb:135:    expect(page).to have_tag("a", with: { class: "btn btn-more", href: "/tag/#{tag1}/l/latest" })
./discourse-showcased-categories/javascripts/discourse/components/showcased-topic-list.gjs:20:  tags = this.args.tags.length > 0 ? this.args.tags : "";
./discourse-showcased-categories/javascripts/discourse/components/two-topic-list.gjs:62:            @tags={{this.tags1}}

./discourse-linkify-words/javascripts/discourse-linkify/lib/utilities.js:153:      if (!(tag in skipTags) && !isSkippedClass(cls, skipClasses)) {
./discourse-linkify-words/javascripts/discourse-linkify/initializers/initialize-discourse-linkify.js:16:        tag = tag.trim().toLowerCase();

./discourse-topic-thumbnails/test/acceptance/suggested-topics-test.js:10:  test("list the tags", async function (assert) {
./discourse-topic-thumbnails/javascripts/discourse/services/topic-thumbnails.js:61:    return this.discovery.tag?.id;

./discourse-user-portfolio/javascripts/discourse/routes/user/portfolio.js:23:      filterParams["tags"] = filterTags;

./discourse-media-events/README.md:3:* This component adds event tracking for `<video>` and `<audio>` tags in posts via `api.decorateCookedElement`.

./discourse-kanban-theme/javascripts/discourse/initializers/initialize-discourse-kanban.js:70:                  params.tags,

./discourse-customize-new-topic-button-text/spec/system/can_create_topic_with_tag_spec.rb:24:    visit("/tags/c/#{category.slug}/#{category.id}/#{tag.name}")
./discourse-customize-new-topic-button-text/javascripts/discourse/connectors/before-create-topic-button/custom-new-topic-button-connector.gjs:10:      @tag={{@outletArgs.tag}}
./discourse-customize-new-topic-button-text/javascripts/discourse/components/custom-new-topic-button.gjs:52:        ? this.args.tag.map((tag) => tag.id)
./discourse-customize-new-topic-button-text/javascripts/discourse/lib/setting-util.js:14:  if (tagId) {

./footer-nav-experiment/javascripts/discourse/connectors/footer-nav/footer-nav-exp.gjs:208:      tags: this.router.currentRoute?.attributes?.tag?.id,

./discourse-sidebar-category-nav/javascripts/discourse/services/custom-navigation.js:44:        this.router.currentRouteName?.startsWith("tag."))

./discourse-categories-tag-column/javascripts/discourse/components/categories-tag-column.gjs:16:  @sort("tags", "sortProperties") sortedTags;

./discourse-tag-banners/javascripts/discourse/components/discourse-tag-banners.gjs:82:    const tag = this.currentRouteParams?.tag_id;
./discourse-tag-banners/javascripts/discourse/components/discourse-tag-banners-text-only.gjs:16:      {{discourseTag @tag.name displayName=@formattedTagName}}
./discourse-tag-banners/javascripts/discourse/components/discourse-tag-banners-presentation.gjs:26:          {{! hide descriptions on tag intersections}}

./discourse-tag-group-filters/javascripts/discourse/connectors/tag-navigation/custom-filter.gjs:8:    <TagGroupFilter @category={{this.category}} @tag={{this.tag}} />
./discourse-tag-group-filters/javascripts/discourse/connectors/category-navigation/custom-filter.gjs:8:    <TagGroupFilter @category={{this.category}} @tag={{this.tag}} />
./discourse-tag-group-filters/javascripts/discourse/components/box-tag.gjs:9:    return tag.id === activeTag?.id;
./discourse-tag-group-filters/javascripts/discourse/components/tag-selector.js:14:        this.allowedTags.some((allowedTag) => allowedTag.id === this.tag.id)
./discourse-tag-group-filters/javascripts/discourse/components/tag-group-filter.gjs:42:          tags: tagGroup.tag_names.map((name) => ({
./discourse-tag-group-filters/javascripts/discourse/components/tag-group-filter.gjs:80:                  @tag={{tag}}

./discourse-right-sidebar-blocks/test/acceptance/subcategory-list-test.js:33:    await visit("/tag/important");
./discourse-right-sidebar-blocks/test/acceptance/right-sidebar-test.js:107:    await visit("/tag/important");
./discourse-right-sidebar-blocks/javascripts/discourse/connectors/before-list-area/tc-right-sidebar.gjs:16:    "router.currentRoute.attributes.tag.id"
./discourse-right-sidebar-blocks/javascripts/discourse/connectors/before-list-area/tc-right-sidebar.gjs:43:        selectedRoutes.includes(`tag/${tagId}`)

./discourse-right-sidebar-blocks/javascripts/discourse/components/popular-tags.gjs:30:          return excludedTags.indexOf(tag) === -1;
./discourse-right-sidebar-blocks/javascripts/discourse/components/tag-topics.gjs:17:    const tagTopicsUrl = `/tag/${this.args.tag}.json`;

./discourse-reply-template-component/javascripts/discourse/initializers/init-discourse-reply-template-component.js:43:    checkboxDescription.innerHTML = htmlSafe(emojiUnescape(escape(tag)));

./discourse-topic-cards/javascripts/discourse/components/topic-tags-mobile.gjs:2:import discourseTags from "discourse/helpers/discourse-tags";

./discourse-topic-list-sidebars/test/acceptance/category-sidebars-test.js:52:      { category: [], name: "sidebar", tag: ["important"], topic_id: 280 },
./discourse-topic-list-sidebars/javascripts/discourse/components/topic-list-sidebar.gjs:62:    const tagId = this.tagId;

When wanting to move tag string to objects, the messagebus is also affected.

/tags/search/filter returns { id: 1, text: "tag-name", name: "tag-name" }.

Why text tho..

<MiniTagChooser

Composer as well.

resolving this

hello

hello2

hello3

topic

It can be ambiguous changing to the “new API”, when sending tags to the backend for a new topic

before

{ tags: ["tag name one", "123"] }

now

{ tags: [12, 13, 14] }

unsure if id or name. string or int

Category edit not seeing due to tag-chooser

Post revision currently stores names, so if the tag gets renamed, the link won’t exist any more.

Tag group page http://localhost:4201/tag_groups, creating, loading

topic tracking state

category templates