oliver-noth/

markup-check

通过URL获取HTML标记或直接提供标记,解析并检查其中特定的标签。

v1.2.4 2021-11-01 16:35 UTC

This package is auto-updated.

Last update: 2024-09-29 05:42:42 UTC


README

MarkupCheck 是一个 composer 包,它解析并检查由URL获取或直接提供的HTML标记中的特定标签。

Latest Stable Version Minimum PHP Version Type Coverage Semantic Versioning MIT license

目录

  1. 入门
    1. 要求
    2. 安装
  2. 使用
    1. 基本
    2. 进一步
  3. Docker
    1. 先决条件
    2. 设置
    3. 创建并运行Docker容器
    4. 单元测试
    5. 深入挖掘
  4. 作者

入门

要求

  • 您的本地机器必须运行至少PHP 8.0
  • 请确保已安装 composer

安装

使用 composer 下载并安装 MarkupCheck。

您可以将 MarkupCheck 添加为项目的本地依赖项

$ composer require oliver-noth/markupcheck

如果您只在开发期间需要 MarkupCheck,则应将其添加为开发时间依赖项

$ composer require --dev oliver-noth/markupcheck

使用

基本

首先实例化一个新的 markup 检查器

$factory = new \OliverNoth\MarkupCheck\Main\Factory();
$markupChecker = $factory->createHtmlMarkupChecker('https://getcomposer.org.cn/');

然后获取解析的标签

$parsedTags = $markupChecker->getParsedTags();

或者将它们作为 json 渲染

$markupChecker->renderParsedTagsAsJson();
exit;

解析的标签将以数组形式提供(以下是一个示例)

[
    'headings' => [
        'notes' => [
            'Markup contains exactly 1 first heading (h1 tag).',
        ],
        'tags' => [
            0 => [
                'name'  => 'h1',
                'rank'  => 1,
                'value' => 'First headline',
                'attributes' => [
                    'class'  => 'article',
                ],
            ],
        ],
    ],
    'anchors' => [
        'notes' => [
            'All anchors are linked correctly.',
        ],
        'tags' => [
          0 => [
              'name'  => 'a',
              'value' => 'Get your example here',
              'attributes' => [
                  'href'   => 'https://www.example.com',
                  'target' => '_blank',
                  'class'  => 'cta',
              ],
          ],
        ],
    ],
    'images' => [
        'notes' => [
            'All images seem to have either an alt attribute or a title attribute.',
        ],
        'tags' => [
          0 => [
              'name' => 'img',
              'attributes' => [
                  'src'   => 'https://www.example.com/image_01.jpg',
                  'alt'   => 'Image 01',
                  'class' => 'slider',
              ],
          ],
        ],
    ],
];

进一步

请参阅 example/basic-usage.php 以了解如何渲染解析的标签。

Docker

使用 ddev 在您的本地机器上设置一个 docker 容器。

先决条件

  • 请确保已安装并运行 docker。如果没有,请按照 这些说明 进行操作。

设置

使用 Homebrew/Linuxbrew 推荐的方法安装 ddev

$ brew tap drud/ddev && brew install ddev

创建并进入您的项目目录(根据您的需要替换文件夹名 `<PATH-TO-YOUR-PROJECT-DIRECTORY>/my-project`)

$ mkdir -p <PATH-TO-YOUR-PROJECT-DIRECTORY>/my-project
$ cd <PATH-TO-YOUR-PROJECT-DIRECTORY>/my-project

创建一个新的Docker容器

配置 ddev Docker 容器(根据您的需要替换项目名称 my-project

$ ddev config --project-name=my-project --project-type=php --php-version=8.0 --docroot="" --create-docroot --disable-settings-management --http-port=8088 --https-port=44388

创建配置容器并将 composer 包克隆到其中
重要提示:最终出现的提示 `Warning: ALL EXISTING CONTENT of the project root (~/my-project) will be deleted` 必须回答 'yes'

$ ddev composer create oliver-noth/markup-check

在创建的容器的文档根目录中创建 index.php

$ ddev exec chmod 755 example/write-index.sh && ddev exec ./example/write-index.sh

最后启动创建的容器

$ ddev start

启动容器后,您的项目可以通过 `http://my-project.ddev.site:8088` 访问.<br> 注意:子域名 my-project` 应替换为您之前选择的项目名称。

单元测试

此包已完全进行单元测试。您可以在创建的容器中运行它们

$ ddev exec vendor/bin/phpunit

显示代码覆盖率摘要需要启用代码覆盖率驱动程序。使用 xdebug,检查它并获取摘要

$ ddev xdebug
$ ddev xdebug status
$ ddev exec vendor/bin/phpunit --coverage-text

注意:尽管代码覆盖率达到了 100%,但容器可能显示较小的覆盖率。
在您的本地机器上运行它(假设在项目目录中安装了代码覆盖率驱动程序,如 xdebug)应该显示 100%。正在修复中...

$ vendor/bin/phpunit --coverage-text

深入挖掘

例如,可以通过进入容器来管理充当此类角色的容器的 Web 服务器行为。

$ ddev ssh

更多内容:完整文档可在此处找到 ddev.readthedocs.io

作者