Coder Social home page Coder Social logo

html-formatter's Introduction

DEPRECATED

I'm surprised that people are still using this. This is a terrible piece of software. I wrote it years ago on a 10" laptop from my tent while camping somewhere in Armenia (yes that's a valid excuse for writing bad software :P) PRs welcome, but until then I would recommend you don't use this.

HTML Formatter

HTML Formatter re-indents HTML. This is not clean or safe at the moment, but I couldn't find anything else on Packagist that does the job.

Everyone makes sure to stick to standards when it comes to his/her code (or at least I hope they do), but 99% of the HTML on the web looks completely messed up.

This is far from perfect, but if speed does not matter (this implementation is slooow, it was the quickest and dirties solution that came to my mind), because the HTML is cached or something, then this will do.

Installation

If you still don't use Composer, get started here: Composer - Getting Started

# assuming you chose to install Composer globally
$ composer require mihaeu/html-formatter:*

Usage

<?php

require __DIR__.'/vendor/autoload.php';

echo Mihaeu\HtmlFormatter::format('<h1>Hello World</h1><p>Test</p>');

Which should produce something along the lines of:

<h1>
	Hello World
</h1>
<p>
	Test
</p>

html-formatter's People

Contributors

ckressibucher avatar mihaeu avatar rattrap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

html-formatter's Issues

newline seems to get removed...

line feeds inside text nodes are silently removed...
I worked around this by replacing line feeds with other whitespace before (which is probably not the most elegant solution):

            $content = str_replace("\r\n", "\n", $content);
            $content = str_replace("\n", " ", $content);
            $content = HtmlFormatter::format($content);

Getting Error : Warning: str_repeat(): Second argument has to be greater than or equal to 0

Error line is : https://github.com/mihaeu/html-formatter/blob/master/src/HtmlFormatter.php#L48

Passed html :

require __DIR__.'/vendor/autoload.php';

echo Mihaeu\HtmlFormatter::format("<html lang='en' dir='ltr'><head><title>My Website</title></head><body class='homepage'><div class='container'><h1 class='h1-title'>H1 Title</h1><div class='body-content'>Body Content</div></div></body></html>");
// Result is
Warning:  str_repeat(): Second argument has to be greater than or equal to 0 : https://github.com/mihaeu/html-formatter/blob/master/src/HtmlFormatter.php#L48
<html lang='en' dir='ltr'>
<head>
    <title>
        My Website
    </title>
</head>
<body class='homepage'>
    <div class='container'>
        <h1 class='h1-title'>
            H1 Title
        </h1>
        <div class='body-content'>
            Body Content
        </div>
    </div>
</body>
</html>

if i add if else check for error location, no more error

if($indent > $indentWith || $indent == $indentWith) $lf = "\n".str_repeat($indentWith, $indent);
else $lf = "";

After my if else check and remove (html from $tagsWithoutIndentation) result is :

<html lang='en' dir='ltr'>
    <head>
        <title>
            My Website
        </title>
    </head>
    <body class='homepage'>
        <div class='container'>
            <h1 class='h1-title'>
                H1 Title
            </h1>
            <div class='body-content'>
                Body Content
            </div>
        </div>
    </body>
</html>

I am using your library functions for my module (HTML tag manager module) : https://github.com/trk/AvbMarkupHtml/blob/master/AvbMarkupHtml.module.php#L262

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.