Frage

Gibt es ein Tool (idealerweise Kommandozeilen-basiert), dass kann helfen, in die Quelle zu HTML-Tabellen in „grafischen Text“ Umwandlung (denken vielleicht ASCII-Art für HTML-Tabellen) für die Verwendung in Code-Kommentaren, wie unten gezeigt?

Um zum Beispiel der folgenden HTML-Tabelle Quelle angegeben

<TABLE BORDER=1>
  <CAPTION>A test table with merged cells</CAPTION>
  <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
  <TH ROWSPAN=2>other<BR>category<TH>Misc
  <TR><TH>height<TH>weight
  <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
  <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
</TABLE>

das Werkzeug ausgegeben würden so etwas wie die folgenden in Code-Kommentaren eingebettet werden (wie /*…*/):

/*
          A test table with merged cells
+----------+-------------------+----------+--------+ 
|          |      Average      |  other   |  Misc  |
|          +---------+---------+ category +--------|
|          |  height |  weight |          |        |
|----------+---------+---------+----------+--------|
| males    |   1.9   |  0.003  |          |        |
|----------+---------+---------+----------+--------|
| females  |   1.7   |  0.002  |          |        |
+----------+---------+---------+----------+--------+
*/

Hintergrund: Ein Stück Code, den Wert von HTML-Tabellen liest, kann mit Kommentaren kommentiert werden darstellend textbasierte grafische Darstellungen komplexer HTML-Tabellen-Layouts. Jemand den Code später beibehalten kann dann findet es einfacher zu verstehen, zum Beispiel, wie ein Stück Code ist häppchenweise eine HTML-Tabelle oder Werte an bestimmten Zellpositionen zupfen.

War es hilfreich?

Lösung

Es ist ein Werkzeug, das dies tut genau das, in Python geschrieben:

Siehe auch: https://github.com/gustavklopp/DashTable

  

DashTable

     

HTML-Tabelle ASCII-Tabelle, colspan & rowspan erlaubt!

Andere Tipps

HTML :: TreeBuilder und Text :: ASCIITable sieht aus wie sie nur ein wenig Klebstoff brauchen würde, um den Job zu tun.

Es gibt ein weiteres Werkzeug (YATG, Yet Another Table Generator), der dies tut genau das, in Python geschrieben:

Siehe auch: https://github.com/10gic/yatg

Beispiel Ausgabe (Emacs-Stil):

+---------+-----------------+----------+
|         | Average         | Red eyes |
|         +--------+--------+          |
|         | height | weight |          |
+---------+--------+--------+----------+
| Males   | 1.9    | 0.003  | 40%      |
+---------+--------+--------+----------+
| Females | 1.7    | 0.002  | 43%      |
+---------+--------+--------+----------+

Beispiel Ausgabe (Org-Mode-Stil):

| Header content 1 | Header content 2 |
|------------------+------------------|
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |

Beispiel Ausgabe (mysql-Stil):

+------------------+------------------+
| Header content 1 | Header content 2 |
+------------------+------------------+
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |
+------------------+------------------+

Beispiel Ausgabe (Abschlags-Stil):

| Header content 1 | Header content 2 |
|------------------|------------------|
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |

Ich weiß nicht, welche Sprache sprechen Sie aber ich benutze diese Funktion (PHP) für diese:

function text_table($data)
{
    $keys = array_keys(end($data));
    $size = array_map('strlen', $keys);

    foreach(array_map('array_values', $data) as $e)
        $size = array_map('max', $size,
            array_map('strlen', $e));

    foreach($size as $n) {
        $form[] = "%-{$n}s";
        $line[] = str_repeat('-', $n);
    }

    $form = '| ' . implode(' | ', $form) . " |\n";
    $line = '+-' . implode('-+-', $line) . "-+\n";
    $rows = array(vsprintf($form, $keys));

    foreach($data as $e)
        $rows[] = vsprintf($form, $e);
    return $line . implode($line, $rows) . $line;
}

Verwendung:

    echo "<pre>\n";
    echo text_table($array);
    echo "</pre>\n";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top