Frank Seitz
and 1 contributors

NAME

Prty::Sdoc::Line - Zeile einer Sdoc-Quelldatei

BASE CLASS

Prty::TextFile::Line

METHODS

Methods

type() - Ermittele Zeilentyp

Synopsis

    ($type,$depth) = $ln->type;

Description

Ermittele den Zeilentyp und liefefere diesen zurück.

item() - Test auf List-Item

Synopsis

    ($itemType,$label,$indentation,$text) = $ln->item;
    ($itemType,$label,$indentation,$text) = $ln->item($nextLine);

Description

Anlysiere die Zeile darauf hin, ob diese ein List-Item beschreibt, ihr Text also einem der folgenden Muster entspricht:

    o Text        (Punktliste)
    * Text        (Punktliste)
    + Text        (Punktliste)
    
    1. Text       (nummerierte Liste)
    1) Text       (nummerierte Liste)
    
    [Text]: Text  (Beschreibungsliste)
    [Text:] Text  (Beschreibungsliste)
    <Text>: Text  (Beschreibungsliste)
    <Text:> Text  (Beschreibungsliste)
    {Text}: Text  (Beschreibungsliste)
    {Text:} Text  (Beschreibungsliste)
    :Text: Text   (Beschreibungsliste)
    :Text:: Text  (Beschreibungsliste)

Ist dies nicht der Fall, liefert die Methode eine leere Liste zurück. Ist dies der Fall liefert die Methode vier Werte zurück:

$itemType

Typ des Labels. Fünf Itemtypen werden unterschieden:

    o, *, + (Punktliste)
    #       (numerierte Liste)
    []      (Beschreibungsliste)
$label

Im Falle einer Punktliste das Symbol, im Falle einer numerierten Liste die Zahl (ohne Punkt oder Klammer), im Falle einer Beschreibungsliste der Labeltext.

$indentation

Die Einrückung des Listenelements. Alle Folgezeilen mit (mindestens) dieser Einrückung werden als zugehörig zum Listenelement angesehen. Diese Einrückung ist die Anzahl an Zeichen bis zum ersten Buchstaben des Textes. Es wird davon ausgegangen, dass die weiteren Zeilen genauso eingerückt sind. Ausnahme: Beschreibungsliste. Da der Labeltext hier schwankt, wird die Einrückung der nächsten Zeile genommen, sofern es sich nicht um eine Leerzeile oder das nächste Item handelt. Wird diese Angabe benötigt, muss der Parameter $nextLine angegeben sein. Andernfalls wird der initale Whitespace plus vier Zeichen angenommen.

    |  o Text Text Text Text Text
    |    Text Text Text Text Text
    |    Text Text Text Text Text
     ----
         ^ Textbeginn der ersten Zeile
    
    |  1) Text Text Text Text Text
    |     Text Text Text Text Text
    |     Text Text Text Text Text
    | ...
    | 10) Text Text Text Text Text
    |     Text Text Text Text Text
     -----
          ^ Textbeginn der ersten Zeile
    
    |  [Text]: Text Text Text Text Text
    |      Text Text Text Text Text
    |      Text Text Text Text Text
    
    |  [Text:] Text Text Text Text Text
    |      Text Text Text Text Text
    |      Text Text Text Text Text
    
    |  :Text: Text Text Text Text Text
    |      Text Text Text Text Text
    |      Text Text Text Text Text
    
    |  :Text:: Text Text Text Text Text
    |      Text Text Text Text Text
    |      Text Text Text Text Text
    
     ------
           ^ initialer Whitespce der Folgezeile -oder-
             initialer Whitespace plus vier Zeichen
$text

Die erste Zeile des Listenelements, bei dem das Label durch Whitespace ersetzt ist.

    |    Text Text Text Text Text
     ----
       ^ Textbeginn der ersten Zeile
    
    |     Text Text Text Text Text
     -----
       ^ Textbeginn der ersten Zeile
    
    |      Text Text Text Text Text
     ------
        ^ initialer Whitespace der Folgezeile -oder-
          der ersten Zeile plus vier Zeichen

VERSION

1.108

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2017 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.