Skip to content

Commit f934aad

Browse files
committed
feat: add about page with modern homepage design and styling
1 parent c222352 commit f934aad

File tree

4 files changed

+243
-27
lines changed

4 files changed

+243
-27
lines changed

content/about/_index.md

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
---
2+
title: "About Pascal"
3+
description: "Learn about Pascal's philosophy, history, and the various implementations available today"
4+
---
5+
6+
# About Pascal
7+
8+
Pascal is a programming language that embodies the principles of clarity, reliability, and educational excellence. Created by Niklaus Wirth in 1970, Pascal was designed to encourage good programming practices and make programming concepts accessible to learners while remaining powerful enough for professional software development.
9+
10+
## The Philosophy of Pascal
11+
12+
Pascal was born from a simple yet profound philosophy: **programming should be clear, structured, and understandable**. Niklaus Wirth designed Pascal not just as a programming language, but as a tool for teaching and learning the fundamental concepts of computer science.
13+
14+
Wirth famously said, "A good programming language is a conceptual universe for thinking about programming." Pascal provides exactly that—a clean, logical framework that mirrors how we naturally think about solving problems.
15+
16+
## Pascal's Enduring Principles
17+
18+
### Readability Above All
19+
Pascal's English-like syntax makes code self-documenting. When you read Pascal code, you understand not just *what* the program does, but *why* it does it. This clarity reduces bugs, simplifies maintenance, and makes collaboration natural.
20+
21+
```objectpascal
22+
program CalculateAverage;
23+
var
24+
numbers: array[1..10] of real;
25+
sum, average: real;
26+
i: integer;
27+
begin
28+
sum := 0;
29+
for i := 1 to 10 do
30+
begin
31+
write('Enter number ', i, ': ');
32+
readln(numbers[i]);
33+
sum := sum + numbers[i];
34+
end;
35+
36+
average := sum / 10;
37+
writeln('The average is: ', average:0:2);
38+
end.
39+
```
40+
41+
### Strong Foundation for Learning
42+
Pascal teaches fundamental programming concepts without the complexity that can obscure learning in other languages. Students learn about data types, control structures, procedures, and functions in their purest form.
43+
44+
### Reliability Through Structure
45+
Pascal's strong typing system and structured programming approach prevent entire classes of errors before they occur. The compiler catches mistakes early, leading to more robust software.
46+
47+
## Pascal's Evolution and Growth
48+
49+
Since its creation in 1970, Pascal has evolved far beyond its educational origins. Modern Pascal implementations power everything from desktop applications to web services, mobile apps to embedded systems.
50+
51+
The language gained massive popularity in the 1980s and 1990s with Turbo Pascal and later Delphi, proving that educational clarity and professional power could coexist beautifully.
52+
53+
Today, Pascal continues to thrive with active development communities, modern language features, and cross-platform capabilities that rival any contemporary programming language.
54+
55+
## Object Pascal: The Modern Evolution
56+
57+
Object Pascal extends Pascal's clarity into the world of object-oriented programming. It maintains Pascal's readable syntax while adding powerful features like classes, inheritance, interfaces, and generics.
58+
59+
Modern Object Pascal supports:
60+
- **Cross-platform development** - Write once, deploy everywhere
61+
- **Modern language features** - Generics, anonymous methods, RTTI
62+
- **Rich ecosystems** - Comprehensive libraries and frameworks
63+
- **Visual development** - Integrated designers and RAD tools
64+
65+
## Other Implementations of Pascal
66+
67+
Pascal, as a language family, has numerous implementations beyond the mainstream options. Each brings unique strengths and targets specific development scenarios:
68+
69+
### Oxygene (Elements Compiler)
70+
[Oxygene](https://www.elementscompiler.com/elements/oxygene/) is a modern Object Pascal implementation that compiles to .NET, Java, and native code. Developed by RemObjects Software, Oxygene brings Pascal's clarity to contemporary platforms while adding cutting-edge language features.
71+
72+
**Key Features:**
73+
- Compiles to .NET Framework, .NET Core, Java, and native platforms
74+
- Modern language features like LINQ, async/await, and nullable types
75+
- Full access to platform APIs and frameworks
76+
- Advanced IDE integration with Visual Studio and Fire
77+
78+
### PascalABC.NET
79+
[PascalABC.NET](http://pascalabc.net/) is a modern Pascal implementation for the .NET platform, developed in Russia. It's particularly popular in educational settings and combines traditional Pascal syntax with .NET power.
80+
81+
**Key Features:**
82+
- Full .NET integration with access to all .NET libraries
83+
- Modern Pascal syntax with object-oriented extensions
84+
- Built-in educational tools and simplified development environment
85+
- Strong focus on teaching programming concepts
86+
87+
### Smart Pascal
88+
[Smart Pascal](https://smartpascal.com/) brings Pascal to web development, compiling Pascal code to optimized JavaScript. It enables developers to use Pascal's clarity for both client-side and server-side web applications.
89+
90+
**Key Features:**
91+
- Compiles Pascal to JavaScript
92+
- Full DOM access and web API integration
93+
- Node.js support for server-side development
94+
- Visual web development tools
95+
96+
### Turbo51
97+
Turbo51 is a Pascal compiler specifically designed for 8051 microcontrollers, bringing Pascal's structured approach to embedded systems development.
98+
99+
**Key Features:**
100+
- Targets 8051 microcontroller family
101+
- Optimized code generation for resource-constrained environments
102+
- Pascal syntax for embedded systems programming
103+
104+
### Virtual Pascal
105+
Virtual Pascal was a popular Pascal implementation for OS/2 and Windows, known for its speed and compatibility. While no longer actively developed, it influenced many modern Pascal implementations.
106+
107+
### GNU Pascal (GPC)
108+
GNU Pascal is part of the GNU Compiler Collection, providing a free Pascal compiler that aims for ISO Pascal compatibility while adding useful extensions.
109+
110+
**Key Features:**
111+
- ISO Pascal standard compliance
112+
- GNU/Linux and Unix platform support
113+
- Integration with GNU development tools
114+
- Free and open source
115+
116+
### IP Pascal
117+
IP Pascal is an implementation focused on ISO Pascal standard compliance, providing a reference implementation for educational and research purposes.
118+
119+
For a comprehensive list of Pascal implementations, see the [Pascal implementations wiki](https://wiki.freepascal.org/Pascal_implementations).
120+
121+
## Why Pascal Matters Today
122+
123+
In an era of complex frameworks and rapidly changing technologies, Pascal's core values remain more relevant than ever:
124+
125+
**Clarity in Complexity**: As software systems grow more complex, Pascal's emphasis on readable, maintainable code becomes increasingly valuable.
126+
127+
**Learning Foundation**: Pascal continues to be an excellent first language, teaching programming fundamentals without unnecessary complexity.
128+
129+
**Professional Power**: Modern Pascal implementations prove that educational clarity and professional capability are not mutually exclusive.
130+
131+
**Cross-Platform Reality**: Today's Pascal tools enable true cross-platform development with native performance.
132+
133+
## Get Started with Pascal
134+
135+
Ready to experience Pascal's unique combination of clarity and power?
136+
137+
- **[Learn Pascal](/learn/)** - Start with our comprehensive tutorials
138+
- **[Documentation](/docs/)** - Explore Pascal's features and capabilities
139+
- **[Community](/community/)** - Connect with Pascal developers worldwide
140+
141+
## Explore the Pascal Ecosystem
142+
143+
- **[Free Pascal Compiler](https://www.freepascal.org/)** - The leading open-source Pascal compiler
144+
- **[Lazarus IDE](https://www.lazarus-ide.org/)** - Cross-platform visual development environment
145+
- **[Pascal Standards](https://www.pascal-central.com/standards.html)** - Language specifications and standards
146+
- **[Academic Research](https://scholar.google.com/scholar?q=pascal+programming+language)** - Pascal in computer science education
147+
148+
## Join the Pascal Community
149+
150+
Pascal has a vibrant, welcoming community of developers, educators, and enthusiasts:
151+
152+
- **[Pascal Forums](https://forum.lazarus.freepascal.org/)** - Discuss Pascal development with experts
153+
- **[User Groups](/community/#user-groups)** - Find Pascal developers in your area
154+
- **[Educational Resources](/learn/)** - Materials for teaching and learning Pascal
155+
- **[Open Source Projects](https://github.com/topics/pascal)** - Contribute to Pascal projects on GitHub
156+
157+
Pascal isn't just a programming language—it's a philosophy of clear thinking, structured problem-solving, and elegant code. Whether you're learning your first programming concepts or building professional applications, Pascal provides the clarity and power you need to succeed.

hugo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ title = 'Pascal - Readable, Reliable Programming'
77

88
[markup]
99
[markup.highlight]
10-
style = 'monokai'
10+
style = 'catppuccin-frappe'
1111
lineNos = true
1212
tabWidth = 2
1313
codeFences = true
@@ -33,6 +33,10 @@ title = 'Pascal - Readable, Reliable Programming'
3333
name = 'Community'
3434
url = '/community/'
3535
weight = 40
36+
[[menu.main]]
37+
name = 'About'
38+
url = '/about/'
39+
weight = 15
3640

3741
# Enable section pages
3842
[taxonomies]

layouts/index.html

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,41 @@
22
<!-- Hero Section -->
33
<section class="hero">
44
<div class="container">
5-
<h1>Pascal</h1>
6-
<p class="hero-subtitle">A language empowering everyone<br>to build readable and reliable software.</p>
7-
<div class="hero-actions">
8-
<a href="{{ "/learn/" | relURL }}" class="hero-cta primary">Get Started</a>
9-
<a href="{{ "/docs/" | relURL }}" class="hero-cta secondary">Documentation</a>
10-
</div>
11-
<p class="version-info">Latest: Free Pascal 3.2.2 • Lazarus 3.6</p>
12-
</div>
13-
</section>
14-
15-
<!-- Code Example Section -->
16-
<section class="content-section">
17-
<div class="container">
18-
<h2 class="section-title">Clean, Readable Code</h2>
19-
{{ $codeExample := `program HelloWorld;
5+
<div class="hero-content">
6+
<div class="hero-text">
7+
<h1>Pascal</h1>
8+
<p class="hero-subtitle">Build readable, fast and reliable software.</p>
9+
<div class="hero-actions">
10+
<a href="{{ "/learn/" | relURL }}" class="hero-cta primary">Get Started</a>
11+
<a href="{{ "/docs/" | relURL }}" class="hero-cta secondary">Documentation</a>
12+
</div>
13+
<p class="version-info">Latest: Free Pascal 3.2.2 • Lazarus 4.2</p>
14+
</div>
15+
<div class="hero-code">
16+
{{ $heroCode := `program webserver;
17+
{$mode objfpc}{$H+}
18+
19+
uses
20+
{$ifdef UNIX}
21+
cthreads, cmem,
22+
{$endif}
23+
fphttpapp, httpdefs, httproute;
24+
25+
procedure route1(aReq: TRequest; aResp: TResponse);
26+
begin
27+
aResp.Content:='<html><body><h1>Hello Pascal!</h1></body></html>';
28+
end;
29+
2030
begin
21-
writeln('Hello, World!');
22-
writeln('Welcome to Pascal programming');
31+
HTTPRouter.RegisterRoute('/', @route1);
32+
Application.Port := 1999;
33+
Application.Threaded := true;
34+
Application.Initialize;
35+
Application.Run;
2336
end.` }}
24-
{{ highlight $codeExample "objectpascal" "linenos=true" }}
37+
{{ highlight $heroCode "objectpascal" "linenos=false" }}
38+
</div>
39+
</div>
2540
</div>
2641
</section>
2742

static/css/main.css

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,21 @@ a:hover {
187187
/* Hero section */
188188
.hero {
189189
padding: var(--spacing-3xl) 0;
190-
text-align: center;
191190
background-color: var(--bg-secondary);
192191
}
193192

193+
.hero-content {
194+
display: grid;
195+
grid-template-columns: 1fr 1fr;
196+
gap: var(--spacing-3xl);
197+
align-items: center;
198+
min-height: 500px;
199+
}
200+
201+
.hero-text {
202+
text-align: left;
203+
}
204+
194205
.hero h1 {
195206
font-size: 4rem;
196207
font-weight: 800;
@@ -203,16 +214,29 @@ a:hover {
203214
font-size: 1.5rem;
204215
margin-bottom: var(--spacing-xl);
205216
color: var(--text-secondary);
206-
max-width: 600px;
207-
margin-left: auto;
208-
margin-right: auto;
209217
line-height: 1.4;
210218
}
211219

220+
.hero-code {
221+
position: relative;
222+
}
223+
224+
.hero-code .highlight {
225+
margin: 0;
226+
border-radius: 12px;
227+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
228+
overflow: hidden;
229+
}
230+
231+
.hero-code pre {
232+
padding: var(--spacing-xl);
233+
font-size: 0.95rem;
234+
line-height: 1.5;
235+
}
236+
212237
.hero-actions {
213238
display: flex;
214239
gap: var(--spacing-md);
215-
justify-content: center;
216240
margin-bottom: var(--spacing-lg);
217241
flex-wrap: wrap;
218242
}
@@ -420,12 +444,28 @@ pre code {
420444
display: flex;
421445
}
422446

447+
.hero-content {
448+
grid-template-columns: 1fr;
449+
gap: var(--spacing-xl);
450+
min-height: auto;
451+
text-align: center;
452+
}
453+
454+
.hero-text {
455+
text-align: center;
456+
order: 1;
457+
}
458+
459+
.hero-code {
460+
order: 2;
461+
}
462+
423463
.hero h1 {
424-
font-size: 2rem;
464+
font-size: 2.5rem;
425465
}
426466

427-
.hero p {
428-
font-size: 1.1rem;
467+
.hero-subtitle {
468+
font-size: 1.2rem;
429469
}
430470

431471
.cards {

0 commit comments

Comments
 (0)