トピックページとカテゴリページの両方で一貫して実現する方法があるかもしれませんが、カテゴリID を取得する方法が2つあります。カテゴリページの場合は以下の通りです。
<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup('controller:navigation/category');
api.onPageChange((url, title) => {
console.log(controller.get("category.id"));
});
</script>
トピックページでは同様の方法で以下のように取得できます。
<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup('controller:topic');
api.onPageChange((url, title) => {
console.log(controller.get("model.category_id"));
});
</script>
カテゴリページの例では、category.name や category.slug を代わりに使用することもできますが、トピックモデルでは category_id しか利用できないため、名前を取得するにはもう少し作業が必要です。いずれにせよ、カテゴリ名やスラッグが変更されても一貫しているため、ID を使う方がよいでしょう。