Paragraphs now generate conversion breaks. This is nice.
parent
4b57eaef6f
commit
9bc47652d7
|
@ -12,3 +12,12 @@ kettext...
|
||||||
* **contributions and enhancements are //promoted//**
|
* **contributions and enhancements are //promoted//**
|
||||||
|
|
||||||
Most of all, kettext provides a general syntax that strives to keep your markup __clean__ and easy to maintain.
|
Most of all, kettext provides a general syntax that strives to keep your markup __clean__ and easy to maintain.
|
||||||
|
|
||||||
|
A clean example:
|
||||||
|
#,,,,,,,,,,,,,,,,
|
||||||
|
#A Section!
|
||||||
|
#````````````````
|
||||||
|
#This seems kinda **neat**!
|
||||||
|
#
|
||||||
|
# * Oh
|
||||||
|
# * My!
|
||||||
|
|
|
@ -45,27 +45,25 @@ The placement of formatters varies between the elements, but the general syntax
|
||||||
,,,,,,,,,,,,,,,,,,,,,,,,
|
,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
2. Font styling and anchors
|
2. Font styling and anchors
|
||||||
````````````````````````
|
````````````````````````
|
||||||
Font may be styled in any of the following manners:
|
Font may be styled by surrounding a section of text around specific delimiters.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# I am **bold**, but I can also be //italic//
|
# I am **bold**, but I can also be //italic//
|
||||||
#
|
|
||||||
# I am also ((small))!
|
# I am also ((small))!
|
||||||
#
|
|
||||||
# I may also contain ``code``!
|
# I may also contain ``code``!
|
||||||
#
|
|
||||||
# I can also be an [[anchor]], but you need an [[href]].href(#Font_styling_and_anchors)!
|
# I can also be an [[anchor]], but you need an [[href]].href(#Font_styling_and_anchors)!
|
||||||
|
|
||||||
I am **bold**, but I can also be //italic//
|
I am **bold**, but I can also be //italic//
|
||||||
|
|
||||||
I am also ((small))!
|
I am also ((small))!
|
||||||
|
|
||||||
I may also contain ``code``!
|
I may also contain ``code``!
|
||||||
|
|
||||||
I can also be an [[anchor]], but you need an [[href]].href(#Font_styling_and_anchors)!
|
I can also be an [[anchor]], but you need an [[href]].href(#Font_styling_and_anchors)!
|
||||||
|
|
||||||
----
|
----
|
||||||
Styled text may have formatters appended to them:
|
Styled text may have formatters appended to them:
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# **bold**.class(super_bold)
|
# **bold**.class(super_bold)
|
||||||
|
|
||||||
**bold**.class(super_bold)
|
**bold**.class(super_bold)
|
||||||
|
@ -73,6 +71,8 @@ Styled text may have formatters appended to them:
|
||||||
----
|
----
|
||||||
If using an HTML convertor, you can pass CSS styling directly:
|
If using an HTML convertor, you can pass CSS styling directly:
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# **bold**.style(font-size:16pt;color:#AA2299;)
|
# **bold**.style(font-size:16pt;color:#AA2299;)
|
||||||
|
|
||||||
**bold**.style(font-size:16pt;color:#AA2299;)
|
**bold**.style(font-size:16pt;color:#AA2299;)
|
||||||
|
@ -94,49 +94,70 @@ Header contents may have //text styling// applied.
|
||||||
,,,,,,,,,,,,,,,,
|
,,,,,,,,,,,,,,,,
|
||||||
Small Headers
|
Small Headers
|
||||||
````````````````
|
````````````````
|
||||||
Small headers are similar to other markup languages' headers, but are more flexible due to kettext's inherent design.
|
Small headers are similar to other markup languages' headers, but allow for more flexibility in plain text.
|
||||||
|
|
||||||
|
**example**:
|
||||||
|
|
||||||
|
#==== //Example Header// =====
|
||||||
|
==== //Example Header// ====
|
||||||
|
|
||||||
#==== //My Header// =====
|
|
||||||
==== //My Header// ====
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Headers may use any character to signify their lead or close:
|
Headers may use any character to signify their lead or close:
|
||||||
|
|
||||||
#~~~~ My Tilde'd Header ~~~~
|
**example**:
|
||||||
~~~~ My Tilde'd Header ~~~~
|
|
||||||
|
#~~~~ Example Tilde'd Header ~~~~
|
||||||
|
~~~~ Example Tilde'd Header ~~~~
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Headers do not require a close:
|
Headers do not require a close:
|
||||||
|
|
||||||
#==== My Header Without Close
|
**example**:
|
||||||
==== My Header Without Close
|
|
||||||
|
#==== Example Header Without Close
|
||||||
|
==== Example Header Without Close
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
If the close-style is used, the close must match the lead:
|
If the close-style is used, the close must match the lead:
|
||||||
|
|
||||||
#==== Header Without Close ----
|
**example**:
|
||||||
==== Header Without Close ----
|
|
||||||
|
#==== Example Header Without Close ----
|
||||||
|
==== Example Header Without Close ----
|
||||||
|
|
||||||
----
|
----
|
||||||
Formatters are applied at the end of the header content:
|
|
||||||
|
|
||||||
#==== Header With Formatter .class(alt_header) ====
|
Formatters are applied at the end of the header content.
|
||||||
==== Header With Formatter .class(alt_header) ====
|
|
||||||
|
|
||||||
#==== Header With Formatter .class(alt_header)
|
**example**:
|
||||||
==== Header With Formatter .class(alt_header)
|
|
||||||
|
#==== Example Header With Formatter .class(alt_header) ====
|
||||||
|
==== Example Header With Formatter .class(alt_header) ====
|
||||||
|
|
||||||
|
#==== Example Header With Formatter .class(alt_header)
|
||||||
|
==== Example Header With Formatter .class(alt_header)
|
||||||
|
|
||||||
,,,,,,,,,,,,,,,,
|
,,,,,,,,,,,,,,,,
|
||||||
Big Headers
|
Big Headers
|
||||||
````````````````
|
````````````````
|
||||||
Big headers are headers that span 3 lines and may have a more stylized visual. They are also the preferred header style of the author.
|
Big headers are headers that span 3 lines and may have a more stylized visual. They are also the preferred header style of the author.
|
||||||
|
|
||||||
|
**example**:
|
||||||
|
|
||||||
#,,,,,,,,,,,,
|
#,,,,,,,,,,,,
|
||||||
#Big Header
|
#Example Big Header
|
||||||
#````````````
|
#````````````
|
||||||
,,,,,,,,,,,,
|
,,,,,,,,,,,,
|
||||||
Big Header
|
Example Big Header
|
||||||
````````````
|
````````````
|
||||||
----
|
----
|
||||||
Big headers can use any character for the head and the lead. They are not required to match.
|
Big headers can use any character for the head and the lead. They are not required to match.
|
||||||
|
|
||||||
|
**example**:
|
||||||
|
|
||||||
#____________
|
#____________
|
||||||
#//Big Header//
|
#//Big Header//
|
||||||
#------------
|
#------------
|
||||||
|
@ -145,6 +166,9 @@ ____________
|
||||||
------------
|
------------
|
||||||
----
|
----
|
||||||
Formatters are placed at the end of the content line:
|
Formatters are placed at the end of the content line:
|
||||||
|
|
||||||
|
**example**:
|
||||||
|
|
||||||
#,,,,,,,,,,,,
|
#,,,,,,,,,,,,
|
||||||
#Big Header .class(big_alt)
|
#Big Header .class(big_alt)
|
||||||
#````````````
|
#````````````
|
||||||
|
@ -160,6 +184,9 @@ Text blocks are a larger collection of text that may or may not span multiple li
|
||||||
Paragraph
|
Paragraph
|
||||||
````````````````
|
````````````````
|
||||||
A paragraph is a section of text that spans one or more lines. A section of text will continue as a single paragraph until an empty line is found.
|
A paragraph is a section of text that spans one or more lines. A section of text will continue as a single paragraph until an empty line is found.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# This is a multi-line paragraph
|
# This is a multi-line paragraph
|
||||||
# that continues to here.
|
# that continues to here.
|
||||||
#
|
#
|
||||||
|
@ -170,13 +197,22 @@ that continues to here.
|
||||||
|
|
||||||
This is a **second paragraph**, note the above empty line.
|
This is a **second paragraph**, note the above empty line.
|
||||||
----
|
----
|
||||||
Formatters may be applied by having a separate formatter line at the start of the paragraph:
|
Formatters may be applied by having a separate formatter line at the start of the paragraph.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# .class(alt_paragraph)
|
# .class(alt_paragraph)
|
||||||
# This is a formatted paragraph.
|
# This is a formatted paragraph.
|
||||||
|
|
||||||
|
.class(alt_paragraph)
|
||||||
|
This is a formatted paragraph.
|
||||||
,,,,,,,,,,,,,,,,
|
,,,,,,,,,,,,,,,,
|
||||||
Preformatted
|
Preformatted
|
||||||
````````````````
|
````````````````
|
||||||
Preformatted text is a section of text that is unprocessed by kettext and put within its own paragraph-like section. Every line must be indented by a tab, 2 spaces, or 4 spaces.
|
Preformatted text is a section of text that is unprocessed by kettext and put within its own paragraph-like section. Every line must be indented by a tab, 2 spaces, or 4 spaces.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# .class(alt_pre)
|
# .class(alt_pre)
|
||||||
# This is preformatted text and
|
# This is preformatted text and
|
||||||
# it can span multiple lines.
|
# it can span multiple lines.
|
||||||
|
@ -194,6 +230,9 @@ Preformatted text is a section of text that is unprocessed by kettext and put wi
|
||||||
Code
|
Code
|
||||||
````````````````
|
````````````````
|
||||||
Code text is a section of text that is also unprocessed by kettext and follows the same general rules as preformatted. Every line must be indented by a tab, 2 spaces, or 4 spaces, and followed by a '#'.
|
Code text is a section of text that is also unprocessed by kettext and follows the same general rules as preformatted. Every line must be indented by a tab, 2 spaces, or 4 spaces, and followed by a '#'.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
# #.class(alt_code)
|
# #.class(alt_code)
|
||||||
# #This is code text and
|
# #This is code text and
|
||||||
# #it can span multiple lines as well.
|
# #it can span multiple lines as well.
|
||||||
|
@ -210,7 +249,10 @@ Code text is a section of text that is also unprocessed by kettext and follows t
|
||||||
,,,,,,,,,,,,,,,,
|
,,,,,,,,,,,,,,,,
|
||||||
Blockquotes
|
Blockquotes
|
||||||
````````````````
|
````````````````
|
||||||
Blockquotes are unprocessed sections of quoted text. They are signified by the first character of a line being a '>':
|
Blockquotes are unprocessed sections of quoted text. They are signified by the first character of a line being a '>'.
|
||||||
|
|
||||||
|
**example:**
|
||||||
|
|
||||||
#>.class(alt_block)
|
#>.class(alt_block)
|
||||||
#> This is a block quote. If blockquote.parse is not set, //font styling// is **ignored**!
|
#> This is a block quote. If blockquote.parse is not set, //font styling// is **ignored**!
|
||||||
|
|
||||||
|
|
|
@ -357,7 +357,9 @@ if ($settings{'toc'}) {
|
||||||
print("<br />\n");
|
print("<br />\n");
|
||||||
}
|
}
|
||||||
} elsif ($_->{type} == TYPE_PARAGRAPH) {
|
} elsif ($_->{type} == TYPE_PARAGRAPH) {
|
||||||
print("<p".($_->{opts} ? $_->{opts} : '').">$_->{text}</p>\n");
|
my $text = $_->{text};
|
||||||
|
$text =~ s/\n/<br>\n/g;
|
||||||
|
print("<p".($_->{opts} ? $_->{opts} : '').">$text</p>\n");
|
||||||
} elsif ($_->{type} == TYPE_PRE) {
|
} elsif ($_->{type} == TYPE_PRE) {
|
||||||
print("<pre".($_->{opts} ? $_->{opts} : '').">$_->{text}</pre>\n");
|
print("<pre".($_->{opts} ? $_->{opts} : '').">$_->{text}</pre>\n");
|
||||||
} elsif ($_->{type} == TYPE_CODE) {
|
} elsif ($_->{type} == TYPE_CODE) {
|
||||||
|
|
Loading…
Reference in New Issue