Letcrew Escapades

El blogo de loco - laravel, php, linux, python, thoughts

Дали документ с прайсом в формате WORDa, надо вставить на сайт

2 weeks ago · 1 MIN READ

Case - прислали прайс, табличку в ворде, надо выложить на сайт, через примитивный WYSIWYG

MS WORD файл я открыл в LibreOffice, оттуда сделал типо экспорт в HTML. Ну либре не оправдал надежд, все было плохо.

<tr>
            <td width="354" height="6" bgcolor="#ffffff" style="border: 1px solid #00000a; padding-top: 0in; padding-bottom: 0in; padding-left: 0.08in; padding-right: 0.08in">
                <p class="western" style="margin-left: 1.48in"><font color="#000000"><font size="2" style="font-size: 10pt">Ду20</font></font></p>
            </td>
            <td width="71" style="border: 1px solid #00000a; padding-top: 0in; padding-bottom: 0in; padding-left: 0.08in; padding-right: 0.08in">
                <p class="western" align="center"><font color="#000000"><font size="2" style="font-size: 10pt">1
                шт.</font></font></p>
            </td>
            <td width="117" bgcolor="#ffffff" style="border: 1px solid #00000a; padding-top: 0in; padding-bottom: 0in; padding-left: 0.08in; padding-right: 0.08in">
                <p class="western" align="right"><font color="#000000"><font size="2" style="font-size: 10pt">2&nbsp;950,0</font></font></p>
            </td>
        </tr>

google to help - smth like "online html clean"

Appeared 5 first solutions is either lame, simple, sucks, or required registration. Или аттрибуты не чистят... Короче вата.

Мысль о том, что ведь ещё давно ты видел почти все виды пакетов для клиентской, серверной, и прочего под node.

И вот он, гибкий, лайкнутый не мало, подходящий package

https://github.com/punkave/sanitize-html

Сначала хотел написать

yarn install sanitize-html

Ибо YARN очень хорошь, шустрый резвый, правда честно даже не знаю в чем отличии коренные от NPM

Например для Laravel 5.4 написал yarn install - и все супер. С санитайзом не получилось, пришлось классику

npm install sanitize-html

И вот такой кусочек говнокода сделал


var sanitizeHtml = require('sanitize-html');
var fs  = require('fs');

fs.readFile( __dirname + '/price.htm', function (err, data) {
    if (err) {
        throw err;
    }
    var dirty = data.toString();

    // Allow only a super restricted set of tags and attributes
    clean = sanitizeHtml(dirty, {
        allowedTags: [ 'b', 'i', 'em', 'strong', 'a' ],
        allowedAttributes: {
            'a': [ 'href' ]
        }
    });

    clean = sanitizeHtml(dirty, {
        allowedTags: sanitizeHtml.defaults.allowedTags.concat([ 'img' ])
    });

    var  filename = 'table.html';
    fs.writeFile(filename, clean, function (err) {
    });
});

и все neat & clean теперь в файле table.html

<tr>
        <td>
            <p>Ду40</p>
        </td>
        <td>
            <p>1
                шт.</p>
        </td>
        <td>
            <p>3 300,0</p>
        </td>
    </tr>
    <tr>
        <td>
            <p>Ду50</p>
        </td>
        <td>
            <p>1
                шт.</p>
        </td>
        <td>
            <p>3 450,0</p>
        </td>
    </tr>
    <tr>

Никаких настроек не трогал, взял примеры с гитхаба, вообщем просто работает, помогло.

И обязательно пошлите npm подальше, и попробуйте yarn

Про yarn

  • FAST, - правда
  • RELIABLE, - правда
  • AND SECURE DEPENDENCY MANAGEMENT - не изучал

Linux, WIndows, MacOS - и наверное что то ещё. Я знакомился с ним в ubuntu, zsh

···

Yuri Karasev


comments powered by Disqus


Proudly powered by Canvas · Sign In