a bit more organization and cleanup

This commit is contained in:
Joby 2023-09-09 03:48:33 +00:00
parent f39dd9e1c2
commit 713446093a
47 changed files with 492 additions and 177 deletions

View file

@ -2,10 +2,9 @@
namespace ByJoby\HTML\Containers\DocumentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningRoot;
use ByJoby\HTML\Tags\ContainerTagInterface;
use ByJoby\HTML\Tags\TagInterface;
interface BodyTagInterface extends ContainerTagInterface, SectioningRoot, FlowContent
interface BodyTagInterface extends ContainerTagInterface, TagInterface
{
}
}

View file

@ -2,9 +2,10 @@
namespace ByJoby\HTML\Containers\DocumentTags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\Tags\ContentTagInterface;
use Stringable;
interface TitleTagInterface extends ContentTagInterface, MetadataContent
interface TitleTagInterface
{
}
public function setContent(string|Stringable $content): static;
public function content(): string|Stringable;
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface FlowContent
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface HeadingContent extends FlowContent
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface MetadataContent
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface PhrasingContent extends FlowContent
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface SectioningContent extends FlowContent
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\ContentCategories;
interface SectioningRoot
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\DisplayTypes;
interface DisplayBlock
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\DisplayTypes;
interface DisplayContents
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\DisplayTypes;
interface DisplayInline
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\DisplayTypes;
interface DisplayInlineBlock
{
}

View file

@ -1,7 +0,0 @@
<?php
namespace ByJoby\HTML\DisplayTypes;
interface DisplayNone
{
}

View file

