class RakuAST::Doc::Paragraph { }

The RakuAST::Doc::Paragraph class contains the information about a logical paragraph in a RakuDoc block.

Support for RakuAST functionality is available in language version 6.e+ and was added in Rakudo compiler release 2023.02. In earlier language versions it is only available when specifying:

use experimental :rakuast;

Object introspection§

RakuAST::Doc::Paragraph objects are typically created when parsing Raku Programming Language code that has RakuDoc markers in it. So most developers will only need to know how to introspect the objects created.

method atoms§

.put for $paragraphs.atoms;
# Text before ␤B<and>␤ after markup␤

Returns the atoms of the paragraph. These are generally a mix of strings and RakuAST::Doc::Markup objects.

method Str§

put $paragraph;  # Text before B<and> after markup␤␤

Returns the string for the paragraph, with any markup stringified.

method raku§

# method .gist falls back to .raku
say $block;  # RakuAST::Doc::Paragraph.new(...

Returns the string that is needed for the creation of the paragraph using RakuAST calls.

Object creation§

One seldom creates RakuAST::Doc::Paragraph objects directly. This documentation is intended for those few people who'd like to devise their own way of programmatically building a RakuAST::Doc::Paragraph object.

method new§

method new(*@atoms)

The new method must be called to create a new RakuAST::Doc::Paragraph object. It takes any number of positional arguments as the atoms of the logical paragraph, where an atom is either a string or a RakuAST::Doc::Markup object.

Typically a RakuAST::Doc::Paragraph object is only created if a logical paragraph has at least one markup object.

my $paragraph = RakuAST::Doc::Paragraph.new(
  "Text before ",
  RakuAST::Doc::Markup.new(:letter<B>, :atoms("and")),
  " after markup\n"
);

Object modification§

method add-atom§

$paragraph.add-atom("baz\n");

Add an atom: should be a string, or a RakuAST::Doc::Markup object.