Merge branch 'header_numbering'
commit
4b57eaef6f
BIN
.kettext.pl.swp
BIN
.kettext.pl.swp
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
.imply(header.ids)
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
kettext Rules
|
||||
Syntax
|
||||
````````````````````````````````
|
||||
As is the case with most any syntax, the best way to learn is to view the end product and the syntax used to generate it.
|
||||
|
||||
|
@ -10,7 +10,7 @@ However, so as to avoid creating examples of every syntax permutation possible,
|
|||
* Special rules
|
||||
* Example(s) and Source(s)
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
Formatting rules
|
||||
1. Formatting rules
|
||||
````````````````````````
|
||||
,,,,,,,,,,,,,,,,
|
||||
.imply
|
||||
|
@ -25,6 +25,7 @@ This line must start at the end and/or the beginning of the document and contain
|
|||
* //header.ids// -- create ids for every header from header text. Replaces spaces with underscores.
|
||||
* //header.depth// -- set the starting depth of headers. Defaults to 0.
|
||||
* //header.reverse// -- sets smaller headers to be considered as greater, e.g., "==== header ====" is greater than "====== header ======"
|
||||
* //header.numbering// -- automatically number headers relative to a parent header and prepend this value to the header content.
|
||||
* //version.hide// -- embeds the version of kettext used to create the document in a hidden format. Otherwise is added as a footer.
|
||||
* //version.none// -- completely removes version information from the output.
|
||||
|
||||
|
@ -42,7 +43,7 @@ The placement of formatters varies between the elements, but the general syntax
|
|||
|
||||
# .some_option(some_value).other_option(other_value)
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
Font styling and anchors
|
||||
2. Font styling and anchors
|
||||
````````````````````````
|
||||
Font may be styled in any of the following manners:
|
||||
|
||||
|
@ -80,7 +81,7 @@ If using an HTML convertor, you can pass CSS styling directly:
|
|||
|
||||
[[link]].href(http://kettek.exoss.net).style(border:1px solid red)
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
Headers
|
||||
3. Headers
|
||||
````````````````````````
|
||||
A header is some prominently formatted text that precedes a larger section of text and acts as a demarker. Headers are sized in order of precedence, with larger visual headers being considered the parent of smaller headers contained within.
|
||||
|
||||
|
@ -152,7 +153,7 @@ Formatters are placed at the end of the content line:
|
|||
Big Header .class(big_alt)
|
||||
````````````
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
Text Blocks
|
||||
4. Text Blocks
|
||||
````````````````````````
|
||||
Text blocks are a larger collection of text that may or may not span multiple lines. kettext uses 4 unique text blocks: **paragraph**, **preformatted**, **code**, and **block quote**.
|
||||
,,,,,,,,,,,,,,,,
|
||||
|
|
17
kettext.pl
17
kettext.pl
|
@ -320,6 +320,13 @@ for (my $h_i = 0; $h_i < scalar @headers; $h_i++) {
|
|||
}
|
||||
}
|
||||
|
||||
# set up our array for header numbering. The first element
|
||||
my @header_numbers;
|
||||
for (my $h_i = 0; $h_i < scalar @headers; $h_i++) {
|
||||
$header_numbers[$h_i] = 0;
|
||||
}
|
||||
my $header_number = 0; # at which numbering depth are we
|
||||
|
||||
# print 'em out
|
||||
if ($settings{'toc'}) {
|
||||
foreach (@elements) {
|
||||
|
@ -334,9 +341,17 @@ if ($settings{'toc'}) {
|
|||
if ($_->{type} == TYPE_HEADER) {
|
||||
my $hsize = $header_map{$_->{size}};
|
||||
my $htext = $_->{text};
|
||||
if ($settings{"header.numbering"}) {
|
||||
$header_number = $hsize;
|
||||
for (my $h_i = $header_number+1; $h_i < scalar @headers; $h_i++) {
|
||||
$header_numbers[$h_i] = 0;
|
||||
}
|
||||
$header_numbers[$header_number]++;
|
||||
$htext = ($settings{"header.numbering"} ? $header_numbers[$header_number].'. ' : '') . $htext;
|
||||
}
|
||||
my $hid = $_->{text};
|
||||
$hid =~ s/ /_/g;
|
||||
print("<h$hsize".($_->{opts} ? $_->{opts} : '').($settings{'header.ids'} ? " id=\"".$hid."\"" : '').">$_->{text}</h$hsize>\n");
|
||||
print("<h$hsize".($_->{opts} ? $_->{opts} : '').($settings{'header.ids'} ? " id=\"".$hid."\"" : '').">$htext</h$hsize>\n");
|
||||
} elsif ($_->{type} == TYPE_BREAK) {
|
||||
if ($previous_type == TYPE_BREAK) {
|
||||
print("<br />\n");
|
||||
|
|
Loading…
Reference in New Issue