from __future__ import annotations

from abc import ABC, abstractmethod


class Subpage(ABC):
	"""
	Subpage: A per-project subpage provided by a plugin.
	"""

	@abstractmethod
	def subpage_name(self) -> str: ...

	def link_name(self, project: str) -> str | None:
		return None

	def subpage_html(self, project: str) -> str | None:
		return None

	def summary_value_suffix_html(self, project: str, project_enc: str) -> str | None:
		"""Optional HTML appended after the subpage \"view\" link on the project summary table."""
		return None