Highlight PP-Macros Usage Example

External File Examples

Through the !HighlightFile macro, external source code files can be passed to Highlight and the HTML output injected into the final document.

First Example

We’ll import and syntax highlight the PureBASIC example file “example.pb” without passing any extra options to Highlight.

macro used:

!HighlightFile(example.pb)(purebasic)

output result:

; ==============================================================================
;                             PureBASIC Example File                            
; ==============================================================================
; "example.pb" | PureBASIC 5.61

For i=5 To 1 Step -1
  TEXT$ = "Iteration number: " + Str(i) + ~"\n\nDo you wish to continue?"
  UserChoice = MessageRequester("Countdown Dialog", TEXT$, #PB_MessageRequester_YesNo | #PB_MessageRequester_Info)
  If UserChoice = #PB_MessageRequester_No
    Break
  EndIf
Next

Second Example

Now we’ll highlight the same external file, this time passing some extra options to Highlight in order to show line numbers.

macro used:

!HighlightFile(example.pb)(purebasic)(--line-numbers --line-number-length=2)

output result:

 1 ; ==============================================================================
 2 ;                             PureBASIC Example File                            
 3 ; ==============================================================================
 4 ; "example.pb" | PureBASIC 5.61
 5 
 6 For i=5 To 1 Step -1
 7   TEXT$ = "Iteration number: " + Str(i) + ~"\n\nDo you wish to continue?"
 8   UserChoice = MessageRequester("Countdown Dialog", TEXT$, #PB_MessageRequester_YesNo | #PB_MessageRequester_Info)
 9   If UserChoice = #PB_MessageRequester_No
10     Break
11   EndIf
12 Next

Code Block Examples

With the !Highlight macro it’s possible to invoke Highlight on code blocks inside the document.

Let’s apply the !Highlight macro to a block of PureBASIC code, with some extra Highlight options for line numbering.

macro used:

!Highlight(purebasic)(-l -j 2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; PureBASIC 5.61 Example (inside markdown document)

Truth$ = "André Simon's Highlight is 100% cool!" ; Undeniable!

; Let's build an Ascii frame for this truthful statement:
; =======================================================

FrameCenter$ = "| " + Truth$ + ~" |\n"
FrameBorder$ = LSet("+", Len(FrameCenter$)-2, "-") + "+"
FramedTruth$ = FrameBorder$ + #LF$ + FrameCenter$ + FrameBorder$

; Now by printing FramedTruth$ you'll get:
; +---------------------------------------+
; | André Simon's Highlight is 100% cool! |
; +---------------------------------------+

Debug FramedTruth$
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

output result:

 1 ; PureBASIC 5.61 Example (inside markdown document)
 2 
 3 Truth$ = "André Simon's Highlight is 100% cool!" ; Undeniable!
 4 
 5 ; Let's build an Ascii frame for this truthful statement:
 6 ; =======================================================
 7 
 8 FrameCenter$ = "| " + Truth$ + ~" |\n"
 9 FrameBorder$ = LSet("+", Len(FrameCenter$)-2, "-") + "+"
10 FramedTruth$ = FrameBorder$ + #LF$ + FrameCenter$ + FrameBorder$
11 
12 ; Now by printing FramedTruth$ you'll get:
13 ; +---------------------------------------+
14 ; | André Simon's Highlight is 100% cool! |
15 ; +---------------------------------------+
16 
17 Debug FramedTruth$

Adding A Color Theme

Now we’ll import Highlight’s edit-purebasic theme into the document.

macro used:

!HighlightInlineTheme(edit-purebasic)

… which will inject the following code in the HTML document’s source:

<style type="text/css">
/* Style definition file generated by highlight 3.39, http://www.andre-simon.de/ */
/* highlight theme: PureBASIC */
body.hl { background-color:#ffffdf; }
pre.hl  { color:#000000; background-color:#ffffdf; font-size:10pt; font-family:'Courier New',monospace;}
.hl.num { color:#000000; }
.hl.esc { color:#0080ff; }
.hl.str { color:#0080ff; }
.hl.pps { color:#0080ff; }
.hl.slc { color:#00aaaa; }
.hl.com { color:#00aaaa; }
.hl.ppc { color:#924b72; }
.hl.opt { color:#000000; }
.hl.ipl { color:#0080ff; }
.hl.lin { color:#808080; }
.hl.kwa { color:#006666; font-weight:bold; }
.hl.kwb { color:#924b72; }
.hl.kwc { color:#006666; }
.hl.kwd { color:#0080ff; }


</style>

Enjoy…