@ -5,6 +5,6 @@ namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\HeadingContent;
use ByJoby\HTML\Tags\AbstractContainerTag;
abstract class AbstractHeaderTag extends AbstractContainerTag implements HeadingContent
abstract class AbstractHeaderTag extends AbstractContainerTag
{
}
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -20,7 +18,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/address
*/
class AddressTag extends AbstractContainerTag implements DisplayBlock, FlowContent
class AddressTag extends AbstractContainerTag
{
const TAG = 'address';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -18,7 +15,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article
*/
class ArticleTag extends AbstractContainerTag implements DisplayBlock, FlowContent, SectioningContent
class ArticleTag extends AbstractContainerTag
{
const TAG = 'article';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside
*/
class AsideTag extends AbstractContainerTag implements DisplayBlock, FlowContent, SectioningContent
class AsideTag extends AbstractContainerTag
{
const TAG = 'aside';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer
*/
class FooterTag extends AbstractContainerTag implements DisplayBlock, FlowContent
class FooterTag extends AbstractContainerTag
{
const TAG = 'footer';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -14,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header
*/
class HeaderTag extends AbstractContainerTag implements DisplayBlock, FlowContent
class HeaderTag extends AbstractContainerTag
{
const TAG = 'header';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main
*/
class MainTag extends AbstractContainerTag implements DisplayBlock, FlowContent
class MainTag extends AbstractContainerTag
{
const TAG = 'main';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -16,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav
*/
class NavTag extends AbstractContainerTag implements DisplayBlock, FlowContent, SectioningContent
class NavTag extends AbstractContainerTag
{
const TAG = 'nav';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -18,7 +16,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/search
*/
class SearchTag extends AbstractContainerTag implements DisplayBlock, FlowContent
class SearchTag extends AbstractContainerTag
{
const TAG = 'search';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\ContentSectioningTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section
*/
class SectionTag extends AbstractContainerTag implements DisplayBlock, FlowContent, SectioningContent
class SectionTag extends AbstractContainerTag
{
const TAG = 'section';
}

View file

@ -0,0 +1,55 @@
<?php
namespace ByJoby\HTML\Html5\Enums;
/**
* How much of the referrer to send when following the link.
*
* Description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
*/
enum ReferrerPolicy_a: string
{
/**
* DEFAULT: Send a full URL when performing a same-origin request, only send
* the origin when the protocol security level stays the same (HTTPS→HTTPS),
* and send no header to a less secure destination (HTTPS→HTTP).
*/
case strictOriginWhenCrossOrigin = "strict-origin-when-cross-origin";
/**
* means that the Referer header will not be sent.
*/
case noReferrer = "no-referrer";
/**
* The Referer header will not be sent to origins without TLS (HTTPS).
*/
case noReferrerWhenDowngrade = "no-referrer-when-downgrade";
/**
* The sent referrer will be limited to the origin of the referring page:
* its scheme, host, and port.
*/
case origin = "origin";
/**
* The referrer sent to other origins will be limited to the scheme, the
* host, and the port. Navigations on the same origin will still include the
* path.
*/
case originWhenCrossOrigin = "origin-when-cross-origin";
/**
* A referrer will be sent for same origin, but cross-origin requests will
* contain no referrer information.
*/
case sameOrigin = "same-origin";
/**
* Only send the origin of the document as the referrer when the protocol
* security level stays the same (HTTPS→HTTPS), but don't send it to a less
* secure destination (HTTPS→HTTP).
*/
case strictOrigin = "strict-origin";
/**
* The referrer will include the origin and the path (but not the fragment,
* password, or username). THIS VALUE IS UNSAFE, because it leaks origins
* and paths from TLS-protected resources to insecure origins.
*/
case unsafeUrl = "unsafe-url";
}

View file

@ -13,6 +13,7 @@ class Html5Parser extends AbstractParser
/** @var array<int,string> */
protected $tag_namespaces = [
'\\ByJoby\\HTML\\Html5\\Tags\\',
'\\ByJoby\\HTML\\Html5\\InlineTextSemantics\\',
'\\ByJoby\\HTML\\Html5\\TextContentTags\\',
'\\ByJoby\\HTML\\Html5\\ContentSectioningTags\\',
'\\ByJoby\\HTML\\Html5\\DocumentTags\\',

View file

@ -0,0 +1,326 @@
<?php
namespace ByJoby\HTML\Html5\InlineTextSemantics;
use ByJoby\HTML\Html5\Enums\BooleanAttribute;
use ByJoby\HTML\Html5\Enums\BrowsingContext;
use ByJoby\HTML\Html5\Enums\ReferrerPolicy_a;
use ByJoby\HTML\Html5\Enums\Rel_a;
use ByJoby\HTML\Tags\AbstractContainerTag;
use Stringable;
/**
* The <a> HTML element (or anchor element), with its href attribute, creates a
* hyperlink to web pages, files, email addresses, locations in the same page,
* or anything else a URL can address.
*
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
*/
class ATag extends AbstractContainerTag
{
const TAG = 'a';
/**
* Causes the browser to treat the linked URL as a download. Can be used
* with or without a filename value.
*
* @return null|string|Stringable|BooleanAttribute::true
*/
public function download(): null|string|Stringable|BooleanAttribute
{
if ($this->attributes()['download'] === BooleanAttribute::true) return BooleanAttribute::true;
else return $this->attributes()->asString('download');
}
/**
* Causes the browser to treat the linked URL as a download. Can be used
* with or without a filename value.
*
* @param null|string|Stringable|BooleanAttribute $download
* @return static
*/
public function setDownload(null|string|Stringable|BooleanAttribute $download): static
{
if ($download === BooleanAttribute::true) $this->attributes()['download'] = BooleanAttribute::true;
elseif ($download === BooleanAttribute::false) $this->unsetDownload();
elseif ($download) $this->attributes()['download'] = $download;
else $this->unsetDownload();
return $this;
}
/**
* Causes the browser to treat the linked URL as a download. Can be used
* with or without a filename value.
*
* @return static
*/
public function unsetDownload(): static
{
unset($this->attributes()['download']);
return $this;
}
/**
* The URL that the hyperlink points to. Links are not restricted to
* HTTP-based URLs they can use any URL scheme supported by browsers
*
* @return null|string|Stringable
*/
public function href(): null|string|Stringable
{
return $this->attributes()->asString('href');
}
/**
* The URL that the hyperlink points to. Links are not restricted to
* HTTP-based URLs they can use any URL scheme supported by browsers
*
* @param null|string|Stringable $href
* @return static
*/
public function setHref(null|string|Stringable $href): static
{
if ($href) $this->attributes()['href'] = $href;
else $this->unsetHref();
return $this;
}
/**
* The URL that the hyperlink points to. Links are not restricted to
* HTTP-based URLs they can use any URL scheme supported by browsers
*
* @return static
*/
public function unsetHref(): static
{
$this->unsetHreflang();
unset($this->attributes()['href']);
return $this;
}
/**
* Hints at the human language of the linked URL. No built-in functionality.
* Allowed values are the same as the global lang attribute.
*
* @return null|string|Stringable
*/
public function hreflang(): null|string|Stringable
{
return $this->attributes()->asString('hreflang');
}
/**
* Hints at the human language of the linked URL. No built-in functionality.
* Allowed values are the same as the global lang attribute.
*
* @param null|string|Stringable $hreflang
* @return static
*/
public function setHreflang(null|string|Stringable $hreflang): static
{
if ($hreflang) $this->attributes()['hreflang'] = $hreflang;
else $this->unsetHreflang();
return $this;
}
/**
* Hints at the human language of the linked URL. No built-in functionality.
* Allowed values are the same as the global lang attribute.
*
* @return static
*/
public function unsetHreflang(): static
{
unset($this->attributes()['hreflang']);
return $this;
}
/**
* A space-separated list of URLs. When the link is followed, the browser
* will send POST requests with the body PING to the URLs. Typically for
* tracking.
*
* @return null|string|Stringable
*/
public function ping(): null|string|Stringable
{
return $this->attributes()->asString('ping');
}
/**
* A space-separated list of URLs. When the link is followed, the browser
* will send POST requests with the body PING to the URLs. Typically for
* tracking.
*
* @param null|string|Stringable $ping
* @return static
*/
public function setPing(null|string|Stringable $ping): static
{
if ($ping) $this->attributes()['ping'] = $ping;
else $this->unsetPing();
return $this;
}
/**
* A space-separated list of URLs. When the link is followed, the browser
* will send POST requests with the body PING to the URLs. Typically for
* tracking.
*
* @return static
*/
public function unsetPing(): static
{
unset($this->attributes()['ping']);
return $this;
}
/**
* An enum indicating which referrer to use when fetching the resource.
*
* @return null|ReferrerPolicy_a
*/
public function referrerpolicy(): null|ReferrerPolicy_a
{
return $this->attributes()->asEnum('referrerpolicy', ReferrerPolicy_a::class);
}
/**
* An enum indicating which referrer to use when fetching the resource.
*
* @param null|ReferrerPolicy_a $referrerpolicy
* @return static
*/
public function setReferrerpolicy(null|ReferrerPolicy_a $referrerpolicy): static
{
if ($referrerpolicy) $this->attributes()['referrerpolicy'] = $referrerpolicy->value;
else $this->unsetReferrerpolicy();
return $this;
}
/**
* An enum indicating which referrer to use when fetching the resource.
*
* @return static
*/
public function unsetReferrerpolicy(): static
{
unset($this->attributes()['referrerpolicy']);
return $this;
}
/**
* The relationship of the linked URL as space-separated link types.
*
* @return Rel_a[]
*/
public function rel(): array
{
return $this->attributes()->asEnumArray('rel', Rel_a::class, ' ');
}
/**
* The relationship of the linked URL as space-separated link types.
*
* @param null|Rel_a|array<int|string,Rel_a> $rel
* @return static
*/
public function setRel(null|Rel_a|array $rel): static
{
if ($rel) $this->attributes()->setEnumArray('rel', $rel, Rel_a::class, ' ');
else $this->unsetRel();
return $this;
}
/**
* The relationship of the linked URL as space-separated link types.
*
* @return static
*/
public function unsetRel(): static
{
unset($this->attributes()['rel']);
return $this;
}
/**
* Where to display the linked URL, as the name for a browsing context (a
* tab, window, or <iframe>).
*
* @return null|string|Stringable|BrowsingContext
*/
public function target(): null|string|Stringable|BrowsingContext
{
return $this->attributes()->asEnum('target', BrowsingContext::class)
?? $this->attributes()->asString('target');
}
/**
* Where to display the linked URL, as the name for a browsing context (a
* tab, window, or <iframe>).
*
* @param null|string|Stringable|BrowsingContext $target
* @return static
*/
public function setTarget(null|string|Stringable|BrowsingContext $target): static
{
if (!$target) {
$this->unsetTarget();
} elseif ($target instanceof BrowsingContext) {
$this->attributes()['target'] = $target->value;
} else {
$this->attributes()['target'] = $target;
}
return $this;
}
/**
* Where to display the linked URL, as the name for a browsing context (a
* tab, window, or <iframe>).
*
* @return static
*/
public function unsetTarget(): static
{
unset($this->attributes()['target']);
return $this;
}
/**
* Hints at the linked URL's format with a MIME type. No built-in
* functionality.
*
* @return null|string|Stringable
*/
public function type(): null|string|Stringable
{
return $this->attributes()->asString('type');
}
/**
* Hints at the linked URL's format with a MIME type. No built-in
* functionality.
*
* @param null|string|Stringable $type
* @return static
*/
public function setType(null|string|Stringable $type): static
{
if ($type) $this->attributes()['type'] = $type;
else $this->unsetType();
return $this;
}
/**
* Hints at the linked URL's format with a MIME type. No built-in
* functionality.
*
* @return static
*/
public function unsetType(): static
{
unset($this->attributes()['type']);
return $this;
}
}

View file

@ -0,0 +1,70 @@
<?php
namespace ByJoby\HTML\Html5\InlineTextSemantics;
use ByJoby\HTML\Tags\AbstractContainerTag;
use Stringable;
/**
* The <abbr> HTML element represents an abbreviation or acronym.
*
* When including an abbreviation or acronym, provide a full expansion of the
* term in plain text on first use, along with the <abbr> to mark up the
* abbreviation. This informs the user what the abbreviation or acronym means.
*
* The optional title attribute can provide an expansion for the abbreviation or
* acronym when a full expansion is not present. This provides a hint to user
* agents on how to announce/display the content while informing all users what
* the abbreviation means. If present, title must contain this full description
* and nothing else.
*
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr
*/
class AbbrTag extends AbstractContainerTag
{
const TAG = 'abbr';
/**
* The title attribute has a specific semantic meaning when used with the
* <abbr> element; it must contain a full human-readable description or
* expansion of the abbreviation. This text is often presented by browsers
* as a tooltip when the mouse cursor is hovered over the element.
*
* @return null|string|Stringable
*/
public function title(): null|string|Stringable
{
return $this->attributes()->asString('title');
}
/**
* The title attribute has a specific semantic meaning when used with the
* <abbr> element; it must contain a full human-readable description or
* expansion of the abbreviation. This text is often presented by browsers
* as a tooltip when the mouse cursor is hovered over the element.
*
* @param null|string|Stringable $title
* @return static
*/
public function setTitle(null|string|Stringable $title): static
{
if ($title) $this->attributes()['title'] = $title;
else $this->unsetTitle();
return $this;
}
/**
* The title attribute has a specific semantic meaning when used with the
* <abbr> element; it must contain a full human-readable description or
* expansion of the abbreviation. This text is often presented by browsers
* as a tooltip when the mouse cursor is hovered over the element.
*
* @return static
*/
public function unsetTitle(): static
{
unset($this->attributes()['title']);
return $this;
}
}

View file

@ -2,7 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\Html5\Enums\BrowsingContext;
use ByJoby\HTML\Tags\AbstractTag;
use Stringable;
@ -17,7 +16,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
*/
class BaseTag extends AbstractTag implements MetadataContent
class BaseTag extends AbstractTag
{
const TAG = 'base';

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\HeadingContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -14,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hgroup
*/
class HgroupTag extends AbstractContainerTag implements DisplayBlock, HeadingContent
class HgroupTag extends AbstractContainerTag
{
const TAG = 'hgroup';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\Helpers\StringableEnumArray;
use ByJoby\HTML\Html5\Enums\As_link;
use ByJoby\HTML\Html5\Enums\CrossOrigin;
use ByJoby\HTML\Html5\Enums\ReferrerPolicy_link;
@ -22,7 +20,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
*/
class LinkTag extends AbstractTag implements MetadataContent
class LinkTag extends AbstractTag
{
const TAG = 'link';

View file

@ -2,7 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\Helpers\StringableEnumArray;
use ByJoby\HTML\Html5\Enums\HttpEquiv_meta;
use ByJoby\HTML\Html5\Enums\Name_meta;
@ -18,7 +17,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
*/
class MetaTag extends AbstractTag implements MetadataContent
class MetaTag extends AbstractTag
{
const TAG = 'meta';

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\ContentCategories\PhrasingContent;
use ByJoby\HTML\DisplayTypes\DisplayContents;
use ByJoby\HTML\Tags\AbstractContentTag;
/**
@ -15,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContentTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript
*/
class NoscriptTag extends AbstractContentTag implements MetadataContent, PhrasingContent, DisplayContents
class NoscriptTag extends AbstractContentTag
{
const TAG = 'noscript';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\ContentCategories\PhrasingContent;
use ByJoby\HTML\DisplayTypes\DisplayNone;
use ByJoby\HTML\Html5\Enums\BooleanAttribute;
use ByJoby\HTML\Html5\Enums\CrossOrigin;
use ByJoby\HTML\Html5\Enums\ReferrerPolicy_script;
@ -21,7 +18,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
*/
class ScriptTag extends AbstractContentTag implements MetadataContent, PhrasingContent, DisplayNone
class ScriptTag extends AbstractContentTag
{
const TAG = 'script';

View file

@ -2,7 +2,6 @@
namespace ByJoby\HTML\Html5\Tags;
use ByJoby\HTML\ContentCategories\MetadataContent;
use ByJoby\HTML\Tags\AbstractContentTag;
use Stringable;
@ -14,7 +13,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style
*/
class StyleTag extends AbstractContentTag implements MetadataContent
class StyleTag extends AbstractContentTag
{
const TAG = 'style';

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\SectioningRoot;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
use Stringable;
@ -18,7 +15,7 @@ use Stringable;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote
*/
class BlockquoteTag extends AbstractContainerTag implements FlowContent, SectioningRoot, DisplayBlock
class BlockquoteTag extends AbstractContainerTag
{
const TAG = 'blockquote';

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div
*/
class DivTag extends AbstractContainerTag implements DisplayBlock, SectioningContent
class DivTag extends AbstractContainerTag
{
const TAG = 'div';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl
*/
class DlTag extends AbstractContainerTag implements FlowContent, DisplayBlock
class DlTag extends AbstractContainerTag
{
const TAG = 'dl';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -13,7 +11,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption
*/
class FigcaptionTag extends AbstractContainerTag implements FlowContent, DisplayBlock
class FigcaptionTag extends AbstractContainerTag
{
const TAG = 'figcaption';
}

View file

@ -3,8 +3,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\Containers\ContainerGroup;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\NodeInterface;
use ByJoby\HTML\Tags\AbstractGroupedTag;
use ByJoby\HTML\Tags\TagInterface;
@ -17,7 +15,7 @@ use ByJoby\HTML\Tags\TagInterface;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure
*/
class FigureTag extends AbstractGroupedTag implements FlowContent, DisplayBlock
class FigureTag extends AbstractGroupedTag
{
const TAG = 'figure';

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractTag;
/**
@ -14,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr
*/
class HrTag extends AbstractTag implements FlowContent, DisplayBlock
class HrTag extends AbstractTag
{
const TAG = 'hr';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Html5\Enums\Type_list;
use ByJoby\HTML\Tags\AbstractContainerTag;
@ -17,7 +15,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li
*/
class LiTag extends AbstractContainerTag implements FlowContent, DisplayBlock
class LiTag extends AbstractContainerTag
{
const TAG = 'li';

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
*/
class MenuTag extends AbstractContainerTag implements FlowContent, DisplayBlock
class MenuTag extends AbstractContainerTag
{
const TAG = 'menu';
}

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Html5\Enums\BooleanAttribute;
use ByJoby\HTML\Html5\Enums\Type_list;
use ByJoby\HTML\Tags\AbstractContainerTag;
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol
*/
class OlTag extends AbstractContainerTag implements FlowContent, DisplayBlock
class OlTag extends AbstractContainerTag
{
const TAG = 'ol';

View file

@ -2,8 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\SectioningContent;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -15,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p
*/
class PTag extends AbstractContainerTag implements DisplayBlock, SectioningContent
class PTag extends AbstractContainerTag
{
const TAG = 'p';
}

View file

@ -2,7 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\DisplayTypes\DisplayBlock;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -14,7 +13,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre
*/
class PreTag extends AbstractContainerTag implements DisplayBlock
class PreTag extends AbstractContainerTag
{
const TAG = 'pre';
}

View file

@ -2,9 +2,6 @@
namespace ByJoby\HTML\Html5\TextContentTags;
use ByJoby\HTML\ContentCategories\FlowContent;
use ByJoby\HTML\ContentCategories\PhrasingContent;
use ByJoby\HTML\DisplayTypes\DisplayInline;
use ByJoby\HTML\Tags\AbstractContainerTag;
/**
@ -19,7 +16,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span
*/
class SpanTag extends AbstractContainerTag implements DisplayInline, FlowContent, PhrasingContent
class SpanTag extends AbstractContainerTag
{
const TAG = 'span';
}

View file

@ -12,7 +12,7 @@ use ByJoby\HTML\Tags\AbstractContainerTag;
* Tag description by Mozilla Contributors licensed under CC-BY-SA 2.5
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul
*/
class UlTag extends AbstractContainerTag implements DisplayBlock
class UlTag extends AbstractContainerTag
{
const TAG = 'ul';
}
}