Pascal Syntax Hightlighter
Není problém nalézt implementaci převodu Pascal do HTML napsanou v pascalu nebo v PHP, ale v C# pro ASP.NET? Nic jsem nenašel, tak jsem vzal jeden kód, který převáděl C# do HTML a upravil ho.
Pascal Syntax Highlighter pro ASP.NET (C#)
Originální kód (C# do HTML) je na stránkách xtractpro.com. Mnou nabízená verze umí kromě originálního kódu C# i Object Pascal. Vše je včetně zdrojových textů a licence umožňuje volné užití (detailní licence na začátku zdrojového kódu)

Download (14K / zip / 18.3.2009 / source code)
Celá integrace spočívá v zařazení 2 (v případě jednoho jazyka) nebo 3 souborů (v případě podpory jak pascalu tak C#) do vašich ASP.NET stránek a začlenění CSS stylu (součástí balíku).
Ukázka použití v ASP.NET ve vašich stránkách:
1protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 request.Text = File.ReadAllText(Server.MapPath("test/PascalTest.pas"));
5
6 CPascalSyntaxHighlighter highlighter = new CPascalSyntaxHighlighter();
7 highlighter.ShowLineNumbers = ShowLineNumbers.Checked;
8 highlighter.ShowCollapsibleBlocks = ShowCollapsibleBlocks.Checked;
9 highlighter.ShowComments = ShowComments.Checked;
10 highlighter.Types = new string[] { "TObject" };
11 result.InnerHtml = highlighter.Process(request.Text);
12 }
- ShowLineNumbers - generovat čísla řádků (vypnuto)
- ShowCollapsibleBlocks - možnost schovávat části kódu přes JS (v ukázce není použito)
- ShowComments - zobrazovat komentáře (zapnuto)
- Types - možnost specifikovat rozeznávané třídy
Výsledek může vypadat třeba takto:
1unit DemoForm;
2
3
6
7
10
11
12interface
13
14uses
15 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
16 Dialogs, StdCtrls, FastMMUsageTracker;
17
18type
19 TfDemo = class(TForm)
20 bShowTracker: TButton;
21 procedure bShowTrackerClick(Sender: TObject);
22 private
23
24 public
25
26 class function Test(const sTest:string): Boolean; virtual;
27 end;
28
29var
30 fDemo: TfDemo;
31
32implementation
33
34
35
36procedure TfDemo.bShowTrackerClick(Sender: TObject);
37begin
38 ShowFastMMUsageTracker;
39end;
40
41class function TfDemo.Test(const sTest: string): Boolean;
42begin
43 Result := 'bla';
44end;
45
46end.